// $ANTLR start "additive_expression" // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:154:1: additive_expression returns [AdditiveElement ret] : ( (e11= multiplicative_expression ) ( '+' e12= additive_expression )* ) ; public spinachParser.additive_expression_return additive_expression() // throws RecognitionException [1] { spinachParser.additive_expression_return retval = new spinachParser.additive_expression_return(); retval.Start = input.LT(1); object root_0 = null; IToken char_literal71 = null; spinachParser.multiplicative_expression_return e11 = null; spinachParser.additive_expression_return e12 = null; object char_literal71_tree=null; retval.ret = new AdditiveElement(); try { // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:2: ( ( (e11= multiplicative_expression ) ( '+' e12= additive_expression )* ) ) // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:4: ( (e11= multiplicative_expression ) ( '+' e12= additive_expression )* ) { root_0 = (object)adaptor.GetNilNode(); // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:4: ( (e11= multiplicative_expression ) ( '+' e12= additive_expression )* ) // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:5: (e11= multiplicative_expression ) ( '+' e12= additive_expression )* { // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:5: (e11= multiplicative_expression ) // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:6: e11= multiplicative_expression { PushFollow(FOLLOW_multiplicative_expression_in_additive_expression920); e11 = multiplicative_expression(); state.followingStackPointer--; adaptor.AddChild(root_0, e11.Tree); retval.ret.setLhs(((e11 != null) ? e11.ret : null)); } // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:69: ( '+' e12= additive_expression )* do { int alt21 = 2; int LA21_0 = input.LA(1); if ( (LA21_0 == PLUS) ) { alt21 = 1; } switch (alt21) { case 1 : // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:158:70: '+' e12= additive_expression { char_literal71=(IToken)Match(input,PLUS,FOLLOW_PLUS_in_additive_expression925); char_literal71_tree = (object)adaptor.Create(char_literal71); adaptor.AddChild(root_0, char_literal71_tree); PushFollow(FOLLOW_additive_expression_in_additive_expression931); e12 = additive_expression(); state.followingStackPointer--; adaptor.AddChild(root_0, e12.Tree); retval.ret.setRhs(((e12 != null) ? e12.ret : null)); } break; default: goto loop21; } } while (true); loop21: ; // Stops C# compiler whining that label 'loop21' has no statements } } 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 "additive_expression" // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:132:1: additive_expression returns [AdditiveElement ret] : ( (e11= multiplicative_expression ) ( '+' e12= multiplicative_expression )* ) ; public spinachParser.additive_expression_return additive_expression() // throws RecognitionException [1] { spinachParser.additive_expression_return retval = new spinachParser.additive_expression_return(); retval.Start = input.LT(1); object root_0 = null; IToken char_literal57 = null; spinachParser.multiplicative_expression_return e11 = null; spinachParser.multiplicative_expression_return e12 = null; object char_literal57_tree=null; retval.ret = new AdditiveElement(); try { // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:2: ( ( (e11= multiplicative_expression ) ( '+' e12= multiplicative_expression )* ) ) // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:4: ( (e11= multiplicative_expression ) ( '+' e12= multiplicative_expression )* ) { root_0 = (object)adaptor.GetNilNode(); // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:4: ( (e11= multiplicative_expression ) ( '+' e12= multiplicative_expression )* ) // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:5: (e11= multiplicative_expression ) ( '+' e12= multiplicative_expression )* { // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:5: (e11= multiplicative_expression ) // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:6: e11= multiplicative_expression { PushFollow(FOLLOW_multiplicative_expression_in_additive_expression810); e11 = multiplicative_expression(); state.followingStackPointer--; adaptor.AddChild(root_0, e11.Tree); retval.ret.setLhs(((e11 != null) ? e11.ret : null)); } // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:69: ( '+' e12= multiplicative_expression )* do { int alt15 = 2; int LA15_0 = input.LA(1); if ( (LA15_0 == PLUS) ) { alt15 = 1; } switch (alt15) { case 1 : // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:136:70: '+' e12= multiplicative_expression { char_literal57=(IToken)Match(input,PLUS,FOLLOW_PLUS_in_additive_expression815); char_literal57_tree = (object)adaptor.Create(char_literal57); adaptor.AddChild(root_0, char_literal57_tree); PushFollow(FOLLOW_multiplicative_expression_in_additive_expression821); e12 = multiplicative_expression(); state.followingStackPointer--; adaptor.AddChild(root_0, e12.Tree); retval.ret.setRhs(((e12 != null) ? e12.ret : null)); } break; default: goto loop15; } } while (true); loop15: ; // Stops C# compiler whining that label 'loop15' has no statements } } 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; }