// $ANTLR start "multiplicativeExpression" // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:344:1: multiplicativeExpression : negativeExpression ( ( '*' | '/' | '%' ) negativeExpression )* ; public SGLParser.multiplicativeExpression_return multiplicativeExpression() // throws RecognitionException [1] { SGLParser.multiplicativeExpression_return retval = new SGLParser.multiplicativeExpression_return(); retval.Start = input.LT(1); object root_0 = null; IToken char_literal117 = null; IToken char_literal118 = null; IToken char_literal119 = null; SGLParser.negativeExpression_return negativeExpression116 = default(SGLParser.negativeExpression_return); SGLParser.negativeExpression_return negativeExpression120 = default(SGLParser.negativeExpression_return); object char_literal117_tree=null; object char_literal118_tree=null; object char_literal119_tree=null; try { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:345:5: ( negativeExpression ( ( '*' | '/' | '%' ) negativeExpression )* ) // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:345:9: negativeExpression ( ( '*' | '/' | '%' ) negativeExpression )* { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_negativeExpression_in_multiplicativeExpression1383); negativeExpression116 = negativeExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, negativeExpression116.Tree); // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:346:5: ( ( '*' | '/' | '%' ) negativeExpression )* do { int alt30 = 2; int LA30_0 = input.LA(1); if ( ((LA30_0 >= 79 && LA30_0 <= 81)) ) { alt30 = 1; } switch (alt30) { case 1 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:346:6: ( '*' | '/' | '%' ) negativeExpression { // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:346:6: ( '*' | '/' | '%' ) int alt29 = 3; switch ( input.LA(1) ) { case 79: { alt29 = 1; } break; case 80: { alt29 = 2; } break; case 81: { alt29 = 3; } break; default: NoViableAltException nvae_d29s0 = new NoViableAltException("", 29, 0, input); throw nvae_d29s0; } switch (alt29) { case 1 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:346:7: '*' { char_literal117=(IToken)Match(input,79,FOLLOW_79_in_multiplicativeExpression1391); char_literal117_tree = (object)adaptor.Create(char_literal117); root_0 = (object)adaptor.BecomeRoot(char_literal117_tree, root_0); } break; case 2 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:346:12: '/' { char_literal118=(IToken)Match(input,80,FOLLOW_80_in_multiplicativeExpression1394); char_literal118_tree = (object)adaptor.Create(char_literal118); root_0 = (object)adaptor.BecomeRoot(char_literal118_tree, root_0); } break; case 3 : // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:346:17: '%' { char_literal119=(IToken)Match(input,81,FOLLOW_81_in_multiplicativeExpression1397); char_literal119_tree = (object)adaptor.Create(char_literal119); root_0 = (object)adaptor.BecomeRoot(char_literal119_tree, root_0); } break; } PushFollow(FOLLOW_negativeExpression_in_multiplicativeExpression1401); negativeExpression120 = negativeExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, negativeExpression120.Tree); } break; default: goto loop30; } } while (true); loop30: ; // Stops C# compiler whining that label 'loop30' 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 "multiplicativeExpression" // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:317:1: multiplicativeExpression : powExpression ( ( '*' | '/' | '%' ) powExpression )* ; public SGLParser.multiplicativeExpression_return multiplicativeExpression() // throws RecognitionException [1] { SGLParser.multiplicativeExpression_return retval = new SGLParser.multiplicativeExpression_return(); retval.Start = input.LT(1); int multiplicativeExpression_StartIndex = input.Index(); object root_0 = null; IToken char_literal94 = null; IToken char_literal95 = null; IToken char_literal96 = null; SGLParser.powExpression_return powExpression93 = default(SGLParser.powExpression_return); SGLParser.powExpression_return powExpression97 = default(SGLParser.powExpression_return); object char_literal94_tree=null; object char_literal95_tree=null; object char_literal96_tree=null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 26) ) { return retval; } // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:5: ( powExpression ( ( '*' | '/' | '%' ) powExpression )* ) // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:9: powExpression ( ( '*' | '/' | '%' ) powExpression )* { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_powExpression_in_multiplicativeExpression1158); powExpression93 = powExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, powExpression93.Tree); // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:23: ( ( '*' | '/' | '%' ) powExpression )* do { int alt30 = 2; int LA30_0 = input.LA(1); if ( ((LA30_0 >= 74 && LA30_0 <= 76)) ) { alt30 = 1; } switch (alt30) { case 1 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:24: ( '*' | '/' | '%' ) powExpression { // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:24: ( '*' | '/' | '%' ) int alt29 = 3; switch ( input.LA(1) ) { case 74: { alt29 = 1; } break; case 75: { alt29 = 2; } break; case 76: { alt29 = 3; } break; default: if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d29s0 = new NoViableAltException("", 29, 0, input); throw nvae_d29s0; } switch (alt29) { case 1 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:25: '*' { char_literal94=(IToken)Match(input,74,FOLLOW_74_in_multiplicativeExpression1162); if (state.failed) return retval; if ( state.backtracking == 0 ) {char_literal94_tree = (object)adaptor.Create(char_literal94); root_0 = (object)adaptor.BecomeRoot(char_literal94_tree, root_0); } } break; case 2 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:30: '/' { char_literal95=(IToken)Match(input,75,FOLLOW_75_in_multiplicativeExpression1165); if (state.failed) return retval; if ( state.backtracking == 0 ) {char_literal95_tree = (object)adaptor.Create(char_literal95); root_0 = (object)adaptor.BecomeRoot(char_literal95_tree, root_0); } } break; case 3 : // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:318:35: '%' { char_literal96=(IToken)Match(input,76,FOLLOW_76_in_multiplicativeExpression1168); if (state.failed) return retval; if ( state.backtracking == 0 ) {char_literal96_tree = (object)adaptor.Create(char_literal96); root_0 = (object)adaptor.BecomeRoot(char_literal96_tree, root_0); } } break; } PushFollow(FOLLOW_powExpression_in_multiplicativeExpression1172); powExpression97 = powExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, powExpression97.Tree); } break; default: goto loop30; } } while (true); loop30: ; // Stops C# compiler whining that label 'loop30' has no statements } retval.Stop = input.LT(-1); if ( (state.backtracking==0) ) { 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 { if ( state.backtracking > 0 ) { Memoize(input, 26, multiplicativeExpression_StartIndex); } } return retval; }