Inheritance: Antlr.Runtime.ParserRuleReturnScope
Example #1
0
    // $ANTLR start "structdec"
    // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:93:1: structdec returns [StructDeclaration ret] : ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) END_OF_STATEMENT ;
    public InterpParser.structdec_return structdec() // throws RecognitionException [1]
    {   
        InterpParser.structdec_return retval = new InterpParser.structdec_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal26 = null;
        IToken char_literal27 = null;
        IToken TYPE28 = null;
        IToken char_literal29 = null;
        IToken char_literal30 = null;
        IToken END_OF_STATEMENT31 = null;
        InterpParser.variable_return el1 = null;

        InterpParser.variable_return el2 = null;


        object string_literal26_tree=null;
        object char_literal27_tree=null;
        object TYPE28_tree=null;
        object char_literal29_tree=null;
        object char_literal30_tree=null;
        object END_OF_STATEMENT31_tree=null;


        	retval.ret = new StructDeclaration();
        	
        try {
        	dbg.EnterRule(GrammarFileName, "structdec");
        	if ( RuleLevel==0 ) {dbg.Commence();}
        	IncRuleLevel();
        	dbg.Location(93, 1);

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:2: ( ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) END_OF_STATEMENT )
            dbg.EnterAlt(1);

            // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:4: ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	dbg.Location(97,4);
            	// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:4: ( 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}' )
            	dbg.EnterAlt(1);

            	// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:97:5: 'Struct' el1= variable '{' ( TYPE el2= variable ';' )+ '}'
            	{
            		dbg.Location(97,5);
            		string_literal26=(IToken)Match(input,16,FOLLOW_16_in_structdec446); 
            			string_literal26_tree = (object)adaptor.Create(string_literal26);
            			adaptor.AddChild(root_0, string_literal26_tree);

            		dbg.Location(97,17);
            		PushFollow(FOLLOW_variable_in_structdec450);
            		el1 = variable();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el1.Tree);
            		dbg.Location(97,27);
            		 retval.ret.setName(((el1 != null) ? el1.ret : null));
            		dbg.Location(98,2);
            		char_literal27=(IToken)Match(input,17,FOLLOW_17_in_structdec455); 
            			char_literal27_tree = (object)adaptor.Create(char_literal27);
            			adaptor.AddChild(root_0, char_literal27_tree);

            		dbg.Location(98,5);
            		// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:98:5: ( TYPE el2= variable ';' )+
            		int cnt7 = 0;
            		try { dbg.EnterSubRule(7);

            		do 
            		{
            		    int alt7 = 2;
            		    try { dbg.EnterDecision(7);

            		    int LA7_0 = input.LA(1);

            		    if ( (LA7_0 == TYPE) )
            		    {
            		        alt7 = 1;
            		    }


            		    } finally { dbg.ExitDecision(7); }

            		    switch (alt7) 
            			{
            				case 1 :
            				    dbg.EnterAlt(1);

            				    // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:98:6: TYPE el2= variable ';'
            				    {
            				    	dbg.Location(98,6);
            				    	TYPE28=(IToken)Match(input,TYPE,FOLLOW_TYPE_in_structdec457); 
            				    		TYPE28_tree = (object)adaptor.Create(TYPE28);
            				    		adaptor.AddChild(root_0, TYPE28_tree);

            				    	dbg.Location(98,11);
            				    	 retval.ret.setType(((TYPE28 != null) ? TYPE28.Text : null));
            				    	dbg.Location(98,49);
            				    	PushFollow(FOLLOW_variable_in_structdec463);
            				    	el2 = variable();
            				    	state.followingStackPointer--;

            				    	adaptor.AddChild(root_0, el2.Tree);
            				    	dbg.Location(98,59);
            				    	 retval.ret.setVar(((el2 != null) ? el2.ret : null));
            				    	dbg.Location(98,90);
            				    	char_literal29=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec466); 
            				    		char_literal29_tree = (object)adaptor.Create(char_literal29);
            				    		adaptor.AddChild(root_0, char_literal29_tree);


            				    }
            				    break;

            				default:
            				    if ( cnt7 >= 1 ) goto loop7;
            			            EarlyExitException eee7 =
            			                new EarlyExitException(7, input);
            			            dbg.RecognitionException(eee);

            			            throw eee7;
            		    }
            		    cnt7++;
            		} while (true);

            		loop7:
            			;	// Stops C# compiler whinging that label 'loop7' has no statements
            		} finally { dbg.ExitSubRule(7); }

            		dbg.Location(99,2);
            		char_literal30=(IToken)Match(input,18,FOLLOW_18_in_structdec471); 
            			char_literal30_tree = (object)adaptor.Create(char_literal30);
            			adaptor.AddChild(root_0, char_literal30_tree);


            	}

            	dbg.Location(99,6);
            	END_OF_STATEMENT31=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec473); 
            		END_OF_STATEMENT31_tree = (object)adaptor.Create(END_OF_STATEMENT31);
            		adaptor.AddChild(root_0, END_OF_STATEMENT31_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 
    	{
        }
        dbg.Location(99, 22);

        }
        finally {
            dbg.ExitRule(GrammarFileName, "structdec");
            DecRuleLevel();
            if ( RuleLevel==0 ) {dbg.Terminate();}
        }

        return retval;
    }
Example #2
0
    // $ANTLR start "structdec"
    // Interp.g:93:1: structdec returns [StructDeclaration ret] : ( 'Struct' variable '{' (el1= structvardec )+ '}' ) END_OF_STATEMENT ;
    public InterpParser.structdec_return structdec() // throws RecognitionException [1]
    {   
        InterpParser.structdec_return retval = new InterpParser.structdec_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal26 = null;
        IToken char_literal28 = null;
        IToken char_literal29 = null;
        IToken END_OF_STATEMENT30 = null;
        InterpParser.structvardec_return el1 = null;

        InterpParser.variable_return variable27 = null;


        object string_literal26_tree=null;
        object char_literal28_tree=null;
        object char_literal29_tree=null;
        object END_OF_STATEMENT30_tree=null;


        	retval.ret = new StructDeclaration();
        	
        try 
    	{
            // Interp.g:97:2: ( ( 'Struct' variable '{' (el1= structvardec )+ '}' ) END_OF_STATEMENT )
            // Interp.g:97:4: ( 'Struct' variable '{' (el1= structvardec )+ '}' ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// Interp.g:97:4: ( 'Struct' variable '{' (el1= structvardec )+ '}' )
            	// Interp.g:97:5: 'Struct' variable '{' (el1= structvardec )+ '}'
            	{
            		string_literal26=(IToken)Match(input,16,FOLLOW_16_in_structdec446); 
            			string_literal26_tree = (object)adaptor.Create(string_literal26);
            			adaptor.AddChild(root_0, string_literal26_tree);

            		PushFollow(FOLLOW_variable_in_structdec448);
            		variable27 = variable();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, variable27.Tree);
            		 retval.ret.setName(((variable27 != null) ? variable27.ret : null));
            		char_literal28=(IToken)Match(input,17,FOLLOW_17_in_structdec453); 
            			char_literal28_tree = (object)adaptor.Create(char_literal28);
            			adaptor.AddChild(root_0, char_literal28_tree);

            		// Interp.g:98:6: (el1= structvardec )+
            		int cnt7 = 0;
            		do 
            		{
            		    int alt7 = 2;
            		    int LA7_0 = input.LA(1);

            		    if ( (LA7_0 == TYPE) )
            		    {
            		        alt7 = 1;
            		    }


            		    switch (alt7) 
            			{
            				case 1 :
            				    // Interp.g:98:7: el1= structvardec
            				    {
            				    	PushFollow(FOLLOW_structvardec_in_structdec458);
            				    	el1 = structvardec();
            				    	state.followingStackPointer--;

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

            				    }
            				    break;

            				default:
            				    if ( cnt7 >= 1 ) goto loop7;
            			            EarlyExitException eee7 =
            			                new EarlyExitException(7, input);
            			            throw eee7;
            		    }
            		    cnt7++;
            		} while (true);

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

            		char_literal29=(IToken)Match(input,18,FOLLOW_18_in_structdec465); 
            			char_literal29_tree = (object)adaptor.Create(char_literal29);
            			adaptor.AddChild(root_0, char_literal29_tree);


            	}

            	END_OF_STATEMENT30=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec467); 
            		END_OF_STATEMENT30_tree = (object)adaptor.Create(END_OF_STATEMENT30);
            		adaptor.AddChild(root_0, END_OF_STATEMENT30_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;
    }
Example #3
0
    // throws RecognitionException [1]
    // $ANTLR start "structdec"
    // Interp.g:119:1: structdec returns [StructDeclaration ret] : ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) END_OF_STATEMENT ;
    public InterpParser.structdec_return structdec()
    {
        InterpParser.structdec_return retval = new InterpParser.structdec_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal49 = null;
        IToken char_literal51 = null;
        IToken char_literal52 = null;
        IToken END_OF_STATEMENT53 = null;
        InterpParser.scalarvardec_return el1 = null;

        InterpParser.variable_return variable50 = null;

        object string_literal49_tree=null;
        object char_literal51_tree=null;
        object char_literal52_tree=null;
        object END_OF_STATEMENT53_tree=null;

            retval.ret = new StructDeclaration();

        try
        {
            // Interp.g:123:2: ( ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) END_OF_STATEMENT )
            // Interp.g:123:4: ( 'Struct' variable '{' (el1= scalarvardec )+ '}' ) END_OF_STATEMENT
            {
                root_0 = (object)adaptor.GetNilNode();

                // Interp.g:123:4: ( 'Struct' variable '{' (el1= scalarvardec )+ '}' )
                // Interp.g:123:5: 'Struct' variable '{' (el1= scalarvardec )+ '}'
                {
                    string_literal49=(IToken)Match(input,21,FOLLOW_21_in_structdec653);
                        string_literal49_tree = (object)adaptor.Create(string_literal49);
                        adaptor.AddChild(root_0, string_literal49_tree);

                    PushFollow(FOLLOW_variable_in_structdec655);
                    variable50 = variable();
                    state.followingStackPointer--;

                    adaptor.AddChild(root_0, variable50.Tree);
                     retval.ret.setName(((variable50 != null) ? variable50.ret : null));
                    char_literal51=(IToken)Match(input,22,FOLLOW_22_in_structdec660);
                        char_literal51_tree = (object)adaptor.Create(char_literal51);
                        adaptor.AddChild(root_0, char_literal51_tree);

                    // Interp.g:124:6: (el1= scalarvardec )+
                    int cnt10 = 0;
                    do
                    {
                        int alt10 = 2;
                        int LA10_0 = input.LA(1);

                        if ( ((LA10_0 >= VARTYPE && LA10_0 <= STRINGTYPE)) )
                        {
                            alt10 = 1;
                        }

                        switch (alt10)
                        {
                            case 1 :
                                // Interp.g:124:7: el1= scalarvardec
                                {
                                    PushFollow(FOLLOW_scalarvardec_in_structdec665);
                                    el1 = scalarvardec();
                                    state.followingStackPointer--;

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

                                }
                                break;

                            default:
                                if ( cnt10 >= 1 ) goto loop10;
                                    EarlyExitException eee10 =
                                        new EarlyExitException(10, input);
                                    throw eee10;
                        }
                        cnt10++;
                    } while (true);

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

                    char_literal52=(IToken)Match(input,23,FOLLOW_23_in_structdec672);
                        char_literal52_tree = (object)adaptor.Create(char_literal52);
                        adaptor.AddChild(root_0, char_literal52_tree);

                }

                END_OF_STATEMENT53=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_structdec674);
                    END_OF_STATEMENT53_tree = (object)adaptor.Create(END_OF_STATEMENT53);
                    adaptor.AddChild(root_0, END_OF_STATEMENT53_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;
    }