Inheritance: Antlr.Runtime.ParserRuleReturnScope
Exemplo n.º 1
0
    // $ANTLR start "vectorvardec"
    // spinach.g:92:1: vectorvardec returns [VectorVariableDeclaration ret] : ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal ( ',' el5= int_literal )* ) | (el4= double_literal ( ',' el6= double_literal )* ) ) ']' ) END_OF_STATEMENT ;
    public spinachParser.vectorvardec_return vectorvardec() // throws RecognitionException [1]
    {   
        spinachParser.vectorvardec_return retval = new spinachParser.vectorvardec_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal31 = null;
        IToken char_literal32 = null;
        IToken VARTYPE33 = null;
        IToken char_literal34 = null;
        IToken char_literal35 = null;
        IToken char_literal36 = null;
        IToken ASSIGNMENT37 = null;
        IToken char_literal38 = null;
        IToken char_literal39 = null;
        IToken char_literal40 = null;
        IToken char_literal41 = null;
        IToken END_OF_STATEMENT42 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.variable_return el2 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.int_literal_return el5 = null;

        spinachParser.double_literal_return el4 = null;

        spinachParser.double_literal_return el6 = null;


        object string_literal31_tree=null;
        object char_literal32_tree=null;
        object VARTYPE33_tree=null;
        object char_literal34_tree=null;
        object char_literal35_tree=null;
        object char_literal36_tree=null;
        object ASSIGNMENT37_tree=null;
        object char_literal38_tree=null;
        object char_literal39_tree=null;
        object char_literal40_tree=null;
        object char_literal41_tree=null;
        object END_OF_STATEMENT42_tree=null;


        	retval.ret = new VectorVariableDeclaration();
        	
        try 
    	{
            // spinach.g:96:2: ( ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal ( ',' el5= int_literal )* ) | (el4= double_literal ( ',' el6= double_literal )* ) ) ']' ) END_OF_STATEMENT )
            // spinach.g:96:3: ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal ( ',' el5= int_literal )* ) | (el4= double_literal ( ',' el6= double_literal )* ) ) ']' ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// spinach.g:96:3: ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal ( ',' el5= int_literal )* ) | (el4= double_literal ( ',' el6= double_literal )* ) ) ']' )
            	// spinach.g:96:4: 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal ( ',' el5= int_literal )* ) | (el4= double_literal ( ',' el6= double_literal )* ) ) ']'
            	{
            		string_literal31=(IToken)Match(input,32,FOLLOW_32_in_vectorvardec526); 
            			string_literal31_tree = (object)adaptor.Create(string_literal31);
            			adaptor.AddChild(root_0, string_literal31_tree);

            		char_literal32=(IToken)Match(input,LESSTHANEXPRESSION,FOLLOW_LESSTHANEXPRESSION_in_vectorvardec528); 
            			char_literal32_tree = (object)adaptor.Create(char_literal32);
            			adaptor.AddChild(root_0, char_literal32_tree);

            		VARTYPE33=(IToken)Match(input,VARTYPE,FOLLOW_VARTYPE_in_vectorvardec530); 
            			VARTYPE33_tree = (object)adaptor.Create(VARTYPE33);
            			adaptor.AddChild(root_0, VARTYPE33_tree);

            		 retval.ret.setType(((VARTYPE33 != null) ? VARTYPE33.Text : null));
            		char_literal34=(IToken)Match(input,GREATERTHANEXPRESSION,FOLLOW_GREATERTHANEXPRESSION_in_vectorvardec533); 
            			char_literal34_tree = (object)adaptor.Create(char_literal34);
            			adaptor.AddChild(root_0, char_literal34_tree);

            		char_literal35=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec535); 
            			char_literal35_tree = (object)adaptor.Create(char_literal35);
            			adaptor.AddChild(root_0, char_literal35_tree);

            		PushFollow(FOLLOW_int_literal_in_vectorvardec538);
            		el1 = int_literal();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el1.Tree);
            		retval.ret.setRange(((el1 != null) ? el1.ret : null));
            		char_literal36=(IToken)Match(input,30,FOLLOW_30_in_vectorvardec541); 
            			char_literal36_tree = (object)adaptor.Create(char_literal36);
            			adaptor.AddChild(root_0, char_literal36_tree);

            		PushFollow(FOLLOW_variable_in_vectorvardec547);
            		el2 = variable();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el2.Tree);
            		retval.ret.setText(((el2 != null) ? el2.ret : null));
            		ASSIGNMENT37=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_vectorvardec554); 
            			ASSIGNMENT37_tree = (object)adaptor.Create(ASSIGNMENT37);
            			adaptor.AddChild(root_0, ASSIGNMENT37_tree);

            		char_literal38=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec559); 
            			char_literal38_tree = (object)adaptor.Create(char_literal38);
            			adaptor.AddChild(root_0, char_literal38_tree);

            		// spinach.g:99:6: ( (el3= int_literal ( ',' el5= int_literal )* ) | (el4= double_literal ( ',' el6= double_literal )* ) )
            		int alt12 = 2;
            		int LA12_0 = input.LA(1);

            		if ( (LA12_0 == INT_LITERAL) )
            		{
            		    alt12 = 1;
            		}
            		else if ( (LA12_0 == DOUBLE_LITERAL) )
            		{
            		    alt12 = 2;
            		}
            		else 
            		{
            		    NoViableAltException nvae_d12s0 =
            		        new NoViableAltException("", 12, 0, input);

            		    throw nvae_d12s0;
            		}
            		switch (alt12) 
            		{
            		    case 1 :
            		        // spinach.g:99:7: (el3= int_literal ( ',' el5= int_literal )* )
            		        {
            		        	// spinach.g:99:7: (el3= int_literal ( ',' el5= int_literal )* )
            		        	// spinach.g:99:8: el3= int_literal ( ',' el5= int_literal )*
            		        	{
            		        		PushFollow(FOLLOW_int_literal_in_vectorvardec564);
            		        		el3 = int_literal();
            		        		state.followingStackPointer--;

            		        		adaptor.AddChild(root_0, el3.Tree);
            		        		retval.ret.addValue(((el3 != null) ? el3.ret : null));
            		        		// spinach.g:99:57: ( ',' el5= int_literal )*
            		        		do 
            		        		{
            		        		    int alt10 = 2;
            		        		    int LA10_0 = input.LA(1);

            		        		    if ( (LA10_0 == 31) )
            		        		    {
            		        		        alt10 = 1;
            		        		    }


            		        		    switch (alt10) 
            		        			{
            		        				case 1 :
            		        				    // spinach.g:99:58: ',' el5= int_literal
            		        				    {
            		        				    	char_literal39=(IToken)Match(input,31,FOLLOW_31_in_vectorvardec569); 
            		        				    		char_literal39_tree = (object)adaptor.Create(char_literal39);
            		        				    		adaptor.AddChild(root_0, char_literal39_tree);

            		        				    	PushFollow(FOLLOW_int_literal_in_vectorvardec572);
            		        				    	el5 = int_literal();
            		        				    	state.followingStackPointer--;

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

            		        				    }
            		        				    break;

            		        				default:
            		        				    goto loop10;
            		        		    }
            		        		} while (true);

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


            		        	}


            		        }
            		        break;
            		    case 2 :
            		        // spinach.g:100:3: (el4= double_literal ( ',' el6= double_literal )* )
            		        {
            		        	// spinach.g:100:3: (el4= double_literal ( ',' el6= double_literal )* )
            		        	// spinach.g:100:4: el4= double_literal ( ',' el6= double_literal )*
            		        	{
            		        		PushFollow(FOLLOW_double_literal_in_vectorvardec585);
            		        		el4 = double_literal();
            		        		state.followingStackPointer--;

            		        		adaptor.AddChild(root_0, el4.Tree);
            		        		retval.ret.addValue(((el4 != null) ? el4.ret : null));
            		        		// spinach.g:101:3: ( ',' el6= double_literal )*
            		        		do 
            		        		{
            		        		    int alt11 = 2;
            		        		    int LA11_0 = input.LA(1);

            		        		    if ( (LA11_0 == 31) )
            		        		    {
            		        		        alt11 = 1;
            		        		    }


            		        		    switch (alt11) 
            		        			{
            		        				case 1 :
            		        				    // spinach.g:101:4: ',' el6= double_literal
            		        				    {
            		        				    	char_literal40=(IToken)Match(input,31,FOLLOW_31_in_vectorvardec592); 
            		        				    		char_literal40_tree = (object)adaptor.Create(char_literal40);
            		        				    		adaptor.AddChild(root_0, char_literal40_tree);

            		        				    	PushFollow(FOLLOW_double_literal_in_vectorvardec595);
            		        				    	el6 = double_literal();
            		        				    	state.followingStackPointer--;

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

            		        				    }
            		        				    break;

            		        				default:
            		        				    goto loop11;
            		        		    }
            		        		} while (true);

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


            		        	}


            		        }
            		        break;

            		}

            		char_literal41=(IToken)Match(input,30,FOLLOW_30_in_vectorvardec602); 
            			char_literal41_tree = (object)adaptor.Create(char_literal41);
            			adaptor.AddChild(root_0, char_literal41_tree);

            		retval.ret.setValue();

            	}

            	END_OF_STATEMENT42=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_vectorvardec608); 
            		END_OF_STATEMENT42_tree = (object)adaptor.Create(END_OF_STATEMENT42);
            		adaptor.AddChild(root_0, END_OF_STATEMENT42_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;
    }
Exemplo n.º 2
0
    // $ANTLR start "vectorvardec"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:111:1: vectorvardec returns [VectorVariableDeclaration ret] : ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT ( ( '[' ']' ) | ( '[' el3= int_literal ( ',' el5= int_literal )* ']' ) | ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']' ) ) END_OF_STATEMENT ;
    public spinachParser.vectorvardec_return vectorvardec() // throws RecognitionException [1]
    {   
        spinachParser.vectorvardec_return retval = new spinachParser.vectorvardec_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal40 = null;
        IToken char_literal41 = null;
        IToken VARTYPE42 = null;
        IToken char_literal43 = null;
        IToken char_literal44 = null;
        IToken char_literal45 = null;
        IToken ASSIGNMENT46 = null;
        IToken char_literal47 = null;
        IToken char_literal48 = null;
        IToken char_literal49 = null;
        IToken char_literal50 = null;
        IToken char_literal51 = null;
        IToken char_literal52 = null;
        IToken char_literal53 = null;
        IToken char_literal54 = null;
        IToken END_OF_STATEMENT55 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.variable_return el2 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.int_literal_return el5 = null;

        spinachParser.double_literal_return el4 = null;

        spinachParser.double_literal_return el6 = null;


        object string_literal40_tree=null;
        object char_literal41_tree=null;
        object VARTYPE42_tree=null;
        object char_literal43_tree=null;
        object char_literal44_tree=null;
        object char_literal45_tree=null;
        object ASSIGNMENT46_tree=null;
        object char_literal47_tree=null;
        object char_literal48_tree=null;
        object char_literal49_tree=null;
        object char_literal50_tree=null;
        object char_literal51_tree=null;
        object char_literal52_tree=null;
        object char_literal53_tree=null;
        object char_literal54_tree=null;
        object END_OF_STATEMENT55_tree=null;


        	retval.ret = new VectorVariableDeclaration();
        	
        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:115:2: ( ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT ( ( '[' ']' ) | ( '[' el3= int_literal ( ',' el5= int_literal )* ']' ) | ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']' ) ) END_OF_STATEMENT )
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:115:3: ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT ( ( '[' ']' ) | ( '[' el3= int_literal ( ',' el5= int_literal )* ']' ) | ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']' ) ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:115:3: ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT ( ( '[' ']' ) | ( '[' el3= int_literal ( ',' el5= int_literal )* ']' ) | ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']' ) )
            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:115:4: 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT ( ( '[' ']' ) | ( '[' el3= int_literal ( ',' el5= int_literal )* ']' ) | ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']' )
            	{
            		string_literal40=(IToken)Match(input,32,FOLLOW_32_in_vectorvardec594); 
            			string_literal40_tree = (object)adaptor.Create(string_literal40);
            			adaptor.AddChild(root_0, string_literal40_tree);

            		char_literal41=(IToken)Match(input,LESSTHANEXPRESSION,FOLLOW_LESSTHANEXPRESSION_in_vectorvardec596); 
            			char_literal41_tree = (object)adaptor.Create(char_literal41);
            			adaptor.AddChild(root_0, char_literal41_tree);

            		VARTYPE42=(IToken)Match(input,VARTYPE,FOLLOW_VARTYPE_in_vectorvardec598); 
            			VARTYPE42_tree = (object)adaptor.Create(VARTYPE42);
            			adaptor.AddChild(root_0, VARTYPE42_tree);

            		 retval.ret.setType(((VARTYPE42 != null) ? VARTYPE42.Text : null));
            		char_literal43=(IToken)Match(input,GREATERTHANEXPRESSION,FOLLOW_GREATERTHANEXPRESSION_in_vectorvardec601); 
            			char_literal43_tree = (object)adaptor.Create(char_literal43);
            			adaptor.AddChild(root_0, char_literal43_tree);

            		char_literal44=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec603); 
            			char_literal44_tree = (object)adaptor.Create(char_literal44);
            			adaptor.AddChild(root_0, char_literal44_tree);

            		PushFollow(FOLLOW_int_literal_in_vectorvardec606);
            		el1 = int_literal();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el1.Tree);
            		retval.ret.setRange(((el1 != null) ? el1.ret : null));
            		char_literal45=(IToken)Match(input,30,FOLLOW_30_in_vectorvardec609); 
            			char_literal45_tree = (object)adaptor.Create(char_literal45);
            			adaptor.AddChild(root_0, char_literal45_tree);

            		PushFollow(FOLLOW_variable_in_vectorvardec615);
            		el2 = variable();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el2.Tree);
            		retval.ret.setText(((el2 != null) ? el2.ret : null));
            		ASSIGNMENT46=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_vectorvardec622); 
            			ASSIGNMENT46_tree = (object)adaptor.Create(ASSIGNMENT46);
            			adaptor.AddChild(root_0, ASSIGNMENT46_tree);

            		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:118:3: ( ( '[' ']' ) | ( '[' el3= int_literal ( ',' el5= int_literal )* ']' ) | ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']' )
            		int alt14 = 3;
            		int LA14_0 = input.LA(1);

            		if ( (LA14_0 == 29) )
            		{
            		    switch ( input.LA(2) ) 
            		    {
            		    case 30:
            		    	{
            		        alt14 = 1;
            		        }
            		        break;
            		    case INT_LITERAL:
            		    	{
            		        alt14 = 2;
            		        }
            		        break;
            		    case DOUBLE_LITERAL:
            		    	{
            		        alt14 = 3;
            		        }
            		        break;
            		    	default:
            		    	    NoViableAltException nvae_d14s1 =
            		    	        new NoViableAltException("", 14, 1, input);

            		    	    throw nvae_d14s1;
            		    }

            		}
            		else 
            		{
            		    NoViableAltException nvae_d14s0 =
            		        new NoViableAltException("", 14, 0, input);

            		    throw nvae_d14s0;
            		}
            		switch (alt14) 
            		{
            		    case 1 :
            		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:118:4: ( '[' ']' )
            		        {
            		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:118:4: ( '[' ']' )
            		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:118:5: '[' ']'
            		        	{
            		        		char_literal47=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec629); 
            		        			char_literal47_tree = (object)adaptor.Create(char_literal47);
            		        			adaptor.AddChild(root_0, char_literal47_tree);

            		        		char_literal48=(IToken)Match(input,30,FOLLOW_30_in_vectorvardec630); 
            		        			char_literal48_tree = (object)adaptor.Create(char_literal48);
            		        			adaptor.AddChild(root_0, char_literal48_tree);


            		        	}


            		        }
            		        break;
            		    case 2 :
            		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:119:3: ( '[' el3= int_literal ( ',' el5= int_literal )* ']' )
            		        {
            		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:119:3: ( '[' el3= int_literal ( ',' el5= int_literal )* ']' )
            		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:119:4: '[' el3= int_literal ( ',' el5= int_literal )* ']'
            		        	{
            		        		char_literal49=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec637); 
            		        			char_literal49_tree = (object)adaptor.Create(char_literal49);
            		        			adaptor.AddChild(root_0, char_literal49_tree);

            		        		PushFollow(FOLLOW_int_literal_in_vectorvardec640);
            		        		el3 = int_literal();
            		        		state.followingStackPointer--;

            		        		adaptor.AddChild(root_0, el3.Tree);
            		        		retval.ret.addValue(((el3 != null) ? el3.ret : null));
            		        		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:119:56: ( ',' el5= int_literal )*
            		        		do 
            		        		{
            		        		    int alt12 = 2;
            		        		    int LA12_0 = input.LA(1);

            		        		    if ( (LA12_0 == 31) )
            		        		    {
            		        		        alt12 = 1;
            		        		    }


            		        		    switch (alt12) 
            		        			{
            		        				case 1 :
            		        				    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:119:57: ',' el5= int_literal
            		        				    {
            		        				    	char_literal50=(IToken)Match(input,31,FOLLOW_31_in_vectorvardec645); 
            		        				    		char_literal50_tree = (object)adaptor.Create(char_literal50);
            		        				    		adaptor.AddChild(root_0, char_literal50_tree);

            		        				    	PushFollow(FOLLOW_int_literal_in_vectorvardec648);
            		        				    	el5 = int_literal();
            		        				    	state.followingStackPointer--;

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

            		        				    }
            		        				    break;

            		        				default:
            		        				    goto loop12;
            		        		    }
            		        		} while (true);

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

            		        		char_literal51=(IToken)Match(input,30,FOLLOW_30_in_vectorvardec653); 
            		        			char_literal51_tree = (object)adaptor.Create(char_literal51);
            		        			adaptor.AddChild(root_0, char_literal51_tree);


            		        	}


            		        }
            		        break;
            		    case 3 :
            		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:120:3: ( '[' el4= double_literal ( ',' el6= double_literal )* ) ']'
            		        {
            		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:120:3: ( '[' el4= double_literal ( ',' el6= double_literal )* )
            		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:120:4: '[' el4= double_literal ( ',' el6= double_literal )*
            		        	{
            		        		char_literal52=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec660); 
            		        			char_literal52_tree = (object)adaptor.Create(char_literal52);
            		        			adaptor.AddChild(root_0, char_literal52_tree);

            		        		PushFollow(FOLLOW_double_literal_in_vectorvardec663);
            		        		el4 = double_literal();
            		        		state.followingStackPointer--;

            		        		adaptor.AddChild(root_0, el4.Tree);
            		        		retval.ret.addValue(((el4 != null) ? el4.ret : null));
            		        		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:121:3: ( ',' el6= double_literal )*
            		        		do 
            		        		{
            		        		    int alt13 = 2;
            		        		    int LA13_0 = input.LA(1);

            		        		    if ( (LA13_0 == 31) )
            		        		    {
            		        		        alt13 = 1;
            		        		    }


            		        		    switch (alt13) 
            		        			{
            		        				case 1 :
            		        				    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:121:4: ',' el6= double_literal
            		        				    {
            		        				    	char_literal53=(IToken)Match(input,31,FOLLOW_31_in_vectorvardec670); 
            		        				    		char_literal53_tree = (object)adaptor.Create(char_literal53);
            		        				    		adaptor.AddChild(root_0, char_literal53_tree);

            		        				    	PushFollow(FOLLOW_double_literal_in_vectorvardec673);
            		        				    	el6 = double_literal();
            		        				    	state.followingStackPointer--;

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

            		        				    }
            		        				    break;

            		        				default:
            		        				    goto loop13;
            		        		    }
            		        		} while (true);

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


            		        	}

            		        	char_literal54=(IToken)Match(input,30,FOLLOW_30_in_vectorvardec679); 
            		        		char_literal54_tree = (object)adaptor.Create(char_literal54);
            		        		adaptor.AddChild(root_0, char_literal54_tree);


            		        }
            		        break;

            		}

            		retval.ret.setValue();

            	}

            	END_OF_STATEMENT55=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_vectorvardec686); 
            		END_OF_STATEMENT55_tree = (object)adaptor.Create(END_OF_STATEMENT55);
            		adaptor.AddChild(root_0, END_OF_STATEMENT55_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;
    }
Exemplo n.º 3
0
    // throws RecognitionException [1]
    // $ANTLR start "vectorvardec"
    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:83:1: vectorvardec returns [VectorVariableDeclaration ret] : ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )* ) ']' ) END_OF_STATEMENT ;
    public spinachParser.vectorvardec_return vectorvardec()
    {
        spinachParser.vectorvardec_return retval = new spinachParser.vectorvardec_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal39 = null;
        IToken char_literal40 = null;
        IToken VARTYPE41 = null;
        IToken char_literal42 = null;
        IToken char_literal43 = null;
        IToken char_literal44 = null;
        IToken ASSIGNMENT45 = null;
        IToken char_literal46 = null;
        IToken char_literal47 = null;
        IToken char_literal48 = null;
        IToken char_literal49 = null;
        IToken END_OF_STATEMENT50 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.variable_return el2 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.double_literal_return el4 = null;

        spinachParser.int_literal_return el5 = null;

        spinachParser.double_literal_return el6 = null;

        object string_literal39_tree=null;
        object char_literal40_tree=null;
        object VARTYPE41_tree=null;
        object char_literal42_tree=null;
        object char_literal43_tree=null;
        object char_literal44_tree=null;
        object ASSIGNMENT45_tree=null;
        object char_literal46_tree=null;
        object char_literal47_tree=null;
        object char_literal48_tree=null;
        object char_literal49_tree=null;
        object END_OF_STATEMENT50_tree=null;

            retval.ret = new VectorVariableDeclaration();

        try
        {
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:87:2: ( ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )* ) ']' ) END_OF_STATEMENT )
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:87:3: ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )* ) ']' ) END_OF_STATEMENT
            {
                root_0 = (object)adaptor.GetNilNode();

                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:87:3: ( 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )* ) ']' )
                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:87:4: 'Vector' '<' VARTYPE '>' '[' el1= int_literal ']' el2= variable ASSIGNMENT '[' ( (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )* ) ']'
                {
                    string_literal39=(IToken)Match(input,29,FOLLOW_29_in_vectorvardec444);
                        string_literal39_tree = (object)adaptor.Create(string_literal39);
                        adaptor.AddChild(root_0, string_literal39_tree);

                    char_literal40=(IToken)Match(input,24,FOLLOW_24_in_vectorvardec446);
                        char_literal40_tree = (object)adaptor.Create(char_literal40);
                        adaptor.AddChild(root_0, char_literal40_tree);

                    VARTYPE41=(IToken)Match(input,VARTYPE,FOLLOW_VARTYPE_in_vectorvardec448);
                        VARTYPE41_tree = (object)adaptor.Create(VARTYPE41);
                        adaptor.AddChild(root_0, VARTYPE41_tree);

                     retval.ret.setType(((VARTYPE41 != null) ? VARTYPE41.Text : null));
                    char_literal42=(IToken)Match(input,25,FOLLOW_25_in_vectorvardec451);
                        char_literal42_tree = (object)adaptor.Create(char_literal42);
                        adaptor.AddChild(root_0, char_literal42_tree);

                    char_literal43=(IToken)Match(input,26,FOLLOW_26_in_vectorvardec453);
                        char_literal43_tree = (object)adaptor.Create(char_literal43);
                        adaptor.AddChild(root_0, char_literal43_tree);

                    PushFollow(FOLLOW_int_literal_in_vectorvardec456);
                    el1 = int_literal();
                    state.followingStackPointer--;

                    adaptor.AddChild(root_0, el1.Tree);
                    retval.ret.setRange(((el1 != null) ? el1.ret : null));
                    char_literal44=(IToken)Match(input,27,FOLLOW_27_in_vectorvardec459);
                        char_literal44_tree = (object)adaptor.Create(char_literal44);
                        adaptor.AddChild(root_0, char_literal44_tree);

                    PushFollow(FOLLOW_variable_in_vectorvardec465);
                    el2 = variable();
                    state.followingStackPointer--;

                    adaptor.AddChild(root_0, el2.Tree);
                    retval.ret.setText(((el2 != null) ? el2.ret : null));
                    ASSIGNMENT45=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_vectorvardec472);
                        ASSIGNMENT45_tree = (object)adaptor.Create(ASSIGNMENT45);
                        adaptor.AddChild(root_0, ASSIGNMENT45_tree);

                    char_literal46=(IToken)Match(input,26,FOLLOW_26_in_vectorvardec477);
                        char_literal46_tree = (object)adaptor.Create(char_literal46);
                        adaptor.AddChild(root_0, char_literal46_tree);

                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:90:6: ( (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )* )
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:90:7: (el3= int_literal | el4= double_literal ) ( ',' el5= int_literal | ',' el6= double_literal )*
                    {
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:90:7: (el3= int_literal | el4= double_literal )
                        int alt7 = 2;
                        int LA7_0 = input.LA(1);

                        if ( (LA7_0 == INT_LITERAL) )
                        {
                            alt7 = 1;
                        }
                        else if ( (LA7_0 == DOUBLE_LITERAL) )
                        {
                            alt7 = 2;
                        }
                        else
                        {
                            NoViableAltException nvae_d7s0 =
                                new NoViableAltException("", 7, 0, input);

                            throw nvae_d7s0;
                        }
                        switch (alt7)
                        {
                            case 1 :
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:90:8: el3= int_literal
                                {
                                    PushFollow(FOLLOW_int_literal_in_vectorvardec482);
                                    el3 = int_literal();
                                    state.followingStackPointer--;

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

                                }
                                break;
                            case 2 :
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:90:57: el4= double_literal
                                {
                                    PushFollow(FOLLOW_double_literal_in_vectorvardec488);
                                    el4 = double_literal();
                                    state.followingStackPointer--;

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

                                }
                                break;

                        }

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:91:3: ( ',' el5= int_literal | ',' el6= double_literal )*
                        do
                        {
                            int alt8 = 3;
                            int LA8_0 = input.LA(1);

                            if ( (LA8_0 == 28) )
                            {
                                int LA8_2 = input.LA(2);

                                if ( (LA8_2 == INT_LITERAL) )
                                {
                                    alt8 = 1;
                                }
                                else if ( (LA8_2 == DOUBLE_LITERAL) )
                                {
                                    alt8 = 2;
                                }

                            }

                            switch (alt8)
                            {
                                case 1 :
                                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:91:4: ',' el5= int_literal
                                    {
                                        char_literal47=(IToken)Match(input,28,FOLLOW_28_in_vectorvardec496);
                                            char_literal47_tree = (object)adaptor.Create(char_literal47);
                                            adaptor.AddChild(root_0, char_literal47_tree);

                                        PushFollow(FOLLOW_int_literal_in_vectorvardec499);
                                        el5 = int_literal();
                                        state.followingStackPointer--;

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

                                    }
                                    break;
                                case 2 :
                                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:91:56: ',' el6= double_literal
                                    {
                                        char_literal48=(IToken)Match(input,28,FOLLOW_28_in_vectorvardec503);
                                            char_literal48_tree = (object)adaptor.Create(char_literal48);
                                            adaptor.AddChild(root_0, char_literal48_tree);

                                        PushFollow(FOLLOW_double_literal_in_vectorvardec506);
                                        el6 = double_literal();
                                        state.followingStackPointer--;

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

                                    }
                                    break;

                                default:
                                    goto loop8;
                            }
                        } while (true);

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

                    }

                    char_literal49=(IToken)Match(input,27,FOLLOW_27_in_vectorvardec512);
                        char_literal49_tree = (object)adaptor.Create(char_literal49);
                        adaptor.AddChild(root_0, char_literal49_tree);

                }

                retval.ret.setValue();
                END_OF_STATEMENT50=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_vectorvardec518);
                    END_OF_STATEMENT50_tree = (object)adaptor.Create(END_OF_STATEMENT50);
                    adaptor.AddChild(root_0, END_OF_STATEMENT50_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;
    }