Inheritance: Antlr.Runtime.ParserRuleReturnScope
Example #1
0
    // $ANTLR start "vectorelem"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:132:1: vectorelem returns [VectorElement ret] : (el1= variable '[' (el2= int_literal | el3= variable ) ']' ) ;
    public spinachParser.vectorelem_return vectorelem() // throws RecognitionException [1]
    {   
        spinachParser.vectorelem_return retval = new spinachParser.vectorelem_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal60 = null;
        IToken char_literal61 = null;
        spinachParser.variable_return el1 = null;

        spinachParser.int_literal_return el2 = null;

        spinachParser.variable_return el3 = null;


        object char_literal60_tree=null;
        object char_literal61_tree=null;


         retval.ret = new VectorElement();
         
        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:136:2: ( (el1= variable '[' (el2= int_literal | el3= variable ) ']' ) )
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:136:3: (el1= variable '[' (el2= int_literal | el3= variable ) ']' )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:136:3: (el1= variable '[' (el2= int_literal | el3= variable ) ']' )
            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:136:4: el1= variable '[' (el2= int_literal | el3= variable ) ']'
            	{
            		PushFollow(FOLLOW_variable_in_vectorelem761);
            		el1 = variable();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el1.Tree);
            		retval.ret.setVar(((el1 != null) ? el1.ret : null));
            		char_literal60=(IToken)Match(input,29,FOLLOW_29_in_vectorelem767); 
            			char_literal60_tree = (object)adaptor.Create(char_literal60);
            			adaptor.AddChild(root_0, char_literal60_tree);

            		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:137:6: (el2= int_literal | el3= variable )
            		int alt17 = 2;
            		int LA17_0 = input.LA(1);

            		if ( (LA17_0 == INT_LITERAL) )
            		{
            		    alt17 = 1;
            		}
            		else if ( (LA17_0 == VARIABLE) )
            		{
            		    alt17 = 2;
            		}
            		else 
            		{
            		    NoViableAltException nvae_d17s0 =
            		        new NoViableAltException("", 17, 0, input);

            		    throw nvae_d17s0;
            		}
            		switch (alt17) 
            		{
            		    case 1 :
            		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:137:7: el2= int_literal
            		        {
            		        	PushFollow(FOLLOW_int_literal_in_vectorelem771);
            		        	el2 = int_literal();
            		        	state.followingStackPointer--;

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

            		        }
            		        break;
            		    case 2 :
            		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:137:56: el3= variable
            		        {
            		        	PushFollow(FOLLOW_variable_in_vectorelem777);
            		        	el3 = variable();
            		        	state.followingStackPointer--;

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

            		        }
            		        break;

            		}

            		char_literal61=(IToken)Match(input,30,FOLLOW_30_in_vectorelem780); 
            			char_literal61_tree = (object)adaptor.Create(char_literal61);
            			adaptor.AddChild(root_0, char_literal61_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 #2
0
    // $ANTLR start "vectorelem"
    // spinach.g:111:1: vectorelem returns [VectorElement ret] : (el1= variable '[' el2= int_literal ']' ) ;
    public spinachParser.vectorelem_return vectorelem() // throws RecognitionException [1]
    {   
        spinachParser.vectorelem_return retval = new spinachParser.vectorelem_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal47 = null;
        IToken char_literal48 = null;
        spinachParser.variable_return el1 = null;

        spinachParser.int_literal_return el2 = null;


        object char_literal47_tree=null;
        object char_literal48_tree=null;


         retval.ret = new VectorElement();
         
        try 
    	{
            // spinach.g:115:2: ( (el1= variable '[' el2= int_literal ']' ) )
            // spinach.g:115:3: (el1= variable '[' el2= int_literal ']' )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// spinach.g:115:3: (el1= variable '[' el2= int_literal ']' )
            	// spinach.g:115:4: el1= variable '[' el2= int_literal ']'
            	{
            		PushFollow(FOLLOW_variable_in_vectorelem666);
            		el1 = variable();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el1.Tree);
            		retval.ret.setVar(((el1 != null) ? el1.ret : null));
            		char_literal47=(IToken)Match(input,29,FOLLOW_29_in_vectorelem669); 
            			char_literal47_tree = (object)adaptor.Create(char_literal47);
            			adaptor.AddChild(root_0, char_literal47_tree);

            		PushFollow(FOLLOW_int_literal_in_vectorelem672);
            		el2 = int_literal();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el2.Tree);
            		retval.ret.setRange(((el2 != null) ? el2.ret : null));
            		char_literal48=(IToken)Match(input,30,FOLLOW_30_in_vectorelem675); 
            			char_literal48_tree = (object)adaptor.Create(char_literal48);
            			adaptor.AddChild(root_0, char_literal48_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;
    }