Inheritance: Antlr.Runtime.ParserRuleReturnScope
Ejemplo n.º 1
0
    // $ANTLR start "matrixoperation"
    // Interp.g:69:1: matrixoperation returns [MatrixOperationElement ret] : ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) ;
    public InterpParser.matrixoperation_return matrixoperation() // throws RecognitionException [1]
    {   
        InterpParser.matrixoperation_return retval = new InterpParser.matrixoperation_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal18 = null;
        IToken char_literal19 = null;
        IToken char_literal20 = null;
        IToken char_literal21 = null;
        IToken char_literal22 = null;
        IToken char_literal23 = null;
        InterpParser.int_literal_return el1 = null;

        InterpParser.int_literal_return el2 = null;

        InterpParser.int_literal_return el3 = null;


        object char_literal18_tree=null;
        object char_literal19_tree=null;
        object char_literal20_tree=null;
        object char_literal21_tree=null;
        object char_literal22_tree=null;
        object char_literal23_tree=null;


        	retval.ret = new MatrixOperationElement();
        	
        try 
    	{
            // Interp.g:73:2: ( ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) )
            // Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' )
            	// Interp.g:73:4: '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']'
            	{
            		char_literal18=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation299); 
            			char_literal18_tree = (object)adaptor.Create(char_literal18);
            			adaptor.AddChild(root_0, char_literal18_tree);

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

            		adaptor.AddChild(root_0, el1.Tree);
            		 retval.ret.setRow(((el1 != null) ? el1.ret : null));
            		char_literal19=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation305); 
            			char_literal19_tree = (object)adaptor.Create(char_literal19);
            			adaptor.AddChild(root_0, char_literal19_tree);

            		char_literal20=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation308); 
            			char_literal20_tree = (object)adaptor.Create(char_literal20);
            			adaptor.AddChild(root_0, char_literal20_tree);

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

            		adaptor.AddChild(root_0, el2.Tree);
            		 retval.ret.setColumn(((el2 != null) ? el2.ret : null));
            		char_literal21=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation315); 
            			char_literal21_tree = (object)adaptor.Create(char_literal21);
            			adaptor.AddChild(root_0, char_literal21_tree);

            		char_literal22=(IToken)Match(input,14,FOLLOW_14_in_matrixoperation318); 
            			char_literal22_tree = (object)adaptor.Create(char_literal22);
            			adaptor.AddChild(root_0, char_literal22_tree);

            		// Interp.g:75:5: (el3= int_literal )+
            		int cnt6 = 0;
            		do 
            		{
            		    int alt6 = 2;
            		    int LA6_0 = input.LA(1);

            		    if ( (LA6_0 == INT_LITERAL) )
            		    {
            		        alt6 = 1;
            		    }


            		    switch (alt6) 
            			{
            				case 1 :
            				    // Interp.g:75:6: el3= int_literal
            				    {
            				    	PushFollow(FOLLOW_int_literal_in_matrixoperation322);
            				    	el3 = int_literal();
            				    	state.followingStackPointer--;

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

            				    }
            				    break;

            				default:
            				    if ( cnt6 >= 1 ) goto loop6;
            			            EarlyExitException eee6 =
            			                new EarlyExitException(6, input);
            			            throw eee6;
            		    }
            		    cnt6++;
            		} while (true);

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

            		char_literal23=(IToken)Match(input,15,FOLLOW_15_in_matrixoperation328); 
            			char_literal23_tree = (object)adaptor.Create(char_literal23);
            			adaptor.AddChild(root_0, char_literal23_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;
    }
Ejemplo n.º 2
0
    // $ANTLR start "matrixoperation"
    // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:69:1: matrixoperation returns [MatrixOperationElement ret] : ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) ;
    public InterpParser.matrixoperation_return matrixoperation() // throws RecognitionException [1]
    {   
        InterpParser.matrixoperation_return retval = new InterpParser.matrixoperation_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal18 = null;
        IToken char_literal19 = null;
        IToken char_literal20 = null;
        IToken char_literal21 = null;
        IToken char_literal22 = null;
        IToken char_literal23 = null;
        InterpParser.int_literal_return el1 = null;

        InterpParser.int_literal_return el2 = null;

        InterpParser.int_literal_return el3 = null;


        object char_literal18_tree=null;
        object char_literal19_tree=null;
        object char_literal20_tree=null;
        object char_literal21_tree=null;
        object char_literal22_tree=null;
        object char_literal23_tree=null;


        	retval.ret = new MatrixOperationElement();
        	
        try {
        	dbg.EnterRule(GrammarFileName, "matrixoperation");
        	if ( RuleLevel==0 ) {dbg.Commence();}
        	IncRuleLevel();
        	dbg.Location(69, 1);

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:2: ( ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' ) )
            dbg.EnterAlt(1);

            // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	dbg.Location(73,3);
            	// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:3: ( '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']' )
            	dbg.EnterAlt(1);

            	// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:4: '(' el1= int_literal ')' '(' el2= int_literal ')' '[' (el3= int_literal )+ ']'
            	{
            		dbg.Location(73,4);
            		char_literal18=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation299); 
            			char_literal18_tree = (object)adaptor.Create(char_literal18);
            			adaptor.AddChild(root_0, char_literal18_tree);

            		dbg.Location(73,10);
            		PushFollow(FOLLOW_int_literal_in_matrixoperation302);
            		el1 = int_literal();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el1.Tree);
            		dbg.Location(73,23);
            		 retval.ret.setRow(((el1 != null) ? el1.ret : null));
            		dbg.Location(73,54);
            		char_literal19=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation305); 
            			char_literal19_tree = (object)adaptor.Create(char_literal19);
            			adaptor.AddChild(root_0, char_literal19_tree);

            		dbg.Location(74,2);
            		char_literal20=(IToken)Match(input,12,FOLLOW_12_in_matrixoperation308); 
            			char_literal20_tree = (object)adaptor.Create(char_literal20);
            			adaptor.AddChild(root_0, char_literal20_tree);

            		dbg.Location(74,9);
            		PushFollow(FOLLOW_int_literal_in_matrixoperation312);
            		el2 = int_literal();
            		state.followingStackPointer--;

            		adaptor.AddChild(root_0, el2.Tree);
            		dbg.Location(74,22);
            		 retval.ret.setColumn(((el2 != null) ? el2.ret : null));
            		dbg.Location(74,56);
            		char_literal21=(IToken)Match(input,13,FOLLOW_13_in_matrixoperation315); 
            			char_literal21_tree = (object)adaptor.Create(char_literal21);
            			adaptor.AddChild(root_0, char_literal21_tree);

            		dbg.Location(75,2);
            		char_literal22=(IToken)Match(input,14,FOLLOW_14_in_matrixoperation318); 
            			char_literal22_tree = (object)adaptor.Create(char_literal22);
            			adaptor.AddChild(root_0, char_literal22_tree);

            		dbg.Location(75,5);
            		// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:75:5: (el3= int_literal )+
            		int cnt6 = 0;
            		try { dbg.EnterSubRule(6);

            		do 
            		{
            		    int alt6 = 2;
            		    try { dbg.EnterDecision(6);

            		    int LA6_0 = input.LA(1);

            		    if ( (LA6_0 == INT_LITERAL) )
            		    {
            		        alt6 = 1;
            		    }


            		    } finally { dbg.ExitDecision(6); }

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

            				    // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:75:6: el3= int_literal
            				    {
            				    	dbg.Location(75,9);
            				    	PushFollow(FOLLOW_int_literal_in_matrixoperation322);
            				    	el3 = int_literal();
            				    	state.followingStackPointer--;

            				    	adaptor.AddChild(root_0, el3.Tree);
            				    	dbg.Location(75,22);
            				    	 retval.ret.setValue(((el3 != null) ? el3.ret : null));

            				    }
            				    break;

            				default:
            				    if ( cnt6 >= 1 ) goto loop6;
            			            EarlyExitException eee6 =
            			                new EarlyExitException(6, input);
            			            dbg.RecognitionException(eee);

            			            throw eee6;
            		    }
            		    cnt6++;
            		} while (true);

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

            		dbg.Location(75,58);
            		char_literal23=(IToken)Match(input,15,FOLLOW_15_in_matrixoperation328); 
            			char_literal23_tree = (object)adaptor.Create(char_literal23);
            			adaptor.AddChild(root_0, char_literal23_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(75, 62);

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

        return retval;
    }