// $ANTLR start "atom" // SimpleExpression.g3:62:0: atom : ( IDENTIFIER | NUMBER ); private SimpleExpressionParser.atom_return atom() { SimpleExpressionParser.atom_return retval = new SimpleExpressionParser.atom_return(); retval.start = input.LT(1); CommonTree root_0 = null; IToken set12 = null; CommonTree set12_tree = null; try { // SimpleExpression.g3:63:4: ( IDENTIFIER | NUMBER ) // SimpleExpression.g3: { root_0 = (CommonTree)adaptor.Nil(); set12 = (IToken)input.LT(1); if ((input.LA(1) >= IDENTIFIER && input.LA(1) <= NUMBER)) { input.Consume(); adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set12)); state.errorRecovery = false; } else { MismatchedSetException mse = new MismatchedSetException(null, input); throw mse; } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { ReportError(re); Recover(input, re); retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re); } finally { } return(retval); }
// $ANTLR start "multiplicative_expression" // SimpleExpression.g3:55:0: multiplicative_expression : atom ( ( '*' | '/' | '%' ) atom )* ; private SimpleExpressionParser.multiplicative_expression_return multiplicative_expression() { SimpleExpressionParser.multiplicative_expression_return retval = new SimpleExpressionParser.multiplicative_expression_return(); retval.start = input.LT(1); CommonTree root_0 = null; IToken char_literal8 = null; IToken char_literal9 = null; IToken char_literal10 = null; SimpleExpressionParser.atom_return atom7 = default(SimpleExpressionParser.atom_return); SimpleExpressionParser.atom_return atom11 = default(SimpleExpressionParser.atom_return); CommonTree char_literal8_tree = null; CommonTree char_literal9_tree = null; CommonTree char_literal10_tree = null; try { // SimpleExpression.g3:56:4: ( atom ( ( '*' | '/' | '%' ) atom )* ) // SimpleExpression.g3:56:4: atom ( ( '*' | '/' | '%' ) atom )* { root_0 = (CommonTree)adaptor.Nil(); PushFollow(Follow._atom_in_multiplicative_expression89); atom7 = atom(); PopFollow(); adaptor.AddChild(root_0, atom7.Tree); // SimpleExpression.g3:57:3: ( ( '*' | '/' | '%' ) atom )* while (true) { int alt4 = 2; int LA4_0 = input.LA(1); if (((LA4_0 >= 8 && LA4_0 <= 10))) { alt4 = 1; } switch (alt4) { case 1: // SimpleExpression.g3:57:5: ( '*' | '/' | '%' ) atom { // SimpleExpression.g3:57:5: ( '*' | '/' | '%' ) int alt3 = 3; switch (input.LA(1)) { case 9: { alt3 = 1; } break; case 10: { alt3 = 2; } break; case 8: { alt3 = 3; } break; default: { NoViableAltException nvae = new NoViableAltException("", 3, 0, input); throw nvae; } } switch (alt3) { case 1: // SimpleExpression.g3:57:6: '*' { char_literal8 = (IToken)Match(input, 9, Follow._9_in_multiplicative_expression96); char_literal8_tree = (CommonTree)adaptor.Create(char_literal8); root_0 = (CommonTree)adaptor.BecomeRoot(char_literal8_tree, root_0); } break; case 2: // SimpleExpression.g3:57:13: '/' { char_literal9 = (IToken)Match(input, 10, Follow._10_in_multiplicative_expression101); char_literal9_tree = (CommonTree)adaptor.Create(char_literal9); root_0 = (CommonTree)adaptor.BecomeRoot(char_literal9_tree, root_0); } break; case 3: // SimpleExpression.g3:57:20: '%' { char_literal10 = (IToken)Match(input, 8, Follow._8_in_multiplicative_expression106); char_literal10_tree = (CommonTree)adaptor.Create(char_literal10); root_0 = (CommonTree)adaptor.BecomeRoot(char_literal10_tree, root_0); } break; } PushFollow(Follow._atom_in_multiplicative_expression113); atom11 = atom(); PopFollow(); adaptor.AddChild(root_0, atom11.Tree); } break; default: goto loop4; } } loop4: ; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { ReportError(re); Recover(input, re); retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re); } finally { } return(retval); }
// $ANTLR start "atom" // SimpleExpression.g3:62:0: atom : ( IDENTIFIER | NUMBER ); private SimpleExpressionParser.atom_return atom() { SimpleExpressionParser.atom_return retval = new SimpleExpressionParser.atom_return(); retval.start = input.LT(1); CommonTree root_0 = null; IToken set12=null; CommonTree set12_tree=null; try { // SimpleExpression.g3:63:4: ( IDENTIFIER | NUMBER ) // SimpleExpression.g3: { root_0 = (CommonTree)adaptor.Nil(); set12=(IToken)input.LT(1); if ((input.LA(1)>=IDENTIFIER && input.LA(1)<=NUMBER)) { input.Consume(); adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set12)); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; }