// $ANTLR start "assignment" // Interp.g:40:1: assignment returns [AssignmentOperationElement ret] : ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT ; public InterpParser.assignment_return assignment() // throws RecognitionException [1] { InterpParser.assignment_return retval = new InterpParser.assignment_return(); retval.Start = input.LT(1); object root_0 = null; IToken ASSIGNMENT8 = null; IToken END_OF_STATEMENT13 = null; InterpParser.variable_return variable6 = null; InterpParser.structassign_return structassign7 = null; InterpParser.var_or_int_literal_return var_or_int_literal9 = null; InterpParser.matrixoperation_return matrixoperation10 = null; InterpParser.addition_return addition11 = null; InterpParser.multiplication_return multiplication12 = null; object ASSIGNMENT8_tree=null; object END_OF_STATEMENT13_tree=null; retval.ret = new AssignmentOperationElement(); try { // Interp.g:44:3: ( ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT ) // Interp.g:44:5: ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); // Interp.g:44:5: ( variable | structassign ) int alt3 = 2; int LA3_0 = input.LA(1); if ( (LA3_0 == VARIABLE) ) { int LA3_1 = input.LA(2); if ( (LA3_1 == ASSIGNMENT) ) { alt3 = 1; } else if ( (LA3_1 == 19) ) { alt3 = 2; } else { NoViableAltException nvae_d3s1 = new NoViableAltException("", 3, 1, input); throw nvae_d3s1; } } else { NoViableAltException nvae_d3s0 = new NoViableAltException("", 3, 0, input); throw nvae_d3s0; } switch (alt3) { case 1 : // Interp.g:44:6: variable { PushFollow(FOLLOW_variable_in_assignment138); variable6 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable6.Tree); retval.ret.setLhs(((variable6 != null) ? variable6.ret : null)); } break; case 2 : // Interp.g:45:5: structassign { PushFollow(FOLLOW_structassign_in_assignment146); structassign7 = structassign(); state.followingStackPointer--; adaptor.AddChild(root_0, structassign7.Tree); retval.ret.setStructLhs(((structassign7 != null) ? structassign7.ret : null)); } break; } ASSIGNMENT8=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment153); ASSIGNMENT8_tree = (object)adaptor.Create(ASSIGNMENT8); adaptor.AddChild(root_0, ASSIGNMENT8_tree); // Interp.g:47:5: ( var_or_int_literal | matrixoperation | addition | multiplication ) int alt4 = 4; switch ( input.LA(1) ) { case VARIABLE: { switch ( input.LA(2) ) { case END_OF_STATEMENT: { alt4 = 1; } break; case MULTIPLY: { alt4 = 4; } break; case PLUS: { alt4 = 3; } break; default: NoViableAltException nvae_d4s1 = new NoViableAltException("", 4, 1, input); throw nvae_d4s1; } } break; case INT_LITERAL: { switch ( input.LA(2) ) { case END_OF_STATEMENT: { alt4 = 1; } break; case MULTIPLY: { alt4 = 4; } break; case PLUS: { alt4 = 3; } break; default: NoViableAltException nvae_d4s2 = new NoViableAltException("", 4, 2, input); throw nvae_d4s2; } } break; case 12: { alt4 = 2; } break; default: NoViableAltException nvae_d4s0 = new NoViableAltException("", 4, 0, input); throw nvae_d4s0; } switch (alt4) { case 1 : // Interp.g:47:6: var_or_int_literal { PushFollow(FOLLOW_var_or_int_literal_in_assignment161); var_or_int_literal9 = var_or_int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, var_or_int_literal9.Tree); retval.ret.setRhs(((var_or_int_literal9 != null) ? var_or_int_literal9.ret : null)); } break; case 2 : // Interp.g:48:7: matrixoperation { PushFollow(FOLLOW_matrixoperation_in_assignment171); matrixoperation10 = matrixoperation(); state.followingStackPointer--; adaptor.AddChild(root_0, matrixoperation10.Tree); retval.ret.setRhs(((matrixoperation10 != null) ? matrixoperation10.ret : null)); } break; case 3 : // Interp.g:49:7: addition { PushFollow(FOLLOW_addition_in_assignment182); addition11 = addition(); state.followingStackPointer--; adaptor.AddChild(root_0, addition11.Tree); retval.ret.setRhs(((addition11 != null) ? addition11.ret : null)); } break; case 4 : // Interp.g:50:7: multiplication { PushFollow(FOLLOW_multiplication_in_assignment192); multiplication12 = multiplication(); state.followingStackPointer--; adaptor.AddChild(root_0, multiplication12.Tree); retval.ret.setRhs(((multiplication12 != null) ? multiplication12.ret : null)); } break; } END_OF_STATEMENT13=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment202); END_OF_STATEMENT13_tree = (object)adaptor.Create(END_OF_STATEMENT13); adaptor.AddChild(root_0, END_OF_STATEMENT13_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; }
// $ANTLR start "assignment" // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:62:1: assignment returns [AssignmentOperationElement ret] : variable ASSIGNMENT ( var_or_int_literal | addition ) END_OF_STATEMENT ; public InterpParser.assignment_return assignment() // throws RecognitionException [1] { InterpParser.assignment_return retval = new InterpParser.assignment_return(); retval.Start = input.LT(1); object root_0 = null; IToken ASSIGNMENT5 = null; IToken END_OF_STATEMENT8 = null; InterpParser.variable_return variable4 = null; InterpParser.var_or_int_literal_return var_or_int_literal6 = null; InterpParser.addition_return addition7 = null; object ASSIGNMENT5_tree=null; object END_OF_STATEMENT8_tree=null; retval.ret = new AssignmentOperationElement(); try { dbg.EnterRule(GrammarFileName, "assignment"); if ( RuleLevel==0 ) {dbg.Commence();} IncRuleLevel(); dbg.Location(62, 1); try { // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:3: ( variable ASSIGNMENT ( var_or_int_literal | addition ) END_OF_STATEMENT ) dbg.EnterAlt(1); // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:5: variable ASSIGNMENT ( var_or_int_literal | addition ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); dbg.Location(73,5); PushFollow(FOLLOW_variable_in_assignment151); variable4 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable4.Tree); dbg.Location(73,14); retval.ret.setLhs(((variable4 != null) ? variable4.ret : null)); dbg.Location(75,3); ASSIGNMENT5=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment162); ASSIGNMENT5_tree = (object)adaptor.Create(ASSIGNMENT5); adaptor.AddChild(root_0, ASSIGNMENT5_tree); dbg.Location(77,4); // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:77:4: ( var_or_int_literal | addition ) int alt3 = 2; try { dbg.EnterSubRule(3); try { dbg.EnterDecision(3); int LA3_0 = input.LA(1); if ( (LA3_0 == VARIABLE) ) { int LA3_1 = input.LA(2); if ( (LA3_1 == END_OF_STATEMENT) ) { alt3 = 1; } else if ( (LA3_1 == PLUS) ) { alt3 = 2; } else { NoViableAltException nvae_d3s1 = new NoViableAltException("", 3, 1, input); dbg.RecognitionException(nvae_d3s1); throw nvae_d3s1; } } else if ( (LA3_0 == INT_LITERAL) ) { int LA3_2 = input.LA(2); if ( (LA3_2 == PLUS) ) { alt3 = 2; } else if ( (LA3_2 == END_OF_STATEMENT) ) { alt3 = 1; } else { NoViableAltException nvae_d3s2 = new NoViableAltException("", 3, 2, input); dbg.RecognitionException(nvae_d3s2); throw nvae_d3s2; } } else { NoViableAltException nvae_d3s0 = new NoViableAltException("", 3, 0, input); dbg.RecognitionException(nvae_d3s0); throw nvae_d3s0; } } finally { dbg.ExitDecision(3); } switch (alt3) { case 1 : dbg.EnterAlt(1); // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:77:5: var_or_int_literal { dbg.Location(77,5); PushFollow(FOLLOW_var_or_int_literal_in_assignment173); var_or_int_literal6 = var_or_int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, var_or_int_literal6.Tree); dbg.Location(77,24); retval.ret.setRhs(((var_or_int_literal6 != null) ? var_or_int_literal6.ret : null)); } break; case 2 : dbg.EnterAlt(2); // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:78:7: addition { dbg.Location(78,7); PushFollow(FOLLOW_addition_in_assignment184); addition7 = addition(); state.followingStackPointer--; adaptor.AddChild(root_0, addition7.Tree); dbg.Location(78,16); retval.ret.setRhs(((addition7 != null) ? addition7.ret : null)); } break; } } finally { dbg.ExitSubRule(3); } dbg.Location(79,7); END_OF_STATEMENT8=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment194); END_OF_STATEMENT8_tree = (object)adaptor.Create(END_OF_STATEMENT8); adaptor.AddChild(root_0, END_OF_STATEMENT8_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(79, 23); } finally { dbg.ExitRule(GrammarFileName, "assignment"); DecRuleLevel(); if ( RuleLevel==0 ) {dbg.Terminate();} } return retval; }
// throws RecognitionException [1] // $ANTLR start "assignment" // Interp.g:61:1: assignment returns [AssignmentOperationElement ret] : variable ASSIGNMENT ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) SEMI ; public InterpParser.assignment_return assignment() { InterpParser.assignment_return retval = new InterpParser.assignment_return(); retval.Start = input.LT(1); object root_0 = null; IToken ASSIGNMENT6 = null; IToken SEMI11 = null; InterpParser.variable_return variable5 = null; InterpParser.var_or_int_literal_return var_or_int_literal7 = null; InterpParser.matrix_return matrix8 = null; InterpParser.matrixaddition_return matrixaddition9 = null; InterpParser.matrixmultiplication_return matrixmultiplication10 = null; object ASSIGNMENT6_tree=null; object SEMI11_tree=null; retval.ret = new AssignmentOperationElement(); try { // Interp.g:65:3: ( variable ASSIGNMENT ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) SEMI ) // Interp.g:65:5: variable ASSIGNMENT ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) SEMI { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_variable_in_assignment146); variable5 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable5.Tree); retval.ret.setLhs(((variable5 != null) ? variable5.ret : null)); ASSIGNMENT6=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment154); ASSIGNMENT6_tree = (object)adaptor.Create(ASSIGNMENT6); adaptor.AddChild(root_0, ASSIGNMENT6_tree); // Interp.g:67:5: ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) int alt3 = 4; switch ( input.LA(1) ) { case VARIABLE: { switch ( input.LA(2) ) { case MUL: { alt3 = 4; } break; case PLUS: { alt3 = 3; } break; case SEMI: { alt3 = 1; } break; default: NoViableAltException nvae_d3s1 = new NoViableAltException("", 3, 1, input); throw nvae_d3s1; } } break; case INT_LITERAL: { switch ( input.LA(2) ) { case PLUS: { alt3 = 3; } break; case MUL: { alt3 = 4; } break; case SEMI: { alt3 = 1; } break; default: NoViableAltException nvae_d3s2 = new NoViableAltException("", 3, 2, input); throw nvae_d3s2; } } break; case LBRACK: { alt3 = 2; } break; default: NoViableAltException nvae_d3s0 = new NoViableAltException("", 3, 0, input); throw nvae_d3s0; } switch (alt3) { case 1 : // Interp.g:67:6: var_or_int_literal { PushFollow(FOLLOW_var_or_int_literal_in_assignment162); var_or_int_literal7 = var_or_int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, var_or_int_literal7.Tree); retval.ret.setRhs(((var_or_int_literal7 != null) ? var_or_int_literal7.ret : null)); } break; case 2 : // Interp.g:69:7: matrix { PushFollow(FOLLOW_matrix_in_assignment174); matrix8 = matrix(); state.followingStackPointer--; adaptor.AddChild(root_0, matrix8.Tree); retval.ret.setRhs(((matrix8 != null) ? matrix8.ret : null)); } break; case 3 : // Interp.g:70:7: matrixaddition { PushFollow(FOLLOW_matrixaddition_in_assignment184); matrixaddition9 = matrixaddition(); state.followingStackPointer--; adaptor.AddChild(root_0, matrixaddition9.Tree); retval.ret.setRhs(((matrixaddition9 != null) ? matrixaddition9.ret : null)); } break; case 4 : // Interp.g:71:7: matrixmultiplication { PushFollow(FOLLOW_matrixmultiplication_in_assignment194); matrixmultiplication10 = matrixmultiplication(); state.followingStackPointer--; adaptor.AddChild(root_0, matrixmultiplication10.Tree); retval.ret.setRhs(((matrixmultiplication10 != null) ? matrixmultiplication10.ret : null)); } break; } SEMI11=(IToken)Match(input,SEMI,FOLLOW_SEMI_in_assignment204); SEMI11_tree = (object)adaptor.Create(SEMI11); adaptor.AddChild(root_0, SEMI11_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 e) { throw e; } finally { } return retval; }
// $ANTLR start "assignment" // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:40:1: assignment returns [AssignmentOperationElement ret] : ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT ; public InterpParser.assignment_return assignment() // throws RecognitionException [1] { InterpParser.assignment_return retval = new InterpParser.assignment_return(); retval.Start = input.LT(1); object root_0 = null; IToken ASSIGNMENT8 = null; IToken END_OF_STATEMENT13 = null; InterpParser.variable_return variable6 = null; InterpParser.structassign_return structassign7 = null; InterpParser.var_or_int_literal_return var_or_int_literal9 = null; InterpParser.matrixoperation_return matrixoperation10 = null; InterpParser.addition_return addition11 = null; InterpParser.multiplication_return multiplication12 = null; object ASSIGNMENT8_tree=null; object END_OF_STATEMENT13_tree=null; retval.ret = new AssignmentOperationElement(); try { dbg.EnterRule(GrammarFileName, "assignment"); if ( RuleLevel==0 ) {dbg.Commence();} IncRuleLevel(); dbg.Location(40, 1); try { // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:3: ( ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT ) dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:5: ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); dbg.Location(44,5); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:5: ( variable | structassign ) int alt3 = 2; try { dbg.EnterSubRule(3); try { dbg.EnterDecision(3); int LA3_0 = input.LA(1); if ( (LA3_0 == VARIABLE) ) { int LA3_1 = input.LA(2); if ( (LA3_1 == 19) ) { alt3 = 2; } else if ( (LA3_1 == ASSIGNMENT) ) { alt3 = 1; } else { NoViableAltException nvae_d3s1 = new NoViableAltException("", 3, 1, input); dbg.RecognitionException(nvae_d3s1); throw nvae_d3s1; } } else { NoViableAltException nvae_d3s0 = new NoViableAltException("", 3, 0, input); dbg.RecognitionException(nvae_d3s0); throw nvae_d3s0; } } finally { dbg.ExitDecision(3); } switch (alt3) { case 1 : dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:6: variable { dbg.Location(44,6); PushFollow(FOLLOW_variable_in_assignment138); variable6 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable6.Tree); dbg.Location(44,15); retval.ret.setLhs(((variable6 != null) ? variable6.ret : null)); } break; case 2 : dbg.EnterAlt(2); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:45:5: structassign { dbg.Location(45,5); PushFollow(FOLLOW_structassign_in_assignment146); structassign7 = structassign(); state.followingStackPointer--; adaptor.AddChild(root_0, structassign7.Tree); dbg.Location(45,18); retval.ret.setStructLhs(((structassign7 != null) ? structassign7.ret : null)); } break; } } finally { dbg.ExitSubRule(3); } dbg.Location(46,3); ASSIGNMENT8=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment153); ASSIGNMENT8_tree = (object)adaptor.Create(ASSIGNMENT8); adaptor.AddChild(root_0, ASSIGNMENT8_tree); dbg.Location(47,5); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:47:5: ( var_or_int_literal | matrixoperation | addition | multiplication ) int alt4 = 4; try { dbg.EnterSubRule(4); try { dbg.EnterDecision(4); switch ( input.LA(1) ) { case VARIABLE: { switch ( input.LA(2) ) { case END_OF_STATEMENT: { alt4 = 1; } break; case PLUS: { alt4 = 3; } break; case MULTIPLY: { alt4 = 4; } break; default: NoViableAltException nvae_d4s1 = new NoViableAltException("", 4, 1, input); dbg.RecognitionException(nvae_d4s1); throw nvae_d4s1; } } break; case INT_LITERAL: { switch ( input.LA(2) ) { case END_OF_STATEMENT: { alt4 = 1; } break; case PLUS: { alt4 = 3; } break; case MULTIPLY: { alt4 = 4; } break; default: NoViableAltException nvae_d4s2 = new NoViableAltException("", 4, 2, input); dbg.RecognitionException(nvae_d4s2); throw nvae_d4s2; } } break; case 12: { alt4 = 2; } break; default: NoViableAltException nvae_d4s0 = new NoViableAltException("", 4, 0, input); dbg.RecognitionException(nvae_d4s0); throw nvae_d4s0; } } finally { dbg.ExitDecision(4); } switch (alt4) { case 1 : dbg.EnterAlt(1); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:47:6: var_or_int_literal { dbg.Location(47,6); PushFollow(FOLLOW_var_or_int_literal_in_assignment161); var_or_int_literal9 = var_or_int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, var_or_int_literal9.Tree); dbg.Location(47,25); retval.ret.setRhs(((var_or_int_literal9 != null) ? var_or_int_literal9.ret : null)); } break; case 2 : dbg.EnterAlt(2); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:48:7: matrixoperation { dbg.Location(48,7); PushFollow(FOLLOW_matrixoperation_in_assignment171); matrixoperation10 = matrixoperation(); state.followingStackPointer--; adaptor.AddChild(root_0, matrixoperation10.Tree); dbg.Location(48,23); retval.ret.setRhs(((matrixoperation10 != null) ? matrixoperation10.ret : null)); } break; case 3 : dbg.EnterAlt(3); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:49:7: addition { dbg.Location(49,7); PushFollow(FOLLOW_addition_in_assignment182); addition11 = addition(); state.followingStackPointer--; adaptor.AddChild(root_0, addition11.Tree); dbg.Location(49,16); retval.ret.setRhs(((addition11 != null) ? addition11.ret : null)); } break; case 4 : dbg.EnterAlt(4); // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:50:7: multiplication { dbg.Location(50,7); PushFollow(FOLLOW_multiplication_in_assignment192); multiplication12 = multiplication(); state.followingStackPointer--; adaptor.AddChild(root_0, multiplication12.Tree); dbg.Location(50,22); retval.ret.setRhs(((multiplication12 != null) ? multiplication12.ret : null)); } break; } } finally { dbg.ExitSubRule(4); } dbg.Location(51,7); END_OF_STATEMENT13=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment202); END_OF_STATEMENT13_tree = (object)adaptor.Create(END_OF_STATEMENT13); adaptor.AddChild(root_0, END_OF_STATEMENT13_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(51, 23); } finally { dbg.ExitRule(GrammarFileName, "assignment"); DecRuleLevel(); if ( RuleLevel==0 ) {dbg.Terminate();} } return retval; }
// throws RecognitionException [1] // $ANTLR start "assignment" // Interp.g:44:1: assignment returns [AssignmentOperationElement ret] : ( variable | structassign ) ASSIGNMENT ( var_int_or_double_literal | addition | multiplication ) END_OF_STATEMENT ; public InterpParser.assignment_return assignment() { InterpParser.assignment_return retval = new InterpParser.assignment_return(); retval.Start = input.LT(1); object root_0 = null; IToken ASSIGNMENT12 = null; IToken END_OF_STATEMENT16 = null; InterpParser.variable_return variable10 = null; InterpParser.structassign_return structassign11 = null; InterpParser.var_int_or_double_literal_return var_int_or_double_literal13 = null; InterpParser.addition_return addition14 = null; InterpParser.multiplication_return multiplication15 = null; object ASSIGNMENT12_tree=null; object END_OF_STATEMENT16_tree=null; retval.ret = new AssignmentOperationElement(); try { // Interp.g:48:3: ( ( variable | structassign ) ASSIGNMENT ( var_int_or_double_literal | addition | multiplication ) END_OF_STATEMENT ) // Interp.g:48:5: ( variable | structassign ) ASSIGNMENT ( var_int_or_double_literal | addition | multiplication ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); // Interp.g:48:5: ( variable | structassign ) int alt3 = 2; int LA3_0 = input.LA(1); if ( (LA3_0 == VARIABLE) ) { int LA3_1 = input.LA(2); if ( (LA3_1 == 24) ) { alt3 = 2; } else if ( (LA3_1 == ASSIGNMENT) ) { alt3 = 1; } else { NoViableAltException nvae_d3s1 = new NoViableAltException("", 3, 1, input); throw nvae_d3s1; } } else { NoViableAltException nvae_d3s0 = new NoViableAltException("", 3, 0, input); throw nvae_d3s0; } switch (alt3) { case 1 : // Interp.g:48:6: variable { PushFollow(FOLLOW_variable_in_assignment170); variable10 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable10.Tree); retval.ret.setLhs(((variable10 != null) ? variable10.ret : null)); } break; case 2 : // Interp.g:49:5: structassign { PushFollow(FOLLOW_structassign_in_assignment178); structassign11 = structassign(); state.followingStackPointer--; adaptor.AddChild(root_0, structassign11.Tree); retval.ret.setStructLhs(((structassign11 != null) ? structassign11.ret : null)); } break; } ASSIGNMENT12=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment185); ASSIGNMENT12_tree = (object)adaptor.Create(ASSIGNMENT12); adaptor.AddChild(root_0, ASSIGNMENT12_tree); // Interp.g:51:5: ( var_int_or_double_literal | addition | multiplication ) int alt4 = 3; switch ( input.LA(1) ) { case VARIABLE: { switch ( input.LA(2) ) { case END_OF_STATEMENT: { alt4 = 1; } break; case MULTIPLY: { alt4 = 3; } break; case PLUS: { alt4 = 2; } break; default: NoViableAltException nvae_d4s1 = new NoViableAltException("", 4, 1, input); throw nvae_d4s1; } } break; case INT_LITERAL: { switch ( input.LA(2) ) { case PLUS: { alt4 = 2; } break; case END_OF_STATEMENT: { alt4 = 1; } break; case MULTIPLY: { alt4 = 3; } break; default: NoViableAltException nvae_d4s2 = new NoViableAltException("", 4, 2, input); throw nvae_d4s2; } } break; case DOUBLE_LITERAL: { switch ( input.LA(2) ) { case MULTIPLY: { alt4 = 3; } break; case PLUS: { alt4 = 2; } break; case END_OF_STATEMENT: { alt4 = 1; } break; default: NoViableAltException nvae_d4s3 = new NoViableAltException("", 4, 3, input); throw nvae_d4s3; } } break; default: NoViableAltException nvae_d4s0 = new NoViableAltException("", 4, 0, input); throw nvae_d4s0; } switch (alt4) { case 1 : // Interp.g:51:6: var_int_or_double_literal { PushFollow(FOLLOW_var_int_or_double_literal_in_assignment193); var_int_or_double_literal13 = var_int_or_double_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, var_int_or_double_literal13.Tree); retval.ret.setRhs(((var_int_or_double_literal13 != null) ? var_int_or_double_literal13.ret : null)); } break; case 2 : // Interp.g:52:7: addition { PushFollow(FOLLOW_addition_in_assignment203); addition14 = addition(); state.followingStackPointer--; adaptor.AddChild(root_0, addition14.Tree); retval.ret.setRhs(((addition14 != null) ? addition14.ret : null)); } break; case 3 : // Interp.g:53:7: multiplication { PushFollow(FOLLOW_multiplication_in_assignment213); multiplication15 = multiplication(); state.followingStackPointer--; adaptor.AddChild(root_0, multiplication15.Tree); retval.ret.setRhs(((multiplication15 != null) ? multiplication15.ret : null)); } break; } END_OF_STATEMENT16=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment223); END_OF_STATEMENT16_tree = (object)adaptor.Create(END_OF_STATEMENT16); adaptor.AddChild(root_0, END_OF_STATEMENT16_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 "assignment" // Interp.g:45:1: assignment returns [AssignmentOperationElement ret] : variable ASSIGNMENT ( var_or_int_literal | addition | multiplication ) END_OF_STATEMENT ; public InterpParser.assignment_return assignment() { InterpParser.assignment_return retval = new InterpParser.assignment_return(); retval.Start = input.LT(1); object root_0 = null; IToken ASSIGNMENT8 = null; IToken END_OF_STATEMENT12 = null; InterpParser.variable_return variable7 = null; InterpParser.var_or_int_literal_return var_or_int_literal9 = null; InterpParser.addition_return addition10 = null; InterpParser.multiplication_return multiplication11 = null; object ASSIGNMENT8_tree=null; object END_OF_STATEMENT12_tree=null; retval.ret = new AssignmentOperationElement(); try { // Interp.g:49:3: ( variable ASSIGNMENT ( var_or_int_literal | addition | multiplication ) END_OF_STATEMENT ) // Interp.g:49:5: variable ASSIGNMENT ( var_or_int_literal | addition | multiplication ) END_OF_STATEMENT { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_variable_in_assignment157); variable7 = variable(); state.followingStackPointer--; adaptor.AddChild(root_0, variable7.Tree); retval.ret.setLhs(((variable7 != null) ? variable7.ret : null)); ASSIGNMENT8=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment165); ASSIGNMENT8_tree = (object)adaptor.Create(ASSIGNMENT8); adaptor.AddChild(root_0, ASSIGNMENT8_tree); // Interp.g:51:5: ( var_or_int_literal | addition | multiplication ) int alt3 = 3; int LA3_0 = input.LA(1); if ( (LA3_0 == VARIABLE) ) { switch ( input.LA(2) ) { case PLUS: { alt3 = 2; } break; case MULTIPLY: { alt3 = 3; } break; case END_OF_STATEMENT: { alt3 = 1; } break; default: NoViableAltException nvae_d3s1 = new NoViableAltException("", 3, 1, input); throw nvae_d3s1; } } else if ( (LA3_0 == INT_LITERAL) ) { switch ( input.LA(2) ) { case END_OF_STATEMENT: { alt3 = 1; } break; case PLUS: { alt3 = 2; } break; case MULTIPLY: { alt3 = 3; } break; default: NoViableAltException nvae_d3s2 = new NoViableAltException("", 3, 2, input); throw nvae_d3s2; } } else { NoViableAltException nvae_d3s0 = new NoViableAltException("", 3, 0, input); throw nvae_d3s0; } switch (alt3) { case 1 : // Interp.g:51:6: var_or_int_literal { PushFollow(FOLLOW_var_or_int_literal_in_assignment173); var_or_int_literal9 = var_or_int_literal(); state.followingStackPointer--; adaptor.AddChild(root_0, var_or_int_literal9.Tree); retval.ret.setRhs(((var_or_int_literal9 != null) ? var_or_int_literal9.ret : null)); } break; case 2 : // Interp.g:52:7: addition { PushFollow(FOLLOW_addition_in_assignment184); addition10 = addition(); state.followingStackPointer--; adaptor.AddChild(root_0, addition10.Tree); retval.ret.setRhs(((addition10 != null) ? addition10.ret : null)); } break; case 3 : // Interp.g:53:7: multiplication { PushFollow(FOLLOW_multiplication_in_assignment194); multiplication11 = multiplication(); state.followingStackPointer--; adaptor.AddChild(root_0, multiplication11.Tree); retval.ret.setRhs(((multiplication11 != null) ? multiplication11.ret : null)); } break; } END_OF_STATEMENT12=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment206); END_OF_STATEMENT12_tree = (object)adaptor.Create(END_OF_STATEMENT12); adaptor.AddChild(root_0, END_OF_STATEMENT12_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; }