//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// ANTLR Version: 4.13.2
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
// Generated from /Users/melodidey/Source/csharp/Q1/Compiler/CGrammar.g4 by ANTLR 4.13.2
// 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.13.2")]
[System.CLSCompliant(false)]
public partial class CGrammarParser : Parser {
protected static DFA[] decisionToDFA;
protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
public const int
T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45,
T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, ID=51, INT=52, WS=53,
COMMENT=54;
public const int
RULE_program = 0, RULE_function = 1, RULE_block = 2, RULE_block_item = 3,
RULE_statement = 4, RULE_declaration = 5, RULE_expression = 6, RULE_constant = 7,
RULE_target = 8;
public static readonly string[] ruleNames = {
"program", "function", "block", "block_item", "statement", "declaration",
"expression", "constant", "target"
};
private static readonly string[] _LiteralNames = {
null, "'int'", "'('", "','", "')'", "';'", "'{'", "'}'", "'return'", "'if'",
"'else'", "'for'", "'while'", "'do'", "'break'", "'continue'", "'*'",
"'='", "'&'", "'!'", "'~'", "'++'", "'--'", "'/'", "'%'", "'+'", "'-'",
"'<'", "'>'", "'<='", "'>='", "'=='", "'!='", "'|'", "'^'", "'<<'", "'>>'",
"'&&'", "'||'", "'*='", "'/='", "'%='", "'+='", "'-='", "'&='", "'|='",
"'^='", "'<<='", "'>>='", "'?'", "':'"
};
private static readonly string[] _SymbolicNames = {
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, "ID", "INT", "WS", "COMMENT"
};
public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
[NotNull]
public override IVocabulary Vocabulary
{
get
{
return DefaultVocabulary;
}
}
public override string GrammarFileName { get { return "CGrammar.g4"; } }
public override string[] RuleNames { get { return ruleNames; } }
public override int[] SerializedAtn { get { return _serializedATN; } }
static CGrammarParser() {
decisionToDFA = new DFA[_ATN.NumberOfDecisions];
for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
}
}
public CGrammarParser(ITokenStream input) : this(input, Console.Out, Console.Error) { }
public CGrammarParser(ITokenStream input, TextWriter output, TextWriter errorOutput)
: base(input, output, errorOutput)
{
Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
}
public partial class ProgramContext : Q1.Compiler.Context {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Eof() { return GetToken(CGrammarParser.Eof, 0); }
[System.Diagnostics.DebuggerNonUserCode] public FunctionContext[] function() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public FunctionContext function(int i) {
return GetRuleContext(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(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
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 = 19;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
do {
{
{
State = 18;
function();
}
}
State = 21;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
} while ( _la==T__0 );
State = 23;
Match(Eof);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class FunctionContext : Q1.Compiler.Context {
public FunctionContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_function; } }
public FunctionContext() { }
public virtual void CopyFrom(FunctionContext context) {
base.CopyFrom(context);
}
}
public partial class FunctionPrototypeContext : FunctionContext {
public IToken name;
public IToken s1;
public IList _types = new List();
public IToken _ID;
public IList _params = new List();
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] ID() { return GetTokens(CGrammarParser.ID); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID(int i) {
return GetToken(CGrammarParser.ID, i);
}
public FunctionPrototypeContext(FunctionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitFunctionPrototype(this);
else return visitor.VisitChildren(this);
}
}
public partial class FunctionDefinitionContext : FunctionContext {
public IToken name;
public IToken s1;
public IList _types = new List();
public IToken _ID;
public IList _params = new List();
[System.Diagnostics.DebuggerNonUserCode] public BlockContext block() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] ID() { return GetTokens(CGrammarParser.ID); }
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID(int i) {
return GetToken(CGrammarParser.ID, i);
}
public FunctionDefinitionContext(FunctionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitFunctionDefinition(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public FunctionContext function() {
FunctionContext _localctx = new FunctionContext(Context, State);
EnterRule(_localctx, 2, RULE_function);
int _la;
try {
State = 59;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,5,Context) ) {
case 1:
_localctx = new FunctionPrototypeContext(_localctx);
EnterOuterAlt(_localctx, 1);
{
State = 25;
Match(T__0);
State = 26;
((FunctionPrototypeContext)_localctx).name = Match(ID);
State = 27;
Match(T__1);
State = 38;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==T__0) {
{
State = 28;
((FunctionPrototypeContext)_localctx).s1 = Match(T__0);
((FunctionPrototypeContext)_localctx)._types.Add(((FunctionPrototypeContext)_localctx).s1);
State = 29;
((FunctionPrototypeContext)_localctx)._ID = Match(ID);
((FunctionPrototypeContext)_localctx)._params.Add(((FunctionPrototypeContext)_localctx)._ID);
State = 35;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==T__2) {
{
{
State = 30;
Match(T__2);
State = 31;
((FunctionPrototypeContext)_localctx).s1 = Match(T__0);
((FunctionPrototypeContext)_localctx)._types.Add(((FunctionPrototypeContext)_localctx).s1);
State = 32;
((FunctionPrototypeContext)_localctx)._ID = Match(ID);
((FunctionPrototypeContext)_localctx)._params.Add(((FunctionPrototypeContext)_localctx)._ID);
}
}
State = 37;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
State = 40;
Match(T__3);
State = 41;
Match(T__4);
}
break;
case 2:
_localctx = new FunctionDefinitionContext(_localctx);
EnterOuterAlt(_localctx, 2);
{
State = 42;
Match(T__0);
State = 43;
((FunctionDefinitionContext)_localctx).name = Match(ID);
State = 44;
Match(T__1);
State = 55;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==T__0) {
{
State = 45;
((FunctionDefinitionContext)_localctx).s1 = Match(T__0);
((FunctionDefinitionContext)_localctx)._types.Add(((FunctionDefinitionContext)_localctx).s1);
State = 46;
((FunctionDefinitionContext)_localctx)._ID = Match(ID);
((FunctionDefinitionContext)_localctx)._params.Add(((FunctionDefinitionContext)_localctx)._ID);
State = 52;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==T__2) {
{
{
State = 47;
Match(T__2);
State = 48;
((FunctionDefinitionContext)_localctx).s1 = Match(T__0);
((FunctionDefinitionContext)_localctx)._types.Add(((FunctionDefinitionContext)_localctx).s1);
State = 49;
((FunctionDefinitionContext)_localctx)._ID = Match(ID);
((FunctionDefinitionContext)_localctx)._params.Add(((FunctionDefinitionContext)_localctx)._ID);
}
}
State = 54;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
State = 57;
Match(T__3);
State = 58;
block();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class BlockContext : Q1.Compiler.Context {
[System.Diagnostics.DebuggerNonUserCode] public Block_itemContext[] block_item() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public Block_itemContext block_item(int i) {
return GetRuleContext(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(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
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, 4, RULE_block);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 61;
Match(T__5);
State = 65;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 6755399449312102L) != 0)) {
{
{
State = 62;
block_item();
}
}
State = 67;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
State = 68;
Match(T__6);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class Block_itemContext : Q1.Compiler.Context {
[System.Diagnostics.DebuggerNonUserCode] public StatementContext statement() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public DeclarationContext declaration() {
return GetRuleContext(0);
}
public Block_itemContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_block_item; } }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBlock_item(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public Block_itemContext block_item() {
Block_itemContext _localctx = new Block_itemContext(Context, State);
EnterRule(_localctx, 6, RULE_block_item);
try {
State = 72;
ErrorHandler.Sync(this);
switch (TokenStream.LA(1)) {
case T__1:
case T__4:
case T__5:
case T__7:
case T__8:
case T__10:
case T__11:
case T__12:
case T__13:
case T__14:
case T__15:
case T__17:
case T__18:
case T__19:
case T__20:
case T__21:
case ID:
case INT:
EnterOuterAlt(_localctx, 1);
{
State = 70;
statement();
}
break;
case T__0:
EnterOuterAlt(_localctx, 2);
{
State = 71;
declaration();
}
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 StatementContext : Q1.Compiler.Context {
public StatementContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_statement; } }
public StatementContext() { }
public virtual void CopyFrom(StatementContext context) {
base.CopyFrom(context);
}
}
public partial class WhileStatementContext : StatementContext {
public ExpressionContext cond;
public StatementContext body;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public StatementContext statement() {
return GetRuleContext(0);
}
public WhileStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitWhileStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class ForDeclStatementContext : StatementContext {
public DeclarationContext initializer;
public ExpressionContext cond;
public ExpressionContext post;
public StatementContext body;
[System.Diagnostics.DebuggerNonUserCode] public DeclarationContext declaration() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public StatementContext statement() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public ForDeclStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitForDeclStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class BlockStatementContext : StatementContext {
[System.Diagnostics.DebuggerNonUserCode] public BlockContext block() {
return GetRuleContext(0);
}
public BlockStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBlockStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class NullStatementContext : StatementContext {
public NullStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitNullStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class ForExprStatementContext : StatementContext {
public ExpressionContext initializer;
public ExpressionContext cond;
public ExpressionContext post;
public StatementContext body;
[System.Diagnostics.DebuggerNonUserCode] public StatementContext statement() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public ForExprStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitForExprStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class BreakStatementContext : StatementContext {
public BreakStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBreakStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class DoWhileStatementContext : StatementContext {
public StatementContext body;
public ExpressionContext cond;
[System.Diagnostics.DebuggerNonUserCode] public StatementContext statement() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public DoWhileStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitDoWhileStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class ContinueStatementContext : StatementContext {
public ContinueStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitContinueStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class ExpressionStatementContext : StatementContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public ExpressionStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitExpressionStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class ReturnStatementContext : StatementContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public ReturnStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitReturnStatement(this);
else return visitor.VisitChildren(this);
}
}
public partial class IfStatementContext : StatementContext {
public StatementContext then;
public StatementContext @else;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public StatementContext[] statement() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public StatementContext statement(int i) {
return GetRuleContext(i);
}
public IfStatementContext(StatementContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitIfStatement(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public StatementContext statement() {
StatementContext _localctx = new StatementContext(Context, State);
EnterRule(_localctx, 8, RULE_statement);
int _la;
try {
State = 138;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) {
case 1:
_localctx = new ReturnStatementContext(_localctx);
EnterOuterAlt(_localctx, 1);
{
State = 74;
Match(T__7);
State = 75;
expression(0);
State = 76;
Match(T__4);
}
break;
case 2:
_localctx = new IfStatementContext(_localctx);
EnterOuterAlt(_localctx, 2);
{
State = 78;
Match(T__8);
State = 79;
Match(T__1);
State = 80;
expression(0);
State = 81;
Match(T__3);
State = 82;
((IfStatementContext)_localctx).then = statement();
State = 85;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,8,Context) ) {
case 1:
{
State = 83;
Match(T__9);
State = 84;
((IfStatementContext)_localctx).@else = statement();
}
break;
}
}
break;
case 3:
_localctx = new ForExprStatementContext(_localctx);
EnterOuterAlt(_localctx, 3);
{
State = 87;
Match(T__10);
State = 88;
Match(T__1);
State = 90;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 6755399449247748L) != 0)) {
{
State = 89;
((ForExprStatementContext)_localctx).initializer = expression(0);
}
}
State = 92;
Match(T__4);
State = 94;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 6755399449247748L) != 0)) {
{
State = 93;
((ForExprStatementContext)_localctx).cond = expression(0);
}
}
State = 96;
Match(T__4);
State = 98;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 6755399449247748L) != 0)) {
{
State = 97;
((ForExprStatementContext)_localctx).post = expression(0);
}
}
State = 100;
Match(T__3);
State = 101;
((ForExprStatementContext)_localctx).body = statement();
}
break;
case 4:
_localctx = new ForDeclStatementContext(_localctx);
EnterOuterAlt(_localctx, 4);
{
State = 102;
Match(T__10);
State = 103;
Match(T__1);
State = 104;
((ForDeclStatementContext)_localctx).initializer = declaration();
State = 106;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 6755399449247748L) != 0)) {
{
State = 105;
((ForDeclStatementContext)_localctx).cond = expression(0);
}
}
State = 108;
Match(T__4);
State = 110;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 6755399449247748L) != 0)) {
{
State = 109;
((ForDeclStatementContext)_localctx).post = expression(0);
}
}
State = 112;
Match(T__3);
State = 113;
((ForDeclStatementContext)_localctx).body = statement();
}
break;
case 5:
_localctx = new WhileStatementContext(_localctx);
EnterOuterAlt(_localctx, 5);
{
State = 115;
Match(T__11);
State = 116;
Match(T__1);
State = 117;
((WhileStatementContext)_localctx).cond = expression(0);
State = 118;
Match(T__3);
State = 119;
((WhileStatementContext)_localctx).body = statement();
}
break;
case 6:
_localctx = new DoWhileStatementContext(_localctx);
EnterOuterAlt(_localctx, 6);
{
State = 121;
Match(T__12);
State = 122;
((DoWhileStatementContext)_localctx).body = statement();
State = 123;
Match(T__11);
State = 124;
Match(T__1);
State = 125;
((DoWhileStatementContext)_localctx).cond = expression(0);
State = 126;
Match(T__3);
State = 127;
Match(T__4);
}
break;
case 7:
_localctx = new BreakStatementContext(_localctx);
EnterOuterAlt(_localctx, 7);
{
State = 129;
Match(T__13);
State = 130;
Match(T__4);
}
break;
case 8:
_localctx = new ContinueStatementContext(_localctx);
EnterOuterAlt(_localctx, 8);
{
State = 131;
Match(T__14);
State = 132;
Match(T__4);
}
break;
case 9:
_localctx = new ExpressionStatementContext(_localctx);
EnterOuterAlt(_localctx, 9);
{
State = 133;
expression(0);
State = 134;
Match(T__4);
}
break;
case 10:
_localctx = new BlockStatementContext(_localctx);
EnterOuterAlt(_localctx, 10);
{
State = 136;
block();
}
break;
case 11:
_localctx = new NullStatementContext(_localctx);
EnterOuterAlt(_localctx, 11);
{
State = 137;
Match(T__4);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class DeclarationContext : Q1.Compiler.Context {
public DeclarationContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_declaration; } }
public DeclarationContext() { }
public virtual void CopyFrom(DeclarationContext context) {
base.CopyFrom(context);
}
}
public partial class VariableDeclarationContext : DeclarationContext {
public IToken ptr;
public IToken name;
public ExpressionContext value;
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(CGrammarParser.ID, 0); }
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public VariableDeclarationContext(DeclarationContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitVariableDeclaration(this);
else return visitor.VisitChildren(this);
}
}
[RuleVersion(0)]
public DeclarationContext declaration() {
DeclarationContext _localctx = new DeclarationContext(Context, State);
EnterRule(_localctx, 10, RULE_declaration);
int _la;
try {
_localctx = new VariableDeclarationContext(_localctx);
EnterOuterAlt(_localctx, 1);
{
State = 140;
Match(T__0);
State = 141;
((VariableDeclarationContext)_localctx).ptr = Match(T__15);
State = 142;
((VariableDeclarationContext)_localctx).name = Match(ID);
State = 145;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if (_la==T__16) {
{
State = 143;
Match(T__16);
State = 144;
((VariableDeclarationContext)_localctx).value = expression(0);
}
}
State = 147;
Match(T__4);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ExpressionContext : Q1.Compiler.Context {
public ExpressionContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_expression; } }
public ExpressionContext() { }
public virtual void CopyFrom(ExpressionContext context) {
base.CopyFrom(context);
}
}
public partial class AddressOfExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
public AddressOfExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitAddressOfExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundSubtractExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundSubtractExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundSubtractExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class ModulusExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public ModulusExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitModulusExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class NotExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public NotExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitNotExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class DecrementPrefixExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
public DecrementPrefixExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitDecrementPrefixExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class MultiplyExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public MultiplyExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitMultiplyExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class GreaterThanExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public GreaterThanExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitGreaterThanExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class BitwiseLeftShiftExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public BitwiseLeftShiftExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBitwiseLeftShiftExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class BitwiseRightShiftExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public BitwiseRightShiftExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBitwiseRightShiftExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class VariableExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ID() { return GetToken(CGrammarParser.ID, 0); }
public VariableExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitVariableExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundDivideExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundDivideExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundDivideExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class ParenthesizedExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public ParenthesizedExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitParenthesizedExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundAddExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundAddExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundAddExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundMultiplyExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundMultiplyExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundMultiplyExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundBitwiseXorExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundBitwiseXorExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundBitwiseXorExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class BitwiseAndExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public BitwiseAndExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBitwiseAndExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class LessThanExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public LessThanExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitLessThanExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class LogicalAndExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public LogicalAndExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitLogicalAndExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class InvertExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public InvertExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitInvertExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class DereferenceExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public DereferenceExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitDereferenceExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class EqualExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public EqualExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitEqualExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class BitwiseXorExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public BitwiseXorExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitBitwiseXorExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class ConstantExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ConstantContext constant() {
return GetRuleContext(0);
}
public ConstantExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitConstantExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundModulusExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundModulusExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundModulusExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class LessThanOrEqualExpressionContext : ExpressionContext {
public ExpressionContext left;
public ExpressionContext right;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext(i);
}
public LessThanOrEqualExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitLessThanOrEqualExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class IncrementPostfixExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
public IncrementPostfixExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitIncrementPostfixExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class CompoundBitwiseRightShiftExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext(0);
}
public CompoundBitwiseRightShiftExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override TResult Accept(IParseTreeVisitor visitor) {
ICGrammarVisitor typedVisitor = visitor as ICGrammarVisitor;
if (typedVisitor != null) return typedVisitor.VisitCompoundBitwiseRightShiftExpression(this);
else return visitor.VisitChildren(this);
}
}
public partial class AssignmentExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public TargetContext target() {
return GetRuleContext(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext