Наследование: Antlr.Runtime.ParserRuleReturnScope
Пример #1
0
    // throws RecognitionException [1]
    // $ANTLR start "program"
    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:20:1: program returns [List<Element> ret] : ( expr )+ ;
    public spinachParser.program_return program()
    {
        spinachParser.program_return retval = new spinachParser.program_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.expr_return expr1 = null;

          retval.ret = new List<Element>();

        try
        {
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:24:3: ( ( expr )+ )
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:24:5: ( expr )+
            {
                root_0 = (object)adaptor.GetNilNode();

                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:24:5: ( expr )+
                int cnt1 = 0;
                do
                {
                    int alt1 = 2;
                    int LA1_0 = input.LA(1);

                    if ( (LA1_0 == VARIABLE || LA1_0 == VARTYPE || LA1_0 == STRINGTYPE || LA1_0 == 23 || (LA1_0 >= 29 && LA1_0 <= 33) || LA1_0 == 36 || (LA1_0 >= 38 && LA1_0 <= 46)) )
                    {
                        alt1 = 1;
                    }

                    switch (alt1)
                    {
                        case 1 :
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:24:6: expr
                            {
                                PushFollow(FOLLOW_expr_in_program65);
                                expr1 = expr();
                                state.followingStackPointer--;

                                adaptor.AddChild(root_0, expr1.Tree);
                                retval.ret.Add(((expr1 != null) ? expr1.ret : null));

                            }
                            break;

                        default:
                            if ( cnt1 >= 1 ) goto loop1;
                                EarlyExitException eee1 =
                                    new EarlyExitException(1, input);
                                throw eee1;
                    }
                    cnt1++;
                } while (true);

                loop1:
                    ;	// Stops C# compiler whining that label 'loop1' 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;
    }
Пример #2
0
    // $ANTLR start "program"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:24:1: program returns [List<Element> ret] : ( expr )+ ;
    public spinachParser.program_return program() // throws RecognitionException [1]
    {   
        spinachParser.program_return retval = new spinachParser.program_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.expr_return expr1 = null;




          retval.ret = new List<Element>();

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:28:3: ( ( expr )+ )
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:28:5: ( expr )+
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:28:5: ( expr )+
            	int cnt1 = 0;
            	do 
            	{
            	    int alt1 = 2;
            	    int LA1_0 = input.LA(1);

            	    if ( (LA1_0 == VARIABLE || LA1_0 == VARTYPE || LA1_0 == STRINGTYPE || LA1_0 == 28 || LA1_0 == 32 || (LA1_0 >= 34 && LA1_0 <= 37) || LA1_0 == 40 || (LA1_0 >= 42 && LA1_0 <= 43) || LA1_0 == 46 || LA1_0 == 48 || (LA1_0 >= 52 && LA1_0 <= 56)) )
            	    {
            	        alt1 = 1;
            	    }


            	    switch (alt1) 
            		{
            			case 1 :
            			    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:28:6: expr
            			    {
            			    	PushFollow(FOLLOW_expr_in_program69);
            			    	expr1 = expr();
            			    	state.followingStackPointer--;

            			    	adaptor.AddChild(root_0, expr1.Tree);
            			    	retval.ret.Add(((expr1 != null) ? expr1.ret : null)); 

            			    }
            			    break;

            			default:
            			    if ( cnt1 >= 1 ) goto loop1;
            		            EarlyExitException eee1 =
            		                new EarlyExitException(1, input);
            		            throw eee1;
            	    }
            	    cnt1++;
            	} while (true);

            	loop1:
            		;	// Stops C# compiler whinging that label 'loop1' 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;
    }
Пример #3
0
    // $ANTLR start "program"
    // spinach.g:24:1: program returns [List<Element> ret] : ( ( expr | comment )+ EOF ) ;
    public spinachParser.program_return program() // throws RecognitionException [1]
    {   
        spinachParser.program_return retval = new spinachParser.program_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken EOF3 = null;
        spinachParser.expr_return expr1 = null;

        spinachParser.comment_return comment2 = null;


        object EOF3_tree=null;


          retval.ret = new List<Element>();

        try 
    	{
            // spinach.g:28:3: ( ( ( expr | comment )+ EOF ) )
            // spinach.g:28:5: ( ( expr | comment )+ EOF )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// spinach.g:28:5: ( ( expr | comment )+ EOF )
            	// spinach.g:28:6: ( expr | comment )+ EOF
            	{
            		// spinach.g:28:6: ( expr | comment )+
            		int cnt1 = 0;
            		do 
            		{
            		    int alt1 = 3;
            		    int LA1_0 = input.LA(1);

            		    if ( (LA1_0 == VARIABLE || LA1_0 == VARTYPE || LA1_0 == STRINGTYPE || LA1_0 == 28 || LA1_0 == 32 || (LA1_0 >= 34 && LA1_0 <= 37) || LA1_0 == 40 || (LA1_0 >= 42 && LA1_0 <= 43) || LA1_0 == 47 || (LA1_0 >= 51 && LA1_0 <= 55)) )
            		    {
            		        alt1 = 1;
            		    }
            		    else if ( (LA1_0 == 56) )
            		    {
            		        alt1 = 2;
            		    }


            		    switch (alt1) 
            			{
            				case 1 :
            				    // spinach.g:28:7: expr
            				    {
            				    	PushFollow(FOLLOW_expr_in_program70);
            				    	expr1 = expr();
            				    	state.followingStackPointer--;

            				    	adaptor.AddChild(root_0, expr1.Tree);
            				    	retval.ret.Add(((expr1 != null) ? expr1.ret : null)); 

            				    }
            				    break;
            				case 2 :
            				    // spinach.g:28:44: comment
            				    {
            				    	PushFollow(FOLLOW_comment_in_program76);
            				    	comment2 = comment();
            				    	state.followingStackPointer--;

            				    	adaptor.AddChild(root_0, comment2.Tree);
            				    	retval.ret.Add(((comment2 != null) ? comment2.ret : null));

            				    }
            				    break;

            				default:
            				    if ( cnt1 >= 1 ) goto loop1;
            			            EarlyExitException eee1 =
            			                new EarlyExitException(1, input);
            			            throw eee1;
            		    }
            		    cnt1++;
            		} while (true);

            		loop1:
            			;	// Stops C# compiler whining that label 'loop1' has no statements

            		EOF3=(IToken)Match(input,EOF,FOLLOW_EOF_in_program82); 
            			EOF3_tree = (object)adaptor.Create(EOF3);
            			adaptor.AddChild(root_0, EOF3_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;
    }