Inheritance: Antlr.Runtime.ParserRuleReturnScope
Ejemplo n.º 1
0
    // $ANTLR start "assignment"
    // Interp.g:40:1: assignment returns [AssignmentOperationElement ret] : ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT ;
    public InterpParser.assignment_return assignment() // throws RecognitionException [1]
    {   
        InterpParser.assignment_return retval = new InterpParser.assignment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ASSIGNMENT8 = null;
        IToken END_OF_STATEMENT13 = null;
        InterpParser.variable_return variable6 = null;

        InterpParser.structassign_return structassign7 = null;

        InterpParser.var_or_int_literal_return var_or_int_literal9 = null;

        InterpParser.matrixoperation_return matrixoperation10 = null;

        InterpParser.addition_return addition11 = null;

        InterpParser.multiplication_return multiplication12 = null;


        object ASSIGNMENT8_tree=null;
        object END_OF_STATEMENT13_tree=null;


          retval.ret = new AssignmentOperationElement();

        try 
    	{
            // Interp.g:44:3: ( ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT )
            // Interp.g:44:5: ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// Interp.g:44:5: ( variable | structassign )
            	int alt3 = 2;
            	int LA3_0 = input.LA(1);

            	if ( (LA3_0 == VARIABLE) )
            	{
            	    int LA3_1 = input.LA(2);

            	    if ( (LA3_1 == ASSIGNMENT) )
            	    {
            	        alt3 = 1;
            	    }
            	    else if ( (LA3_1 == 19) )
            	    {
            	        alt3 = 2;
            	    }
            	    else 
            	    {
            	        NoViableAltException nvae_d3s1 =
            	            new NoViableAltException("", 3, 1, input);

            	        throw nvae_d3s1;
            	    }
            	}
            	else 
            	{
            	    NoViableAltException nvae_d3s0 =
            	        new NoViableAltException("", 3, 0, input);

            	    throw nvae_d3s0;
            	}
            	switch (alt3) 
            	{
            	    case 1 :
            	        // Interp.g:44:6: variable
            	        {
            	        	PushFollow(FOLLOW_variable_in_assignment138);
            	        	variable6 = variable();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 2 :
            	        // Interp.g:45:5: structassign
            	        {
            	        	PushFollow(FOLLOW_structassign_in_assignment146);
            	        	structassign7 = structassign();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;

            	}

            	ASSIGNMENT8=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment153); 
            		ASSIGNMENT8_tree = (object)adaptor.Create(ASSIGNMENT8);
            		adaptor.AddChild(root_0, ASSIGNMENT8_tree);

            	// Interp.g:47:5: ( var_or_int_literal | matrixoperation | addition | multiplication )
            	int alt4 = 4;
            	switch ( input.LA(1) ) 
            	{
            	case VARIABLE:
            		{
            	    switch ( input.LA(2) ) 
            	    {
            	    case END_OF_STATEMENT:
            	    	{
            	        alt4 = 1;
            	        }
            	        break;
            	    case MULTIPLY:
            	    	{
            	        alt4 = 4;
            	        }
            	        break;
            	    case PLUS:
            	    	{
            	        alt4 = 3;
            	        }
            	        break;
            	    	default:
            	    	    NoViableAltException nvae_d4s1 =
            	    	        new NoViableAltException("", 4, 1, input);

            	    	    throw nvae_d4s1;
            	    }

            	    }
            	    break;
            	case INT_LITERAL:
            		{
            	    switch ( input.LA(2) ) 
            	    {
            	    case END_OF_STATEMENT:
            	    	{
            	        alt4 = 1;
            	        }
            	        break;
            	    case MULTIPLY:
            	    	{
            	        alt4 = 4;
            	        }
            	        break;
            	    case PLUS:
            	    	{
            	        alt4 = 3;
            	        }
            	        break;
            	    	default:
            	    	    NoViableAltException nvae_d4s2 =
            	    	        new NoViableAltException("", 4, 2, input);

            	    	    throw nvae_d4s2;
            	    }

            	    }
            	    break;
            	case 12:
            		{
            	    alt4 = 2;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d4s0 =
            		        new NoViableAltException("", 4, 0, input);

            		    throw nvae_d4s0;
            	}

            	switch (alt4) 
            	{
            	    case 1 :
            	        // Interp.g:47:6: var_or_int_literal
            	        {
            	        	PushFollow(FOLLOW_var_or_int_literal_in_assignment161);
            	        	var_or_int_literal9 = var_or_int_literal();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 2 :
            	        // Interp.g:48:7: matrixoperation
            	        {
            	        	PushFollow(FOLLOW_matrixoperation_in_assignment171);
            	        	matrixoperation10 = matrixoperation();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 3 :
            	        // Interp.g:49:7: addition
            	        {
            	        	PushFollow(FOLLOW_addition_in_assignment182);
            	        	addition11 = addition();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 4 :
            	        // Interp.g:50:7: multiplication
            	        {
            	        	PushFollow(FOLLOW_multiplication_in_assignment192);
            	        	multiplication12 = multiplication();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;

            	}

            	END_OF_STATEMENT13=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment202); 
            		END_OF_STATEMENT13_tree = (object)adaptor.Create(END_OF_STATEMENT13);
            		adaptor.AddChild(root_0, END_OF_STATEMENT13_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 "assignment"
    // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:62:1: assignment returns [AssignmentOperationElement ret] : variable ASSIGNMENT ( var_or_int_literal | addition ) END_OF_STATEMENT ;
    public InterpParser.assignment_return assignment() // throws RecognitionException [1]
    {   
        InterpParser.assignment_return retval = new InterpParser.assignment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ASSIGNMENT5 = null;
        IToken END_OF_STATEMENT8 = null;
        InterpParser.variable_return variable4 = null;

        InterpParser.var_or_int_literal_return var_or_int_literal6 = null;

        InterpParser.addition_return addition7 = null;


        object ASSIGNMENT5_tree=null;
        object END_OF_STATEMENT8_tree=null;


          

        retval.ret = new AssignmentOperationElement();



        try {
        	dbg.EnterRule(GrammarFileName, "assignment");
        	if ( RuleLevel==0 ) {dbg.Commence();}
        	IncRuleLevel();
        	dbg.Location(62, 1);

        try 
    	{
            // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:3: ( variable ASSIGNMENT ( var_or_int_literal | addition ) END_OF_STATEMENT )
            dbg.EnterAlt(1);

            // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:73:5: variable ASSIGNMENT ( var_or_int_literal | addition ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	dbg.Location(73,5);
            	PushFollow(FOLLOW_variable_in_assignment151);
            	variable4 = variable();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, variable4.Tree);
            	dbg.Location(73,14);
            	retval.ret.setLhs(((variable4 != null) ? variable4.ret : null)); 
            	dbg.Location(75,3);
            	ASSIGNMENT5=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment162); 
            		ASSIGNMENT5_tree = (object)adaptor.Create(ASSIGNMENT5);
            		adaptor.AddChild(root_0, ASSIGNMENT5_tree);

            	dbg.Location(77,4);
            	// H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:77:4: ( var_or_int_literal | addition )
            	int alt3 = 2;
            	try { dbg.EnterSubRule(3);
            	try { dbg.EnterDecision(3);

            	int LA3_0 = input.LA(1);

            	if ( (LA3_0 == VARIABLE) )
            	{
            	    int LA3_1 = input.LA(2);

            	    if ( (LA3_1 == END_OF_STATEMENT) )
            	    {
            	        alt3 = 1;
            	    }
            	    else if ( (LA3_1 == PLUS) )
            	    {
            	        alt3 = 2;
            	    }
            	    else 
            	    {
            	        NoViableAltException nvae_d3s1 =
            	            new NoViableAltException("", 3, 1, input);

            	        dbg.RecognitionException(nvae_d3s1);
            	        throw nvae_d3s1;
            	    }
            	}
            	else if ( (LA3_0 == INT_LITERAL) )
            	{
            	    int LA3_2 = input.LA(2);

            	    if ( (LA3_2 == PLUS) )
            	    {
            	        alt3 = 2;
            	    }
            	    else if ( (LA3_2 == END_OF_STATEMENT) )
            	    {
            	        alt3 = 1;
            	    }
            	    else 
            	    {
            	        NoViableAltException nvae_d3s2 =
            	            new NoViableAltException("", 3, 2, input);

            	        dbg.RecognitionException(nvae_d3s2);
            	        throw nvae_d3s2;
            	    }
            	}
            	else 
            	{
            	    NoViableAltException nvae_d3s0 =
            	        new NoViableAltException("", 3, 0, input);

            	    dbg.RecognitionException(nvae_d3s0);
            	    throw nvae_d3s0;
            	}
            	} finally { dbg.ExitDecision(3); }

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

            	        // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:77:5: var_or_int_literal
            	        {
            	        	dbg.Location(77,5);
            	        	PushFollow(FOLLOW_var_or_int_literal_in_assignment173);
            	        	var_or_int_literal6 = var_or_int_literal();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, var_or_int_literal6.Tree);
            	        	dbg.Location(77,24);
            	        	retval.ret.setRhs(((var_or_int_literal6 != null) ? var_or_int_literal6.ret : null)); 

            	        }
            	        break;
            	    case 2 :
            	        dbg.EnterAlt(2);

            	        // H:\\Interp_CSharp\\Interp_CSharp\\Interp_CSharp\\Interp.g:78:7: addition
            	        {
            	        	dbg.Location(78,7);
            	        	PushFollow(FOLLOW_addition_in_assignment184);
            	        	addition7 = addition();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, addition7.Tree);
            	        	dbg.Location(78,16);
            	        	retval.ret.setRhs(((addition7 != null) ? addition7.ret : null)); 

            	        }
            	        break;

            	}
            	} finally { dbg.ExitSubRule(3); }

            	dbg.Location(79,7);
            	END_OF_STATEMENT8=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment194); 
            		END_OF_STATEMENT8_tree = (object)adaptor.Create(END_OF_STATEMENT8);
            		adaptor.AddChild(root_0, END_OF_STATEMENT8_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(79, 23);

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

        return retval;
    }
Ejemplo n.º 3
0
    // throws RecognitionException [1]
    // $ANTLR start "assignment"
    // Interp.g:61:1: assignment returns [AssignmentOperationElement ret] : variable ASSIGNMENT ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) SEMI ;
    public InterpParser.assignment_return assignment()
    {
        InterpParser.assignment_return retval = new InterpParser.assignment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ASSIGNMENT6 = null;
        IToken SEMI11 = null;
        InterpParser.variable_return variable5 = null;

        InterpParser.var_or_int_literal_return var_or_int_literal7 = null;

        InterpParser.matrix_return matrix8 = null;

        InterpParser.matrixaddition_return matrixaddition9 = null;

        InterpParser.matrixmultiplication_return matrixmultiplication10 = null;

        object ASSIGNMENT6_tree=null;
        object SEMI11_tree=null;

          retval.ret = new AssignmentOperationElement();

        try
        {
            // Interp.g:65:3: ( variable ASSIGNMENT ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) SEMI )
            // Interp.g:65:5: variable ASSIGNMENT ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication ) SEMI
            {
                root_0 = (object)adaptor.GetNilNode();

                PushFollow(FOLLOW_variable_in_assignment146);
                variable5 = variable();
                state.followingStackPointer--;

                adaptor.AddChild(root_0, variable5.Tree);
                retval.ret.setLhs(((variable5 != null) ? variable5.ret : null));
                ASSIGNMENT6=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment154);
                    ASSIGNMENT6_tree = (object)adaptor.Create(ASSIGNMENT6);
                    adaptor.AddChild(root_0, ASSIGNMENT6_tree);

                // Interp.g:67:5: ( var_or_int_literal | matrix | matrixaddition | matrixmultiplication )
                int alt3 = 4;
                switch ( input.LA(1) )
                {
                case VARIABLE:
                    {
                    switch ( input.LA(2) )
                    {
                    case MUL:
                        {
                        alt3 = 4;
                        }
                        break;
                    case PLUS:
                        {
                        alt3 = 3;
                        }
                        break;
                    case SEMI:
                        {
                        alt3 = 1;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d3s1 =
                                new NoViableAltException("", 3, 1, input);

                            throw nvae_d3s1;
                    }

                    }
                    break;
                case INT_LITERAL:
                    {
                    switch ( input.LA(2) )
                    {
                    case PLUS:
                        {
                        alt3 = 3;
                        }
                        break;
                    case MUL:
                        {
                        alt3 = 4;
                        }
                        break;
                    case SEMI:
                        {
                        alt3 = 1;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d3s2 =
                                new NoViableAltException("", 3, 2, input);

                            throw nvae_d3s2;
                    }

                    }
                    break;
                case LBRACK:
                    {
                    alt3 = 2;
                    }
                    break;
                    default:
                        NoViableAltException nvae_d3s0 =
                            new NoViableAltException("", 3, 0, input);

                        throw nvae_d3s0;
                }

                switch (alt3)
                {
                    case 1 :
                        // Interp.g:67:6: var_or_int_literal
                        {
                            PushFollow(FOLLOW_var_or_int_literal_in_assignment162);
                            var_or_int_literal7 = var_or_int_literal();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 2 :
                        // Interp.g:69:7: matrix
                        {
                            PushFollow(FOLLOW_matrix_in_assignment174);
                            matrix8 = matrix();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 3 :
                        // Interp.g:70:7: matrixaddition
                        {
                            PushFollow(FOLLOW_matrixaddition_in_assignment184);
                            matrixaddition9 = matrixaddition();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 4 :
                        // Interp.g:71:7: matrixmultiplication
                        {
                            PushFollow(FOLLOW_matrixmultiplication_in_assignment194);
                            matrixmultiplication10 = matrixmultiplication();
                            state.followingStackPointer--;

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

                        }
                        break;

                }

                SEMI11=(IToken)Match(input,SEMI,FOLLOW_SEMI_in_assignment204);
                    SEMI11_tree = (object)adaptor.Create(SEMI11);
                    adaptor.AddChild(root_0, SEMI11_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 e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Ejemplo n.º 4
0
    // $ANTLR start "assignment"
    // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:40:1: assignment returns [AssignmentOperationElement ret] : ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT ;
    public InterpParser.assignment_return assignment() // throws RecognitionException [1]
    {   
        InterpParser.assignment_return retval = new InterpParser.assignment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ASSIGNMENT8 = null;
        IToken END_OF_STATEMENT13 = null;
        InterpParser.variable_return variable6 = null;

        InterpParser.structassign_return structassign7 = null;

        InterpParser.var_or_int_literal_return var_or_int_literal9 = null;

        InterpParser.matrixoperation_return matrixoperation10 = null;

        InterpParser.addition_return addition11 = null;

        InterpParser.multiplication_return multiplication12 = null;


        object ASSIGNMENT8_tree=null;
        object END_OF_STATEMENT13_tree=null;


          retval.ret = new AssignmentOperationElement();

        try {
        	dbg.EnterRule(GrammarFileName, "assignment");
        	if ( RuleLevel==0 ) {dbg.Commence();}
        	IncRuleLevel();
        	dbg.Location(40, 1);

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:3: ( ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT )
            dbg.EnterAlt(1);

            // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:5: ( variable | structassign ) ASSIGNMENT ( var_or_int_literal | matrixoperation | addition | multiplication ) END_OF_STATEMENT
            {
            	root_0 = (object)adaptor.GetNilNode();

            	dbg.Location(44,5);
            	// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:5: ( variable | structassign )
            	int alt3 = 2;
            	try { dbg.EnterSubRule(3);
            	try { dbg.EnterDecision(3);

            	int LA3_0 = input.LA(1);

            	if ( (LA3_0 == VARIABLE) )
            	{
            	    int LA3_1 = input.LA(2);

            	    if ( (LA3_1 == 19) )
            	    {
            	        alt3 = 2;
            	    }
            	    else if ( (LA3_1 == ASSIGNMENT) )
            	    {
            	        alt3 = 1;
            	    }
            	    else 
            	    {
            	        NoViableAltException nvae_d3s1 =
            	            new NoViableAltException("", 3, 1, input);

            	        dbg.RecognitionException(nvae_d3s1);
            	        throw nvae_d3s1;
            	    }
            	}
            	else 
            	{
            	    NoViableAltException nvae_d3s0 =
            	        new NoViableAltException("", 3, 0, input);

            	    dbg.RecognitionException(nvae_d3s0);
            	    throw nvae_d3s0;
            	}
            	} finally { dbg.ExitDecision(3); }

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

            	        // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:44:6: variable
            	        {
            	        	dbg.Location(44,6);
            	        	PushFollow(FOLLOW_variable_in_assignment138);
            	        	variable6 = variable();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, variable6.Tree);
            	        	dbg.Location(44,15);
            	        	retval.ret.setLhs(((variable6 != null) ? variable6.ret : null)); 

            	        }
            	        break;
            	    case 2 :
            	        dbg.EnterAlt(2);

            	        // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:45:5: structassign
            	        {
            	        	dbg.Location(45,5);
            	        	PushFollow(FOLLOW_structassign_in_assignment146);
            	        	structassign7 = structassign();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, structassign7.Tree);
            	        	dbg.Location(45,18);
            	        	retval.ret.setStructLhs(((structassign7 != null) ? structassign7.ret : null));

            	        }
            	        break;

            	}
            	} finally { dbg.ExitSubRule(3); }

            	dbg.Location(46,3);
            	ASSIGNMENT8=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment153); 
            		ASSIGNMENT8_tree = (object)adaptor.Create(ASSIGNMENT8);
            		adaptor.AddChild(root_0, ASSIGNMENT8_tree);

            	dbg.Location(47,5);
            	// C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:47:5: ( var_or_int_literal | matrixoperation | addition | multiplication )
            	int alt4 = 4;
            	try { dbg.EnterSubRule(4);
            	try { dbg.EnterDecision(4);

            	switch ( input.LA(1) ) 
            	{
            	case VARIABLE:
            		{
            	    switch ( input.LA(2) ) 
            	    {
            	    case END_OF_STATEMENT:
            	    	{
            	        alt4 = 1;
            	        }
            	        break;
            	    case PLUS:
            	    	{
            	        alt4 = 3;
            	        }
            	        break;
            	    case MULTIPLY:
            	    	{
            	        alt4 = 4;
            	        }
            	        break;
            	    	default:
            	    	    NoViableAltException nvae_d4s1 =
            	    	        new NoViableAltException("", 4, 1, input);

            	    	    dbg.RecognitionException(nvae_d4s1);
            	    	    throw nvae_d4s1;
            	    }

            	    }
            	    break;
            	case INT_LITERAL:
            		{
            	    switch ( input.LA(2) ) 
            	    {
            	    case END_OF_STATEMENT:
            	    	{
            	        alt4 = 1;
            	        }
            	        break;
            	    case PLUS:
            	    	{
            	        alt4 = 3;
            	        }
            	        break;
            	    case MULTIPLY:
            	    	{
            	        alt4 = 4;
            	        }
            	        break;
            	    	default:
            	    	    NoViableAltException nvae_d4s2 =
            	    	        new NoViableAltException("", 4, 2, input);

            	    	    dbg.RecognitionException(nvae_d4s2);
            	    	    throw nvae_d4s2;
            	    }

            	    }
            	    break;
            	case 12:
            		{
            	    alt4 = 2;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d4s0 =
            		        new NoViableAltException("", 4, 0, input);

            		    dbg.RecognitionException(nvae_d4s0);
            		    throw nvae_d4s0;
            	}

            	} finally { dbg.ExitDecision(4); }

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

            	        // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:47:6: var_or_int_literal
            	        {
            	        	dbg.Location(47,6);
            	        	PushFollow(FOLLOW_var_or_int_literal_in_assignment161);
            	        	var_or_int_literal9 = var_or_int_literal();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, var_or_int_literal9.Tree);
            	        	dbg.Location(47,25);
            	        	retval.ret.setRhs(((var_or_int_literal9 != null) ? var_or_int_literal9.ret : null)); 

            	        }
            	        break;
            	    case 2 :
            	        dbg.EnterAlt(2);

            	        // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:48:7: matrixoperation
            	        {
            	        	dbg.Location(48,7);
            	        	PushFollow(FOLLOW_matrixoperation_in_assignment171);
            	        	matrixoperation10 = matrixoperation();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, matrixoperation10.Tree);
            	        	dbg.Location(48,23);
            	        	 retval.ret.setRhs(((matrixoperation10 != null) ? matrixoperation10.ret : null));

            	        }
            	        break;
            	    case 3 :
            	        dbg.EnterAlt(3);

            	        // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:49:7: addition
            	        {
            	        	dbg.Location(49,7);
            	        	PushFollow(FOLLOW_addition_in_assignment182);
            	        	addition11 = addition();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, addition11.Tree);
            	        	dbg.Location(49,16);
            	        	retval.ret.setRhs(((addition11 != null) ? addition11.ret : null));

            	        }
            	        break;
            	    case 4 :
            	        dbg.EnterAlt(4);

            	        // C:\\Documents and Settings\\Administrator\\Desktop\\SPINA\\Interp_CSharp\\Interp_CSharp\\Interp.g:50:7: multiplication
            	        {
            	        	dbg.Location(50,7);
            	        	PushFollow(FOLLOW_multiplication_in_assignment192);
            	        	multiplication12 = multiplication();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, multiplication12.Tree);
            	        	dbg.Location(50,22);
            	        	retval.ret.setRhs(((multiplication12 != null) ? multiplication12.ret : null));

            	        }
            	        break;

            	}
            	} finally { dbg.ExitSubRule(4); }

            	dbg.Location(51,7);
            	END_OF_STATEMENT13=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment202); 
            		END_OF_STATEMENT13_tree = (object)adaptor.Create(END_OF_STATEMENT13);
            		adaptor.AddChild(root_0, END_OF_STATEMENT13_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(51, 23);

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

        return retval;
    }
Ejemplo n.º 5
0
    // throws RecognitionException [1]
    // $ANTLR start "assignment"
    // Interp.g:44:1: assignment returns [AssignmentOperationElement ret] : ( variable | structassign ) ASSIGNMENT ( var_int_or_double_literal | addition | multiplication ) END_OF_STATEMENT ;
    public InterpParser.assignment_return assignment()
    {
        InterpParser.assignment_return retval = new InterpParser.assignment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ASSIGNMENT12 = null;
        IToken END_OF_STATEMENT16 = null;
        InterpParser.variable_return variable10 = null;

        InterpParser.structassign_return structassign11 = null;

        InterpParser.var_int_or_double_literal_return var_int_or_double_literal13 = null;

        InterpParser.addition_return addition14 = null;

        InterpParser.multiplication_return multiplication15 = null;

        object ASSIGNMENT12_tree=null;
        object END_OF_STATEMENT16_tree=null;

          retval.ret = new AssignmentOperationElement();

        try
        {
            // Interp.g:48:3: ( ( variable | structassign ) ASSIGNMENT ( var_int_or_double_literal | addition | multiplication ) END_OF_STATEMENT )
            // Interp.g:48:5: ( variable | structassign ) ASSIGNMENT ( var_int_or_double_literal | addition | multiplication ) END_OF_STATEMENT
            {
                root_0 = (object)adaptor.GetNilNode();

                // Interp.g:48:5: ( variable | structassign )
                int alt3 = 2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0 == VARIABLE) )
                {
                    int LA3_1 = input.LA(2);

                    if ( (LA3_1 == 24) )
                    {
                        alt3 = 2;
                    }
                    else if ( (LA3_1 == ASSIGNMENT) )
                    {
                        alt3 = 1;
                    }
                    else
                    {
                        NoViableAltException nvae_d3s1 =
                            new NoViableAltException("", 3, 1, input);

                        throw nvae_d3s1;
                    }
                }
                else
                {
                    NoViableAltException nvae_d3s0 =
                        new NoViableAltException("", 3, 0, input);

                    throw nvae_d3s0;
                }
                switch (alt3)
                {
                    case 1 :
                        // Interp.g:48:6: variable
                        {
                            PushFollow(FOLLOW_variable_in_assignment170);
                            variable10 = variable();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 2 :
                        // Interp.g:49:5: structassign
                        {
                            PushFollow(FOLLOW_structassign_in_assignment178);
                            structassign11 = structassign();
                            state.followingStackPointer--;

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

                        }
                        break;

                }

                ASSIGNMENT12=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment185);
                    ASSIGNMENT12_tree = (object)adaptor.Create(ASSIGNMENT12);
                    adaptor.AddChild(root_0, ASSIGNMENT12_tree);

                // Interp.g:51:5: ( var_int_or_double_literal | addition | multiplication )
                int alt4 = 3;
                switch ( input.LA(1) )
                {
                case VARIABLE:
                    {
                    switch ( input.LA(2) )
                    {
                    case END_OF_STATEMENT:
                        {
                        alt4 = 1;
                        }
                        break;
                    case MULTIPLY:
                        {
                        alt4 = 3;
                        }
                        break;
                    case PLUS:
                        {
                        alt4 = 2;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d4s1 =
                                new NoViableAltException("", 4, 1, input);

                            throw nvae_d4s1;
                    }

                    }
                    break;
                case INT_LITERAL:
                    {
                    switch ( input.LA(2) )
                    {
                    case PLUS:
                        {
                        alt4 = 2;
                        }
                        break;
                    case END_OF_STATEMENT:
                        {
                        alt4 = 1;
                        }
                        break;
                    case MULTIPLY:
                        {
                        alt4 = 3;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d4s2 =
                                new NoViableAltException("", 4, 2, input);

                            throw nvae_d4s2;
                    }

                    }
                    break;
                case DOUBLE_LITERAL:
                    {
                    switch ( input.LA(2) )
                    {
                    case MULTIPLY:
                        {
                        alt4 = 3;
                        }
                        break;
                    case PLUS:
                        {
                        alt4 = 2;
                        }
                        break;
                    case END_OF_STATEMENT:
                        {
                        alt4 = 1;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d4s3 =
                                new NoViableAltException("", 4, 3, input);

                            throw nvae_d4s3;
                    }

                    }
                    break;
                    default:
                        NoViableAltException nvae_d4s0 =
                            new NoViableAltException("", 4, 0, input);

                        throw nvae_d4s0;
                }

                switch (alt4)
                {
                    case 1 :
                        // Interp.g:51:6: var_int_or_double_literal
                        {
                            PushFollow(FOLLOW_var_int_or_double_literal_in_assignment193);
                            var_int_or_double_literal13 = var_int_or_double_literal();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 2 :
                        // Interp.g:52:7: addition
                        {
                            PushFollow(FOLLOW_addition_in_assignment203);
                            addition14 = addition();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 3 :
                        // Interp.g:53:7: multiplication
                        {
                            PushFollow(FOLLOW_multiplication_in_assignment213);
                            multiplication15 = multiplication();
                            state.followingStackPointer--;

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

                        }
                        break;

                }

                END_OF_STATEMENT16=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment223);
                    END_OF_STATEMENT16_tree = (object)adaptor.Create(END_OF_STATEMENT16);
                    adaptor.AddChild(root_0, END_OF_STATEMENT16_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.º 6
0
    // throws RecognitionException [1]
    // $ANTLR start "assignment"
    // Interp.g:45:1: assignment returns [AssignmentOperationElement ret] : variable ASSIGNMENT ( var_or_int_literal | addition | multiplication ) END_OF_STATEMENT ;
    public InterpParser.assignment_return assignment()
    {
        InterpParser.assignment_return retval = new InterpParser.assignment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ASSIGNMENT8 = null;
        IToken END_OF_STATEMENT12 = null;
        InterpParser.variable_return variable7 = null;

        InterpParser.var_or_int_literal_return var_or_int_literal9 = null;

        InterpParser.addition_return addition10 = null;

        InterpParser.multiplication_return multiplication11 = null;

        object ASSIGNMENT8_tree=null;
        object END_OF_STATEMENT12_tree=null;

          retval.ret = new AssignmentOperationElement();

        try
        {
            // Interp.g:49:3: ( variable ASSIGNMENT ( var_or_int_literal | addition | multiplication ) END_OF_STATEMENT )
            // Interp.g:49:5: variable ASSIGNMENT ( var_or_int_literal | addition | multiplication ) END_OF_STATEMENT
            {
                root_0 = (object)adaptor.GetNilNode();

                PushFollow(FOLLOW_variable_in_assignment157);
                variable7 = variable();
                state.followingStackPointer--;

                adaptor.AddChild(root_0, variable7.Tree);
                 retval.ret.setLhs(((variable7 != null) ? variable7.ret : null));
                ASSIGNMENT8=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment165);
                    ASSIGNMENT8_tree = (object)adaptor.Create(ASSIGNMENT8);
                    adaptor.AddChild(root_0, ASSIGNMENT8_tree);

                // Interp.g:51:5: ( var_or_int_literal | addition | multiplication )
                int alt3 = 3;
                int LA3_0 = input.LA(1);

                if ( (LA3_0 == VARIABLE) )
                {
                    switch ( input.LA(2) )
                    {
                    case PLUS:
                        {
                        alt3 = 2;
                        }
                        break;
                    case MULTIPLY:
                        {
                        alt3 = 3;
                        }
                        break;
                    case END_OF_STATEMENT:
                        {
                        alt3 = 1;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d3s1 =
                                new NoViableAltException("", 3, 1, input);

                            throw nvae_d3s1;
                    }

                }
                else if ( (LA3_0 == INT_LITERAL) )
                {
                    switch ( input.LA(2) )
                    {
                    case END_OF_STATEMENT:
                        {
                        alt3 = 1;
                        }
                        break;
                    case PLUS:
                        {
                        alt3 = 2;
                        }
                        break;
                    case MULTIPLY:
                        {
                        alt3 = 3;
                        }
                        break;
                        default:
                            NoViableAltException nvae_d3s2 =
                                new NoViableAltException("", 3, 2, input);

                            throw nvae_d3s2;
                    }

                }
                else
                {
                    NoViableAltException nvae_d3s0 =
                        new NoViableAltException("", 3, 0, input);

                    throw nvae_d3s0;
                }
                switch (alt3)
                {
                    case 1 :
                        // Interp.g:51:6: var_or_int_literal
                        {
                            PushFollow(FOLLOW_var_or_int_literal_in_assignment173);
                            var_or_int_literal9 = var_or_int_literal();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 2 :
                        // Interp.g:52:7: addition
                        {
                            PushFollow(FOLLOW_addition_in_assignment184);
                            addition10 = addition();
                            state.followingStackPointer--;

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

                        }
                        break;
                    case 3 :
                        // Interp.g:53:7: multiplication
                        {
                            PushFollow(FOLLOW_multiplication_in_assignment194);
                            multiplication11 = multiplication();
                            state.followingStackPointer--;

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

                        }
                        break;

                }

                END_OF_STATEMENT12=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_assignment206);
                    END_OF_STATEMENT12_tree = (object)adaptor.Create(END_OF_STATEMENT12);
                    adaptor.AddChild(root_0, END_OF_STATEMENT12_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;
    }