// $ANTLR start "structdec" // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:93:1: structdec returns [StructDeclaration ret] : ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) END_OF_STATEMENT ; public InterpParser.structdec_return structdec() // throws RecognitionException [1] { InterpParser.structdec_return retval = new InterpParser.structdec_return(); retval.Start = input.LT(1); object root_0 = null; IToken string_literal26 = null; IToken char_literal27 = null; IToken TYPE28 = null; IToken char_literal29 = null; IToken char_literal30 = null; IToken END_OF_STATEMENT31 = null; InterpParser.variable_return el1 = null; InterpParser.variable_return el2 = null; object string_literal26_tree=null; object char_literal27_tree=null; object TYPE28_tree=null; object char_literal29_tree=null; object char_literal30_tree=null; object END_OF_STATEMENT31_tree=null; retval.ret = new StructDeclaration(); try { dbg.EnterRule(GrammarFileName, "structdec"); if ( RuleLevel==0 ) {dbg.Commence();} IncRuleLevel(); dbg.Location(93, 1); try { // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:2: ( ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) END_OF_STATEMENT ) dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:4: ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); dbg.Location(97,4); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:4: ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:5: 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' { dbg.Location(97,5); string_literal26=(IToken)Match(input,16,FOLLOW_16_in_structdec446); string_literal26_tree = (object)adaptor.Create(string_literal26); adaptor.AddChild(root_0, string_literal26_tree); dbg.Location(97,17); PushFollow(FOLLOW_variable_in_structdec450); el1 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, el1.Tree); dbg.Location(97,27); retval.ret.setName(((el1 != null) ? el1.ret : null)); dbg.Location(98,2); char_literal27=(IToken)Match(input,17,FOLLOW_17_in_structdec455); char_literal27_tree = (object)adaptor.Create(char_literal27); adaptor.AddChild(root_0, char_literal27_tree); dbg.Location(98,5); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:98:5: ( TYPE el2= variable ';' )+ int cnt7 = 0; try { dbg.EnterSubRule(7); do { int alt7 = 2; try { dbg.EnterDecision(7); int LA7_0 = input.LA(1); if ( (LA7_0 == TYPE) ) { alt7 = 1; } } finally { dbg.ExitDecision(7); } switch (alt7) { case 1 : dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:98:6: TYPE el2= variable ';' { dbg.Location(98,6); TYPE28=(IToken)Match(input,TYPE,FOLLOW_TYPE_in_structdec457); TYPE28_tree = (object)adaptor.Create(TYPE28); adaptor.AddChild(root_0, TYPE28_tree); dbg.Location(98,11); retval.ret.setType(((TYPE28 != null) ? TYPE28.Text : null)); dbg.Location(98,49); PushFollow(FOLLOW_variable_in_structdec463); el2 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, el2.Tree); dbg.Location(98,59); retval.ret.setVar(((el2 != null) ? el2.ret : null)); dbg.Location(98,90); char_literal29=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec466); char_literal29_tree = (object)adaptor.Create(char_literal29); adaptor.AddChild(root_0, char_literal29_tree); } break; default: if ( cnt7 >= 1 ) goto loop7; EarlyExitException eee7 = new EarlyExitException(7, input); dbg.RecognitionException(eee); throw eee7; } cnt7++; } while (true); loop7: ; // Stops C# compiler whinging that label 'loop7' has no statements } finally { dbg.ExitSubRule(7); } dbg.Location(99,2); char_literal30=(IToken)Match(input,18,FOLLOW_18_in_structdec471); char_literal30_tree = (object)adaptor.Create(char_literal30); adaptor.AddChild(root_0, char_literal30_tree); } dbg.Location(99,6); END_OF_STATEMENT31=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec473); END_OF_STATEMENT31_tree = (object)adaptor.Create(END_OF_STATEMENT31); adaptor.AddChild(root_0, END_OF_STATEMENT31_tree); } retval.Stop = input.LT(-1); retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } dbg.Location(99, 22); } finally { dbg.ExitRule(GrammarFileName, "structdec"); DecRuleLevel(); if ( RuleLevel==0 ) {dbg.Terminate();} } return retval; }
// $ANTLR start "structdec" // Interp.g:93:1: structdec returns [StructDeclaration ret] : ( 'Struct' variable '{' (el1= structvardec )+ '}' ) END_OF_STATEMENT ; public InterpParser.structdec_return structdec() // throws RecognitionException [1] { InterpParser.structdec_return retval = new InterpParser.structdec_return(); retval.Start = input.LT(1); object root_0 = null; IToken string_literal26 = null; IToken char_literal28 = null; IToken char_literal29 = null; IToken END_OF_STATEMENT30 = null; InterpParser.structvardec_return el1 = null; InterpParser.variable_return variable27 = null; object string_literal26_tree=null; object char_literal28_tree=null; object char_literal29_tree=null; object END_OF_STATEMENT30_tree=null; retval.ret = new StructDeclaration(); try { // Interp.g:97:2: ( ( 'Struct' variable '{' (el1= structvardec )+ '}' ) END_OF_STATEMENT ) // Interp.g:97:4: ( 'Struct' variable '{' (el1= structvardec )+ '}' ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); // Interp.g:97:4: ( 'Struct' variable '{' (el1= structvardec )+ '}' ) // Interp.g:97:5: 'Struct' variable '{' (el1= structvardec )+ '}' { string_literal26=(IToken)Match(input,16,FOLLOW_16_in_structdec446); string_literal26_tree = (object)adaptor.Create(string_literal26); adaptor.AddChild(root_0, string_literal26_tree); PushFollow(FOLLOW_variable_in_structdec448); variable27 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable27.Tree); retval.ret.setName(((variable27 != null) ? variable27.ret : null)); char_literal28=(IToken)Match(input,17,FOLLOW_17_in_structdec453); char_literal28_tree = (object)adaptor.Create(char_literal28); adaptor.AddChild(root_0, char_literal28_tree); // Interp.g:98:6: (el1= structvardec )+ int cnt7 = 0; do { int alt7 = 2; int LA7_0 = input.LA(1); if ( (LA7_0 == TYPE) ) { alt7 = 1; } switch (alt7) { case 1 : // Interp.g:98:7: el1= structvardec { PushFollow(FOLLOW_structvardec_in_structdec458); el1 = structvardec(); state.followingStackPointer--; adaptor.AddChild(root_0, el1.Tree); retval.ret.setVarType(((el1 != null) ? el1.ret : null)); } break; default: if ( cnt7 >= 1 ) goto loop7; EarlyExitException eee7 = new EarlyExitException(7, input); throw eee7; } cnt7++; } while (true); loop7: ; // Stops C# compiler whining that label 'loop7' has no statements char_literal29=(IToken)Match(input,18,FOLLOW_18_in_structdec465); char_literal29_tree = (object)adaptor.Create(char_literal29); adaptor.AddChild(root_0, char_literal29_tree); } END_OF_STATEMENT30=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec467); END_OF_STATEMENT30_tree = (object)adaptor.Create(END_OF_STATEMENT30); adaptor.AddChild(root_0, END_OF_STATEMENT30_tree); } retval.Stop = input.LT(-1); retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }
// throws RecognitionException [1] // $ANTLR start "structdec" // Interp.g:119:1: structdec returns [StructDeclaration ret] : ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) END_OF_STATEMENT ; public InterpParser.structdec_return structdec() { InterpParser.structdec_return retval = new InterpParser.structdec_return(); retval.Start = input.LT(1); object root_0 = null; IToken string_literal49 = null; IToken char_literal51 = null; IToken char_literal52 = null; IToken END_OF_STATEMENT53 = null; InterpParser.scalarvardec_return el1 = null; InterpParser.variable_return variable50 = null; object string_literal49_tree=null; object char_literal51_tree=null; object char_literal52_tree=null; object END_OF_STATEMENT53_tree=null; retval.ret = new StructDeclaration(); try { // Interp.g:123:2: ( ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) END_OF_STATEMENT ) // Interp.g:123:4: ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); // Interp.g:123:4: ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) // Interp.g:123:5: 'Struct' variable '{' (el1= scalarvardec )+ '}' { string_literal49=(IToken)Match(input,21,FOLLOW_21_in_structdec653); string_literal49_tree = (object)adaptor.Create(string_literal49); adaptor.AddChild(root_0, string_literal49_tree); PushFollow(FOLLOW_variable_in_structdec655); variable50 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable50.Tree); retval.ret.setName(((variable50 != null) ? variable50.ret : null)); char_literal51=(IToken)Match(input,22,FOLLOW_22_in_structdec660); char_literal51_tree = (object)adaptor.Create(char_literal51); adaptor.AddChild(root_0, char_literal51_tree); // Interp.g:124:6: (el1= scalarvardec )+ int cnt10 = 0; do { int alt10 = 2; int LA10_0 = input.LA(1); if ( ((LA10_0 >= VARTYPE && LA10_0 <= STRINGTYPE)) ) { alt10 = 1; } switch (alt10) { case 1 : // Interp.g:124:7: el1= scalarvardec { PushFollow(FOLLOW_scalarvardec_in_structdec665); el1 = scalarvardec(); state.followingStackPointer--; adaptor.AddChild(root_0, el1.Tree); retval.ret.setVarType(((el1 != null) ? el1.ret : null)); } break; default: if ( cnt10 >= 1 ) goto loop10; EarlyExitException eee10 = new EarlyExitException(10, input); throw eee10; } cnt10++; } while (true); loop10: ; // Stops C# compiler whining that label 'loop10' has no statements char_literal52=(IToken)Match(input,23,FOLLOW_23_in_structdec672); char_literal52_tree = (object)adaptor.Create(char_literal52); adaptor.AddChild(root_0, char_literal52_tree); } END_OF_STATEMENT53=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec674); END_OF_STATEMENT53_tree = (object)adaptor.Create(END_OF_STATEMENT53); adaptor.AddChild(root_0, END_OF_STATEMENT53_tree); } retval.Stop = input.LT(-1); retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }