From 0b1b2820ebaefb61b23e50d8846c883fcef85659 Mon Sep 17 00:00:00 2001 From: Rajesh Jinaga Date: Tue, 23 Aug 2022 16:15:42 +0530 Subject: [PATCH] Fix - able to write expression without space between operand and operator --- README.md | 8 +- build/Build.cs | 9 +- .../SimpleflowCodeVisitor.VisitExpression.cs | 10 + .../CodeGenerator/SimpleflowCodeVisitor.cs | 8 +- .../CodeGenerator/SimpleflowCompiler.cs | 4 +- src/Simpleflow/FlowContext.cs | 2 +- .../Parser/Grammar/SimpleflowLexer.g4 | 2 +- .../Parser/Grammar/SimpleflowParser.g4 | 6 +- src/Simpleflow/Parser/SimpleflowLexer.cs | 220 ++++---- src/Simpleflow/Parser/SimpleflowLexer.interp | 2 +- src/Simpleflow/Parser/SimpleflowParser.cs | 512 ++++++++++-------- src/Simpleflow/Parser/SimpleflowParser.interp | 2 +- .../Parser/SimpleflowParserBaseListener.cs | 64 ++- .../Parser/SimpleflowParserBaseVisitor.cs | 46 +- .../Parser/SimpleflowParserListener.cs | 56 +- .../Parser/SimpleflowParserVisitor.cs | 32 +- ...riptHelperContext.cs => RuntimeContext.cs} | 12 +- src/Simpleflow/Services/CacheService.cs | 2 +- src/Simpleflow/Services/ExecutionService.cs | 2 +- src/Simpleflow/Simpleflow.csproj | 2 +- src/Simpleflow/Simpleflow.xml | 225 ++++++-- test/Simpleflow.Footprint/Program.cs | 14 +- .../Infrastructure/ScriptHelperContextTest.cs | 4 +- .../Scripting/ArithmeticExpressionsTest.cs | 6 +- 24 files changed, 766 insertions(+), 484 deletions(-) rename src/Simpleflow/{ScriptHelperContext.cs => RuntimeContext.cs} (68%) diff --git a/README.md b/README.md index b7ac45f..44126cd 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,12 @@ using Simpleflow; var script = @" # Declare and initialize variables - let text = 'Hello, World! 🌄' - let today = $GetCurrentDateTime ( timezone: 'Eastern Standard Time' ) + let today = $GetCurrentDate() # Write rules - rule when arg.UniversalId == 2 and (arg.New or arg.Verified) then - message text + rule when arg.UniversalId == 2 + and (arg.New or arg.Verified) then + message 'Hello, World! 🌄' end rule # Output diff --git a/build/Build.cs b/build/Build.cs index d0eafcd..8161519 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -121,15 +121,16 @@ class Build : NukeBuild .SetTitle("Simpleflow") .SetAuthors("navtech.io") .SetCopyright("navtech.io") - .SetPackageProjectUrl("https://github.com/navtech-io/Simpleflow") + .SetPackageProjectUrl("https://navtech-io.github.io/Simpleflow/") + .SetRepositoryUrl("https://github.com/navtech-io/Simpleflow") .AddProperty("PackageLicenseExpression", "Apache-2.0") .AddProperty("PackageIcon", @"PackageIcon.png") .SetPackageRequireLicenseAcceptance(true) .SetIncludeSymbols(true) - .SetDescription("A .NET library and a runtime engine to execute dynamic rules and workflows with intuitive and simple Simpleflow scripting language.") - .SetPackageTags("Simpleflow.NET Workflow RuleEngine DynamicValidations DynamicExpressionEvaluator") + .SetDescription("A .NET library and a runtime engine to execute dynamic rules and workflows with intuitive and simple declarative Simpleflow scripting language.") + .SetPackageTags("Simpleflow.NET Workflow Rule-Engine Dynamic-Validations Dynamic-Expression-Evaluator") .SetNoDependencies(true) - .SetOutputDirectory(ArtifactsDirectory / "nuget")); + .SetOutputDirectory(ArtifactsDirectory / "nuget")); ; }); Target Publish => _ => _ diff --git a/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.VisitExpression.cs b/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.VisitExpression.cs index 0f7bea5..e13e892 100644 --- a/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.VisitExpression.cs +++ b/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.VisitExpression.cs @@ -11,6 +11,16 @@ namespace Simpleflow.CodeGenerator partial class SimpleflowCodeVisitor { + public override Expression VisitUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context) + { + return Expression.UnaryPlus(Visit(context.expression())); + } + + public override Expression VisitUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context) + { + return Expression.Negate(Visit(context.expression())); + } + public override Expression VisitMultiplicativeExpression([NotNull] SimpleflowParser.MultiplicativeExpressionContext context) { var symbolNode = (ITerminalNode)context.GetChild(1); // exp(0) operator(1) exp(2) diff --git a/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.cs b/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.cs index dbfb2a6..bc77aa1 100644 --- a/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.cs +++ b/src/Simpleflow/CodeGenerator/SimpleflowCodeVisitor.cs @@ -42,7 +42,7 @@ public SimpleflowCodeVisitor(IFunctionRegister functionRegister, ParserEventPubl InputParam = Expression.Parameter(typeof(TArg)); OutputParam = Expression.Parameter(typeof(FlowOutput)); // use context parameter name in order to access in script - ScriptHelperContextParam = Expression.Parameter(typeof(ScriptHelperContext)); + ScriptHelperContextParam = Expression.Parameter(typeof(RuntimeContext)); /* A label expression of the void type that is the target for Expression.Return(). */ TargetLabelToExitFunction = Expression.Label(); @@ -67,8 +67,8 @@ public override Expression VisitProgram(SimpleflowParser.ProgramContext context) Expression body = Expression.Block(Variables, statementExpressions); /* Create function with input and output parameters */ - Expression> program = - Expression.Lambda>( + Expression> program = + Expression.Lambda>( body, new ParameterExpression[] { InputParam, OutputParam, ScriptHelperContextParam } ); @@ -234,7 +234,7 @@ private void ReplaceVirtualSmartVariablesWithReal(List statementExpr private List CreateDefaultVariablesAndAssign() { var argVar = Expression.Variable(typeof(TArg), "arg"); - var contextVar = Expression.Variable(typeof(ScriptHelperContext), "context"); + var contextVar = Expression.Variable(typeof(RuntimeContext), "context"); Variables.Add(argVar); Variables.Add(contextVar); diff --git a/src/Simpleflow/CodeGenerator/SimpleflowCompiler.cs b/src/Simpleflow/CodeGenerator/SimpleflowCompiler.cs index b9c5240..55d50f3 100644 --- a/src/Simpleflow/CodeGenerator/SimpleflowCompiler.cs +++ b/src/Simpleflow/CodeGenerator/SimpleflowCompiler.cs @@ -14,7 +14,7 @@ namespace Simpleflow.CodeGenerator { internal class SimpleflowCompiler { - internal static Action Compile(string code, + internal static Action Compile(string code, IFunctionRegister activityRegister, ParserEventPublisher eventPublisher) { @@ -31,7 +31,7 @@ internal static Action Compile(stri var program = visitor.Visit(programContext); // Compile - var programExpression = (Expression>)program; + var programExpression = (Expression>)program; return programExpression.CompileFast(); } diff --git a/src/Simpleflow/FlowContext.cs b/src/Simpleflow/FlowContext.cs index b9c36f3..1e995d0 100644 --- a/src/Simpleflow/FlowContext.cs +++ b/src/Simpleflow/FlowContext.cs @@ -34,7 +34,7 @@ public void EnableTrace() public class FlowInternals { - public Action CompiledScript { get; set; } + public Action CompiledScript { get; set; } } } } diff --git a/src/Simpleflow/Parser/Grammar/SimpleflowLexer.g4 b/src/Simpleflow/Parser/Grammar/SimpleflowLexer.g4 index 890b430..1294860 100644 --- a/src/Simpleflow/Parser/Grammar/SimpleflowLexer.g4 +++ b/src/Simpleflow/Parser/Grammar/SimpleflowLexer.g4 @@ -66,7 +66,7 @@ Not: 'not'; // Literals True: 'true'; False: 'false'; -Number: ('+'|'-')?[0-9]+('.'[0-9]+)?; +Number: [0-9]+('.'[0-9]+)?; String: '"' ( '\\"' | ~["\r\n] )*? '"' | '\'' ( '\\\'' | ~['\r\n] )*? '\'' ; diff --git a/src/Simpleflow/Parser/Grammar/SimpleflowParser.g4 b/src/Simpleflow/Parser/Grammar/SimpleflowParser.g4 index 80d29ad..9710263 100644 --- a/src/Simpleflow/Parser/Grammar/SimpleflowParser.g4 +++ b/src/Simpleflow/Parser/Grammar/SimpleflowParser.g4 @@ -61,7 +61,10 @@ exitStmt ; expression - : expression (TimesOp | DivOp | ModuloOp) expression #MultiplicativeExpression + : PlusOp expression #UniaryPlusExpression + | MinusOp expression #UniaryMinusExpression + | Not expression #NotExpression + | expression (TimesOp | DivOp | ModuloOp) expression #MultiplicativeExpression | expression (PlusOp | MinusOp) expression #AdditiveExpression | expression ( GreaterThan | LessThan @@ -71,7 +74,6 @@ expression | NotEqual ) expression #RelationalExpression | expression (And | Or ) expression #LogicalExpression - | Not expression #NotExpression | objectIdentifier #ObjectIdentiferExpression | simpleLiteral #SimpleLiteralExpression | arrayLiteral #ArrayLiteralExpression diff --git a/src/Simpleflow/Parser/SimpleflowLexer.cs b/src/Simpleflow/Parser/SimpleflowLexer.cs index 0bf66c5..ee15d2a 100644 --- a/src/Simpleflow/Parser/SimpleflowLexer.cs +++ b/src/Simpleflow/Parser/SimpleflowLexer.cs @@ -154,7 +154,7 @@ private bool TemplateCloseBrace_sempred(RuleContext _localctx, int predIndex) { } private static int[] _serializedATN = { - 4,0,53,391,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2, + 4,0,53,388,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2, 6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13, 2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20, 2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27, @@ -173,116 +173,114 @@ private bool TemplateCloseBrace_sempred(RuleContext _localctx, int predIndex) { 32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1, 34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,36,1,36,1,36,1,36,1,37,1, 37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1, - 40,1,40,1,40,1,41,3,41,277,8,41,1,41,4,41,280,8,41,11,41,12,41,281,1,41, - 1,41,4,41,286,8,41,11,41,12,41,287,3,41,290,8,41,1,42,1,42,1,42,1,42,5, - 42,296,8,42,10,42,12,42,299,9,42,1,42,1,42,1,42,1,42,1,42,5,42,306,8,42, - 10,42,12,42,309,9,42,1,42,3,42,312,8,42,1,43,1,43,1,43,1,43,1,43,1,44, - 5,44,320,8,44,10,44,12,44,323,9,44,1,44,1,44,5,44,327,8,44,10,44,12,44, - 330,9,44,1,45,1,45,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,5,47,342,8, - 47,10,47,12,47,345,9,47,1,48,1,48,1,48,1,48,1,48,1,49,4,49,353,8,49,11, - 49,12,49,354,1,49,1,49,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1, - 51,1,52,1,52,1,52,1,52,1,53,1,53,1,54,5,54,376,8,54,10,54,12,54,379,9, - 54,1,54,1,54,5,54,383,8,54,10,54,12,54,386,9,54,1,55,1,55,1,56,1,56,3, - 122,297,307,0,57,2,1,4,2,6,3,8,4,10,5,12,6,14,7,16,8,18,9,20,10,22,11, - 24,12,26,13,28,14,30,15,32,16,34,17,36,18,38,19,40,20,42,21,44,22,46,23, - 48,24,50,25,52,26,54,27,56,28,58,29,60,30,62,31,64,32,66,33,68,34,70,35, - 72,36,74,37,76,38,78,39,80,40,82,41,84,42,86,43,88,44,90,45,92,46,94,47, - 96,48,98,49,100,50,102,51,104,0,106,52,108,53,110,0,112,0,114,0,2,0,1, - 10,3,0,10,10,13,13,8232,8233,2,0,43,43,45,45,1,0,48,57,3,0,10,10,13,13, - 34,34,3,0,10,10,13,13,39,39,1,0,95,95,2,0,65,90,97,122,4,0,48,57,65,90, - 95,95,97,122,4,0,9,9,11,12,32,32,160,160,1,0,96,96,403,0,2,1,0,0,0,0,4, - 1,0,0,0,0,6,1,0,0,0,0,8,1,0,0,0,0,10,1,0,0,0,0,12,1,0,0,0,0,14,1,0,0,0, - 0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,22,1,0,0,0,0,24,1,0,0,0,0,26, - 1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,0,0,0,34,1,0,0,0,0,36,1,0,0, - 0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,44,1,0,0,0,0,46,1,0,0,0,0,48, - 1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,0,0,0,56,1,0,0,0,0,58,1,0,0, - 0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0,0,0,66,1,0,0,0,0,68,1,0,0,0,0,70, - 1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76,1,0,0,0,0,78,1,0,0,0,0,80,1,0,0, - 0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0,0,0,88,1,0,0,0,0,90,1,0,0,0,0,92, - 1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98,1,0,0,0,0,100,1,0,0,0,0,102,1,0, - 0,0,1,104,1,0,0,0,1,106,1,0,0,0,1,108,1,0,0,0,2,116,1,0,0,0,4,130,1,0, - 0,0,6,139,1,0,0,0,8,141,1,0,0,0,10,143,1,0,0,0,12,145,1,0,0,0,14,147,1, - 0,0,0,16,149,1,0,0,0,18,154,1,0,0,0,20,156,1,0,0,0,22,158,1,0,0,0,24,160, - 1,0,0,0,26,162,1,0,0,0,28,164,1,0,0,0,30,166,1,0,0,0,32,168,1,0,0,0,34, - 170,1,0,0,0,36,172,1,0,0,0,38,174,1,0,0,0,40,176,1,0,0,0,42,179,1,0,0, - 0,44,181,1,0,0,0,46,184,1,0,0,0,48,187,1,0,0,0,50,190,1,0,0,0,52,194,1, - 0,0,0,54,198,1,0,0,0,56,206,1,0,0,0,58,211,1,0,0,0,60,216,1,0,0,0,62,221, - 1,0,0,0,64,225,1,0,0,0,66,230,1,0,0,0,68,238,1,0,0,0,70,244,1,0,0,0,72, - 251,1,0,0,0,74,253,1,0,0,0,76,257,1,0,0,0,78,260,1,0,0,0,80,264,1,0,0, - 0,82,269,1,0,0,0,84,276,1,0,0,0,86,311,1,0,0,0,88,313,1,0,0,0,90,321,1, - 0,0,0,92,331,1,0,0,0,94,333,1,0,0,0,96,337,1,0,0,0,98,346,1,0,0,0,100, - 352,1,0,0,0,102,358,1,0,0,0,104,362,1,0,0,0,106,368,1,0,0,0,108,372,1, - 0,0,0,110,377,1,0,0,0,112,387,1,0,0,0,114,389,1,0,0,0,116,117,5,47,0,0, - 117,118,5,42,0,0,118,122,1,0,0,0,119,121,9,0,0,0,120,119,1,0,0,0,121,124, - 1,0,0,0,122,123,1,0,0,0,122,120,1,0,0,0,123,125,1,0,0,0,124,122,1,0,0, - 0,125,126,5,42,0,0,126,127,5,47,0,0,127,128,1,0,0,0,128,129,6,0,0,0,129, - 3,1,0,0,0,130,134,5,35,0,0,131,133,8,0,0,0,132,131,1,0,0,0,133,136,1,0, - 0,0,134,132,1,0,0,0,134,135,1,0,0,0,135,137,1,0,0,0,136,134,1,0,0,0,137, - 138,6,1,0,0,138,5,1,0,0,0,139,140,5,91,0,0,140,7,1,0,0,0,141,142,5,93, - 0,0,142,9,1,0,0,0,143,144,5,40,0,0,144,11,1,0,0,0,145,146,5,41,0,0,146, - 13,1,0,0,0,147,148,5,123,0,0,148,15,1,0,0,0,149,150,4,7,0,0,150,151,5, - 125,0,0,151,152,1,0,0,0,152,153,6,7,1,0,153,17,1,0,0,0,154,155,5,125,0, - 0,155,19,1,0,0,0,156,157,5,58,0,0,157,21,1,0,0,0,158,159,5,44,0,0,159, - 23,1,0,0,0,160,161,5,46,0,0,161,25,1,0,0,0,162,163,5,61,0,0,163,27,1,0, - 0,0,164,165,5,43,0,0,165,29,1,0,0,0,166,167,5,45,0,0,167,31,1,0,0,0,168, - 169,5,42,0,0,169,33,1,0,0,0,170,171,5,47,0,0,171,35,1,0,0,0,172,173,5, - 37,0,0,173,37,1,0,0,0,174,175,5,62,0,0,175,39,1,0,0,0,176,177,5,62,0,0, - 177,178,5,61,0,0,178,41,1,0,0,0,179,180,5,60,0,0,180,43,1,0,0,0,181,182, - 5,60,0,0,182,183,5,61,0,0,183,45,1,0,0,0,184,185,5,61,0,0,185,186,5,61, - 0,0,186,47,1,0,0,0,187,188,5,33,0,0,188,189,5,61,0,0,189,49,1,0,0,0,190, - 191,5,108,0,0,191,192,5,101,0,0,192,193,5,116,0,0,193,51,1,0,0,0,194,195, - 5,115,0,0,195,196,5,101,0,0,196,197,5,116,0,0,197,53,1,0,0,0,198,199,5, - 112,0,0,199,200,5,97,0,0,200,201,5,114,0,0,201,202,5,116,0,0,202,203,5, - 105,0,0,203,204,5,97,0,0,204,205,5,108,0,0,205,55,1,0,0,0,206,207,5,114, - 0,0,207,208,5,117,0,0,208,209,5,108,0,0,209,210,5,101,0,0,210,57,1,0,0, - 0,211,212,5,119,0,0,212,213,5,104,0,0,213,214,5,101,0,0,214,215,5,110, - 0,0,215,59,1,0,0,0,216,217,5,116,0,0,217,218,5,104,0,0,218,219,5,101,0, - 0,219,220,5,110,0,0,220,61,1,0,0,0,221,222,5,101,0,0,222,223,5,110,0,0, - 223,224,5,100,0,0,224,63,1,0,0,0,225,226,5,101,0,0,226,227,5,120,0,0,227, - 228,5,105,0,0,228,229,5,116,0,0,229,65,1,0,0,0,230,231,5,109,0,0,231,232, - 5,101,0,0,232,233,5,115,0,0,233,234,5,115,0,0,234,235,5,97,0,0,235,236, - 5,103,0,0,236,237,5,101,0,0,237,67,1,0,0,0,238,239,5,101,0,0,239,240,5, - 114,0,0,240,241,5,114,0,0,241,242,5,111,0,0,242,243,5,114,0,0,243,69,1, - 0,0,0,244,245,5,111,0,0,245,246,5,117,0,0,246,247,5,116,0,0,247,248,5, - 112,0,0,248,249,5,117,0,0,249,250,5,116,0,0,250,71,1,0,0,0,251,252,5,59, - 0,0,252,73,1,0,0,0,253,254,5,97,0,0,254,255,5,110,0,0,255,256,5,100,0, - 0,256,75,1,0,0,0,257,258,5,111,0,0,258,259,5,114,0,0,259,77,1,0,0,0,260, - 261,5,110,0,0,261,262,5,111,0,0,262,263,5,116,0,0,263,79,1,0,0,0,264,265, - 5,116,0,0,265,266,5,114,0,0,266,267,5,117,0,0,267,268,5,101,0,0,268,81, - 1,0,0,0,269,270,5,102,0,0,270,271,5,97,0,0,271,272,5,108,0,0,272,273,5, - 115,0,0,273,274,5,101,0,0,274,83,1,0,0,0,275,277,7,1,0,0,276,275,1,0,0, - 0,276,277,1,0,0,0,277,279,1,0,0,0,278,280,7,2,0,0,279,278,1,0,0,0,280, - 281,1,0,0,0,281,279,1,0,0,0,281,282,1,0,0,0,282,289,1,0,0,0,283,285,5, - 46,0,0,284,286,7,2,0,0,285,284,1,0,0,0,286,287,1,0,0,0,287,285,1,0,0,0, - 287,288,1,0,0,0,288,290,1,0,0,0,289,283,1,0,0,0,289,290,1,0,0,0,290,85, - 1,0,0,0,291,297,5,34,0,0,292,293,5,92,0,0,293,296,5,34,0,0,294,296,8,3, - 0,0,295,292,1,0,0,0,295,294,1,0,0,0,296,299,1,0,0,0,297,298,1,0,0,0,297, - 295,1,0,0,0,298,300,1,0,0,0,299,297,1,0,0,0,300,312,5,34,0,0,301,307,5, - 39,0,0,302,303,5,92,0,0,303,306,5,39,0,0,304,306,8,4,0,0,305,302,1,0,0, - 0,305,304,1,0,0,0,306,309,1,0,0,0,307,308,1,0,0,0,307,305,1,0,0,0,308, - 310,1,0,0,0,309,307,1,0,0,0,310,312,5,39,0,0,311,291,1,0,0,0,311,301,1, - 0,0,0,312,87,1,0,0,0,313,314,5,110,0,0,314,315,5,111,0,0,315,316,5,110, - 0,0,316,317,5,101,0,0,317,89,1,0,0,0,318,320,7,5,0,0,319,318,1,0,0,0,320, - 323,1,0,0,0,321,319,1,0,0,0,321,322,1,0,0,0,322,324,1,0,0,0,323,321,1, - 0,0,0,324,328,7,6,0,0,325,327,7,7,0,0,326,325,1,0,0,0,327,330,1,0,0,0, - 328,326,1,0,0,0,328,329,1,0,0,0,329,91,1,0,0,0,330,328,1,0,0,0,331,332, - 5,95,0,0,332,93,1,0,0,0,333,334,3,6,2,0,334,335,3,84,41,0,335,336,3,8, - 3,0,336,95,1,0,0,0,337,338,5,36,0,0,338,343,3,110,54,0,339,340,5,46,0, - 0,340,342,3,110,54,0,341,339,1,0,0,0,342,345,1,0,0,0,343,341,1,0,0,0,343, - 344,1,0,0,0,344,97,1,0,0,0,345,343,1,0,0,0,346,347,5,96,0,0,347,348,6, - 48,2,0,348,349,1,0,0,0,349,350,6,48,3,0,350,99,1,0,0,0,351,353,7,8,0,0, - 352,351,1,0,0,0,353,354,1,0,0,0,354,352,1,0,0,0,354,355,1,0,0,0,355,356, - 1,0,0,0,356,357,6,49,0,0,357,101,1,0,0,0,358,359,7,0,0,0,359,360,1,0,0, - 0,360,361,6,50,0,0,361,103,1,0,0,0,362,363,5,96,0,0,363,364,6,51,4,0,364, - 365,1,0,0,0,365,366,6,51,5,0,366,367,6,51,1,0,367,105,1,0,0,0,368,369, - 5,123,0,0,369,370,1,0,0,0,370,371,6,52,6,0,371,107,1,0,0,0,372,373,8,9, - 0,0,373,109,1,0,0,0,374,376,7,5,0,0,375,374,1,0,0,0,376,379,1,0,0,0,377, - 375,1,0,0,0,377,378,1,0,0,0,378,380,1,0,0,0,379,377,1,0,0,0,380,384,7, - 6,0,0,381,383,7,7,0,0,382,381,1,0,0,0,383,386,1,0,0,0,384,382,1,0,0,0, - 384,385,1,0,0,0,385,111,1,0,0,0,386,384,1,0,0,0,387,388,5,43,0,0,388,113, - 1,0,0,0,389,390,5,45,0,0,390,115,1,0,0,0,19,0,1,122,134,276,281,287,289, - 295,297,305,307,311,321,328,343,354,377,384,7,0,1,0,4,0,0,1,48,0,5,1,0, - 1,51,1,7,49,0,5,0,0 + 40,1,40,1,40,1,41,4,41,277,8,41,11,41,12,41,278,1,41,1,41,4,41,283,8,41, + 11,41,12,41,284,3,41,287,8,41,1,42,1,42,1,42,1,42,5,42,293,8,42,10,42, + 12,42,296,9,42,1,42,1,42,1,42,1,42,1,42,5,42,303,8,42,10,42,12,42,306, + 9,42,1,42,3,42,309,8,42,1,43,1,43,1,43,1,43,1,43,1,44,5,44,317,8,44,10, + 44,12,44,320,9,44,1,44,1,44,5,44,324,8,44,10,44,12,44,327,9,44,1,45,1, + 45,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,5,47,339,8,47,10,47,12,47,342, + 9,47,1,48,1,48,1,48,1,48,1,48,1,49,4,49,350,8,49,11,49,12,49,351,1,49, + 1,49,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52, + 1,52,1,53,1,53,1,54,5,54,373,8,54,10,54,12,54,376,9,54,1,54,1,54,5,54, + 380,8,54,10,54,12,54,383,9,54,1,55,1,55,1,56,1,56,3,122,294,304,0,57,2, + 1,4,2,6,3,8,4,10,5,12,6,14,7,16,8,18,9,20,10,22,11,24,12,26,13,28,14,30, + 15,32,16,34,17,36,18,38,19,40,20,42,21,44,22,46,23,48,24,50,25,52,26,54, + 27,56,28,58,29,60,30,62,31,64,32,66,33,68,34,70,35,72,36,74,37,76,38,78, + 39,80,40,82,41,84,42,86,43,88,44,90,45,92,46,94,47,96,48,98,49,100,50, + 102,51,104,0,106,52,108,53,110,0,112,0,114,0,2,0,1,9,3,0,10,10,13,13,8232, + 8233,1,0,48,57,3,0,10,10,13,13,34,34,3,0,10,10,13,13,39,39,1,0,95,95,2, + 0,65,90,97,122,4,0,48,57,65,90,95,95,97,122,4,0,9,9,11,12,32,32,160,160, + 1,0,96,96,399,0,2,1,0,0,0,0,4,1,0,0,0,0,6,1,0,0,0,0,8,1,0,0,0,0,10,1,0, + 0,0,0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0, + 22,1,0,0,0,0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1, + 0,0,0,0,34,1,0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0, + 0,44,1,0,0,0,0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54, + 1,0,0,0,0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0, + 0,0,66,1,0,0,0,0,68,1,0,0,0,0,70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76, + 1,0,0,0,0,78,1,0,0,0,0,80,1,0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0, + 0,0,88,1,0,0,0,0,90,1,0,0,0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98, + 1,0,0,0,0,100,1,0,0,0,0,102,1,0,0,0,1,104,1,0,0,0,1,106,1,0,0,0,1,108, + 1,0,0,0,2,116,1,0,0,0,4,130,1,0,0,0,6,139,1,0,0,0,8,141,1,0,0,0,10,143, + 1,0,0,0,12,145,1,0,0,0,14,147,1,0,0,0,16,149,1,0,0,0,18,154,1,0,0,0,20, + 156,1,0,0,0,22,158,1,0,0,0,24,160,1,0,0,0,26,162,1,0,0,0,28,164,1,0,0, + 0,30,166,1,0,0,0,32,168,1,0,0,0,34,170,1,0,0,0,36,172,1,0,0,0,38,174,1, + 0,0,0,40,176,1,0,0,0,42,179,1,0,0,0,44,181,1,0,0,0,46,184,1,0,0,0,48,187, + 1,0,0,0,50,190,1,0,0,0,52,194,1,0,0,0,54,198,1,0,0,0,56,206,1,0,0,0,58, + 211,1,0,0,0,60,216,1,0,0,0,62,221,1,0,0,0,64,225,1,0,0,0,66,230,1,0,0, + 0,68,238,1,0,0,0,70,244,1,0,0,0,72,251,1,0,0,0,74,253,1,0,0,0,76,257,1, + 0,0,0,78,260,1,0,0,0,80,264,1,0,0,0,82,269,1,0,0,0,84,276,1,0,0,0,86,308, + 1,0,0,0,88,310,1,0,0,0,90,318,1,0,0,0,92,328,1,0,0,0,94,330,1,0,0,0,96, + 334,1,0,0,0,98,343,1,0,0,0,100,349,1,0,0,0,102,355,1,0,0,0,104,359,1,0, + 0,0,106,365,1,0,0,0,108,369,1,0,0,0,110,374,1,0,0,0,112,384,1,0,0,0,114, + 386,1,0,0,0,116,117,5,47,0,0,117,118,5,42,0,0,118,122,1,0,0,0,119,121, + 9,0,0,0,120,119,1,0,0,0,121,124,1,0,0,0,122,123,1,0,0,0,122,120,1,0,0, + 0,123,125,1,0,0,0,124,122,1,0,0,0,125,126,5,42,0,0,126,127,5,47,0,0,127, + 128,1,0,0,0,128,129,6,0,0,0,129,3,1,0,0,0,130,134,5,35,0,0,131,133,8,0, + 0,0,132,131,1,0,0,0,133,136,1,0,0,0,134,132,1,0,0,0,134,135,1,0,0,0,135, + 137,1,0,0,0,136,134,1,0,0,0,137,138,6,1,0,0,138,5,1,0,0,0,139,140,5,91, + 0,0,140,7,1,0,0,0,141,142,5,93,0,0,142,9,1,0,0,0,143,144,5,40,0,0,144, + 11,1,0,0,0,145,146,5,41,0,0,146,13,1,0,0,0,147,148,5,123,0,0,148,15,1, + 0,0,0,149,150,4,7,0,0,150,151,5,125,0,0,151,152,1,0,0,0,152,153,6,7,1, + 0,153,17,1,0,0,0,154,155,5,125,0,0,155,19,1,0,0,0,156,157,5,58,0,0,157, + 21,1,0,0,0,158,159,5,44,0,0,159,23,1,0,0,0,160,161,5,46,0,0,161,25,1,0, + 0,0,162,163,5,61,0,0,163,27,1,0,0,0,164,165,5,43,0,0,165,29,1,0,0,0,166, + 167,5,45,0,0,167,31,1,0,0,0,168,169,5,42,0,0,169,33,1,0,0,0,170,171,5, + 47,0,0,171,35,1,0,0,0,172,173,5,37,0,0,173,37,1,0,0,0,174,175,5,62,0,0, + 175,39,1,0,0,0,176,177,5,62,0,0,177,178,5,61,0,0,178,41,1,0,0,0,179,180, + 5,60,0,0,180,43,1,0,0,0,181,182,5,60,0,0,182,183,5,61,0,0,183,45,1,0,0, + 0,184,185,5,61,0,0,185,186,5,61,0,0,186,47,1,0,0,0,187,188,5,33,0,0,188, + 189,5,61,0,0,189,49,1,0,0,0,190,191,5,108,0,0,191,192,5,101,0,0,192,193, + 5,116,0,0,193,51,1,0,0,0,194,195,5,115,0,0,195,196,5,101,0,0,196,197,5, + 116,0,0,197,53,1,0,0,0,198,199,5,112,0,0,199,200,5,97,0,0,200,201,5,114, + 0,0,201,202,5,116,0,0,202,203,5,105,0,0,203,204,5,97,0,0,204,205,5,108, + 0,0,205,55,1,0,0,0,206,207,5,114,0,0,207,208,5,117,0,0,208,209,5,108,0, + 0,209,210,5,101,0,0,210,57,1,0,0,0,211,212,5,119,0,0,212,213,5,104,0,0, + 213,214,5,101,0,0,214,215,5,110,0,0,215,59,1,0,0,0,216,217,5,116,0,0,217, + 218,5,104,0,0,218,219,5,101,0,0,219,220,5,110,0,0,220,61,1,0,0,0,221,222, + 5,101,0,0,222,223,5,110,0,0,223,224,5,100,0,0,224,63,1,0,0,0,225,226,5, + 101,0,0,226,227,5,120,0,0,227,228,5,105,0,0,228,229,5,116,0,0,229,65,1, + 0,0,0,230,231,5,109,0,0,231,232,5,101,0,0,232,233,5,115,0,0,233,234,5, + 115,0,0,234,235,5,97,0,0,235,236,5,103,0,0,236,237,5,101,0,0,237,67,1, + 0,0,0,238,239,5,101,0,0,239,240,5,114,0,0,240,241,5,114,0,0,241,242,5, + 111,0,0,242,243,5,114,0,0,243,69,1,0,0,0,244,245,5,111,0,0,245,246,5,117, + 0,0,246,247,5,116,0,0,247,248,5,112,0,0,248,249,5,117,0,0,249,250,5,116, + 0,0,250,71,1,0,0,0,251,252,5,59,0,0,252,73,1,0,0,0,253,254,5,97,0,0,254, + 255,5,110,0,0,255,256,5,100,0,0,256,75,1,0,0,0,257,258,5,111,0,0,258,259, + 5,114,0,0,259,77,1,0,0,0,260,261,5,110,0,0,261,262,5,111,0,0,262,263,5, + 116,0,0,263,79,1,0,0,0,264,265,5,116,0,0,265,266,5,114,0,0,266,267,5,117, + 0,0,267,268,5,101,0,0,268,81,1,0,0,0,269,270,5,102,0,0,270,271,5,97,0, + 0,271,272,5,108,0,0,272,273,5,115,0,0,273,274,5,101,0,0,274,83,1,0,0,0, + 275,277,7,1,0,0,276,275,1,0,0,0,277,278,1,0,0,0,278,276,1,0,0,0,278,279, + 1,0,0,0,279,286,1,0,0,0,280,282,5,46,0,0,281,283,7,1,0,0,282,281,1,0,0, + 0,283,284,1,0,0,0,284,282,1,0,0,0,284,285,1,0,0,0,285,287,1,0,0,0,286, + 280,1,0,0,0,286,287,1,0,0,0,287,85,1,0,0,0,288,294,5,34,0,0,289,290,5, + 92,0,0,290,293,5,34,0,0,291,293,8,2,0,0,292,289,1,0,0,0,292,291,1,0,0, + 0,293,296,1,0,0,0,294,295,1,0,0,0,294,292,1,0,0,0,295,297,1,0,0,0,296, + 294,1,0,0,0,297,309,5,34,0,0,298,304,5,39,0,0,299,300,5,92,0,0,300,303, + 5,39,0,0,301,303,8,3,0,0,302,299,1,0,0,0,302,301,1,0,0,0,303,306,1,0,0, + 0,304,305,1,0,0,0,304,302,1,0,0,0,305,307,1,0,0,0,306,304,1,0,0,0,307, + 309,5,39,0,0,308,288,1,0,0,0,308,298,1,0,0,0,309,87,1,0,0,0,310,311,5, + 110,0,0,311,312,5,111,0,0,312,313,5,110,0,0,313,314,5,101,0,0,314,89,1, + 0,0,0,315,317,7,4,0,0,316,315,1,0,0,0,317,320,1,0,0,0,318,316,1,0,0,0, + 318,319,1,0,0,0,319,321,1,0,0,0,320,318,1,0,0,0,321,325,7,5,0,0,322,324, + 7,6,0,0,323,322,1,0,0,0,324,327,1,0,0,0,325,323,1,0,0,0,325,326,1,0,0, + 0,326,91,1,0,0,0,327,325,1,0,0,0,328,329,5,95,0,0,329,93,1,0,0,0,330,331, + 3,6,2,0,331,332,3,84,41,0,332,333,3,8,3,0,333,95,1,0,0,0,334,335,5,36, + 0,0,335,340,3,110,54,0,336,337,5,46,0,0,337,339,3,110,54,0,338,336,1,0, + 0,0,339,342,1,0,0,0,340,338,1,0,0,0,340,341,1,0,0,0,341,97,1,0,0,0,342, + 340,1,0,0,0,343,344,5,96,0,0,344,345,6,48,2,0,345,346,1,0,0,0,346,347, + 6,48,3,0,347,99,1,0,0,0,348,350,7,7,0,0,349,348,1,0,0,0,350,351,1,0,0, + 0,351,349,1,0,0,0,351,352,1,0,0,0,352,353,1,0,0,0,353,354,6,49,0,0,354, + 101,1,0,0,0,355,356,7,0,0,0,356,357,1,0,0,0,357,358,6,50,0,0,358,103,1, + 0,0,0,359,360,5,96,0,0,360,361,6,51,4,0,361,362,1,0,0,0,362,363,6,51,5, + 0,363,364,6,51,1,0,364,105,1,0,0,0,365,366,5,123,0,0,366,367,1,0,0,0,367, + 368,6,52,6,0,368,107,1,0,0,0,369,370,8,8,0,0,370,109,1,0,0,0,371,373,7, + 4,0,0,372,371,1,0,0,0,373,376,1,0,0,0,374,372,1,0,0,0,374,375,1,0,0,0, + 375,377,1,0,0,0,376,374,1,0,0,0,377,381,7,5,0,0,378,380,7,6,0,0,379,378, + 1,0,0,0,380,383,1,0,0,0,381,379,1,0,0,0,381,382,1,0,0,0,382,111,1,0,0, + 0,383,381,1,0,0,0,384,385,5,43,0,0,385,113,1,0,0,0,386,387,5,45,0,0,387, + 115,1,0,0,0,18,0,1,122,134,278,284,286,292,294,302,304,308,318,325,340, + 351,374,381,7,0,1,0,4,0,0,1,48,0,5,1,0,1,51,1,7,49,0,5,0,0 }; public static readonly ATN _ATN = diff --git a/src/Simpleflow/Parser/SimpleflowLexer.interp b/src/Simpleflow/Parser/SimpleflowLexer.interp index 81db8eb..6a9b7da 100644 --- a/src/Simpleflow/Parser/SimpleflowLexer.interp +++ b/src/Simpleflow/Parser/SimpleflowLexer.interp @@ -181,4 +181,4 @@ DEFAULT_MODE TEMPLATE atn: -[4, 0, 53, 391, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 121, 8, 0, 10, 0, 12, 0, 124, 9, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 5, 1, 133, 8, 1, 10, 1, 12, 1, 136, 9, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 3, 41, 277, 8, 41, 1, 41, 4, 41, 280, 8, 41, 11, 41, 12, 41, 281, 1, 41, 1, 41, 4, 41, 286, 8, 41, 11, 41, 12, 41, 287, 3, 41, 290, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 296, 8, 42, 10, 42, 12, 42, 299, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 306, 8, 42, 10, 42, 12, 42, 309, 9, 42, 1, 42, 3, 42, 312, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 5, 44, 320, 8, 44, 10, 44, 12, 44, 323, 9, 44, 1, 44, 1, 44, 5, 44, 327, 8, 44, 10, 44, 12, 44, 330, 9, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 342, 8, 47, 10, 47, 12, 47, 345, 9, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 4, 49, 353, 8, 49, 11, 49, 12, 49, 354, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 5, 54, 376, 8, 54, 10, 54, 12, 54, 379, 9, 54, 1, 54, 1, 54, 5, 54, 383, 8, 54, 10, 54, 12, 54, 386, 9, 54, 1, 55, 1, 55, 1, 56, 1, 56, 3, 122, 297, 307, 0, 57, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8, 18, 9, 20, 10, 22, 11, 24, 12, 26, 13, 28, 14, 30, 15, 32, 16, 34, 17, 36, 18, 38, 19, 40, 20, 42, 21, 44, 22, 46, 23, 48, 24, 50, 25, 52, 26, 54, 27, 56, 28, 58, 29, 60, 30, 62, 31, 64, 32, 66, 33, 68, 34, 70, 35, 72, 36, 74, 37, 76, 38, 78, 39, 80, 40, 82, 41, 84, 42, 86, 43, 88, 44, 90, 45, 92, 46, 94, 47, 96, 48, 98, 49, 100, 50, 102, 51, 104, 0, 106, 52, 108, 53, 110, 0, 112, 0, 114, 0, 2, 0, 1, 10, 3, 0, 10, 10, 13, 13, 8232, 8233, 2, 0, 43, 43, 45, 45, 1, 0, 48, 57, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 1, 0, 95, 95, 2, 0, 65, 90, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 9, 9, 11, 12, 32, 32, 160, 160, 1, 0, 96, 96, 403, 0, 2, 1, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 30, 1, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 34, 1, 0, 0, 0, 0, 36, 1, 0, 0, 0, 0, 38, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 44, 1, 0, 0, 0, 0, 46, 1, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 54, 1, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 58, 1, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 66, 1, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 80, 1, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 86, 1, 0, 0, 0, 0, 88, 1, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 98, 1, 0, 0, 0, 0, 100, 1, 0, 0, 0, 0, 102, 1, 0, 0, 0, 1, 104, 1, 0, 0, 0, 1, 106, 1, 0, 0, 0, 1, 108, 1, 0, 0, 0, 2, 116, 1, 0, 0, 0, 4, 130, 1, 0, 0, 0, 6, 139, 1, 0, 0, 0, 8, 141, 1, 0, 0, 0, 10, 143, 1, 0, 0, 0, 12, 145, 1, 0, 0, 0, 14, 147, 1, 0, 0, 0, 16, 149, 1, 0, 0, 0, 18, 154, 1, 0, 0, 0, 20, 156, 1, 0, 0, 0, 22, 158, 1, 0, 0, 0, 24, 160, 1, 0, 0, 0, 26, 162, 1, 0, 0, 0, 28, 164, 1, 0, 0, 0, 30, 166, 1, 0, 0, 0, 32, 168, 1, 0, 0, 0, 34, 170, 1, 0, 0, 0, 36, 172, 1, 0, 0, 0, 38, 174, 1, 0, 0, 0, 40, 176, 1, 0, 0, 0, 42, 179, 1, 0, 0, 0, 44, 181, 1, 0, 0, 0, 46, 184, 1, 0, 0, 0, 48, 187, 1, 0, 0, 0, 50, 190, 1, 0, 0, 0, 52, 194, 1, 0, 0, 0, 54, 198, 1, 0, 0, 0, 56, 206, 1, 0, 0, 0, 58, 211, 1, 0, 0, 0, 60, 216, 1, 0, 0, 0, 62, 221, 1, 0, 0, 0, 64, 225, 1, 0, 0, 0, 66, 230, 1, 0, 0, 0, 68, 238, 1, 0, 0, 0, 70, 244, 1, 0, 0, 0, 72, 251, 1, 0, 0, 0, 74, 253, 1, 0, 0, 0, 76, 257, 1, 0, 0, 0, 78, 260, 1, 0, 0, 0, 80, 264, 1, 0, 0, 0, 82, 269, 1, 0, 0, 0, 84, 276, 1, 0, 0, 0, 86, 311, 1, 0, 0, 0, 88, 313, 1, 0, 0, 0, 90, 321, 1, 0, 0, 0, 92, 331, 1, 0, 0, 0, 94, 333, 1, 0, 0, 0, 96, 337, 1, 0, 0, 0, 98, 346, 1, 0, 0, 0, 100, 352, 1, 0, 0, 0, 102, 358, 1, 0, 0, 0, 104, 362, 1, 0, 0, 0, 106, 368, 1, 0, 0, 0, 108, 372, 1, 0, 0, 0, 110, 377, 1, 0, 0, 0, 112, 387, 1, 0, 0, 0, 114, 389, 1, 0, 0, 0, 116, 117, 5, 47, 0, 0, 117, 118, 5, 42, 0, 0, 118, 122, 1, 0, 0, 0, 119, 121, 9, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 124, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 122, 120, 1, 0, 0, 0, 123, 125, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 125, 126, 5, 42, 0, 0, 126, 127, 5, 47, 0, 0, 127, 128, 1, 0, 0, 0, 128, 129, 6, 0, 0, 0, 129, 3, 1, 0, 0, 0, 130, 134, 5, 35, 0, 0, 131, 133, 8, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 137, 1, 0, 0, 0, 136, 134, 1, 0, 0, 0, 137, 138, 6, 1, 0, 0, 138, 5, 1, 0, 0, 0, 139, 140, 5, 91, 0, 0, 140, 7, 1, 0, 0, 0, 141, 142, 5, 93, 0, 0, 142, 9, 1, 0, 0, 0, 143, 144, 5, 40, 0, 0, 144, 11, 1, 0, 0, 0, 145, 146, 5, 41, 0, 0, 146, 13, 1, 0, 0, 0, 147, 148, 5, 123, 0, 0, 148, 15, 1, 0, 0, 0, 149, 150, 4, 7, 0, 0, 150, 151, 5, 125, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 6, 7, 1, 0, 153, 17, 1, 0, 0, 0, 154, 155, 5, 125, 0, 0, 155, 19, 1, 0, 0, 0, 156, 157, 5, 58, 0, 0, 157, 21, 1, 0, 0, 0, 158, 159, 5, 44, 0, 0, 159, 23, 1, 0, 0, 0, 160, 161, 5, 46, 0, 0, 161, 25, 1, 0, 0, 0, 162, 163, 5, 61, 0, 0, 163, 27, 1, 0, 0, 0, 164, 165, 5, 43, 0, 0, 165, 29, 1, 0, 0, 0, 166, 167, 5, 45, 0, 0, 167, 31, 1, 0, 0, 0, 168, 169, 5, 42, 0, 0, 169, 33, 1, 0, 0, 0, 170, 171, 5, 47, 0, 0, 171, 35, 1, 0, 0, 0, 172, 173, 5, 37, 0, 0, 173, 37, 1, 0, 0, 0, 174, 175, 5, 62, 0, 0, 175, 39, 1, 0, 0, 0, 176, 177, 5, 62, 0, 0, 177, 178, 5, 61, 0, 0, 178, 41, 1, 0, 0, 0, 179, 180, 5, 60, 0, 0, 180, 43, 1, 0, 0, 0, 181, 182, 5, 60, 0, 0, 182, 183, 5, 61, 0, 0, 183, 45, 1, 0, 0, 0, 184, 185, 5, 61, 0, 0, 185, 186, 5, 61, 0, 0, 186, 47, 1, 0, 0, 0, 187, 188, 5, 33, 0, 0, 188, 189, 5, 61, 0, 0, 189, 49, 1, 0, 0, 0, 190, 191, 5, 108, 0, 0, 191, 192, 5, 101, 0, 0, 192, 193, 5, 116, 0, 0, 193, 51, 1, 0, 0, 0, 194, 195, 5, 115, 0, 0, 195, 196, 5, 101, 0, 0, 196, 197, 5, 116, 0, 0, 197, 53, 1, 0, 0, 0, 198, 199, 5, 112, 0, 0, 199, 200, 5, 97, 0, 0, 200, 201, 5, 114, 0, 0, 201, 202, 5, 116, 0, 0, 202, 203, 5, 105, 0, 0, 203, 204, 5, 97, 0, 0, 204, 205, 5, 108, 0, 0, 205, 55, 1, 0, 0, 0, 206, 207, 5, 114, 0, 0, 207, 208, 5, 117, 0, 0, 208, 209, 5, 108, 0, 0, 209, 210, 5, 101, 0, 0, 210, 57, 1, 0, 0, 0, 211, 212, 5, 119, 0, 0, 212, 213, 5, 104, 0, 0, 213, 214, 5, 101, 0, 0, 214, 215, 5, 110, 0, 0, 215, 59, 1, 0, 0, 0, 216, 217, 5, 116, 0, 0, 217, 218, 5, 104, 0, 0, 218, 219, 5, 101, 0, 0, 219, 220, 5, 110, 0, 0, 220, 61, 1, 0, 0, 0, 221, 222, 5, 101, 0, 0, 222, 223, 5, 110, 0, 0, 223, 224, 5, 100, 0, 0, 224, 63, 1, 0, 0, 0, 225, 226, 5, 101, 0, 0, 226, 227, 5, 120, 0, 0, 227, 228, 5, 105, 0, 0, 228, 229, 5, 116, 0, 0, 229, 65, 1, 0, 0, 0, 230, 231, 5, 109, 0, 0, 231, 232, 5, 101, 0, 0, 232, 233, 5, 115, 0, 0, 233, 234, 5, 115, 0, 0, 234, 235, 5, 97, 0, 0, 235, 236, 5, 103, 0, 0, 236, 237, 5, 101, 0, 0, 237, 67, 1, 0, 0, 0, 238, 239, 5, 101, 0, 0, 239, 240, 5, 114, 0, 0, 240, 241, 5, 114, 0, 0, 241, 242, 5, 111, 0, 0, 242, 243, 5, 114, 0, 0, 243, 69, 1, 0, 0, 0, 244, 245, 5, 111, 0, 0, 245, 246, 5, 117, 0, 0, 246, 247, 5, 116, 0, 0, 247, 248, 5, 112, 0, 0, 248, 249, 5, 117, 0, 0, 249, 250, 5, 116, 0, 0, 250, 71, 1, 0, 0, 0, 251, 252, 5, 59, 0, 0, 252, 73, 1, 0, 0, 0, 253, 254, 5, 97, 0, 0, 254, 255, 5, 110, 0, 0, 255, 256, 5, 100, 0, 0, 256, 75, 1, 0, 0, 0, 257, 258, 5, 111, 0, 0, 258, 259, 5, 114, 0, 0, 259, 77, 1, 0, 0, 0, 260, 261, 5, 110, 0, 0, 261, 262, 5, 111, 0, 0, 262, 263, 5, 116, 0, 0, 263, 79, 1, 0, 0, 0, 264, 265, 5, 116, 0, 0, 265, 266, 5, 114, 0, 0, 266, 267, 5, 117, 0, 0, 267, 268, 5, 101, 0, 0, 268, 81, 1, 0, 0, 0, 269, 270, 5, 102, 0, 0, 270, 271, 5, 97, 0, 0, 271, 272, 5, 108, 0, 0, 272, 273, 5, 115, 0, 0, 273, 274, 5, 101, 0, 0, 274, 83, 1, 0, 0, 0, 275, 277, 7, 1, 0, 0, 276, 275, 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 279, 1, 0, 0, 0, 278, 280, 7, 2, 0, 0, 279, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 289, 1, 0, 0, 0, 283, 285, 5, 46, 0, 0, 284, 286, 7, 2, 0, 0, 285, 284, 1, 0, 0, 0, 286, 287, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 290, 1, 0, 0, 0, 289, 283, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 85, 1, 0, 0, 0, 291, 297, 5, 34, 0, 0, 292, 293, 5, 92, 0, 0, 293, 296, 5, 34, 0, 0, 294, 296, 8, 3, 0, 0, 295, 292, 1, 0, 0, 0, 295, 294, 1, 0, 0, 0, 296, 299, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 297, 295, 1, 0, 0, 0, 298, 300, 1, 0, 0, 0, 299, 297, 1, 0, 0, 0, 300, 312, 5, 34, 0, 0, 301, 307, 5, 39, 0, 0, 302, 303, 5, 92, 0, 0, 303, 306, 5, 39, 0, 0, 304, 306, 8, 4, 0, 0, 305, 302, 1, 0, 0, 0, 305, 304, 1, 0, 0, 0, 306, 309, 1, 0, 0, 0, 307, 308, 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 310, 1, 0, 0, 0, 309, 307, 1, 0, 0, 0, 310, 312, 5, 39, 0, 0, 311, 291, 1, 0, 0, 0, 311, 301, 1, 0, 0, 0, 312, 87, 1, 0, 0, 0, 313, 314, 5, 110, 0, 0, 314, 315, 5, 111, 0, 0, 315, 316, 5, 110, 0, 0, 316, 317, 5, 101, 0, 0, 317, 89, 1, 0, 0, 0, 318, 320, 7, 5, 0, 0, 319, 318, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 328, 7, 6, 0, 0, 325, 327, 7, 7, 0, 0, 326, 325, 1, 0, 0, 0, 327, 330, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 91, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 331, 332, 5, 95, 0, 0, 332, 93, 1, 0, 0, 0, 333, 334, 3, 6, 2, 0, 334, 335, 3, 84, 41, 0, 335, 336, 3, 8, 3, 0, 336, 95, 1, 0, 0, 0, 337, 338, 5, 36, 0, 0, 338, 343, 3, 110, 54, 0, 339, 340, 5, 46, 0, 0, 340, 342, 3, 110, 54, 0, 341, 339, 1, 0, 0, 0, 342, 345, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 97, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 346, 347, 5, 96, 0, 0, 347, 348, 6, 48, 2, 0, 348, 349, 1, 0, 0, 0, 349, 350, 6, 48, 3, 0, 350, 99, 1, 0, 0, 0, 351, 353, 7, 8, 0, 0, 352, 351, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0, 356, 357, 6, 49, 0, 0, 357, 101, 1, 0, 0, 0, 358, 359, 7, 0, 0, 0, 359, 360, 1, 0, 0, 0, 360, 361, 6, 50, 0, 0, 361, 103, 1, 0, 0, 0, 362, 363, 5, 96, 0, 0, 363, 364, 6, 51, 4, 0, 364, 365, 1, 0, 0, 0, 365, 366, 6, 51, 5, 0, 366, 367, 6, 51, 1, 0, 367, 105, 1, 0, 0, 0, 368, 369, 5, 123, 0, 0, 369, 370, 1, 0, 0, 0, 370, 371, 6, 52, 6, 0, 371, 107, 1, 0, 0, 0, 372, 373, 8, 9, 0, 0, 373, 109, 1, 0, 0, 0, 374, 376, 7, 5, 0, 0, 375, 374, 1, 0, 0, 0, 376, 379, 1, 0, 0, 0, 377, 375, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 380, 1, 0, 0, 0, 379, 377, 1, 0, 0, 0, 380, 384, 7, 6, 0, 0, 381, 383, 7, 7, 0, 0, 382, 381, 1, 0, 0, 0, 383, 386, 1, 0, 0, 0, 384, 382, 1, 0, 0, 0, 384, 385, 1, 0, 0, 0, 385, 111, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 387, 388, 5, 43, 0, 0, 388, 113, 1, 0, 0, 0, 389, 390, 5, 45, 0, 0, 390, 115, 1, 0, 0, 0, 19, 0, 1, 122, 134, 276, 281, 287, 289, 295, 297, 305, 307, 311, 321, 328, 343, 354, 377, 384, 7, 0, 1, 0, 4, 0, 0, 1, 48, 0, 5, 1, 0, 1, 51, 1, 7, 49, 0, 5, 0, 0] \ No newline at end of file +[4, 0, 53, 388, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 121, 8, 0, 10, 0, 12, 0, 124, 9, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 5, 1, 133, 8, 1, 10, 1, 12, 1, 136, 9, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 4, 41, 277, 8, 41, 11, 41, 12, 41, 278, 1, 41, 1, 41, 4, 41, 283, 8, 41, 11, 41, 12, 41, 284, 3, 41, 287, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 293, 8, 42, 10, 42, 12, 42, 296, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 303, 8, 42, 10, 42, 12, 42, 306, 9, 42, 1, 42, 3, 42, 309, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 5, 44, 317, 8, 44, 10, 44, 12, 44, 320, 9, 44, 1, 44, 1, 44, 5, 44, 324, 8, 44, 10, 44, 12, 44, 327, 9, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 339, 8, 47, 10, 47, 12, 47, 342, 9, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 4, 49, 350, 8, 49, 11, 49, 12, 49, 351, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 5, 54, 373, 8, 54, 10, 54, 12, 54, 376, 9, 54, 1, 54, 1, 54, 5, 54, 380, 8, 54, 10, 54, 12, 54, 383, 9, 54, 1, 55, 1, 55, 1, 56, 1, 56, 3, 122, 294, 304, 0, 57, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8, 18, 9, 20, 10, 22, 11, 24, 12, 26, 13, 28, 14, 30, 15, 32, 16, 34, 17, 36, 18, 38, 19, 40, 20, 42, 21, 44, 22, 46, 23, 48, 24, 50, 25, 52, 26, 54, 27, 56, 28, 58, 29, 60, 30, 62, 31, 64, 32, 66, 33, 68, 34, 70, 35, 72, 36, 74, 37, 76, 38, 78, 39, 80, 40, 82, 41, 84, 42, 86, 43, 88, 44, 90, 45, 92, 46, 94, 47, 96, 48, 98, 49, 100, 50, 102, 51, 104, 0, 106, 52, 108, 53, 110, 0, 112, 0, 114, 0, 2, 0, 1, 9, 3, 0, 10, 10, 13, 13, 8232, 8233, 1, 0, 48, 57, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 39, 39, 1, 0, 95, 95, 2, 0, 65, 90, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 9, 9, 11, 12, 32, 32, 160, 160, 1, 0, 96, 96, 399, 0, 2, 1, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 30, 1, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 34, 1, 0, 0, 0, 0, 36, 1, 0, 0, 0, 0, 38, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 44, 1, 0, 0, 0, 0, 46, 1, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 54, 1, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 58, 1, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 66, 1, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 80, 1, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 86, 1, 0, 0, 0, 0, 88, 1, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 98, 1, 0, 0, 0, 0, 100, 1, 0, 0, 0, 0, 102, 1, 0, 0, 0, 1, 104, 1, 0, 0, 0, 1, 106, 1, 0, 0, 0, 1, 108, 1, 0, 0, 0, 2, 116, 1, 0, 0, 0, 4, 130, 1, 0, 0, 0, 6, 139, 1, 0, 0, 0, 8, 141, 1, 0, 0, 0, 10, 143, 1, 0, 0, 0, 12, 145, 1, 0, 0, 0, 14, 147, 1, 0, 0, 0, 16, 149, 1, 0, 0, 0, 18, 154, 1, 0, 0, 0, 20, 156, 1, 0, 0, 0, 22, 158, 1, 0, 0, 0, 24, 160, 1, 0, 0, 0, 26, 162, 1, 0, 0, 0, 28, 164, 1, 0, 0, 0, 30, 166, 1, 0, 0, 0, 32, 168, 1, 0, 0, 0, 34, 170, 1, 0, 0, 0, 36, 172, 1, 0, 0, 0, 38, 174, 1, 0, 0, 0, 40, 176, 1, 0, 0, 0, 42, 179, 1, 0, 0, 0, 44, 181, 1, 0, 0, 0, 46, 184, 1, 0, 0, 0, 48, 187, 1, 0, 0, 0, 50, 190, 1, 0, 0, 0, 52, 194, 1, 0, 0, 0, 54, 198, 1, 0, 0, 0, 56, 206, 1, 0, 0, 0, 58, 211, 1, 0, 0, 0, 60, 216, 1, 0, 0, 0, 62, 221, 1, 0, 0, 0, 64, 225, 1, 0, 0, 0, 66, 230, 1, 0, 0, 0, 68, 238, 1, 0, 0, 0, 70, 244, 1, 0, 0, 0, 72, 251, 1, 0, 0, 0, 74, 253, 1, 0, 0, 0, 76, 257, 1, 0, 0, 0, 78, 260, 1, 0, 0, 0, 80, 264, 1, 0, 0, 0, 82, 269, 1, 0, 0, 0, 84, 276, 1, 0, 0, 0, 86, 308, 1, 0, 0, 0, 88, 310, 1, 0, 0, 0, 90, 318, 1, 0, 0, 0, 92, 328, 1, 0, 0, 0, 94, 330, 1, 0, 0, 0, 96, 334, 1, 0, 0, 0, 98, 343, 1, 0, 0, 0, 100, 349, 1, 0, 0, 0, 102, 355, 1, 0, 0, 0, 104, 359, 1, 0, 0, 0, 106, 365, 1, 0, 0, 0, 108, 369, 1, 0, 0, 0, 110, 374, 1, 0, 0, 0, 112, 384, 1, 0, 0, 0, 114, 386, 1, 0, 0, 0, 116, 117, 5, 47, 0, 0, 117, 118, 5, 42, 0, 0, 118, 122, 1, 0, 0, 0, 119, 121, 9, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 124, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 122, 120, 1, 0, 0, 0, 123, 125, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 125, 126, 5, 42, 0, 0, 126, 127, 5, 47, 0, 0, 127, 128, 1, 0, 0, 0, 128, 129, 6, 0, 0, 0, 129, 3, 1, 0, 0, 0, 130, 134, 5, 35, 0, 0, 131, 133, 8, 0, 0, 0, 132, 131, 1, 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 137, 1, 0, 0, 0, 136, 134, 1, 0, 0, 0, 137, 138, 6, 1, 0, 0, 138, 5, 1, 0, 0, 0, 139, 140, 5, 91, 0, 0, 140, 7, 1, 0, 0, 0, 141, 142, 5, 93, 0, 0, 142, 9, 1, 0, 0, 0, 143, 144, 5, 40, 0, 0, 144, 11, 1, 0, 0, 0, 145, 146, 5, 41, 0, 0, 146, 13, 1, 0, 0, 0, 147, 148, 5, 123, 0, 0, 148, 15, 1, 0, 0, 0, 149, 150, 4, 7, 0, 0, 150, 151, 5, 125, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 6, 7, 1, 0, 153, 17, 1, 0, 0, 0, 154, 155, 5, 125, 0, 0, 155, 19, 1, 0, 0, 0, 156, 157, 5, 58, 0, 0, 157, 21, 1, 0, 0, 0, 158, 159, 5, 44, 0, 0, 159, 23, 1, 0, 0, 0, 160, 161, 5, 46, 0, 0, 161, 25, 1, 0, 0, 0, 162, 163, 5, 61, 0, 0, 163, 27, 1, 0, 0, 0, 164, 165, 5, 43, 0, 0, 165, 29, 1, 0, 0, 0, 166, 167, 5, 45, 0, 0, 167, 31, 1, 0, 0, 0, 168, 169, 5, 42, 0, 0, 169, 33, 1, 0, 0, 0, 170, 171, 5, 47, 0, 0, 171, 35, 1, 0, 0, 0, 172, 173, 5, 37, 0, 0, 173, 37, 1, 0, 0, 0, 174, 175, 5, 62, 0, 0, 175, 39, 1, 0, 0, 0, 176, 177, 5, 62, 0, 0, 177, 178, 5, 61, 0, 0, 178, 41, 1, 0, 0, 0, 179, 180, 5, 60, 0, 0, 180, 43, 1, 0, 0, 0, 181, 182, 5, 60, 0, 0, 182, 183, 5, 61, 0, 0, 183, 45, 1, 0, 0, 0, 184, 185, 5, 61, 0, 0, 185, 186, 5, 61, 0, 0, 186, 47, 1, 0, 0, 0, 187, 188, 5, 33, 0, 0, 188, 189, 5, 61, 0, 0, 189, 49, 1, 0, 0, 0, 190, 191, 5, 108, 0, 0, 191, 192, 5, 101, 0, 0, 192, 193, 5, 116, 0, 0, 193, 51, 1, 0, 0, 0, 194, 195, 5, 115, 0, 0, 195, 196, 5, 101, 0, 0, 196, 197, 5, 116, 0, 0, 197, 53, 1, 0, 0, 0, 198, 199, 5, 112, 0, 0, 199, 200, 5, 97, 0, 0, 200, 201, 5, 114, 0, 0, 201, 202, 5, 116, 0, 0, 202, 203, 5, 105, 0, 0, 203, 204, 5, 97, 0, 0, 204, 205, 5, 108, 0, 0, 205, 55, 1, 0, 0, 0, 206, 207, 5, 114, 0, 0, 207, 208, 5, 117, 0, 0, 208, 209, 5, 108, 0, 0, 209, 210, 5, 101, 0, 0, 210, 57, 1, 0, 0, 0, 211, 212, 5, 119, 0, 0, 212, 213, 5, 104, 0, 0, 213, 214, 5, 101, 0, 0, 214, 215, 5, 110, 0, 0, 215, 59, 1, 0, 0, 0, 216, 217, 5, 116, 0, 0, 217, 218, 5, 104, 0, 0, 218, 219, 5, 101, 0, 0, 219, 220, 5, 110, 0, 0, 220, 61, 1, 0, 0, 0, 221, 222, 5, 101, 0, 0, 222, 223, 5, 110, 0, 0, 223, 224, 5, 100, 0, 0, 224, 63, 1, 0, 0, 0, 225, 226, 5, 101, 0, 0, 226, 227, 5, 120, 0, 0, 227, 228, 5, 105, 0, 0, 228, 229, 5, 116, 0, 0, 229, 65, 1, 0, 0, 0, 230, 231, 5, 109, 0, 0, 231, 232, 5, 101, 0, 0, 232, 233, 5, 115, 0, 0, 233, 234, 5, 115, 0, 0, 234, 235, 5, 97, 0, 0, 235, 236, 5, 103, 0, 0, 236, 237, 5, 101, 0, 0, 237, 67, 1, 0, 0, 0, 238, 239, 5, 101, 0, 0, 239, 240, 5, 114, 0, 0, 240, 241, 5, 114, 0, 0, 241, 242, 5, 111, 0, 0, 242, 243, 5, 114, 0, 0, 243, 69, 1, 0, 0, 0, 244, 245, 5, 111, 0, 0, 245, 246, 5, 117, 0, 0, 246, 247, 5, 116, 0, 0, 247, 248, 5, 112, 0, 0, 248, 249, 5, 117, 0, 0, 249, 250, 5, 116, 0, 0, 250, 71, 1, 0, 0, 0, 251, 252, 5, 59, 0, 0, 252, 73, 1, 0, 0, 0, 253, 254, 5, 97, 0, 0, 254, 255, 5, 110, 0, 0, 255, 256, 5, 100, 0, 0, 256, 75, 1, 0, 0, 0, 257, 258, 5, 111, 0, 0, 258, 259, 5, 114, 0, 0, 259, 77, 1, 0, 0, 0, 260, 261, 5, 110, 0, 0, 261, 262, 5, 111, 0, 0, 262, 263, 5, 116, 0, 0, 263, 79, 1, 0, 0, 0, 264, 265, 5, 116, 0, 0, 265, 266, 5, 114, 0, 0, 266, 267, 5, 117, 0, 0, 267, 268, 5, 101, 0, 0, 268, 81, 1, 0, 0, 0, 269, 270, 5, 102, 0, 0, 270, 271, 5, 97, 0, 0, 271, 272, 5, 108, 0, 0, 272, 273, 5, 115, 0, 0, 273, 274, 5, 101, 0, 0, 274, 83, 1, 0, 0, 0, 275, 277, 7, 1, 0, 0, 276, 275, 1, 0, 0, 0, 277, 278, 1, 0, 0, 0, 278, 276, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 286, 1, 0, 0, 0, 280, 282, 5, 46, 0, 0, 281, 283, 7, 1, 0, 0, 282, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 287, 1, 0, 0, 0, 286, 280, 1, 0, 0, 0, 286, 287, 1, 0, 0, 0, 287, 85, 1, 0, 0, 0, 288, 294, 5, 34, 0, 0, 289, 290, 5, 92, 0, 0, 290, 293, 5, 34, 0, 0, 291, 293, 8, 2, 0, 0, 292, 289, 1, 0, 0, 0, 292, 291, 1, 0, 0, 0, 293, 296, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 295, 297, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 297, 309, 5, 34, 0, 0, 298, 304, 5, 39, 0, 0, 299, 300, 5, 92, 0, 0, 300, 303, 5, 39, 0, 0, 301, 303, 8, 3, 0, 0, 302, 299, 1, 0, 0, 0, 302, 301, 1, 0, 0, 0, 303, 306, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 305, 307, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 307, 309, 5, 39, 0, 0, 308, 288, 1, 0, 0, 0, 308, 298, 1, 0, 0, 0, 309, 87, 1, 0, 0, 0, 310, 311, 5, 110, 0, 0, 311, 312, 5, 111, 0, 0, 312, 313, 5, 110, 0, 0, 313, 314, 5, 101, 0, 0, 314, 89, 1, 0, 0, 0, 315, 317, 7, 4, 0, 0, 316, 315, 1, 0, 0, 0, 317, 320, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 318, 319, 1, 0, 0, 0, 319, 321, 1, 0, 0, 0, 320, 318, 1, 0, 0, 0, 321, 325, 7, 5, 0, 0, 322, 324, 7, 6, 0, 0, 323, 322, 1, 0, 0, 0, 324, 327, 1, 0, 0, 0, 325, 323, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 91, 1, 0, 0, 0, 327, 325, 1, 0, 0, 0, 328, 329, 5, 95, 0, 0, 329, 93, 1, 0, 0, 0, 330, 331, 3, 6, 2, 0, 331, 332, 3, 84, 41, 0, 332, 333, 3, 8, 3, 0, 333, 95, 1, 0, 0, 0, 334, 335, 5, 36, 0, 0, 335, 340, 3, 110, 54, 0, 336, 337, 5, 46, 0, 0, 337, 339, 3, 110, 54, 0, 338, 336, 1, 0, 0, 0, 339, 342, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 97, 1, 0, 0, 0, 342, 340, 1, 0, 0, 0, 343, 344, 5, 96, 0, 0, 344, 345, 6, 48, 2, 0, 345, 346, 1, 0, 0, 0, 346, 347, 6, 48, 3, 0, 347, 99, 1, 0, 0, 0, 348, 350, 7, 7, 0, 0, 349, 348, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 354, 6, 49, 0, 0, 354, 101, 1, 0, 0, 0, 355, 356, 7, 0, 0, 0, 356, 357, 1, 0, 0, 0, 357, 358, 6, 50, 0, 0, 358, 103, 1, 0, 0, 0, 359, 360, 5, 96, 0, 0, 360, 361, 6, 51, 4, 0, 361, 362, 1, 0, 0, 0, 362, 363, 6, 51, 5, 0, 363, 364, 6, 51, 1, 0, 364, 105, 1, 0, 0, 0, 365, 366, 5, 123, 0, 0, 366, 367, 1, 0, 0, 0, 367, 368, 6, 52, 6, 0, 368, 107, 1, 0, 0, 0, 369, 370, 8, 8, 0, 0, 370, 109, 1, 0, 0, 0, 371, 373, 7, 4, 0, 0, 372, 371, 1, 0, 0, 0, 373, 376, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 377, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 377, 381, 7, 5, 0, 0, 378, 380, 7, 6, 0, 0, 379, 378, 1, 0, 0, 0, 380, 383, 1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 381, 382, 1, 0, 0, 0, 382, 111, 1, 0, 0, 0, 383, 381, 1, 0, 0, 0, 384, 385, 5, 43, 0, 0, 385, 113, 1, 0, 0, 0, 386, 387, 5, 45, 0, 0, 387, 115, 1, 0, 0, 0, 18, 0, 1, 122, 134, 278, 284, 286, 292, 294, 302, 304, 308, 318, 325, 340, 351, 374, 381, 7, 0, 1, 0, 4, 0, 0, 1, 48, 0, 5, 1, 0, 1, 51, 1, 7, 49, 0, 5, 0, 0] \ No newline at end of file diff --git a/src/Simpleflow/Parser/SimpleflowParser.cs b/src/Simpleflow/Parser/SimpleflowParser.cs index e5b3e70..efc2213 100644 --- a/src/Simpleflow/Parser/SimpleflowParser.cs +++ b/src/Simpleflow/Parser/SimpleflowParser.cs @@ -995,6 +995,29 @@ public virtual void CopyFrom(ExpressionContext context) { base.CopyFrom(context); } } + internal partial class UniaryMinusExpressionContext : ExpressionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MinusOp() { return GetToken(SimpleflowParser.MinusOp, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { + return GetRuleContext(0); + } + public UniaryMinusExpressionContext(ExpressionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; + if (typedListener != null) typedListener.EnterUniaryMinusExpression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; + if (typedListener != null) typedListener.ExitUniaryMinusExpression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override TResult Accept(IParseTreeVisitor visitor) { + ISimpleflowParserVisitor typedVisitor = visitor as ISimpleflowParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitUniaryMinusExpression(this); + else return visitor.VisitChildren(this); + } + } internal partial class ParenthesizedExpressionContext : ExpressionContext { [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OpenParen() { return GetToken(SimpleflowParser.OpenParen, 0); } [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { @@ -1077,6 +1100,51 @@ public override TResult Accept(IParseTreeVisitor visitor) { else return visitor.VisitChildren(this); } } + internal partial class ArrayLiteralExpressionContext : ExpressionContext { + [System.Diagnostics.DebuggerNonUserCode] public ArrayLiteralContext arrayLiteral() { + return GetRuleContext(0); + } + public ArrayLiteralExpressionContext(ExpressionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; + if (typedListener != null) typedListener.EnterArrayLiteralExpression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; + if (typedListener != null) typedListener.ExitArrayLiteralExpression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override TResult Accept(IParseTreeVisitor visitor) { + ISimpleflowParserVisitor typedVisitor = visitor as ISimpleflowParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitArrayLiteralExpression(this); + else return visitor.VisitChildren(this); + } + } + internal partial class NotExpressionContext : ExpressionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Not() { return GetToken(SimpleflowParser.Not, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { + return GetRuleContext(0); + } + public NotExpressionContext(ExpressionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; + if (typedListener != null) typedListener.EnterNotExpression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; + if (typedListener != null) typedListener.ExitNotExpression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override TResult Accept(IParseTreeVisitor visitor) { + ISimpleflowParserVisitor typedVisitor = visitor as ISimpleflowParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitNotExpression(this); + else return visitor.VisitChildren(this); + } + } internal partial class LogicalExpressionContext : ExpressionContext { [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() { return GetRuleContexts(); @@ -1148,25 +1216,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { else return visitor.VisitChildren(this); } } - internal partial class ArrayLiteralExpressionContext : ExpressionContext { - [System.Diagnostics.DebuggerNonUserCode] public ArrayLiteralContext arrayLiteral() { - return GetRuleContext(0); + internal partial class UniaryPlusExpressionContext : ExpressionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PlusOp() { return GetToken(SimpleflowParser.PlusOp, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { + return GetRuleContext(0); } - public ArrayLiteralExpressionContext(ExpressionContext context) { CopyFrom(context); } + public UniaryPlusExpressionContext(ExpressionContext context) { CopyFrom(context); } [System.Diagnostics.DebuggerNonUserCode] public override void EnterRule(IParseTreeListener listener) { ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; - if (typedListener != null) typedListener.EnterArrayLiteralExpression(this); + if (typedListener != null) typedListener.EnterUniaryPlusExpression(this); } [System.Diagnostics.DebuggerNonUserCode] public override void ExitRule(IParseTreeListener listener) { ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; - if (typedListener != null) typedListener.ExitArrayLiteralExpression(this); + if (typedListener != null) typedListener.ExitUniaryPlusExpression(this); } [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { ISimpleflowParserVisitor typedVisitor = visitor as ISimpleflowParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitArrayLiteralExpression(this); + if (typedVisitor != null) return typedVisitor.VisitUniaryPlusExpression(this); else return visitor.VisitChildren(this); } } @@ -1192,29 +1261,6 @@ public override TResult Accept(IParseTreeVisitor visitor) { else return visitor.VisitChildren(this); } } - internal partial class NotExpressionContext : ExpressionContext { - [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Not() { return GetToken(SimpleflowParser.Not, 0); } - [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { - return GetRuleContext(0); - } - public NotExpressionContext(ExpressionContext context) { CopyFrom(context); } - [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; - if (typedListener != null) typedListener.EnterNotExpression(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - ISimpleflowParserListener typedListener = listener as ISimpleflowParserListener; - if (typedListener != null) typedListener.ExitNotExpression(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override TResult Accept(IParseTreeVisitor visitor) { - ISimpleflowParserVisitor typedVisitor = visitor as ISimpleflowParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitNotExpression(this); - else return visitor.VisitChildren(this); - } - } internal partial class JsonObjLiteralExpressionContext : ExpressionContext { [System.Diagnostics.DebuggerNonUserCode] public JsonObjLiteralContext jsonObjLiteral() { return GetRuleContext(0); @@ -1283,19 +1329,41 @@ private ExpressionContext expression(int _p) { int _alt; EnterOuterAlt(_localctx, 1); { - State = 157; + State = 161; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { - case Not: + case PlusOp: { - _localctx = new NotExpressionContext(_localctx); + _localctx = new UniaryPlusExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; State = 146; - Match(Not); + Match(PlusOp); State = 147; - expression(7); + expression(13); + } + break; + case MinusOp: + { + _localctx = new UniaryMinusExpressionContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 148; + Match(MinusOp); + State = 149; + expression(12); + } + break; + case Not: + { + _localctx = new NotExpressionContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 150; + Match(Not); + State = 151; + expression(11); } break; case Identifier: @@ -1303,7 +1371,7 @@ private ExpressionContext expression(int _p) { _localctx = new ObjectIdentiferExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; - State = 148; + State = 152; objectIdentifier(); } break; @@ -1317,7 +1385,7 @@ private ExpressionContext expression(int _p) { _localctx = new SimpleLiteralExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; - State = 149; + State = 153; simpleLiteral(); } break; @@ -1326,7 +1394,7 @@ private ExpressionContext expression(int _p) { _localctx = new ArrayLiteralExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; - State = 150; + State = 154; arrayLiteral(); } break; @@ -1335,7 +1403,7 @@ private ExpressionContext expression(int _p) { _localctx = new JsonObjLiteralExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; - State = 151; + State = 155; jsonObjLiteral(); } break; @@ -1344,7 +1412,7 @@ private ExpressionContext expression(int _p) { _localctx = new FunctionExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; - State = 152; + State = 156; function(); } break; @@ -1353,11 +1421,11 @@ private ExpressionContext expression(int _p) { _localctx = new ParenthesizedExpressionContext(_localctx); Context = _localctx; _prevctx = _localctx; - State = 153; + State = 157; Match(OpenParen); - State = 154; + State = 158; expression(0); - State = 155; + State = 159; Match(CloseParen); } break; @@ -1365,7 +1433,7 @@ private ExpressionContext expression(int _p) { throw new NoViableAltException(this); } Context.Stop = TokenStream.LT(-1); - State = 173; + State = 177; ErrorHandler.Sync(this); _alt = Interpreter.AdaptivePredict(TokenStream,13,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { @@ -1374,16 +1442,16 @@ private ExpressionContext expression(int _p) { TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 171; + State = 175; ErrorHandler.Sync(this); switch ( Interpreter.AdaptivePredict(TokenStream,12,Context) ) { case 1: { _localctx = new MultiplicativeExpressionContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 159; - if (!(Precpred(Context, 11))) throw new FailedPredicateException(this, "Precpred(Context, 11)"); - State = 160; + State = 163; + if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)"); + State = 164; _la = TokenStream.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TimesOp) | (1L << DivOp) | (1L << ModuloOp))) != 0)) ) { ErrorHandler.RecoverInline(this); @@ -1392,17 +1460,17 @@ private ExpressionContext expression(int _p) { ErrorHandler.ReportMatch(this); Consume(); } - State = 161; - expression(12); + State = 165; + expression(11); } break; case 2: { _localctx = new AdditiveExpressionContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 162; - if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)"); - State = 163; + State = 166; + if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)"); + State = 167; _la = TokenStream.LA(1); if ( !(_la==PlusOp || _la==MinusOp) ) { ErrorHandler.RecoverInline(this); @@ -1411,17 +1479,17 @@ private ExpressionContext expression(int _p) { ErrorHandler.ReportMatch(this); Consume(); } - State = 164; - expression(11); + State = 168; + expression(10); } break; case 3: { _localctx = new RelationalExpressionContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 165; - if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)"); - State = 166; + State = 169; + if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)"); + State = 170; _la = TokenStream.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << GreaterThan) | (1L << GreaterThanEqual) | (1L << LessThan) | (1L << LessThanEqual) | (1L << Equal) | (1L << NotEqual))) != 0)) ) { ErrorHandler.RecoverInline(this); @@ -1430,17 +1498,17 @@ private ExpressionContext expression(int _p) { ErrorHandler.ReportMatch(this); Consume(); } - State = 167; - expression(10); + State = 171; + expression(9); } break; case 4: { _localctx = new LogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 168; - if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)"); - State = 169; + State = 172; + if (!(Precpred(Context, 7))) throw new FailedPredicateException(this, "Precpred(Context, 7)"); + State = 173; _la = TokenStream.LA(1); if ( !(_la==And || _la==Or) ) { ErrorHandler.RecoverInline(this); @@ -1449,14 +1517,14 @@ private ExpressionContext expression(int _p) { ErrorHandler.ReportMatch(this); Consume(); } - State = 170; - expression(9); + State = 174; + expression(8); } break; } } } - State = 175; + State = 179; ErrorHandler.Sync(this); _alt = Interpreter.AdaptivePredict(TokenStream,13,Context); } @@ -1517,13 +1585,13 @@ public SimpleLiteralContext simpleLiteral() { SimpleLiteralContext _localctx = new SimpleLiteralContext(Context, State); EnterRule(_localctx, 24, RULE_simpleLiteral); try { - State = 181; + State = 185; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case None: EnterOuterAlt(_localctx, 1); { - State = 176; + State = 180; noneLiteral(); } break; @@ -1531,28 +1599,28 @@ public SimpleLiteralContext simpleLiteral() { case False: EnterOuterAlt(_localctx, 2); { - State = 177; + State = 181; boolLeteral(); } break; case Number: EnterOuterAlt(_localctx, 3); { - State = 178; + State = 182; numberLiteral(); } break; case String: EnterOuterAlt(_localctx, 4); { - State = 179; + State = 183; stringLiteral(); } break; case BackTick: EnterOuterAlt(_localctx, 5); { - State = 180; + State = 184; templateStringLiteral(); } break; @@ -1613,23 +1681,23 @@ public TemplateStringLiteralContext templateStringLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 183; - Match(BackTick); State = 187; + Match(BackTick); + State = 191; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==TemplateStringStartExpression || _la==TemplateStringAtom) { { { - State = 184; + State = 188; templateStringAtom(); } } - State = 189; + State = 193; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 190; + State = 194; Match(BackTick); } } @@ -1679,24 +1747,24 @@ public TemplateStringAtomContext templateStringAtom() { TemplateStringAtomContext _localctx = new TemplateStringAtomContext(Context, State); EnterRule(_localctx, 28, RULE_templateStringAtom); try { - State = 197; + State = 201; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case TemplateStringAtom: EnterOuterAlt(_localctx, 1); { - State = 192; + State = 196; Match(TemplateStringAtom); } break; case TemplateStringStartExpression: EnterOuterAlt(_localctx, 2); { - State = 193; + State = 197; Match(TemplateStringStartExpression); - State = 194; + State = 198; expression(0); - State = 195; + State = 199; Match(TemplateCloseBrace); } break; @@ -1750,9 +1818,9 @@ public FunctionContext function() { try { EnterOuterAlt(_localctx, 1); { - State = 199; + State = 203; Match(FunctionName); - State = 200; + State = 204; functionArguments(); } } @@ -1811,35 +1879,35 @@ public FunctionArgumentsContext functionArguments() { try { EnterOuterAlt(_localctx, 1); { - State = 202; + State = 206; Match(OpenParen); - State = 211; + State = 215; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==Identifier) { { - State = 203; + State = 207; functionArgument(); - State = 208; + State = 212; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==Comma) { { { - State = 204; + State = 208; Match(Comma); - State = 205; + State = 209; functionArgument(); } } - State = 210; + State = 214; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } } } - State = 213; + State = 217; Match(CloseParen); } } @@ -1890,11 +1958,11 @@ public FunctionArgumentContext functionArgument() { try { EnterOuterAlt(_localctx, 1); { - State = 215; + State = 219; Match(Identifier); - State = 216; + State = 220; Match(Colon); - State = 217; + State = 221; expression(0); } } @@ -1951,23 +2019,23 @@ public ObjectIdentifierContext objectIdentifier() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 219; + State = 223; identifierIndex(); - State = 224; + State = 228; ErrorHandler.Sync(this); _alt = Interpreter.AdaptivePredict(TokenStream,19,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 220; + State = 224; Match(Dot); - State = 221; + State = 225; identifierIndex(); } } } - State = 226; + State = 230; ErrorHandler.Sync(this); _alt = Interpreter.AdaptivePredict(TokenStream,19,Context); } @@ -2019,14 +2087,14 @@ public IdentifierIndexContext identifierIndex() { try { EnterOuterAlt(_localctx, 1); { - State = 227; + State = 231; Match(Identifier); - State = 229; + State = 233; ErrorHandler.Sync(this); switch ( Interpreter.AdaptivePredict(TokenStream,20,Context) ) { case 1: { - State = 228; + State = 232; index(); } break; @@ -2080,11 +2148,11 @@ public IndexContext index() { try { EnterOuterAlt(_localctx, 1); { - State = 231; + State = 235; Match(OpenBracket); - State = 232; + State = 236; expression(0); - State = 233; + State = 237; Match(CloseBracket); } } @@ -2131,7 +2199,7 @@ public StringLiteralContext stringLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 235; + State = 239; Match(String); } } @@ -2178,7 +2246,7 @@ public NumberLiteralContext numberLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 237; + State = 241; Match(Number); } } @@ -2227,7 +2295,7 @@ public BoolLeteralContext boolLeteral() { try { EnterOuterAlt(_localctx, 1); { - State = 239; + State = 243; _la = TokenStream.LA(1); if ( !(_la==True || _la==False) ) { ErrorHandler.RecoverInline(this); @@ -2281,7 +2349,7 @@ public NoneLiteralContext noneLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 241; + State = 245; Match(None); } } @@ -2338,42 +2406,42 @@ public ArrayLiteralContext arrayLiteral() { EnterRule(_localctx, 50, RULE_arrayLiteral); int _la; try { - State = 256; + State = 260; ErrorHandler.Sync(this); switch ( Interpreter.AdaptivePredict(TokenStream,22,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 243; + State = 247; Match(OpenBracket); - State = 244; + State = 248; expression(0); - State = 249; + State = 253; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==Comma) { { { - State = 245; + State = 249; Match(Comma); - State = 246; + State = 250; expression(0); } } - State = 251; + State = 255; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 252; + State = 256; Match(CloseBracket); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 254; + State = 258; Match(OpenBracket); - State = 255; + State = 259; Match(CloseBracket); } break; @@ -2432,42 +2500,42 @@ public JsonObjLiteralContext jsonObjLiteral() { EnterRule(_localctx, 52, RULE_jsonObjLiteral); int _la; try { - State = 271; + State = 275; ErrorHandler.Sync(this); switch ( Interpreter.AdaptivePredict(TokenStream,24,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 258; + State = 262; Match(OpenBrace); - State = 259; + State = 263; pair(); - State = 264; + State = 268; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==Comma) { { { - State = 260; + State = 264; Match(Comma); - State = 261; + State = 265; pair(); } } - State = 266; + State = 270; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } - State = 267; + State = 271; Match(CloseBrace); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 269; + State = 273; Match(OpenBrace); - State = 270; + State = 274; Match(CloseBrace); } break; @@ -2520,11 +2588,11 @@ public PairContext pair() { try { EnterOuterAlt(_localctx, 1); { - State = 273; + State = 277; Match(Identifier); - State = 274; + State = 278; Match(Colon); - State = 275; + State = 279; expression(0); } } @@ -2569,20 +2637,20 @@ public EosContext eos() { EosContext _localctx = new EosContext(Context, State); EnterRule(_localctx, 56, RULE_eos); try { - State = 279; + State = 283; ErrorHandler.Sync(this); switch ( Interpreter.AdaptivePredict(TokenStream,25,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 277; + State = 281; Match(Eof); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 278; + State = 282; if (!(this.LineTerminatorAhead())) throw new FailedPredicateException(this, "this.LineTerminatorAhead()"); } break; @@ -2608,10 +2676,10 @@ public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex } private bool expression_sempred(ExpressionContext _localctx, int predIndex) { switch (predIndex) { - case 0: return Precpred(Context, 11); - case 1: return Precpred(Context, 10); - case 2: return Precpred(Context, 9); - case 3: return Precpred(Context, 8); + case 0: return Precpred(Context, 10); + case 1: return Precpred(Context, 9); + case 2: return Precpred(Context, 8); + case 3: return Precpred(Context, 7); } return true; } @@ -2623,7 +2691,7 @@ private bool eos_sempred(EosContext _localctx, int predIndex) { } private static int[] _serializedATN = { - 4,1,53,282,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7, + 4,1,53,286,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7, 7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14, 2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21, 2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28, @@ -2633,86 +2701,88 @@ private bool eos_sempred(EosContext _localctx, int predIndex) { 8,3,1,4,1,4,1,4,1,4,1,5,3,5,110,8,5,1,5,1,5,1,5,3,5,115,8,5,1,5,3,5,118, 8,5,1,5,1,5,3,5,122,8,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1, 7,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11, - 1,11,1,11,1,11,1,11,1,11,1,11,1,11,3,11,158,8,11,1,11,1,11,1,11,1,11,1, - 11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,5,11,172,8,11,10,11,12,11,175,9, - 11,1,12,1,12,1,12,1,12,1,12,3,12,182,8,12,1,13,1,13,5,13,186,8,13,10,13, - 12,13,189,9,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,3,14,198,8,14,1,15,1, - 15,1,15,1,16,1,16,1,16,1,16,5,16,207,8,16,10,16,12,16,210,9,16,3,16,212, - 8,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18,1,18,1,18,5,18,223,8,18,10,18, - 12,18,226,9,18,1,19,1,19,3,19,230,8,19,1,20,1,20,1,20,1,20,1,21,1,21,1, - 22,1,22,1,23,1,23,1,24,1,24,1,25,1,25,1,25,1,25,5,25,248,8,25,10,25,12, - 25,251,9,25,1,25,1,25,1,25,1,25,3,25,257,8,25,1,26,1,26,1,26,1,26,5,26, - 263,8,26,10,26,12,26,266,9,26,1,26,1,26,1,26,1,26,3,26,272,8,26,1,27,1, - 27,1,27,1,27,1,28,1,28,3,28,280,8,28,1,28,0,1,22,29,0,2,4,6,8,10,12,14, - 16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,0,6,1,0, - 45,46,1,0,16,18,1,0,14,15,1,0,19,24,1,0,37,38,1,0,40,41,292,0,61,1,0,0, - 0,2,73,1,0,0,0,4,83,1,0,0,0,6,102,1,0,0,0,8,104,1,0,0,0,10,109,1,0,0,0, - 12,127,1,0,0,0,14,131,1,0,0,0,16,135,1,0,0,0,18,139,1,0,0,0,20,142,1,0, - 0,0,22,157,1,0,0,0,24,181,1,0,0,0,26,183,1,0,0,0,28,197,1,0,0,0,30,199, - 1,0,0,0,32,202,1,0,0,0,34,215,1,0,0,0,36,219,1,0,0,0,38,227,1,0,0,0,40, - 231,1,0,0,0,42,235,1,0,0,0,44,237,1,0,0,0,46,239,1,0,0,0,48,241,1,0,0, - 0,50,256,1,0,0,0,52,271,1,0,0,0,54,273,1,0,0,0,56,279,1,0,0,0,58,60,3, - 2,1,0,59,58,1,0,0,0,60,63,1,0,0,0,61,59,1,0,0,0,61,62,1,0,0,0,62,68,1, - 0,0,0,63,61,1,0,0,0,64,67,3,4,2,0,65,67,3,6,3,0,66,64,1,0,0,0,66,65,1, - 0,0,0,67,70,1,0,0,0,68,66,1,0,0,0,68,69,1,0,0,0,69,71,1,0,0,0,70,68,1, - 0,0,0,71,72,5,0,0,1,72,1,1,0,0,0,73,74,5,25,0,0,74,77,7,0,0,0,75,76,5, - 11,0,0,76,78,5,45,0,0,77,75,1,0,0,0,77,78,1,0,0,0,78,79,1,0,0,0,79,80, - 5,13,0,0,80,81,3,22,11,0,81,82,3,56,28,0,82,3,1,0,0,0,83,84,5,28,0,0,84, - 85,5,29,0,0,85,86,3,22,11,0,86,87,5,30,0,0,87,89,3,56,28,0,88,90,3,6,3, - 0,89,88,1,0,0,0,90,91,1,0,0,0,91,89,1,0,0,0,91,92,1,0,0,0,92,94,1,0,0, - 0,93,95,3,8,4,0,94,93,1,0,0,0,94,95,1,0,0,0,95,5,1,0,0,0,96,103,3,12,6, - 0,97,103,3,14,7,0,98,103,3,16,8,0,99,103,3,10,5,0,100,103,3,18,9,0,101, - 103,3,20,10,0,102,96,1,0,0,0,102,97,1,0,0,0,102,98,1,0,0,0,102,99,1,0, - 0,0,102,100,1,0,0,0,102,101,1,0,0,0,103,7,1,0,0,0,104,105,5,31,0,0,105, - 106,5,28,0,0,106,107,3,56,28,0,107,9,1,0,0,0,108,110,5,27,0,0,109,108, - 1,0,0,0,109,110,1,0,0,0,110,111,1,0,0,0,111,117,5,26,0,0,112,114,5,45, - 0,0,113,115,3,40,20,0,114,113,1,0,0,0,114,115,1,0,0,0,115,118,1,0,0,0, - 116,118,5,46,0,0,117,112,1,0,0,0,117,116,1,0,0,0,118,121,1,0,0,0,119,120, - 5,11,0,0,120,122,5,45,0,0,121,119,1,0,0,0,121,122,1,0,0,0,122,123,1,0, - 0,0,123,124,5,13,0,0,124,125,3,22,11,0,125,126,3,56,28,0,126,11,1,0,0, - 0,127,128,5,33,0,0,128,129,3,22,11,0,129,130,3,56,28,0,130,13,1,0,0,0, - 131,132,5,34,0,0,132,133,3,22,11,0,133,134,3,56,28,0,134,15,1,0,0,0,135, - 136,5,35,0,0,136,137,3,36,18,0,137,138,3,56,28,0,138,17,1,0,0,0,139,140, - 3,30,15,0,140,141,3,56,28,0,141,19,1,0,0,0,142,143,5,32,0,0,143,144,3, - 56,28,0,144,21,1,0,0,0,145,146,6,11,-1,0,146,147,5,39,0,0,147,158,3,22, - 11,7,148,158,3,36,18,0,149,158,3,24,12,0,150,158,3,50,25,0,151,158,3,52, - 26,0,152,158,3,30,15,0,153,154,5,5,0,0,154,155,3,22,11,0,155,156,5,6,0, - 0,156,158,1,0,0,0,157,145,1,0,0,0,157,148,1,0,0,0,157,149,1,0,0,0,157, - 150,1,0,0,0,157,151,1,0,0,0,157,152,1,0,0,0,157,153,1,0,0,0,158,173,1, - 0,0,0,159,160,10,11,0,0,160,161,7,1,0,0,161,172,3,22,11,12,162,163,10, - 10,0,0,163,164,7,2,0,0,164,172,3,22,11,11,165,166,10,9,0,0,166,167,7,3, - 0,0,167,172,3,22,11,10,168,169,10,8,0,0,169,170,7,4,0,0,170,172,3,22,11, - 9,171,159,1,0,0,0,171,162,1,0,0,0,171,165,1,0,0,0,171,168,1,0,0,0,172, - 175,1,0,0,0,173,171,1,0,0,0,173,174,1,0,0,0,174,23,1,0,0,0,175,173,1,0, - 0,0,176,182,3,48,24,0,177,182,3,46,23,0,178,182,3,44,22,0,179,182,3,42, - 21,0,180,182,3,26,13,0,181,176,1,0,0,0,181,177,1,0,0,0,181,178,1,0,0,0, - 181,179,1,0,0,0,181,180,1,0,0,0,182,25,1,0,0,0,183,187,5,49,0,0,184,186, - 3,28,14,0,185,184,1,0,0,0,186,189,1,0,0,0,187,185,1,0,0,0,187,188,1,0, - 0,0,188,190,1,0,0,0,189,187,1,0,0,0,190,191,5,49,0,0,191,27,1,0,0,0,192, - 198,5,53,0,0,193,194,5,52,0,0,194,195,3,22,11,0,195,196,5,8,0,0,196,198, - 1,0,0,0,197,192,1,0,0,0,197,193,1,0,0,0,198,29,1,0,0,0,199,200,5,48,0, - 0,200,201,3,32,16,0,201,31,1,0,0,0,202,211,5,5,0,0,203,208,3,34,17,0,204, - 205,5,11,0,0,205,207,3,34,17,0,206,204,1,0,0,0,207,210,1,0,0,0,208,206, - 1,0,0,0,208,209,1,0,0,0,209,212,1,0,0,0,210,208,1,0,0,0,211,203,1,0,0, - 0,211,212,1,0,0,0,212,213,1,0,0,0,213,214,5,6,0,0,214,33,1,0,0,0,215,216, - 5,45,0,0,216,217,5,10,0,0,217,218,3,22,11,0,218,35,1,0,0,0,219,224,3,38, - 19,0,220,221,5,12,0,0,221,223,3,38,19,0,222,220,1,0,0,0,223,226,1,0,0, - 0,224,222,1,0,0,0,224,225,1,0,0,0,225,37,1,0,0,0,226,224,1,0,0,0,227,229, - 5,45,0,0,228,230,3,40,20,0,229,228,1,0,0,0,229,230,1,0,0,0,230,39,1,0, - 0,0,231,232,5,3,0,0,232,233,3,22,11,0,233,234,5,4,0,0,234,41,1,0,0,0,235, - 236,5,43,0,0,236,43,1,0,0,0,237,238,5,42,0,0,238,45,1,0,0,0,239,240,7, - 5,0,0,240,47,1,0,0,0,241,242,5,44,0,0,242,49,1,0,0,0,243,244,5,3,0,0,244, - 249,3,22,11,0,245,246,5,11,0,0,246,248,3,22,11,0,247,245,1,0,0,0,248,251, - 1,0,0,0,249,247,1,0,0,0,249,250,1,0,0,0,250,252,1,0,0,0,251,249,1,0,0, - 0,252,253,5,4,0,0,253,257,1,0,0,0,254,255,5,3,0,0,255,257,5,4,0,0,256, - 243,1,0,0,0,256,254,1,0,0,0,257,51,1,0,0,0,258,259,5,7,0,0,259,264,3,54, - 27,0,260,261,5,11,0,0,261,263,3,54,27,0,262,260,1,0,0,0,263,266,1,0,0, - 0,264,262,1,0,0,0,264,265,1,0,0,0,265,267,1,0,0,0,266,264,1,0,0,0,267, - 268,5,9,0,0,268,272,1,0,0,0,269,270,5,7,0,0,270,272,5,9,0,0,271,258,1, - 0,0,0,271,269,1,0,0,0,272,53,1,0,0,0,273,274,5,45,0,0,274,275,5,10,0,0, - 275,276,3,22,11,0,276,55,1,0,0,0,277,280,5,0,0,1,278,280,4,28,4,0,279, - 277,1,0,0,0,279,278,1,0,0,0,280,57,1,0,0,0,26,61,66,68,77,91,94,102,109, - 114,117,121,157,171,173,181,187,197,208,211,224,229,249,256,264,271,279 + 1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,3,11,162,8,11,1, + 11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,5,11,176,8,11, + 10,11,12,11,179,9,11,1,12,1,12,1,12,1,12,1,12,3,12,186,8,12,1,13,1,13, + 5,13,190,8,13,10,13,12,13,193,9,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14, + 3,14,202,8,14,1,15,1,15,1,15,1,16,1,16,1,16,1,16,5,16,211,8,16,10,16,12, + 16,214,9,16,3,16,216,8,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18,1,18,1,18, + 5,18,227,8,18,10,18,12,18,230,9,18,1,19,1,19,3,19,234,8,19,1,20,1,20,1, + 20,1,20,1,21,1,21,1,22,1,22,1,23,1,23,1,24,1,24,1,25,1,25,1,25,1,25,5, + 25,252,8,25,10,25,12,25,255,9,25,1,25,1,25,1,25,1,25,3,25,261,8,25,1,26, + 1,26,1,26,1,26,5,26,267,8,26,10,26,12,26,270,9,26,1,26,1,26,1,26,1,26, + 3,26,276,8,26,1,27,1,27,1,27,1,27,1,28,1,28,3,28,284,8,28,1,28,0,1,22, + 29,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46, + 48,50,52,54,56,0,6,1,0,45,46,1,0,16,18,1,0,14,15,1,0,19,24,1,0,37,38,1, + 0,40,41,298,0,61,1,0,0,0,2,73,1,0,0,0,4,83,1,0,0,0,6,102,1,0,0,0,8,104, + 1,0,0,0,10,109,1,0,0,0,12,127,1,0,0,0,14,131,1,0,0,0,16,135,1,0,0,0,18, + 139,1,0,0,0,20,142,1,0,0,0,22,161,1,0,0,0,24,185,1,0,0,0,26,187,1,0,0, + 0,28,201,1,0,0,0,30,203,1,0,0,0,32,206,1,0,0,0,34,219,1,0,0,0,36,223,1, + 0,0,0,38,231,1,0,0,0,40,235,1,0,0,0,42,239,1,0,0,0,44,241,1,0,0,0,46,243, + 1,0,0,0,48,245,1,0,0,0,50,260,1,0,0,0,52,275,1,0,0,0,54,277,1,0,0,0,56, + 283,1,0,0,0,58,60,3,2,1,0,59,58,1,0,0,0,60,63,1,0,0,0,61,59,1,0,0,0,61, + 62,1,0,0,0,62,68,1,0,0,0,63,61,1,0,0,0,64,67,3,4,2,0,65,67,3,6,3,0,66, + 64,1,0,0,0,66,65,1,0,0,0,67,70,1,0,0,0,68,66,1,0,0,0,68,69,1,0,0,0,69, + 71,1,0,0,0,70,68,1,0,0,0,71,72,5,0,0,1,72,1,1,0,0,0,73,74,5,25,0,0,74, + 77,7,0,0,0,75,76,5,11,0,0,76,78,5,45,0,0,77,75,1,0,0,0,77,78,1,0,0,0,78, + 79,1,0,0,0,79,80,5,13,0,0,80,81,3,22,11,0,81,82,3,56,28,0,82,3,1,0,0,0, + 83,84,5,28,0,0,84,85,5,29,0,0,85,86,3,22,11,0,86,87,5,30,0,0,87,89,3,56, + 28,0,88,90,3,6,3,0,89,88,1,0,0,0,90,91,1,0,0,0,91,89,1,0,0,0,91,92,1,0, + 0,0,92,94,1,0,0,0,93,95,3,8,4,0,94,93,1,0,0,0,94,95,1,0,0,0,95,5,1,0,0, + 0,96,103,3,12,6,0,97,103,3,14,7,0,98,103,3,16,8,0,99,103,3,10,5,0,100, + 103,3,18,9,0,101,103,3,20,10,0,102,96,1,0,0,0,102,97,1,0,0,0,102,98,1, + 0,0,0,102,99,1,0,0,0,102,100,1,0,0,0,102,101,1,0,0,0,103,7,1,0,0,0,104, + 105,5,31,0,0,105,106,5,28,0,0,106,107,3,56,28,0,107,9,1,0,0,0,108,110, + 5,27,0,0,109,108,1,0,0,0,109,110,1,0,0,0,110,111,1,0,0,0,111,117,5,26, + 0,0,112,114,5,45,0,0,113,115,3,40,20,0,114,113,1,0,0,0,114,115,1,0,0,0, + 115,118,1,0,0,0,116,118,5,46,0,0,117,112,1,0,0,0,117,116,1,0,0,0,118,121, + 1,0,0,0,119,120,5,11,0,0,120,122,5,45,0,0,121,119,1,0,0,0,121,122,1,0, + 0,0,122,123,1,0,0,0,123,124,5,13,0,0,124,125,3,22,11,0,125,126,3,56,28, + 0,126,11,1,0,0,0,127,128,5,33,0,0,128,129,3,22,11,0,129,130,3,56,28,0, + 130,13,1,0,0,0,131,132,5,34,0,0,132,133,3,22,11,0,133,134,3,56,28,0,134, + 15,1,0,0,0,135,136,5,35,0,0,136,137,3,36,18,0,137,138,3,56,28,0,138,17, + 1,0,0,0,139,140,3,30,15,0,140,141,3,56,28,0,141,19,1,0,0,0,142,143,5,32, + 0,0,143,144,3,56,28,0,144,21,1,0,0,0,145,146,6,11,-1,0,146,147,5,14,0, + 0,147,162,3,22,11,13,148,149,5,15,0,0,149,162,3,22,11,12,150,151,5,39, + 0,0,151,162,3,22,11,11,152,162,3,36,18,0,153,162,3,24,12,0,154,162,3,50, + 25,0,155,162,3,52,26,0,156,162,3,30,15,0,157,158,5,5,0,0,158,159,3,22, + 11,0,159,160,5,6,0,0,160,162,1,0,0,0,161,145,1,0,0,0,161,148,1,0,0,0,161, + 150,1,0,0,0,161,152,1,0,0,0,161,153,1,0,0,0,161,154,1,0,0,0,161,155,1, + 0,0,0,161,156,1,0,0,0,161,157,1,0,0,0,162,177,1,0,0,0,163,164,10,10,0, + 0,164,165,7,1,0,0,165,176,3,22,11,11,166,167,10,9,0,0,167,168,7,2,0,0, + 168,176,3,22,11,10,169,170,10,8,0,0,170,171,7,3,0,0,171,176,3,22,11,9, + 172,173,10,7,0,0,173,174,7,4,0,0,174,176,3,22,11,8,175,163,1,0,0,0,175, + 166,1,0,0,0,175,169,1,0,0,0,175,172,1,0,0,0,176,179,1,0,0,0,177,175,1, + 0,0,0,177,178,1,0,0,0,178,23,1,0,0,0,179,177,1,0,0,0,180,186,3,48,24,0, + 181,186,3,46,23,0,182,186,3,44,22,0,183,186,3,42,21,0,184,186,3,26,13, + 0,185,180,1,0,0,0,185,181,1,0,0,0,185,182,1,0,0,0,185,183,1,0,0,0,185, + 184,1,0,0,0,186,25,1,0,0,0,187,191,5,49,0,0,188,190,3,28,14,0,189,188, + 1,0,0,0,190,193,1,0,0,0,191,189,1,0,0,0,191,192,1,0,0,0,192,194,1,0,0, + 0,193,191,1,0,0,0,194,195,5,49,0,0,195,27,1,0,0,0,196,202,5,53,0,0,197, + 198,5,52,0,0,198,199,3,22,11,0,199,200,5,8,0,0,200,202,1,0,0,0,201,196, + 1,0,0,0,201,197,1,0,0,0,202,29,1,0,0,0,203,204,5,48,0,0,204,205,3,32,16, + 0,205,31,1,0,0,0,206,215,5,5,0,0,207,212,3,34,17,0,208,209,5,11,0,0,209, + 211,3,34,17,0,210,208,1,0,0,0,211,214,1,0,0,0,212,210,1,0,0,0,212,213, + 1,0,0,0,213,216,1,0,0,0,214,212,1,0,0,0,215,207,1,0,0,0,215,216,1,0,0, + 0,216,217,1,0,0,0,217,218,5,6,0,0,218,33,1,0,0,0,219,220,5,45,0,0,220, + 221,5,10,0,0,221,222,3,22,11,0,222,35,1,0,0,0,223,228,3,38,19,0,224,225, + 5,12,0,0,225,227,3,38,19,0,226,224,1,0,0,0,227,230,1,0,0,0,228,226,1,0, + 0,0,228,229,1,0,0,0,229,37,1,0,0,0,230,228,1,0,0,0,231,233,5,45,0,0,232, + 234,3,40,20,0,233,232,1,0,0,0,233,234,1,0,0,0,234,39,1,0,0,0,235,236,5, + 3,0,0,236,237,3,22,11,0,237,238,5,4,0,0,238,41,1,0,0,0,239,240,5,43,0, + 0,240,43,1,0,0,0,241,242,5,42,0,0,242,45,1,0,0,0,243,244,7,5,0,0,244,47, + 1,0,0,0,245,246,5,44,0,0,246,49,1,0,0,0,247,248,5,3,0,0,248,253,3,22,11, + 0,249,250,5,11,0,0,250,252,3,22,11,0,251,249,1,0,0,0,252,255,1,0,0,0,253, + 251,1,0,0,0,253,254,1,0,0,0,254,256,1,0,0,0,255,253,1,0,0,0,256,257,5, + 4,0,0,257,261,1,0,0,0,258,259,5,3,0,0,259,261,5,4,0,0,260,247,1,0,0,0, + 260,258,1,0,0,0,261,51,1,0,0,0,262,263,5,7,0,0,263,268,3,54,27,0,264,265, + 5,11,0,0,265,267,3,54,27,0,266,264,1,0,0,0,267,270,1,0,0,0,268,266,1,0, + 0,0,268,269,1,0,0,0,269,271,1,0,0,0,270,268,1,0,0,0,271,272,5,9,0,0,272, + 276,1,0,0,0,273,274,5,7,0,0,274,276,5,9,0,0,275,262,1,0,0,0,275,273,1, + 0,0,0,276,53,1,0,0,0,277,278,5,45,0,0,278,279,5,10,0,0,279,280,3,22,11, + 0,280,55,1,0,0,0,281,284,5,0,0,1,282,284,4,28,4,0,283,281,1,0,0,0,283, + 282,1,0,0,0,284,57,1,0,0,0,26,61,66,68,77,91,94,102,109,114,117,121,161, + 175,177,185,191,201,212,215,228,233,253,260,268,275,283 }; public static readonly ATN _ATN = diff --git a/src/Simpleflow/Parser/SimpleflowParser.interp b/src/Simpleflow/Parser/SimpleflowParser.interp index baf4f12..2c844d0 100644 --- a/src/Simpleflow/Parser/SimpleflowParser.interp +++ b/src/Simpleflow/Parser/SimpleflowParser.interp @@ -143,4 +143,4 @@ eos atn: -[4, 1, 53, 282, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 1, 0, 5, 0, 60, 8, 0, 10, 0, 12, 0, 63, 9, 0, 1, 0, 1, 0, 5, 0, 67, 8, 0, 10, 0, 12, 0, 70, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 78, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 2, 90, 8, 2, 11, 2, 12, 2, 91, 1, 2, 3, 2, 95, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 103, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 3, 5, 110, 8, 5, 1, 5, 1, 5, 1, 5, 3, 5, 115, 8, 5, 1, 5, 3, 5, 118, 8, 5, 1, 5, 1, 5, 3, 5, 122, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 158, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 172, 8, 11, 10, 11, 12, 11, 175, 9, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 182, 8, 12, 1, 13, 1, 13, 5, 13, 186, 8, 13, 10, 13, 12, 13, 189, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 198, 8, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 207, 8, 16, 10, 16, 12, 16, 210, 9, 16, 3, 16, 212, 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 5, 18, 223, 8, 18, 10, 18, 12, 18, 226, 9, 18, 1, 19, 1, 19, 3, 19, 230, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 248, 8, 25, 10, 25, 12, 25, 251, 9, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 257, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 263, 8, 26, 10, 26, 12, 26, 266, 9, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 272, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 3, 28, 280, 8, 28, 1, 28, 0, 1, 22, 29, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 0, 6, 1, 0, 45, 46, 1, 0, 16, 18, 1, 0, 14, 15, 1, 0, 19, 24, 1, 0, 37, 38, 1, 0, 40, 41, 292, 0, 61, 1, 0, 0, 0, 2, 73, 1, 0, 0, 0, 4, 83, 1, 0, 0, 0, 6, 102, 1, 0, 0, 0, 8, 104, 1, 0, 0, 0, 10, 109, 1, 0, 0, 0, 12, 127, 1, 0, 0, 0, 14, 131, 1, 0, 0, 0, 16, 135, 1, 0, 0, 0, 18, 139, 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 157, 1, 0, 0, 0, 24, 181, 1, 0, 0, 0, 26, 183, 1, 0, 0, 0, 28, 197, 1, 0, 0, 0, 30, 199, 1, 0, 0, 0, 32, 202, 1, 0, 0, 0, 34, 215, 1, 0, 0, 0, 36, 219, 1, 0, 0, 0, 38, 227, 1, 0, 0, 0, 40, 231, 1, 0, 0, 0, 42, 235, 1, 0, 0, 0, 44, 237, 1, 0, 0, 0, 46, 239, 1, 0, 0, 0, 48, 241, 1, 0, 0, 0, 50, 256, 1, 0, 0, 0, 52, 271, 1, 0, 0, 0, 54, 273, 1, 0, 0, 0, 56, 279, 1, 0, 0, 0, 58, 60, 3, 2, 1, 0, 59, 58, 1, 0, 0, 0, 60, 63, 1, 0, 0, 0, 61, 59, 1, 0, 0, 0, 61, 62, 1, 0, 0, 0, 62, 68, 1, 0, 0, 0, 63, 61, 1, 0, 0, 0, 64, 67, 3, 4, 2, 0, 65, 67, 3, 6, 3, 0, 66, 64, 1, 0, 0, 0, 66, 65, 1, 0, 0, 0, 67, 70, 1, 0, 0, 0, 68, 66, 1, 0, 0, 0, 68, 69, 1, 0, 0, 0, 69, 71, 1, 0, 0, 0, 70, 68, 1, 0, 0, 0, 71, 72, 5, 0, 0, 1, 72, 1, 1, 0, 0, 0, 73, 74, 5, 25, 0, 0, 74, 77, 7, 0, 0, 0, 75, 76, 5, 11, 0, 0, 76, 78, 5, 45, 0, 0, 77, 75, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 80, 5, 13, 0, 0, 80, 81, 3, 22, 11, 0, 81, 82, 3, 56, 28, 0, 82, 3, 1, 0, 0, 0, 83, 84, 5, 28, 0, 0, 84, 85, 5, 29, 0, 0, 85, 86, 3, 22, 11, 0, 86, 87, 5, 30, 0, 0, 87, 89, 3, 56, 28, 0, 88, 90, 3, 6, 3, 0, 89, 88, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 89, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 94, 1, 0, 0, 0, 93, 95, 3, 8, 4, 0, 94, 93, 1, 0, 0, 0, 94, 95, 1, 0, 0, 0, 95, 5, 1, 0, 0, 0, 96, 103, 3, 12, 6, 0, 97, 103, 3, 14, 7, 0, 98, 103, 3, 16, 8, 0, 99, 103, 3, 10, 5, 0, 100, 103, 3, 18, 9, 0, 101, 103, 3, 20, 10, 0, 102, 96, 1, 0, 0, 0, 102, 97, 1, 0, 0, 0, 102, 98, 1, 0, 0, 0, 102, 99, 1, 0, 0, 0, 102, 100, 1, 0, 0, 0, 102, 101, 1, 0, 0, 0, 103, 7, 1, 0, 0, 0, 104, 105, 5, 31, 0, 0, 105, 106, 5, 28, 0, 0, 106, 107, 3, 56, 28, 0, 107, 9, 1, 0, 0, 0, 108, 110, 5, 27, 0, 0, 109, 108, 1, 0, 0, 0, 109, 110, 1, 0, 0, 0, 110, 111, 1, 0, 0, 0, 111, 117, 5, 26, 0, 0, 112, 114, 5, 45, 0, 0, 113, 115, 3, 40, 20, 0, 114, 113, 1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 118, 1, 0, 0, 0, 116, 118, 5, 46, 0, 0, 117, 112, 1, 0, 0, 0, 117, 116, 1, 0, 0, 0, 118, 121, 1, 0, 0, 0, 119, 120, 5, 11, 0, 0, 120, 122, 5, 45, 0, 0, 121, 119, 1, 0, 0, 0, 121, 122, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 124, 5, 13, 0, 0, 124, 125, 3, 22, 11, 0, 125, 126, 3, 56, 28, 0, 126, 11, 1, 0, 0, 0, 127, 128, 5, 33, 0, 0, 128, 129, 3, 22, 11, 0, 129, 130, 3, 56, 28, 0, 130, 13, 1, 0, 0, 0, 131, 132, 5, 34, 0, 0, 132, 133, 3, 22, 11, 0, 133, 134, 3, 56, 28, 0, 134, 15, 1, 0, 0, 0, 135, 136, 5, 35, 0, 0, 136, 137, 3, 36, 18, 0, 137, 138, 3, 56, 28, 0, 138, 17, 1, 0, 0, 0, 139, 140, 3, 30, 15, 0, 140, 141, 3, 56, 28, 0, 141, 19, 1, 0, 0, 0, 142, 143, 5, 32, 0, 0, 143, 144, 3, 56, 28, 0, 144, 21, 1, 0, 0, 0, 145, 146, 6, 11, -1, 0, 146, 147, 5, 39, 0, 0, 147, 158, 3, 22, 11, 7, 148, 158, 3, 36, 18, 0, 149, 158, 3, 24, 12, 0, 150, 158, 3, 50, 25, 0, 151, 158, 3, 52, 26, 0, 152, 158, 3, 30, 15, 0, 153, 154, 5, 5, 0, 0, 154, 155, 3, 22, 11, 0, 155, 156, 5, 6, 0, 0, 156, 158, 1, 0, 0, 0, 157, 145, 1, 0, 0, 0, 157, 148, 1, 0, 0, 0, 157, 149, 1, 0, 0, 0, 157, 150, 1, 0, 0, 0, 157, 151, 1, 0, 0, 0, 157, 152, 1, 0, 0, 0, 157, 153, 1, 0, 0, 0, 158, 173, 1, 0, 0, 0, 159, 160, 10, 11, 0, 0, 160, 161, 7, 1, 0, 0, 161, 172, 3, 22, 11, 12, 162, 163, 10, 10, 0, 0, 163, 164, 7, 2, 0, 0, 164, 172, 3, 22, 11, 11, 165, 166, 10, 9, 0, 0, 166, 167, 7, 3, 0, 0, 167, 172, 3, 22, 11, 10, 168, 169, 10, 8, 0, 0, 169, 170, 7, 4, 0, 0, 170, 172, 3, 22, 11, 9, 171, 159, 1, 0, 0, 0, 171, 162, 1, 0, 0, 0, 171, 165, 1, 0, 0, 0, 171, 168, 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 23, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 176, 182, 3, 48, 24, 0, 177, 182, 3, 46, 23, 0, 178, 182, 3, 44, 22, 0, 179, 182, 3, 42, 21, 0, 180, 182, 3, 26, 13, 0, 181, 176, 1, 0, 0, 0, 181, 177, 1, 0, 0, 0, 181, 178, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 180, 1, 0, 0, 0, 182, 25, 1, 0, 0, 0, 183, 187, 5, 49, 0, 0, 184, 186, 3, 28, 14, 0, 185, 184, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 190, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 191, 5, 49, 0, 0, 191, 27, 1, 0, 0, 0, 192, 198, 5, 53, 0, 0, 193, 194, 5, 52, 0, 0, 194, 195, 3, 22, 11, 0, 195, 196, 5, 8, 0, 0, 196, 198, 1, 0, 0, 0, 197, 192, 1, 0, 0, 0, 197, 193, 1, 0, 0, 0, 198, 29, 1, 0, 0, 0, 199, 200, 5, 48, 0, 0, 200, 201, 3, 32, 16, 0, 201, 31, 1, 0, 0, 0, 202, 211, 5, 5, 0, 0, 203, 208, 3, 34, 17, 0, 204, 205, 5, 11, 0, 0, 205, 207, 3, 34, 17, 0, 206, 204, 1, 0, 0, 0, 207, 210, 1, 0, 0, 0, 208, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 212, 1, 0, 0, 0, 210, 208, 1, 0, 0, 0, 211, 203, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 214, 5, 6, 0, 0, 214, 33, 1, 0, 0, 0, 215, 216, 5, 45, 0, 0, 216, 217, 5, 10, 0, 0, 217, 218, 3, 22, 11, 0, 218, 35, 1, 0, 0, 0, 219, 224, 3, 38, 19, 0, 220, 221, 5, 12, 0, 0, 221, 223, 3, 38, 19, 0, 222, 220, 1, 0, 0, 0, 223, 226, 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225, 37, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 227, 229, 5, 45, 0, 0, 228, 230, 3, 40, 20, 0, 229, 228, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 39, 1, 0, 0, 0, 231, 232, 5, 3, 0, 0, 232, 233, 3, 22, 11, 0, 233, 234, 5, 4, 0, 0, 234, 41, 1, 0, 0, 0, 235, 236, 5, 43, 0, 0, 236, 43, 1, 0, 0, 0, 237, 238, 5, 42, 0, 0, 238, 45, 1, 0, 0, 0, 239, 240, 7, 5, 0, 0, 240, 47, 1, 0, 0, 0, 241, 242, 5, 44, 0, 0, 242, 49, 1, 0, 0, 0, 243, 244, 5, 3, 0, 0, 244, 249, 3, 22, 11, 0, 245, 246, 5, 11, 0, 0, 246, 248, 3, 22, 11, 0, 247, 245, 1, 0, 0, 0, 248, 251, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 252, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 252, 253, 5, 4, 0, 0, 253, 257, 1, 0, 0, 0, 254, 255, 5, 3, 0, 0, 255, 257, 5, 4, 0, 0, 256, 243, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 51, 1, 0, 0, 0, 258, 259, 5, 7, 0, 0, 259, 264, 3, 54, 27, 0, 260, 261, 5, 11, 0, 0, 261, 263, 3, 54, 27, 0, 262, 260, 1, 0, 0, 0, 263, 266, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 267, 1, 0, 0, 0, 266, 264, 1, 0, 0, 0, 267, 268, 5, 9, 0, 0, 268, 272, 1, 0, 0, 0, 269, 270, 5, 7, 0, 0, 270, 272, 5, 9, 0, 0, 271, 258, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 53, 1, 0, 0, 0, 273, 274, 5, 45, 0, 0, 274, 275, 5, 10, 0, 0, 275, 276, 3, 22, 11, 0, 276, 55, 1, 0, 0, 0, 277, 280, 5, 0, 0, 1, 278, 280, 4, 28, 4, 0, 279, 277, 1, 0, 0, 0, 279, 278, 1, 0, 0, 0, 280, 57, 1, 0, 0, 0, 26, 61, 66, 68, 77, 91, 94, 102, 109, 114, 117, 121, 157, 171, 173, 181, 187, 197, 208, 211, 224, 229, 249, 256, 264, 271, 279] \ No newline at end of file +[4, 1, 53, 286, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 1, 0, 5, 0, 60, 8, 0, 10, 0, 12, 0, 63, 9, 0, 1, 0, 1, 0, 5, 0, 67, 8, 0, 10, 0, 12, 0, 70, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 78, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 2, 90, 8, 2, 11, 2, 12, 2, 91, 1, 2, 3, 2, 95, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 103, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 3, 5, 110, 8, 5, 1, 5, 1, 5, 1, 5, 3, 5, 115, 8, 5, 1, 5, 3, 5, 118, 8, 5, 1, 5, 1, 5, 3, 5, 122, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 162, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 176, 8, 11, 10, 11, 12, 11, 179, 9, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 186, 8, 12, 1, 13, 1, 13, 5, 13, 190, 8, 13, 10, 13, 12, 13, 193, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 202, 8, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 211, 8, 16, 10, 16, 12, 16, 214, 9, 16, 3, 16, 216, 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 5, 18, 227, 8, 18, 10, 18, 12, 18, 230, 9, 18, 1, 19, 1, 19, 3, 19, 234, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 252, 8, 25, 10, 25, 12, 25, 255, 9, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 261, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 267, 8, 26, 10, 26, 12, 26, 270, 9, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 276, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 3, 28, 284, 8, 28, 1, 28, 0, 1, 22, 29, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 0, 6, 1, 0, 45, 46, 1, 0, 16, 18, 1, 0, 14, 15, 1, 0, 19, 24, 1, 0, 37, 38, 1, 0, 40, 41, 298, 0, 61, 1, 0, 0, 0, 2, 73, 1, 0, 0, 0, 4, 83, 1, 0, 0, 0, 6, 102, 1, 0, 0, 0, 8, 104, 1, 0, 0, 0, 10, 109, 1, 0, 0, 0, 12, 127, 1, 0, 0, 0, 14, 131, 1, 0, 0, 0, 16, 135, 1, 0, 0, 0, 18, 139, 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 161, 1, 0, 0, 0, 24, 185, 1, 0, 0, 0, 26, 187, 1, 0, 0, 0, 28, 201, 1, 0, 0, 0, 30, 203, 1, 0, 0, 0, 32, 206, 1, 0, 0, 0, 34, 219, 1, 0, 0, 0, 36, 223, 1, 0, 0, 0, 38, 231, 1, 0, 0, 0, 40, 235, 1, 0, 0, 0, 42, 239, 1, 0, 0, 0, 44, 241, 1, 0, 0, 0, 46, 243, 1, 0, 0, 0, 48, 245, 1, 0, 0, 0, 50, 260, 1, 0, 0, 0, 52, 275, 1, 0, 0, 0, 54, 277, 1, 0, 0, 0, 56, 283, 1, 0, 0, 0, 58, 60, 3, 2, 1, 0, 59, 58, 1, 0, 0, 0, 60, 63, 1, 0, 0, 0, 61, 59, 1, 0, 0, 0, 61, 62, 1, 0, 0, 0, 62, 68, 1, 0, 0, 0, 63, 61, 1, 0, 0, 0, 64, 67, 3, 4, 2, 0, 65, 67, 3, 6, 3, 0, 66, 64, 1, 0, 0, 0, 66, 65, 1, 0, 0, 0, 67, 70, 1, 0, 0, 0, 68, 66, 1, 0, 0, 0, 68, 69, 1, 0, 0, 0, 69, 71, 1, 0, 0, 0, 70, 68, 1, 0, 0, 0, 71, 72, 5, 0, 0, 1, 72, 1, 1, 0, 0, 0, 73, 74, 5, 25, 0, 0, 74, 77, 7, 0, 0, 0, 75, 76, 5, 11, 0, 0, 76, 78, 5, 45, 0, 0, 77, 75, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 80, 5, 13, 0, 0, 80, 81, 3, 22, 11, 0, 81, 82, 3, 56, 28, 0, 82, 3, 1, 0, 0, 0, 83, 84, 5, 28, 0, 0, 84, 85, 5, 29, 0, 0, 85, 86, 3, 22, 11, 0, 86, 87, 5, 30, 0, 0, 87, 89, 3, 56, 28, 0, 88, 90, 3, 6, 3, 0, 89, 88, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 89, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 94, 1, 0, 0, 0, 93, 95, 3, 8, 4, 0, 94, 93, 1, 0, 0, 0, 94, 95, 1, 0, 0, 0, 95, 5, 1, 0, 0, 0, 96, 103, 3, 12, 6, 0, 97, 103, 3, 14, 7, 0, 98, 103, 3, 16, 8, 0, 99, 103, 3, 10, 5, 0, 100, 103, 3, 18, 9, 0, 101, 103, 3, 20, 10, 0, 102, 96, 1, 0, 0, 0, 102, 97, 1, 0, 0, 0, 102, 98, 1, 0, 0, 0, 102, 99, 1, 0, 0, 0, 102, 100, 1, 0, 0, 0, 102, 101, 1, 0, 0, 0, 103, 7, 1, 0, 0, 0, 104, 105, 5, 31, 0, 0, 105, 106, 5, 28, 0, 0, 106, 107, 3, 56, 28, 0, 107, 9, 1, 0, 0, 0, 108, 110, 5, 27, 0, 0, 109, 108, 1, 0, 0, 0, 109, 110, 1, 0, 0, 0, 110, 111, 1, 0, 0, 0, 111, 117, 5, 26, 0, 0, 112, 114, 5, 45, 0, 0, 113, 115, 3, 40, 20, 0, 114, 113, 1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 118, 1, 0, 0, 0, 116, 118, 5, 46, 0, 0, 117, 112, 1, 0, 0, 0, 117, 116, 1, 0, 0, 0, 118, 121, 1, 0, 0, 0, 119, 120, 5, 11, 0, 0, 120, 122, 5, 45, 0, 0, 121, 119, 1, 0, 0, 0, 121, 122, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 124, 5, 13, 0, 0, 124, 125, 3, 22, 11, 0, 125, 126, 3, 56, 28, 0, 126, 11, 1, 0, 0, 0, 127, 128, 5, 33, 0, 0, 128, 129, 3, 22, 11, 0, 129, 130, 3, 56, 28, 0, 130, 13, 1, 0, 0, 0, 131, 132, 5, 34, 0, 0, 132, 133, 3, 22, 11, 0, 133, 134, 3, 56, 28, 0, 134, 15, 1, 0, 0, 0, 135, 136, 5, 35, 0, 0, 136, 137, 3, 36, 18, 0, 137, 138, 3, 56, 28, 0, 138, 17, 1, 0, 0, 0, 139, 140, 3, 30, 15, 0, 140, 141, 3, 56, 28, 0, 141, 19, 1, 0, 0, 0, 142, 143, 5, 32, 0, 0, 143, 144, 3, 56, 28, 0, 144, 21, 1, 0, 0, 0, 145, 146, 6, 11, -1, 0, 146, 147, 5, 14, 0, 0, 147, 162, 3, 22, 11, 13, 148, 149, 5, 15, 0, 0, 149, 162, 3, 22, 11, 12, 150, 151, 5, 39, 0, 0, 151, 162, 3, 22, 11, 11, 152, 162, 3, 36, 18, 0, 153, 162, 3, 24, 12, 0, 154, 162, 3, 50, 25, 0, 155, 162, 3, 52, 26, 0, 156, 162, 3, 30, 15, 0, 157, 158, 5, 5, 0, 0, 158, 159, 3, 22, 11, 0, 159, 160, 5, 6, 0, 0, 160, 162, 1, 0, 0, 0, 161, 145, 1, 0, 0, 0, 161, 148, 1, 0, 0, 0, 161, 150, 1, 0, 0, 0, 161, 152, 1, 0, 0, 0, 161, 153, 1, 0, 0, 0, 161, 154, 1, 0, 0, 0, 161, 155, 1, 0, 0, 0, 161, 156, 1, 0, 0, 0, 161, 157, 1, 0, 0, 0, 162, 177, 1, 0, 0, 0, 163, 164, 10, 10, 0, 0, 164, 165, 7, 1, 0, 0, 165, 176, 3, 22, 11, 11, 166, 167, 10, 9, 0, 0, 167, 168, 7, 2, 0, 0, 168, 176, 3, 22, 11, 10, 169, 170, 10, 8, 0, 0, 170, 171, 7, 3, 0, 0, 171, 176, 3, 22, 11, 9, 172, 173, 10, 7, 0, 0, 173, 174, 7, 4, 0, 0, 174, 176, 3, 22, 11, 8, 175, 163, 1, 0, 0, 0, 175, 166, 1, 0, 0, 0, 175, 169, 1, 0, 0, 0, 175, 172, 1, 0, 0, 0, 176, 179, 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 23, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 180, 186, 3, 48, 24, 0, 181, 186, 3, 46, 23, 0, 182, 186, 3, 44, 22, 0, 183, 186, 3, 42, 21, 0, 184, 186, 3, 26, 13, 0, 185, 180, 1, 0, 0, 0, 185, 181, 1, 0, 0, 0, 185, 182, 1, 0, 0, 0, 185, 183, 1, 0, 0, 0, 185, 184, 1, 0, 0, 0, 186, 25, 1, 0, 0, 0, 187, 191, 5, 49, 0, 0, 188, 190, 3, 28, 14, 0, 189, 188, 1, 0, 0, 0, 190, 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 194, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 194, 195, 5, 49, 0, 0, 195, 27, 1, 0, 0, 0, 196, 202, 5, 53, 0, 0, 197, 198, 5, 52, 0, 0, 198, 199, 3, 22, 11, 0, 199, 200, 5, 8, 0, 0, 200, 202, 1, 0, 0, 0, 201, 196, 1, 0, 0, 0, 201, 197, 1, 0, 0, 0, 202, 29, 1, 0, 0, 0, 203, 204, 5, 48, 0, 0, 204, 205, 3, 32, 16, 0, 205, 31, 1, 0, 0, 0, 206, 215, 5, 5, 0, 0, 207, 212, 3, 34, 17, 0, 208, 209, 5, 11, 0, 0, 209, 211, 3, 34, 17, 0, 210, 208, 1, 0, 0, 0, 211, 214, 1, 0, 0, 0, 212, 210, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 216, 1, 0, 0, 0, 214, 212, 1, 0, 0, 0, 215, 207, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, 218, 5, 6, 0, 0, 218, 33, 1, 0, 0, 0, 219, 220, 5, 45, 0, 0, 220, 221, 5, 10, 0, 0, 221, 222, 3, 22, 11, 0, 222, 35, 1, 0, 0, 0, 223, 228, 3, 38, 19, 0, 224, 225, 5, 12, 0, 0, 225, 227, 3, 38, 19, 0, 226, 224, 1, 0, 0, 0, 227, 230, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 37, 1, 0, 0, 0, 230, 228, 1, 0, 0, 0, 231, 233, 5, 45, 0, 0, 232, 234, 3, 40, 20, 0, 233, 232, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 39, 1, 0, 0, 0, 235, 236, 5, 3, 0, 0, 236, 237, 3, 22, 11, 0, 237, 238, 5, 4, 0, 0, 238, 41, 1, 0, 0, 0, 239, 240, 5, 43, 0, 0, 240, 43, 1, 0, 0, 0, 241, 242, 5, 42, 0, 0, 242, 45, 1, 0, 0, 0, 243, 244, 7, 5, 0, 0, 244, 47, 1, 0, 0, 0, 245, 246, 5, 44, 0, 0, 246, 49, 1, 0, 0, 0, 247, 248, 5, 3, 0, 0, 248, 253, 3, 22, 11, 0, 249, 250, 5, 11, 0, 0, 250, 252, 3, 22, 11, 0, 251, 249, 1, 0, 0, 0, 252, 255, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 256, 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 256, 257, 5, 4, 0, 0, 257, 261, 1, 0, 0, 0, 258, 259, 5, 3, 0, 0, 259, 261, 5, 4, 0, 0, 260, 247, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, 51, 1, 0, 0, 0, 262, 263, 5, 7, 0, 0, 263, 268, 3, 54, 27, 0, 264, 265, 5, 11, 0, 0, 265, 267, 3, 54, 27, 0, 266, 264, 1, 0, 0, 0, 267, 270, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 271, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271, 272, 5, 9, 0, 0, 272, 276, 1, 0, 0, 0, 273, 274, 5, 7, 0, 0, 274, 276, 5, 9, 0, 0, 275, 262, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 276, 53, 1, 0, 0, 0, 277, 278, 5, 45, 0, 0, 278, 279, 5, 10, 0, 0, 279, 280, 3, 22, 11, 0, 280, 55, 1, 0, 0, 0, 281, 284, 5, 0, 0, 1, 282, 284, 4, 28, 4, 0, 283, 281, 1, 0, 0, 0, 283, 282, 1, 0, 0, 0, 284, 57, 1, 0, 0, 0, 26, 61, 66, 68, 77, 91, 94, 102, 109, 114, 117, 121, 161, 175, 177, 185, 191, 201, 212, 215, 228, 233, 253, 260, 268, 275, 283] \ No newline at end of file diff --git a/src/Simpleflow/Parser/SimpleflowParserBaseListener.cs b/src/Simpleflow/Parser/SimpleflowParserBaseListener.cs index 0d0d49c..9f8fa7f 100644 --- a/src/Simpleflow/Parser/SimpleflowParserBaseListener.cs +++ b/src/Simpleflow/Parser/SimpleflowParserBaseListener.cs @@ -169,6 +169,20 @@ public virtual void EnterExitStmt([NotNull] SimpleflowParser.ExitStmtContext con /// The parse tree. public virtual void ExitExitStmt([NotNull] SimpleflowParser.ExitStmtContext context) { } /// + /// Enter a parse tree produced by the UniaryMinusExpression + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context) { } + /// + /// Exit a parse tree produced by the UniaryMinusExpression + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context) { } + /// /// Enter a parse tree produced by the ParenthesizedExpression /// labeled alternative in . /// The default implementation does nothing. @@ -211,6 +225,34 @@ public virtual void EnterRelationalExpression([NotNull] SimpleflowParser.Relatio /// The parse tree. public virtual void ExitRelationalExpression([NotNull] SimpleflowParser.RelationalExpressionContext context) { } /// + /// Enter a parse tree produced by the ArrayLiteralExpression + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context) { } + /// + /// Exit a parse tree produced by the ArrayLiteralExpression + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context) { } + /// + /// Enter a parse tree produced by the NotExpression + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNotExpression([NotNull] SimpleflowParser.NotExpressionContext context) { } + /// + /// Exit a parse tree produced by the NotExpression + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context) { } + /// /// Enter a parse tree produced by the LogicalExpression /// labeled alternative in . /// The default implementation does nothing. @@ -253,19 +295,19 @@ public virtual void EnterFunctionExpression([NotNull] SimpleflowParser.FunctionE /// The parse tree. public virtual void ExitFunctionExpression([NotNull] SimpleflowParser.FunctionExpressionContext context) { } /// - /// Enter a parse tree produced by the ArrayLiteralExpression + /// Enter a parse tree produced by the UniaryPlusExpression /// labeled alternative in . /// The default implementation does nothing. /// /// The parse tree. - public virtual void EnterArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context) { } + public virtual void EnterUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context) { } /// - /// Exit a parse tree produced by the ArrayLiteralExpression + /// Exit a parse tree produced by the UniaryPlusExpression /// labeled alternative in . /// The default implementation does nothing. /// /// The parse tree. - public virtual void ExitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context) { } + public virtual void ExitUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context) { } /// /// Enter a parse tree produced by the SimpleLiteralExpression /// labeled alternative in . @@ -281,20 +323,6 @@ public virtual void EnterSimpleLiteralExpression([NotNull] SimpleflowParser.Simp /// The parse tree. public virtual void ExitSimpleLiteralExpression([NotNull] SimpleflowParser.SimpleLiteralExpressionContext context) { } /// - /// Enter a parse tree produced by the NotExpression - /// labeled alternative in . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterNotExpression([NotNull] SimpleflowParser.NotExpressionContext context) { } - /// - /// Exit a parse tree produced by the NotExpression - /// labeled alternative in . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context) { } - /// /// Enter a parse tree produced by the JsonObjLiteralExpression /// labeled alternative in . /// The default implementation does nothing. diff --git a/src/Simpleflow/Parser/SimpleflowParserBaseVisitor.cs b/src/Simpleflow/Parser/SimpleflowParserBaseVisitor.cs index 66b743d..5715ef6 100644 --- a/src/Simpleflow/Parser/SimpleflowParserBaseVisitor.cs +++ b/src/Simpleflow/Parser/SimpleflowParserBaseVisitor.cs @@ -146,6 +146,17 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// The visitor result. public virtual Result VisitExitStmt([NotNull] SimpleflowParser.ExitStmtContext context) { return VisitChildren(context); } /// + /// Visit a parse tree produced by the UniaryMinusExpression + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by the ParenthesizedExpression /// labeled alternative in . /// @@ -179,7 +190,7 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// The visitor result. public virtual Result VisitRelationalExpression([NotNull] SimpleflowParser.RelationalExpressionContext context) { return VisitChildren(context); } /// - /// Visit a parse tree produced by the LogicalExpression + /// Visit a parse tree produced by the ArrayLiteralExpression /// labeled alternative in . /// /// The default implementation returns the result of calling @@ -188,9 +199,9 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// /// The parse tree. /// The visitor result. - public virtual Result VisitLogicalExpression([NotNull] SimpleflowParser.LogicalExpressionContext context) { return VisitChildren(context); } + public virtual Result VisitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context) { return VisitChildren(context); } /// - /// Visit a parse tree produced by the ObjectIdentiferExpression + /// Visit a parse tree produced by the NotExpression /// labeled alternative in . /// /// The default implementation returns the result of calling @@ -199,9 +210,9 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// /// The parse tree. /// The visitor result. - public virtual Result VisitObjectIdentiferExpression([NotNull] SimpleflowParser.ObjectIdentiferExpressionContext context) { return VisitChildren(context); } + public virtual Result VisitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context) { return VisitChildren(context); } /// - /// Visit a parse tree produced by the FunctionExpression + /// Visit a parse tree produced by the LogicalExpression /// labeled alternative in . /// /// The default implementation returns the result of calling @@ -210,9 +221,9 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// /// The parse tree. /// The visitor result. - public virtual Result VisitFunctionExpression([NotNull] SimpleflowParser.FunctionExpressionContext context) { return VisitChildren(context); } + public virtual Result VisitLogicalExpression([NotNull] SimpleflowParser.LogicalExpressionContext context) { return VisitChildren(context); } /// - /// Visit a parse tree produced by the ArrayLiteralExpression + /// Visit a parse tree produced by the ObjectIdentiferExpression /// labeled alternative in . /// /// The default implementation returns the result of calling @@ -221,9 +232,9 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// /// The parse tree. /// The visitor result. - public virtual Result VisitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context) { return VisitChildren(context); } + public virtual Result VisitObjectIdentiferExpression([NotNull] SimpleflowParser.ObjectIdentiferExpressionContext context) { return VisitChildren(context); } /// - /// Visit a parse tree produced by the SimpleLiteralExpression + /// Visit a parse tree produced by the FunctionExpression /// labeled alternative in . /// /// The default implementation returns the result of calling @@ -232,9 +243,9 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// /// The parse tree. /// The visitor result. - public virtual Result VisitSimpleLiteralExpression([NotNull] SimpleflowParser.SimpleLiteralExpressionContext context) { return VisitChildren(context); } + public virtual Result VisitFunctionExpression([NotNull] SimpleflowParser.FunctionExpressionContext context) { return VisitChildren(context); } /// - /// Visit a parse tree produced by the NotExpression + /// Visit a parse tree produced by the UniaryPlusExpression /// labeled alternative in . /// /// The default implementation returns the result of calling @@ -243,7 +254,18 @@ internal partial class SimpleflowParserBaseVisitor : AbstractParseTreeVi /// /// The parse tree. /// The visitor result. - public virtual Result VisitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context) { return VisitChildren(context); } + public virtual Result VisitUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the SimpleLiteralExpression + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSimpleLiteralExpression([NotNull] SimpleflowParser.SimpleLiteralExpressionContext context) { return VisitChildren(context); } /// /// Visit a parse tree produced by the JsonObjLiteralExpression /// labeled alternative in . diff --git a/src/Simpleflow/Parser/SimpleflowParserListener.cs b/src/Simpleflow/Parser/SimpleflowParserListener.cs index 2ab5fef..36efe09 100644 --- a/src/Simpleflow/Parser/SimpleflowParserListener.cs +++ b/src/Simpleflow/Parser/SimpleflowParserListener.cs @@ -142,6 +142,18 @@ internal interface ISimpleflowParserListener : IParseTreeListener { /// The parse tree. void ExitExitStmt([NotNull] SimpleflowParser.ExitStmtContext context); /// + /// Enter a parse tree produced by the UniaryMinusExpression + /// labeled alternative in . + /// + /// The parse tree. + void EnterUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context); + /// + /// Exit a parse tree produced by the UniaryMinusExpression + /// labeled alternative in . + /// + /// The parse tree. + void ExitUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context); + /// /// Enter a parse tree produced by the ParenthesizedExpression /// labeled alternative in . /// @@ -178,6 +190,30 @@ internal interface ISimpleflowParserListener : IParseTreeListener { /// The parse tree. void ExitRelationalExpression([NotNull] SimpleflowParser.RelationalExpressionContext context); /// + /// Enter a parse tree produced by the ArrayLiteralExpression + /// labeled alternative in . + /// + /// The parse tree. + void EnterArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context); + /// + /// Exit a parse tree produced by the ArrayLiteralExpression + /// labeled alternative in . + /// + /// The parse tree. + void ExitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context); + /// + /// Enter a parse tree produced by the NotExpression + /// labeled alternative in . + /// + /// The parse tree. + void EnterNotExpression([NotNull] SimpleflowParser.NotExpressionContext context); + /// + /// Exit a parse tree produced by the NotExpression + /// labeled alternative in . + /// + /// The parse tree. + void ExitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context); + /// /// Enter a parse tree produced by the LogicalExpression /// labeled alternative in . /// @@ -214,17 +250,17 @@ internal interface ISimpleflowParserListener : IParseTreeListener { /// The parse tree. void ExitFunctionExpression([NotNull] SimpleflowParser.FunctionExpressionContext context); /// - /// Enter a parse tree produced by the ArrayLiteralExpression + /// Enter a parse tree produced by the UniaryPlusExpression /// labeled alternative in . /// /// The parse tree. - void EnterArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context); + void EnterUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context); /// - /// Exit a parse tree produced by the ArrayLiteralExpression + /// Exit a parse tree produced by the UniaryPlusExpression /// labeled alternative in . /// /// The parse tree. - void ExitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context); + void ExitUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context); /// /// Enter a parse tree produced by the SimpleLiteralExpression /// labeled alternative in . @@ -238,18 +274,6 @@ internal interface ISimpleflowParserListener : IParseTreeListener { /// The parse tree. void ExitSimpleLiteralExpression([NotNull] SimpleflowParser.SimpleLiteralExpressionContext context); /// - /// Enter a parse tree produced by the NotExpression - /// labeled alternative in . - /// - /// The parse tree. - void EnterNotExpression([NotNull] SimpleflowParser.NotExpressionContext context); - /// - /// Exit a parse tree produced by the NotExpression - /// labeled alternative in . - /// - /// The parse tree. - void ExitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context); - /// /// Enter a parse tree produced by the JsonObjLiteralExpression /// labeled alternative in . /// diff --git a/src/Simpleflow/Parser/SimpleflowParserVisitor.cs b/src/Simpleflow/Parser/SimpleflowParserVisitor.cs index 81c5b98..826ac7f 100644 --- a/src/Simpleflow/Parser/SimpleflowParserVisitor.cs +++ b/src/Simpleflow/Parser/SimpleflowParserVisitor.cs @@ -99,6 +99,13 @@ internal interface ISimpleflowParserVisitor : IParseTreeVisitor /// The visitor result. Result VisitExitStmt([NotNull] SimpleflowParser.ExitStmtContext context); /// + /// Visit a parse tree produced by the UniaryMinusExpression + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitUniaryMinusExpression([NotNull] SimpleflowParser.UniaryMinusExpressionContext context); + /// /// Visit a parse tree produced by the ParenthesizedExpression /// labeled alternative in . /// @@ -120,6 +127,20 @@ internal interface ISimpleflowParserVisitor : IParseTreeVisitor /// The visitor result. Result VisitRelationalExpression([NotNull] SimpleflowParser.RelationalExpressionContext context); /// + /// Visit a parse tree produced by the ArrayLiteralExpression + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context); + /// + /// Visit a parse tree produced by the NotExpression + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context); + /// /// Visit a parse tree produced by the LogicalExpression /// labeled alternative in . /// @@ -141,12 +162,12 @@ internal interface ISimpleflowParserVisitor : IParseTreeVisitor /// The visitor result. Result VisitFunctionExpression([NotNull] SimpleflowParser.FunctionExpressionContext context); /// - /// Visit a parse tree produced by the ArrayLiteralExpression + /// Visit a parse tree produced by the UniaryPlusExpression /// labeled alternative in . /// /// The parse tree. /// The visitor result. - Result VisitArrayLiteralExpression([NotNull] SimpleflowParser.ArrayLiteralExpressionContext context); + Result VisitUniaryPlusExpression([NotNull] SimpleflowParser.UniaryPlusExpressionContext context); /// /// Visit a parse tree produced by the SimpleLiteralExpression /// labeled alternative in . @@ -155,13 +176,6 @@ internal interface ISimpleflowParserVisitor : IParseTreeVisitor /// The visitor result. Result VisitSimpleLiteralExpression([NotNull] SimpleflowParser.SimpleLiteralExpressionContext context); /// - /// Visit a parse tree produced by the NotExpression - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitNotExpression([NotNull] SimpleflowParser.NotExpressionContext context); - /// /// Visit a parse tree produced by the JsonObjLiteralExpression /// labeled alternative in . /// diff --git a/src/Simpleflow/ScriptHelperContext.cs b/src/Simpleflow/RuntimeContext.cs similarity index 68% rename from src/Simpleflow/ScriptHelperContext.cs rename to src/Simpleflow/RuntimeContext.cs index ae84b43..ac79c1d 100644 --- a/src/Simpleflow/ScriptHelperContext.cs +++ b/src/Simpleflow/RuntimeContext.cs @@ -1,18 +1,22 @@ // Copyright (c) navtech.io. All rights reserved. // See License in the project root for license information. +using System; using System.Threading; namespace Simpleflow { - public sealed class ScriptHelperContext + /// + /// This class is for internal purpose only + /// + public sealed class RuntimeContext { readonly FlowOutput _flowOutput; readonly CancellationToken _token; - private ScriptHelperContext() { } + private RuntimeContext() { } - internal ScriptHelperContext(FlowOutput flowOutput, CancellationToken token) + internal RuntimeContext(FlowOutput flowOutput, CancellationToken token) { _flowOutput = flowOutput; _token = token; @@ -20,6 +24,8 @@ internal ScriptHelperContext(FlowOutput flowOutput, CancellationToken token) public bool HasErrors => _flowOutput.Errors.Count > 0; public bool HasMessages => _flowOutput.Messages.Count > 0; + + [Obsolete(null, true)] public bool HasOutputs => _flowOutput.Output.Count > 0; public CancellationToken CancellationToken => _token; } diff --git a/src/Simpleflow/Services/CacheService.cs b/src/Simpleflow/Services/CacheService.cs index 162c1c0..1c1534e 100644 --- a/src/Simpleflow/Services/CacheService.cs +++ b/src/Simpleflow/Services/CacheService.cs @@ -98,7 +98,7 @@ private void StoreIntoCacheCompiledScript(FlowContext context, strin private bool GetAndSetToContextTheCompiledScript(FlowContext context, string id) { - var compiledScript = _cache.Get>(key: id); + var compiledScript = _cache.Get>(key: id); var isAvailableInCache = compiledScript != null; if (isAvailableInCache) diff --git a/src/Simpleflow/Services/ExecutionService.cs b/src/Simpleflow/Services/ExecutionService.cs index a5880a1..37df893 100644 --- a/src/Simpleflow/Services/ExecutionService.cs +++ b/src/Simpleflow/Services/ExecutionService.cs @@ -35,7 +35,7 @@ public void Run(FlowContext context, NextPipelineService next) // Add trace for debugging context.Trace?.CreateNewTracePoint(nameof(ExecutionService)); - var scriptHelperContext = new ScriptHelperContext(context.Output, + var scriptHelperContext = new RuntimeContext(context.Output, context.Options?.CancellationToken ?? default); context.Internals.CompiledScript?.Invoke(context.Argument, context.Output, scriptHelperContext); diff --git a/src/Simpleflow/Simpleflow.csproj b/src/Simpleflow/Simpleflow.csproj index 5ec5029..8c25317 100644 --- a/src/Simpleflow/Simpleflow.csproj +++ b/src/Simpleflow/Simpleflow.csproj @@ -2,7 +2,7 @@ netcoreapp3.1;net6.0 PackageIcon.png - 1.0.8 + 1.0.9 README.md diff --git a/src/Simpleflow/Simpleflow.xml b/src/Simpleflow/Simpleflow.xml index ed4380b..0f97da4 100644 --- a/src/Simpleflow/Simpleflow.xml +++ b/src/Simpleflow/Simpleflow.xml @@ -619,6 +619,22 @@ The parse tree. + + + Enter a parse tree produced by the UniaryMinusExpression + labeled alternative in . + The default implementation does nothing. + + The parse tree. + + + + Exit a parse tree produced by the UniaryMinusExpression + labeled alternative in . + The default implementation does nothing. + + The parse tree. + Enter a parse tree produced by the ParenthesizedExpression @@ -667,6 +683,38 @@ The parse tree. + + + Enter a parse tree produced by the ArrayLiteralExpression + labeled alternative in . + The default implementation does nothing. + + The parse tree. + + + + Exit a parse tree produced by the ArrayLiteralExpression + labeled alternative in . + The default implementation does nothing. + + The parse tree. + + + + Enter a parse tree produced by the NotExpression + labeled alternative in . + The default implementation does nothing. + + The parse tree. + + + + Exit a parse tree produced by the NotExpression + labeled alternative in . + The default implementation does nothing. + + The parse tree. + Enter a parse tree produced by the LogicalExpression @@ -715,17 +763,17 @@ The parse tree. - + - Enter a parse tree produced by the ArrayLiteralExpression + Enter a parse tree produced by the UniaryPlusExpression labeled alternative in . The default implementation does nothing. The parse tree. - + - Exit a parse tree produced by the ArrayLiteralExpression + Exit a parse tree produced by the UniaryPlusExpression labeled alternative in . The default implementation does nothing. @@ -747,22 +795,6 @@ The parse tree. - - - Enter a parse tree produced by the NotExpression - labeled alternative in . - The default implementation does nothing. - - The parse tree. - - - - Exit a parse tree produced by the NotExpression - labeled alternative in . - The default implementation does nothing. - - The parse tree. - Enter a parse tree produced by the JsonObjLiteralExpression @@ -1178,6 +1210,18 @@ The parse tree. The visitor result. + + + Visit a parse tree produced by the UniaryMinusExpression + labeled alternative in . + + The default implementation returns the result of calling + on . + + + The parse tree. + The visitor result. + Visit a parse tree produced by the ParenthesizedExpression @@ -1214,9 +1258,9 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the LogicalExpression + Visit a parse tree produced by the ArrayLiteralExpression labeled alternative in . The default implementation returns the result of calling @@ -1226,9 +1270,9 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the ObjectIdentiferExpression + Visit a parse tree produced by the NotExpression labeled alternative in . The default implementation returns the result of calling @@ -1238,9 +1282,9 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the FunctionExpression + Visit a parse tree produced by the LogicalExpression labeled alternative in . The default implementation returns the result of calling @@ -1250,9 +1294,9 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the ArrayLiteralExpression + Visit a parse tree produced by the ObjectIdentiferExpression labeled alternative in . The default implementation returns the result of calling @@ -1262,9 +1306,9 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the SimpleLiteralExpression + Visit a parse tree produced by the FunctionExpression labeled alternative in . The default implementation returns the result of calling @@ -1274,9 +1318,21 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the NotExpression + Visit a parse tree produced by the UniaryPlusExpression + labeled alternative in . + + The default implementation returns the result of calling + on . + + + The parse tree. + The visitor result. + + + + Visit a parse tree produced by the SimpleLiteralExpression labeled alternative in . The default implementation returns the result of calling @@ -1635,6 +1691,20 @@ The parse tree. + + + Enter a parse tree produced by the UniaryMinusExpression + labeled alternative in . + + The parse tree. + + + + Exit a parse tree produced by the UniaryMinusExpression + labeled alternative in . + + The parse tree. + Enter a parse tree produced by the ParenthesizedExpression @@ -1677,6 +1747,34 @@ The parse tree. + + + Enter a parse tree produced by the ArrayLiteralExpression + labeled alternative in . + + The parse tree. + + + + Exit a parse tree produced by the ArrayLiteralExpression + labeled alternative in . + + The parse tree. + + + + Enter a parse tree produced by the NotExpression + labeled alternative in . + + The parse tree. + + + + Exit a parse tree produced by the NotExpression + labeled alternative in . + + The parse tree. + Enter a parse tree produced by the LogicalExpression @@ -1719,16 +1817,16 @@ The parse tree. - + - Enter a parse tree produced by the ArrayLiteralExpression + Enter a parse tree produced by the UniaryPlusExpression labeled alternative in . The parse tree. - + - Exit a parse tree produced by the ArrayLiteralExpression + Exit a parse tree produced by the UniaryPlusExpression labeled alternative in . The parse tree. @@ -1747,20 +1845,6 @@ The parse tree. - - - Enter a parse tree produced by the NotExpression - labeled alternative in . - - The parse tree. - - - - Exit a parse tree produced by the NotExpression - labeled alternative in . - - The parse tree. - Enter a parse tree produced by the JsonObjLiteralExpression @@ -2077,6 +2161,14 @@ The parse tree. The visitor result. + + + Visit a parse tree produced by the UniaryMinusExpression + labeled alternative in . + + The parse tree. + The visitor result. + Visit a parse tree produced by the ParenthesizedExpression @@ -2101,6 +2193,22 @@ The parse tree. The visitor result. + + + Visit a parse tree produced by the ArrayLiteralExpression + labeled alternative in . + + The parse tree. + The visitor result. + + + + Visit a parse tree produced by the NotExpression + labeled alternative in . + + The parse tree. + The visitor result. + Visit a parse tree produced by the LogicalExpression @@ -2125,9 +2233,9 @@ The parse tree. The visitor result. - + - Visit a parse tree produced by the ArrayLiteralExpression + Visit a parse tree produced by the UniaryPlusExpression labeled alternative in . The parse tree. @@ -2141,14 +2249,6 @@ The parse tree. The visitor result. - - - Visit a parse tree produced by the NotExpression - labeled alternative in . - - The parse tree. - The visitor result. - Visit a parse tree produced by the JsonObjLiteralExpression @@ -2345,6 +2445,11 @@ Looks up a localized string similar to A variable named '{0}' is already defined. + + + This class is for internal purpose only + + A service to cache the generate code instructions diff --git a/test/Simpleflow.Footprint/Program.cs b/test/Simpleflow.Footprint/Program.cs index a30cf7f..db27611 100644 --- a/test/Simpleflow.Footprint/Program.cs +++ b/test/Simpleflow.Footprint/Program.cs @@ -24,7 +24,7 @@ public SimpleflowVsInline() _flowScript = @" let x = 233 - rule when context.Id == x then + rule when arg.Id == x then message ""test"" "; @@ -34,8 +34,8 @@ public SimpleflowVsInline() let b = 5 let text = ""Welcome to new विश्वम्‌"" let liberate = true - let date = $GetDate() - let value = ( 2+3 ) * context.Id - 1 /* 5 x 233 -1 = 1164*/ + let date = $GetCurrentDate() + let value = ( 2 + 3 ) * arg.Id - 1 /* 5 x 233 -1 = 1164*/ rule when a == 2 then message ""Valid-1"" @@ -43,7 +43,7 @@ public SimpleflowVsInline() rule when ""x"" == text then message ""Valid-xy"" - rule when context.Id == 233 and a == 2 then + rule when arg.Id == 233 and a == 2 then message ""Valid-2"" message ""Valid-3"" end rule @@ -56,15 +56,15 @@ message date otherwise it runs as functional scripting */ - mutate a = 3 + set a = 3 output a output text output b - output context.Id + output arg.Id output value - rule when (context.Id == 233 and a == 3) or 2 == 3 then + rule when (arg.Id == 233 and a == 3) or 2 == 3 then error ""Invalid-"" "; } diff --git a/test/Simpleflow.Tests/Infrastructure/ScriptHelperContextTest.cs b/test/Simpleflow.Tests/Infrastructure/ScriptHelperContextTest.cs index 6015c75..21c3142 100644 --- a/test/Simpleflow.Tests/Infrastructure/ScriptHelperContextTest.cs +++ b/test/Simpleflow.Tests/Infrastructure/ScriptHelperContextTest.cs @@ -21,7 +21,7 @@ output x // Act var result = SimpleflowEngine.Run(script, new object()); - var scriptHelperContext = new ScriptHelperContext(result, System.Threading.CancellationToken.None); + var scriptHelperContext = new RuntimeContext(result, System.Threading.CancellationToken.None); // Assert Assert.True(scriptHelperContext.HasErrors); @@ -41,7 +41,7 @@ public void HasNoErrorsMessagesOutput() // Act var result = SimpleflowEngine.Run(script, new object()); - var scriptHelperContext = new ScriptHelperContext(result, System.Threading.CancellationToken.None); + var scriptHelperContext = new RuntimeContext(result, System.Threading.CancellationToken.None); // Assert Assert.False(scriptHelperContext.HasErrors); diff --git a/test/Simpleflow.Tests/Scripting/ArithmeticExpressionsTest.cs b/test/Simpleflow.Tests/Scripting/ArithmeticExpressionsTest.cs index 41716b8..ce18adf 100644 --- a/test/Simpleflow.Tests/Scripting/ArithmeticExpressionsTest.cs +++ b/test/Simpleflow.Tests/Scripting/ArithmeticExpressionsTest.cs @@ -18,10 +18,12 @@ public void ArithmeticOperations() // TODO negative and with different data types (int,float,decimal) // TODO module % operator + int a = - 1; + var script = @" - let value = 2 + 3 * 2 - 1 - let value2 = ( 2 + 3 ) * 2 - 1 + let value = 2+(+3)*2-1 + let value2 = (2+3) * 2 - 1 let value3 = ( 2 + 3 ) * arg.Id - 1 let value4 = ( 2 + 3 * 2 ) * 2 - 1 let value5 = ( (4 + 3) * 2 ) * 2 - 1