elsa-core/src/modules/Elsa.Expressions.Dsl/Abstractions/ElsaParser.cs
2025-05-20 12:52:19 +01:00

2197 lines
78 KiB
C#

//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.10.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Expressions.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.10.1
// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419
using System;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Collections.Generic;
using Antlr4.Runtime;
using Antlr4.Runtime.Atn;
using Antlr4.Runtime.Misc;
using Antlr4.Runtime.Tree;
using DFA = Antlr4.Runtime.Dfa.DFA;
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.10.1")]
[System.CLSCompliant(false)]
public partial class ElsaParser : Parser {
protected static DFA[] decisionToDFA;
protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
public const int
EQ=1, GREATER=2, INCREMENT=3, DECREMENT=4, NEW=5, VARIABLE=6, LET=7, IF=8,
THEN=9, ELSE=10, FOR=11, RETURN=12, VOID=13, FLOAT=14, INT=15, STRING=16,
OBJECT=17, EXPRESSION_MARKER=18, SYMBOL=19, COLON=20, SEMICOLON=21, COMMA=22,
PLUS=23, MINUS=24, STAR=25, EQUALS=26, NOT_EQUALS=27, GREATER_EQUALS=28,
LESS=29, LESS_EQUALS=30, LAMBDA=31, PARENTHESES_OPEN=32, PARENTHESES_CLOSE=33,
BRACKET_OPEN=34, BRACKET_CLOSE=35, CURLYBRACE_OPEN=36, CURLYBRACE_CLOSE=37,
EXCLAMATION=38, PIPE=39, PIPE_DBL=40, PERIOD=41, STRING_VAL=42, BACKTICKSTRING_VAL=43,
LINE_COMMENT=44, INTEGER_VAL=45, ID=46, WS=47, ESC=48;
public const int
RULE_program = 0, RULE_object = 1, RULE_newObject = 2, RULE_varDecl = 3,
RULE_localVarDecl = 4, RULE_type = 5, RULE_expressionMarker = 6, RULE_expressionContent = 7,
RULE_methodCall = 8, RULE_funcCall = 9, RULE_args = 10, RULE_arg = 11,
RULE_block = 12, RULE_objectInitializer = 13, RULE_propertyList = 14,
RULE_property = 15, RULE_stat = 16, RULE_thenStat = 17, RULE_elseStat = 18,
RULE_expr = 19, RULE_exprList = 20;
public static readonly string[] ruleNames = {
"program", "object", "newObject", "varDecl", "localVarDecl", "type", "expressionMarker",
"expressionContent", "methodCall", "funcCall", "args", "arg", "block",
"objectInitializer", "propertyList", "property", "stat", "thenStat", "elseStat",
"expr", "exprList"
};
private static readonly string[] _LiteralNames = {
null, "'='", "'>'", "'++'", "'--'", "'new'", "'variable'", "'let'", "'if'",
"'then'", "'else'", "'for'", "'return'", "'void'", "'float'", "'int'",
"'string'", "'object'", "'expression'", null, "':'", "';'", "','", "'+'",
"'-'", "'*'", "'=='", "'!='", "'>='", "'<'", "'<='", "'=>'", "'('", "')'",
"'['", "']'", "'{'", "'}'", "'!'", "'|'", "'||'", "'.'", null, null, null,
null, null, null, "'\\|'"
};
private static readonly string[] _SymbolicNames = {
null, "EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "VARIABLE", "LET",
"IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT", "STRING",
"OBJECT", "EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON", "COMMA",
"PLUS", "MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS",
"LESS_EQUALS", "LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN",
"BRACKET_CLOSE", "CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION",
"PIPE", "PIPE_DBL", "PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL", "LINE_COMMENT",
"INTEGER_VAL", "ID", "WS", "ESC"
};
public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
[NotNull]
public override IVocabulary Vocabulary
{
get
{
return DefaultVocabulary;
}
}
public override string GrammarFileName { get { return "ElsaParser.g4"; } }
public override string[] RuleNames { get { return ruleNames; } }
public override int[] SerializedAtn { get { return _serializedATN; } }
static ElsaParser() {
decisionToDFA = new DFA[_ATN.NumberOfDecisions];
for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
}
}
public ElsaParser(ITokenStream input) : this(input, Console.Out, Console.Error) { }
public ElsaParser(ITokenStream input, TextWriter output, TextWriter errorOutput)
: base(input, output, errorOutput)
{
Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
}
public partial class ProgramContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public StatContext[] stat() {
return GetRuleContexts<StatContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public StatContext stat(int i) {
return GetRuleContext<StatContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LINE_COMMENT() { return GetTokens(ElsaParser.LINE_COMMENT); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LINE_COMMENT(int i) {
return GetToken(ElsaParser.LINE_COMMENT, i);
}
public ProgramContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_program; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitProgram(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ProgramContext program() {
ProgramContext _localctx = new ProgramContext(Context, State);
EnterRule(_localctx, 0, RULE_program);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 46;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << VARIABLE) | (1L << LET) | (1L << IF) | (1L << FOR) | (1L << RETURN) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << CURLYBRACE_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << LINE_COMMENT) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
State = 44;
ErrorHandler.Sync(this);
switch (TokenStream.LA(1)) {
case NEW:
case VARIABLE:
case LET:
case IF:
case FOR:
case RETURN:
case EXPRESSION_MARKER:
case MINUS:
case PARENTHESES_OPEN:
case BRACKET_OPEN:
case CURLYBRACE_OPEN:
case EXCLAMATION:
case STRING_VAL:
case BACKTICKSTRING_VAL:
case INTEGER_VAL:
case ID:
{
State = 42;
stat();
}
break;
case LINE_COMMENT:
{
State = 43;
Match(LINE_COMMENT);
}
break;
default:
throw new NoViableAltException(this);
}
}
State = 48;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ObjectContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ObjectInitializerContext objectInitializer() {
return GetRuleContext<ObjectInitializerContext>(0);
}
public ObjectContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_object; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitObject(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ObjectContext @object() {
ObjectContext _localctx = new ObjectContext(Context, State);
EnterRule(_localctx, 2, RULE_object);
try {
EnterOuterAlt(_localctx, 1);
{
State = 49;
Match(ID);
State = 51;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) {
case 1:
{
State = 50;
objectInitializer();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class NewObjectContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEW() { return GetToken(ElsaParser.NEW, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_OPEN() { return GetToken(ElsaParser.PARENTHESES_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_CLOSE() { return GetToken(ElsaParser.PARENTHESES_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LESS() { return GetToken(ElsaParser.LESS, 0); }
[System.Diagnostics.DebuggerNonUserCode] public TypeContext type() {
return GetRuleContext<TypeContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GREATER() { return GetToken(ElsaParser.GREATER, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ArgsContext args() {
return GetRuleContext<ArgsContext>(0);
}
public NewObjectContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_newObject; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitNewObject(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public NewObjectContext newObject() {
NewObjectContext _localctx = new NewObjectContext(Context, State);
EnterRule(_localctx, 4, RULE_newObject);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 53;
Match(NEW);
State = 54;
Match(ID);
State = 59;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==LESS) {
{
State = 55;
Match(LESS);
State = 56;
type();
State = 57;
Match(GREATER);
}
}
State = 61;
Match(PARENTHESES_OPEN);
State = 63;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
State = 62;
args();
}
}
State = 65;
Match(PARENTHESES_CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class VarDeclContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VARIABLE() { return GetToken(ElsaParser.VARIABLE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COLON() { return GetToken(ElsaParser.COLON, 0); }
[System.Diagnostics.DebuggerNonUserCode] public TypeContext type() {
return GetRuleContext<TypeContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(ElsaParser.EQ, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
public VarDeclContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_varDecl; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitVarDecl(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public VarDeclContext varDecl() {
VarDeclContext _localctx = new VarDeclContext(Context, State);
EnterRule(_localctx, 6, RULE_varDecl);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 67;
Match(VARIABLE);
State = 68;
Match(ID);
State = 71;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==COLON) {
{
State = 69;
Match(COLON);
State = 70;
type();
}
}
State = 75;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==EQ) {
{
State = 73;
Match(EQ);
State = 74;
expr(0);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class LocalVarDeclContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LET() { return GetToken(ElsaParser.LET, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COLON() { return GetToken(ElsaParser.COLON, 0); }
[System.Diagnostics.DebuggerNonUserCode] public TypeContext type() {
return GetRuleContext<TypeContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(ElsaParser.EQ, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
public LocalVarDeclContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_localVarDecl; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitLocalVarDecl(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public LocalVarDeclContext localVarDecl() {
LocalVarDeclContext _localctx = new LocalVarDeclContext(Context, State);
EnterRule(_localctx, 8, RULE_localVarDecl);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 77;
Match(LET);
State = 78;
Match(ID);
State = 81;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==COLON) {
{
State = 79;
Match(COLON);
State = 80;
type();
}
}
State = 85;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==EQ) {
{
State = 83;
Match(EQ);
State = 84;
expr(0);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class TypeContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VOID() { return GetToken(ElsaParser.VOID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FLOAT() { return GetToken(ElsaParser.FLOAT, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INT() { return GetToken(ElsaParser.INT, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OBJECT() { return GetToken(ElsaParser.OBJECT, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING() { return GetToken(ElsaParser.STRING, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
public TypeContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_type; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitType(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public TypeContext type() {
TypeContext _localctx = new TypeContext(Context, State);
EnterRule(_localctx, 10, RULE_type);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 87;
_la = TokenStream.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << VOID) | (1L << FLOAT) | (1L << INT) | (1L << STRING) | (1L << OBJECT) | (1L << ID))) != 0)) ) {
ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ExpressionMarkerContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXPRESSION_MARKER() { return GetToken(ElsaParser.EXPRESSION_MARKER, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_OPEN() { return GetToken(ElsaParser.PARENTHESES_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(ElsaParser.COMMA, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContentContext expressionContent() {
return GetRuleContext<ExpressionContentContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_CLOSE() { return GetToken(ElsaParser.PARENTHESES_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LAMBDA() { return GetToken(ElsaParser.LAMBDA, 0); }
public ExpressionMarkerContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_expressionMarker; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitExpressionMarker(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ExpressionMarkerContext expressionMarker() {
ExpressionMarkerContext _localctx = new ExpressionMarkerContext(Context, State);
EnterRule(_localctx, 12, RULE_expressionMarker);
try {
State = 99;
ErrorHandler.Sync(this);
switch (TokenStream.LA(1)) {
case EXPRESSION_MARKER:
EnterOuterAlt(_localctx, 1);
{
State = 89;
Match(EXPRESSION_MARKER);
State = 90;
Match(PARENTHESES_OPEN);
State = 91;
Match(ID);
State = 92;
Match(COMMA);
State = 93;
expressionContent();
State = 94;
Match(PARENTHESES_CLOSE);
}
break;
case ID:
EnterOuterAlt(_localctx, 2);
{
State = 96;
Match(ID);
State = 97;
Match(LAMBDA);
State = 98;
expressionContent();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ExpressionContentContext : ParserRuleContext {
public ExpressionContentContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_expressionContent; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitExpressionContent(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ExpressionContentContext expressionContent() {
ExpressionContentContext _localctx = new ExpressionContentContext(Context, State);
EnterRule(_localctx, 14, RULE_expressionContent);
try {
int _alt;
EnterOuterAlt(_localctx, 1);
{
State = 104;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,10,Context);
while ( _alt!=1 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1+1 ) {
{
{
State = 101;
MatchWildcard();
}
}
}
State = 106;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,10,Context);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class MethodCallContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PERIOD() { return GetToken(ElsaParser.PERIOD, 0); }
[System.Diagnostics.DebuggerNonUserCode] public FuncCallContext funcCall() {
return GetRuleContext<FuncCallContext>(0);
}
public MethodCallContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_methodCall; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitMethodCall(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public MethodCallContext methodCall() {
MethodCallContext _localctx = new MethodCallContext(Context, State);
EnterRule(_localctx, 16, RULE_methodCall);
try {
EnterOuterAlt(_localctx, 1);
{
State = 107;
Match(ID);
State = 108;
Match(PERIOD);
State = 109;
funcCall();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class FuncCallContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_OPEN() { return GetToken(ElsaParser.PARENTHESES_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_CLOSE() { return GetToken(ElsaParser.PARENTHESES_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ArgsContext args() {
return GetRuleContext<ArgsContext>(0);
}
public FuncCallContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_funcCall; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitFuncCall(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public FuncCallContext funcCall() {
FuncCallContext _localctx = new FuncCallContext(Context, State);
EnterRule(_localctx, 18, RULE_funcCall);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 111;
Match(ID);
State = 112;
Match(PARENTHESES_OPEN);
State = 114;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
State = 113;
args();
}
}
State = 116;
Match(PARENTHESES_CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ArgsContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ArgContext[] arg() {
return GetRuleContexts<ArgContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ArgContext arg(int i) {
return GetRuleContext<ArgContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(ElsaParser.COMMA); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) {
return GetToken(ElsaParser.COMMA, i);
}
public ArgsContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_args; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitArgs(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ArgsContext args() {
ArgsContext _localctx = new ArgsContext(Context, State);
EnterRule(_localctx, 20, RULE_args);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 118;
arg();
State = 123;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==COMMA) {
{
{
State = 119;
Match(COMMA);
State = 120;
arg();
}
}
State = 125;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ArgContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionMarkerContext expressionMarker() {
return GetRuleContext<ExpressionMarkerContext>(0);
}
public ArgContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_arg; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitArg(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ArgContext arg() {
ArgContext _localctx = new ArgContext(Context, State);
EnterRule(_localctx, 22, RULE_arg);
try {
State = 128;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) {
case 1:
EnterOuterAlt(_localctx, 1);
{
State = 126;
expr(0);
}
break;
case 2:
EnterOuterAlt(_localctx, 2);
{
State = 127;
expressionMarker();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class BlockContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CURLYBRACE_OPEN() { return GetToken(ElsaParser.CURLYBRACE_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CURLYBRACE_CLOSE() { return GetToken(ElsaParser.CURLYBRACE_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public StatContext[] stat() {
return GetRuleContexts<StatContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public StatContext stat(int i) {
return GetRuleContext<StatContext>(i);
}
public BlockContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_block; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitBlock(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public BlockContext block() {
BlockContext _localctx = new BlockContext(Context, State);
EnterRule(_localctx, 24, RULE_block);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 130;
Match(CURLYBRACE_OPEN);
State = 134;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << VARIABLE) | (1L << LET) | (1L << IF) | (1L << FOR) | (1L << RETURN) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << CURLYBRACE_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
{
State = 131;
stat();
}
}
State = 136;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
State = 137;
Match(CURLYBRACE_CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ObjectInitializerContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CURLYBRACE_OPEN() { return GetToken(ElsaParser.CURLYBRACE_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CURLYBRACE_CLOSE() { return GetToken(ElsaParser.CURLYBRACE_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public PropertyListContext propertyList() {
return GetRuleContext<PropertyListContext>(0);
}
public ObjectInitializerContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_objectInitializer; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitObjectInitializer(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ObjectInitializerContext objectInitializer() {
ObjectInitializerContext _localctx = new ObjectInitializerContext(Context, State);
EnterRule(_localctx, 26, RULE_objectInitializer);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 139;
Match(CURLYBRACE_OPEN);
State = 141;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==ID) {
{
State = 140;
propertyList();
}
}
State = 143;
Match(CURLYBRACE_CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class PropertyListContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public PropertyContext[] property() {
return GetRuleContexts<PropertyContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public PropertyContext property(int i) {
return GetRuleContext<PropertyContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(ElsaParser.COMMA); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) {
return GetToken(ElsaParser.COMMA, i);
}
public PropertyListContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_propertyList; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitPropertyList(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public PropertyListContext propertyList() {
PropertyListContext _localctx = new PropertyListContext(Context, State);
EnterRule(_localctx, 28, RULE_propertyList);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 145;
property();
State = 150;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==COMMA) {
{
{
State = 146;
Match(COMMA);
State = 147;
property();
}
}
State = 152;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class PropertyContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COLON() { return GetToken(ElsaParser.COLON, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
public PropertyContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_property; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitProperty(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public PropertyContext property() {
PropertyContext _localctx = new PropertyContext(Context, State);
EnterRule(_localctx, 30, RULE_property);
try {
EnterOuterAlt(_localctx, 1);
{
State = 153;
Match(ID);
State = 154;
Match(COLON);
State = 155;
expr(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class StatContext : ParserRuleContext {
public StatContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_stat; } }
public StatContext() { }
public virtual void CopyFrom(StatContext context) {
base.CopyFrom(context);
}
}
public partial class IfStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IF() { return GetToken(ElsaParser.IF, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(ElsaParser.THEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ThenStatContext thenStat() {
return GetRuleContext<ThenStatContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ELSE() { return GetToken(ElsaParser.ELSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ElseStatContext elseStat() {
return GetRuleContext<ElseStatContext>(0);
}
public IfStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitIfStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class BlockStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public BlockContext block() {
return GetRuleContext<BlockContext>(0);
}
public BlockStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitBlockStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class ExpressionStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(ElsaParser.SEMICOLON, 0); }
public ExpressionStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitExpressionStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class ObjectStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public ObjectContext @object() {
return GetRuleContext<ObjectContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(ElsaParser.SEMICOLON, 0); }
public ObjectStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitObjectStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class ReturnStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RETURN() { return GetToken(ElsaParser.RETURN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(ElsaParser.SEMICOLON, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
public ReturnStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitReturnStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class VariableDeclarationStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public VarDeclContext varDecl() {
return GetRuleContext<VarDeclContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(ElsaParser.SEMICOLON, 0); }
public VariableDeclarationStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitVariableDeclarationStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class AssignmentStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(ElsaParser.EQ, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(ElsaParser.SEMICOLON, 0); }
public AssignmentStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitAssignmentStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class LocalVariableDeclarationStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public LocalVarDeclContext localVarDecl() {
return GetRuleContext<LocalVarDeclContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(ElsaParser.SEMICOLON, 0); }
public LocalVariableDeclarationStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitLocalVariableDeclarationStat(this);
else return visitor.VisitChildren(this);
}
}
public partial class ForStatContext : StatContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FOR() { return GetToken(ElsaParser.FOR, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_OPEN() { return GetToken(ElsaParser.PARENTHESES_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(ElsaParser.EQ, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] SEMICOLON() { return GetTokens(ElsaParser.SEMICOLON); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON(int i) {
return GetToken(ElsaParser.SEMICOLON, i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_CLOSE() { return GetToken(ElsaParser.PARENTHESES_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public StatContext stat() {
return GetRuleContext<StatContext>(0);
}
public ForStatContext(StatContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitForStat(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public StatContext stat() {
StatContext _localctx = new StatContext(Context, State);
EnterRule(_localctx, 32, RULE_stat);
int _la;
try {
State = 200;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,19,Context) ) {
case 1:
_localctx = new ObjectStatContext(_localctx);
EnterOuterAlt(_localctx, 1);
{
State = 157;
@object();
State = 158;
Match(SEMICOLON);
}
break;
case 2:
_localctx = new IfStatContext(_localctx);
EnterOuterAlt(_localctx, 2);
{
State = 160;
Match(IF);
State = 161;
expr(0);
State = 162;
Match(THEN);
State = 163;
thenStat();
State = 166;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,17,Context) ) {
case 1:
{
State = 164;
Match(ELSE);
State = 165;
elseStat();
}
break;
}
}
break;
case 3:
_localctx = new ForStatContext(_localctx);
EnterOuterAlt(_localctx, 3);
{
State = 168;
Match(FOR);
State = 169;
Match(PARENTHESES_OPEN);
State = 170;
Match(ID);
State = 171;
Match(EQ);
State = 172;
expr(0);
State = 173;
Match(SEMICOLON);
State = 174;
expr(0);
State = 175;
Match(SEMICOLON);
State = 176;
expr(0);
State = 177;
Match(PARENTHESES_CLOSE);
State = 178;
stat();
}
break;
case 4:
_localctx = new ReturnStatContext(_localctx);
EnterOuterAlt(_localctx, 4);
{
State = 180;
Match(RETURN);
State = 182;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
State = 181;
expr(0);
}
}
State = 184;
Match(SEMICOLON);
}
break;
case 5:
_localctx = new BlockStatContext(_localctx);
EnterOuterAlt(_localctx, 5);
{
State = 185;
block();
}
break;
case 6:
_localctx = new VariableDeclarationStatContext(_localctx);
EnterOuterAlt(_localctx, 6);
{
State = 186;
varDecl();
State = 187;
Match(SEMICOLON);
}
break;
case 7:
_localctx = new LocalVariableDeclarationStatContext(_localctx);
EnterOuterAlt(_localctx, 7);
{
State = 189;
localVarDecl();
State = 190;
Match(SEMICOLON);
}
break;
case 8:
_localctx = new AssignmentStatContext(_localctx);
EnterOuterAlt(_localctx, 8);
{
State = 192;
expr(0);
State = 193;
Match(EQ);
State = 194;
expr(0);
State = 195;
Match(SEMICOLON);
}
break;
case 9:
_localctx = new ExpressionStatContext(_localctx);
EnterOuterAlt(_localctx, 9);
{
State = 197;
expr(0);
State = 198;
Match(SEMICOLON);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ThenStatContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public StatContext stat() {
return GetRuleContext<StatContext>(0);
}
public ThenStatContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_thenStat; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitThenStat(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ThenStatContext thenStat() {
ThenStatContext _localctx = new ThenStatContext(Context, State);
EnterRule(_localctx, 34, RULE_thenStat);
try {
EnterOuterAlt(_localctx, 1);
{
State = 202;
stat();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ElseStatContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public StatContext stat() {
return GetRuleContext<StatContext>(0);
}
public ElseStatContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_elseStat; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitElseStat(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ElseStatContext elseStat() {
ElseStatContext _localctx = new ElseStatContext(Context, State);
EnterRule(_localctx, 36, RULE_elseStat);
try {
EnterOuterAlt(_localctx, 1);
{
State = 204;
stat();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ExprContext : ParserRuleContext {
public ExprContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_expr; } }
public ExprContext() { }
public virtual void CopyFrom(ExprContext context) {
base.CopyFrom(context);
}
}
public partial class NewObjectExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public NewObjectContext newObject() {
return GetRuleContext<NewObjectContext>(0);
}
public NewObjectExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitNewObjectExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class SubtractExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(ElsaParser.MINUS, 0); }
public SubtractExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitSubtractExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class IncrementExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INCREMENT() { return GetToken(ElsaParser.INCREMENT, 0); }
public IncrementExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitIncrementExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class ObjectExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ObjectContext @object() {
return GetRuleContext<ObjectContext>(0);
}
public ObjectExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitObjectExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class StringValueExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING_VAL() { return GetToken(ElsaParser.STRING_VAL, 0); }
public StringValueExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitStringValueExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class MultiplyExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STAR() { return GetToken(ElsaParser.STAR, 0); }
public MultiplyExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitMultiplyExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class ParenthesesExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_OPEN() { return GetToken(ElsaParser.PARENTHESES_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARENTHESES_CLOSE() { return GetToken(ElsaParser.PARENTHESES_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprListContext exprList() {
return GetRuleContext<ExprListContext>(0);
}
public ParenthesesExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitParenthesesExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class FunctionExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public FuncCallContext funcCall() {
return GetRuleContext<FuncCallContext>(0);
}
public FunctionExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitFunctionExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class DecrementExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DECREMENT() { return GetToken(ElsaParser.DECREMENT, 0); }
public DecrementExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitDecrementExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class NegateExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(ElsaParser.MINUS, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
public NegateExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitNegateExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class MethodCallExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public MethodCallContext methodCall() {
return GetRuleContext<MethodCallContext>(0);
}
public MethodCallExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitMethodCallExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class VariableExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(ElsaParser.ID, 0); }
public VariableExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitVariableExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class NotExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXCLAMATION() { return GetToken(ElsaParser.EXCLAMATION, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr() {
return GetRuleContext<ExprContext>(0);
}
public NotExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitNotExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class IntegerValueExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER_VAL() { return GetToken(ElsaParser.INTEGER_VAL, 0); }
public IntegerValueExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitIntegerValueExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class AddExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PLUS() { return GetToken(ElsaParser.PLUS, 0); }
public AddExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitAddExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class ExpressionMarkerExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionMarkerContext expressionMarker() {
return GetRuleContext<ExpressionMarkerContext>(0);
}
public ExpressionMarkerExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitExpressionMarkerExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class BackTickStringValueExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BACKTICKSTRING_VAL() { return GetToken(ElsaParser.BACKTICKSTRING_VAL, 0); }
public BackTickStringValueExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitBackTickStringValueExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class BracketsExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BRACKET_OPEN() { return GetToken(ElsaParser.BRACKET_OPEN, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BRACKET_CLOSE() { return GetToken(ElsaParser.BRACKET_CLOSE, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExprListContext exprList() {
return GetRuleContext<ExprListContext>(0);
}
public BracketsExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitBracketsExpr(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompareExprContext : ExprContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQUALS() { return GetToken(ElsaParser.EQUALS, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GREATER() { return GetToken(ElsaParser.GREATER, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LESS() { return GetToken(ElsaParser.LESS, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NOT_EQUALS() { return GetToken(ElsaParser.NOT_EQUALS, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GREATER_EQUALS() { return GetToken(ElsaParser.GREATER_EQUALS, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LESS_EQUALS() { return GetToken(ElsaParser.LESS_EQUALS, 0); }
public CompareExprContext(ExprContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitCompareExpr(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ExprContext expr() {
return expr(0);
}
private ExprContext expr(int _p) {
ParserRuleContext _parentctx = Context;
int _parentState = State;
ExprContext _localctx = new ExprContext(Context, _parentState);
ExprContext _prevctx = _localctx;
int _startState = 38;
EnterRecursionRule(_localctx, 38, RULE_expr, _p);
int _la;
try {
int _alt;
EnterOuterAlt(_localctx, 1);
{
State = 230;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,22,Context) ) {
case 1:
{
_localctx = new FunctionExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 207;
funcCall();
}
break;
case 2:
{
_localctx = new ExpressionMarkerExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 208;
expressionMarker();
}
break;
case 3:
{
_localctx = new ObjectExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 209;
@object();
}
break;
case 4:
{
_localctx = new NewObjectExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 210;
newObject();
}
break;
case 5:
{
_localctx = new NegateExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 211;
Match(MINUS);
State = 212;
expr(13);
}
break;
case 6:
{
_localctx = new NotExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 213;
Match(EXCLAMATION);
State = 214;
expr(12);
}
break;
case 7:
{
_localctx = new IntegerValueExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 215;
Match(INTEGER_VAL);
}
break;
case 8:
{
_localctx = new StringValueExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 216;
Match(STRING_VAL);
}
break;
case 9:
{
_localctx = new BackTickStringValueExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 217;
Match(BACKTICKSTRING_VAL);
}
break;
case 10:
{
_localctx = new ParenthesesExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 218;
Match(PARENTHESES_OPEN);
State = 220;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
State = 219;
exprList();
}
}
State = 222;
Match(PARENTHESES_CLOSE);
}
break;
case 11:
{
_localctx = new BracketsExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 223;
Match(BRACKET_OPEN);
State = 225;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NEW) | (1L << EXPRESSION_MARKER) | (1L << MINUS) | (1L << PARENTHESES_OPEN) | (1L << BRACKET_OPEN) | (1L << EXCLAMATION) | (1L << STRING_VAL) | (1L << BACKTICKSTRING_VAL) | (1L << INTEGER_VAL) | (1L << ID))) != 0)) {
{
State = 224;
exprList();
}
}
State = 227;
Match(BRACKET_CLOSE);
}
break;
case 12:
{
_localctx = new MethodCallExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 228;
methodCall();
}
break;
case 13:
{
_localctx = new VariableExprContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 229;
Match(ID);
}
break;
}
Context.Stop = TokenStream.LT(-1);
State = 250;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,24,Context);
while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( ParseListeners!=null )
TriggerExitRuleEvent();
_prevctx = _localctx;
{
State = 248;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,23,Context) ) {
case 1:
{
_localctx = new MultiplyExprContext(new ExprContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expr);
State = 232;
if (!(Precpred(Context, 11))) throw new FailedPredicateException(this, "Precpred(Context, 11)");
State = 233;
Match(STAR);
State = 234;
expr(12);
}
break;
case 2:
{
_localctx = new AddExprContext(new ExprContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expr);
State = 235;
if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)");
State = 236;
Match(PLUS);
State = 237;
expr(11);
}
break;
case 3:
{
_localctx = new SubtractExprContext(new ExprContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expr);
State = 238;
if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)");
State = 239;
Match(MINUS);
State = 240;
expr(10);
}
break;
case 4:
{
_localctx = new CompareExprContext(new ExprContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expr);
State = 241;
if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)");
State = 242;
_la = TokenStream.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << GREATER) | (1L << EQUALS) | (1L << NOT_EQUALS) | (1L << GREATER_EQUALS) | (1L << LESS) | (1L << LESS_EQUALS))) != 0)) ) {
ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
State = 243;
expr(9);
}
break;
case 5:
{
_localctx = new IncrementExprContext(new ExprContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expr);
State = 244;
if (!(Precpred(Context, 15))) throw new FailedPredicateException(this, "Precpred(Context, 15)");
State = 245;
Match(INCREMENT);
}
break;
case 6:
{
_localctx = new DecrementExprContext(new ExprContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expr);
State = 246;
if (!(Precpred(Context, 14))) throw new FailedPredicateException(this, "Precpred(Context, 14)");
State = 247;
Match(DECREMENT);
}
break;
}
}
}
State = 252;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,24,Context);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
UnrollRecursionContexts(_parentctx);
}
return _localctx;
}
public partial class ExprListContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ExprContext[] expr() {
return GetRuleContexts<ExprContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {
return GetRuleContext<ExprContext>(i);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(ElsaParser.COMMA); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) {
return GetToken(ElsaParser.COMMA, i);
}
public ExprListContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_exprList; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept<TResult>(IParseTreeVisitor<TResult> visitor) {
IElsaParserVisitor<TResult> typedVisitor = visitor as IElsaParserVisitor<TResult>;
if (typedVisitor != null) return typedVisitor.VisitExprList(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public ExprListContext exprList() {
ExprListContext _localctx = new ExprListContext(Context, State);
EnterRule(_localctx, 40, RULE_exprList);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 253;
expr(0);
State = 258;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==COMMA) {
{
{
State = 254;
Match(COMMA);
State = 255;
expr(0);
}
}
State = 260;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 19: return expr_sempred((ExprContext)_localctx, predIndex);
}
return true;
}
private bool expr_sempred(ExprContext _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 4: return Precpred(Context, 15);
case 5: return Precpred(Context, 14);
}
return true;
}
private static int[] _serializedATN = {
4,1,48,262,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,1,0,1,0,5,
0,45,8,0,10,0,12,0,48,9,0,1,1,1,1,3,1,52,8,1,1,2,1,2,1,2,1,2,1,2,1,2,3,
2,60,8,2,1,2,1,2,3,2,64,8,2,1,2,1,2,1,3,1,3,1,3,1,3,3,3,72,8,3,1,3,1,3,
3,3,76,8,3,1,4,1,4,1,4,1,4,3,4,82,8,4,1,4,1,4,3,4,86,8,4,1,5,1,5,1,6,1,
6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,100,8,6,1,7,5,7,103,8,7,10,7,12,
7,106,9,7,1,8,1,8,1,8,1,8,1,9,1,9,1,9,3,9,115,8,9,1,9,1,9,1,10,1,10,1,
10,5,10,122,8,10,10,10,12,10,125,9,10,1,11,1,11,3,11,129,8,11,1,12,1,12,
5,12,133,8,12,10,12,12,12,136,9,12,1,12,1,12,1,13,1,13,3,13,142,8,13,1,
13,1,13,1,14,1,14,1,14,5,14,149,8,14,10,14,12,14,152,9,14,1,15,1,15,1,
15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,3,16,167,8,16,1,16,
1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,3,16,
183,8,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,
16,1,16,1,16,1,16,3,16,201,8,16,1,17,1,17,1,18,1,18,1,19,1,19,1,19,1,19,
1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,221,8,19,1,19,1,
19,1,19,3,19,226,8,19,1,19,1,19,1,19,3,19,231,8,19,1,19,1,19,1,19,1,19,
1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,5,19,249,8,
19,10,19,12,19,252,9,19,1,20,1,20,1,20,5,20,257,8,20,10,20,12,20,260,9,
20,1,20,1,104,1,38,21,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,
36,38,40,0,2,2,0,13,17,46,46,2,0,2,2,26,30,288,0,46,1,0,0,0,2,49,1,0,0,
0,4,53,1,0,0,0,6,67,1,0,0,0,8,77,1,0,0,0,10,87,1,0,0,0,12,99,1,0,0,0,14,
104,1,0,0,0,16,107,1,0,0,0,18,111,1,0,0,0,20,118,1,0,0,0,22,128,1,0,0,
0,24,130,1,0,0,0,26,139,1,0,0,0,28,145,1,0,0,0,30,153,1,0,0,0,32,200,1,
0,0,0,34,202,1,0,0,0,36,204,1,0,0,0,38,230,1,0,0,0,40,253,1,0,0,0,42,45,
3,32,16,0,43,45,5,44,0,0,44,42,1,0,0,0,44,43,1,0,0,0,45,48,1,0,0,0,46,
44,1,0,0,0,46,47,1,0,0,0,47,1,1,0,0,0,48,46,1,0,0,0,49,51,5,46,0,0,50,
52,3,26,13,0,51,50,1,0,0,0,51,52,1,0,0,0,52,3,1,0,0,0,53,54,5,5,0,0,54,
59,5,46,0,0,55,56,5,29,0,0,56,57,3,10,5,0,57,58,5,2,0,0,58,60,1,0,0,0,
59,55,1,0,0,0,59,60,1,0,0,0,60,61,1,0,0,0,61,63,5,32,0,0,62,64,3,20,10,
0,63,62,1,0,0,0,63,64,1,0,0,0,64,65,1,0,0,0,65,66,5,33,0,0,66,5,1,0,0,
0,67,68,5,6,0,0,68,71,5,46,0,0,69,70,5,20,0,0,70,72,3,10,5,0,71,69,1,0,
0,0,71,72,1,0,0,0,72,75,1,0,0,0,73,74,5,1,0,0,74,76,3,38,19,0,75,73,1,
0,0,0,75,76,1,0,0,0,76,7,1,0,0,0,77,78,5,7,0,0,78,81,5,46,0,0,79,80,5,
20,0,0,80,82,3,10,5,0,81,79,1,0,0,0,81,82,1,0,0,0,82,85,1,0,0,0,83,84,
5,1,0,0,84,86,3,38,19,0,85,83,1,0,0,0,85,86,1,0,0,0,86,9,1,0,0,0,87,88,
7,0,0,0,88,11,1,0,0,0,89,90,5,18,0,0,90,91,5,32,0,0,91,92,5,46,0,0,92,
93,5,22,0,0,93,94,3,14,7,0,94,95,5,33,0,0,95,100,1,0,0,0,96,97,5,46,0,
0,97,98,5,31,0,0,98,100,3,14,7,0,99,89,1,0,0,0,99,96,1,0,0,0,100,13,1,
0,0,0,101,103,9,0,0,0,102,101,1,0,0,0,103,106,1,0,0,0,104,105,1,0,0,0,
104,102,1,0,0,0,105,15,1,0,0,0,106,104,1,0,0,0,107,108,5,46,0,0,108,109,
5,41,0,0,109,110,3,18,9,0,110,17,1,0,0,0,111,112,5,46,0,0,112,114,5,32,
0,0,113,115,3,20,10,0,114,113,1,0,0,0,114,115,1,0,0,0,115,116,1,0,0,0,
116,117,5,33,0,0,117,19,1,0,0,0,118,123,3,22,11,0,119,120,5,22,0,0,120,
122,3,22,11,0,121,119,1,0,0,0,122,125,1,0,0,0,123,121,1,0,0,0,123,124,
1,0,0,0,124,21,1,0,0,0,125,123,1,0,0,0,126,129,3,38,19,0,127,129,3,12,
6,0,128,126,1,0,0,0,128,127,1,0,0,0,129,23,1,0,0,0,130,134,5,36,0,0,131,
133,3,32,16,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,5,37,0,0,138,25,1,0,0,
0,139,141,5,36,0,0,140,142,3,28,14,0,141,140,1,0,0,0,141,142,1,0,0,0,142,
143,1,0,0,0,143,144,5,37,0,0,144,27,1,0,0,0,145,150,3,30,15,0,146,147,
5,22,0,0,147,149,3,30,15,0,148,146,1,0,0,0,149,152,1,0,0,0,150,148,1,0,
0,0,150,151,1,0,0,0,151,29,1,0,0,0,152,150,1,0,0,0,153,154,5,46,0,0,154,
155,5,20,0,0,155,156,3,38,19,0,156,31,1,0,0,0,157,158,3,2,1,0,158,159,
5,21,0,0,159,201,1,0,0,0,160,161,5,8,0,0,161,162,3,38,19,0,162,163,5,9,
0,0,163,166,3,34,17,0,164,165,5,10,0,0,165,167,3,36,18,0,166,164,1,0,0,
0,166,167,1,0,0,0,167,201,1,0,0,0,168,169,5,11,0,0,169,170,5,32,0,0,170,
171,5,46,0,0,171,172,5,1,0,0,172,173,3,38,19,0,173,174,5,21,0,0,174,175,
3,38,19,0,175,176,5,21,0,0,176,177,3,38,19,0,177,178,5,33,0,0,178,179,
3,32,16,0,179,201,1,0,0,0,180,182,5,12,0,0,181,183,3,38,19,0,182,181,1,
0,0,0,182,183,1,0,0,0,183,184,1,0,0,0,184,201,5,21,0,0,185,201,3,24,12,
0,186,187,3,6,3,0,187,188,5,21,0,0,188,201,1,0,0,0,189,190,3,8,4,0,190,
191,5,21,0,0,191,201,1,0,0,0,192,193,3,38,19,0,193,194,5,1,0,0,194,195,
3,38,19,0,195,196,5,21,0,0,196,201,1,0,0,0,197,198,3,38,19,0,198,199,5,
21,0,0,199,201,1,0,0,0,200,157,1,0,0,0,200,160,1,0,0,0,200,168,1,0,0,0,
200,180,1,0,0,0,200,185,1,0,0,0,200,186,1,0,0,0,200,189,1,0,0,0,200,192,
1,0,0,0,200,197,1,0,0,0,201,33,1,0,0,0,202,203,3,32,16,0,203,35,1,0,0,
0,204,205,3,32,16,0,205,37,1,0,0,0,206,207,6,19,-1,0,207,231,3,18,9,0,
208,231,3,12,6,0,209,231,3,2,1,0,210,231,3,4,2,0,211,212,5,24,0,0,212,
231,3,38,19,13,213,214,5,38,0,0,214,231,3,38,19,12,215,231,5,45,0,0,216,
231,5,42,0,0,217,231,5,43,0,0,218,220,5,32,0,0,219,221,3,40,20,0,220,219,
1,0,0,0,220,221,1,0,0,0,221,222,1,0,0,0,222,231,5,33,0,0,223,225,5,34,
0,0,224,226,3,40,20,0,225,224,1,0,0,0,225,226,1,0,0,0,226,227,1,0,0,0,
227,231,5,35,0,0,228,231,3,16,8,0,229,231,5,46,0,0,230,206,1,0,0,0,230,
208,1,0,0,0,230,209,1,0,0,0,230,210,1,0,0,0,230,211,1,0,0,0,230,213,1,
0,0,0,230,215,1,0,0,0,230,216,1,0,0,0,230,217,1,0,0,0,230,218,1,0,0,0,
230,223,1,0,0,0,230,228,1,0,0,0,230,229,1,0,0,0,231,250,1,0,0,0,232,233,
10,11,0,0,233,234,5,25,0,0,234,249,3,38,19,12,235,236,10,10,0,0,236,237,
5,23,0,0,237,249,3,38,19,11,238,239,10,9,0,0,239,240,5,24,0,0,240,249,
3,38,19,10,241,242,10,8,0,0,242,243,7,1,0,0,243,249,3,38,19,9,244,245,
10,15,0,0,245,249,5,3,0,0,246,247,10,14,0,0,247,249,5,4,0,0,248,232,1,
0,0,0,248,235,1,0,0,0,248,238,1,0,0,0,248,241,1,0,0,0,248,244,1,0,0,0,
248,246,1,0,0,0,249,252,1,0,0,0,250,248,1,0,0,0,250,251,1,0,0,0,251,39,
1,0,0,0,252,250,1,0,0,0,253,258,3,38,19,0,254,255,5,22,0,0,255,257,3,38,
19,0,256,254,1,0,0,0,257,260,1,0,0,0,258,256,1,0,0,0,258,259,1,0,0,0,259,
41,1,0,0,0,260,258,1,0,0,0,26,44,46,51,59,63,71,75,81,85,99,104,114,123,
128,134,141,150,166,182,200,220,225,230,248,250,258
};
public static readonly ATN _ATN =
new ATNDeserializer().Deserialize(_serializedATN);
}