コード例 #1
0
    // $ANTLR start "additive_expression"
    // SimpleExpression.g3:48:0: additive_expression : multiplicative_expression ( ( '+' | '-' ) multiplicative_expression )* ;
    private SimpleExpressionParser.additive_expression_return additive_expression()
    {
        SimpleExpressionParser.additive_expression_return retval = new SimpleExpressionParser.additive_expression_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        IToken char_literal4 = null;
        IToken char_literal5 = null;

        SimpleExpressionParser.multiplicative_expression_return multiplicative_expression3 = default(SimpleExpressionParser.multiplicative_expression_return);
        SimpleExpressionParser.multiplicative_expression_return multiplicative_expression6 = default(SimpleExpressionParser.multiplicative_expression_return);

        CommonTree char_literal4_tree = null;
        CommonTree char_literal5_tree = null;

        try
        {
            // SimpleExpression.g3:49:4: ( multiplicative_expression ( ( '+' | '-' ) multiplicative_expression )* )
            // SimpleExpression.g3:49:4: multiplicative_expression ( ( '+' | '-' ) multiplicative_expression )*
            {
                root_0 = (CommonTree)adaptor.Nil();

                PushFollow(Follow._multiplicative_expression_in_additive_expression54);
                multiplicative_expression3 = multiplicative_expression();
                PopFollow();

                adaptor.AddChild(root_0, multiplicative_expression3.Tree);
                // SimpleExpression.g3:50:3: ( ( '+' | '-' ) multiplicative_expression )*
                while (true)
                {
                    int alt2  = 2;
                    int LA2_0 = input.LA(1);

                    if ((LA2_0 == 7 || LA2_0 == 11))
                    {
                        alt2 = 1;
                    }


                    switch (alt2)
                    {
                    case 1:
                        // SimpleExpression.g3:50:5: ( '+' | '-' ) multiplicative_expression
                    {
                        // SimpleExpression.g3:50:5: ( '+' | '-' )
                        int alt1  = 2;
                        int LA1_0 = input.LA(1);

                        if ((LA1_0 == 11))
                        {
                            alt1 = 1;
                        }
                        else if ((LA1_0 == 7))
                        {
                            alt1 = 2;
                        }
                        else
                        {
                            NoViableAltException nvae = new NoViableAltException("", 1, 0, input);

                            throw nvae;
                        }
                        switch (alt1)
                        {
                        case 1:
                            // SimpleExpression.g3:50:6: '+'
                        {
                            char_literal4      = (IToken)Match(input, 11, Follow._11_in_additive_expression61);
                            char_literal4_tree = (CommonTree)adaptor.Create(char_literal4);
                            root_0             = (CommonTree)adaptor.BecomeRoot(char_literal4_tree, root_0);
                        }
                        break;

                        case 2:
                            // SimpleExpression.g3:50:13: '-'
                        {
                            char_literal5      = (IToken)Match(input, 7, Follow._7_in_additive_expression66);
                            char_literal5_tree = (CommonTree)adaptor.Create(char_literal5);
                            root_0             = (CommonTree)adaptor.BecomeRoot(char_literal5_tree, root_0);
                        }
                        break;
                        }

                        PushFollow(Follow._multiplicative_expression_in_additive_expression73);
                        multiplicative_expression6 = multiplicative_expression();
                        PopFollow();

                        adaptor.AddChild(root_0, multiplicative_expression6.Tree);
                    }
                    break;

                    default:
                        goto loop2;
                    }
                }

loop2:
                ;
            }

            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);
    }
コード例 #2
0
    // $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);
    }
コード例 #3
0
	// $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;

	}