Inheritance: Antlr.Runtime.ParserRuleReturnScope
Exemplo n.º 1
0
    // $ANTLR start "expr1"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:37:1: expr1 returns [Element ret] : ( forexpr | print );
    public spinachParser.expr1_return expr1() // throws RecognitionException [1]
    {   
        spinachParser.expr1_return retval = new spinachParser.expr1_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.forexpr_return forexpr6 = null;

        spinachParser.print_return print7 = null;



        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:38:4: ( forexpr | print )
            int alt3 = 2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0 == VARIABLE || LA3_0 == VARTYPE || LA3_0 == STRINGTYPE || LA3_0 == 28 || LA3_0 == 32 || LA3_0 == 35 || LA3_0 == 40 || LA3_0 == 42 || LA3_0 == 46 || LA3_0 == 48 || (LA3_0 >= 52 && LA3_0 <= 56)) )
            {
                alt3 = 1;
            }
            else if ( (LA3_0 == 36) )
            {
                alt3 = 2;
            }
            else 
            {
                NoViableAltException nvae_d3s0 =
                    new NoViableAltException("", 3, 0, input);

                throw nvae_d3s0;
            }
            switch (alt3) 
            {
                case 1 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:38:5: forexpr
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_forexpr_in_expr1131);
                    	forexpr6 = forexpr();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 2 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:39:10: print
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_print_in_expr1143);
                    	print7 = print();
                    	state.followingStackPointer--;

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

                    }
                    break;

            }
            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 "expr1"
    // spinach.g:31:1: expr1 returns [Element ret] : ( expr2 | matrixvardec | structdec | structobjdec | functiondefination | plotfunctions );
    public spinachParser.expr1_return expr1() // throws RecognitionException [1]
    {   
        spinachParser.expr1_return retval = new spinachParser.expr1_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.expr2_return expr24 = null;

        spinachParser.matrixvardec_return matrixvardec5 = null;

        spinachParser.structdec_return structdec6 = null;

        spinachParser.structobjdec_return structobjdec7 = null;

        spinachParser.functiondefination_return functiondefination8 = null;

        spinachParser.plotfunctions_return plotfunctions9 = null;



        try 
    	{
            // spinach.g:32:4: ( expr2 | matrixvardec | structdec | structobjdec | functiondefination | plotfunctions )
            int alt3 = 6;
            alt3 = dfa3.Predict(input);
            switch (alt3) 
            {
                case 1 :
                    // spinach.g:32:6: expr2
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_expr2_in_expr1112);
                    	expr24 = expr2();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 2 :
                    // spinach.g:33:7: matrixvardec
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_matrixvardec_in_expr1121);
                    	matrixvardec5 = matrixvardec();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 3 :
                    // spinach.g:34:8: structdec
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_structdec_in_expr1132);
                    	structdec6 = structdec();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 4 :
                    // spinach.g:35:8: structobjdec
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_structobjdec_in_expr1143);
                    	structobjdec7 = structobjdec();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 5 :
                    // spinach.g:36:8: functiondefination
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_functiondefination_in_expr1154);
                    	functiondefination8 = functiondefination();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 6 :
                    // spinach.g:37:9: plotfunctions
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_plotfunctions_in_expr1165);
                    	plotfunctions9 = plotfunctions();
                    	state.followingStackPointer--;

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

                    }
                    break;

            }
            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
    // $ANTLR start "expr1"
    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:38:1: expr1 returns [Element ret] : ( expr2 | matrixvardec | plotfunctions | deletionofvar | print | functioncall | scalarvardec | vectorvardec );
    public spinachParser.expr1_return expr1() // throws RecognitionException [1]
    {   
        spinachParser.expr1_return retval = new spinachParser.expr1_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.expr2_return expr27 = null;

        spinachParser.matrixvardec_return matrixvardec8 = null;

        spinachParser.plotfunctions_return plotfunctions9 = null;

        spinachParser.deletionofvar_return deletionofvar10 = null;

        spinachParser.print_return print11 = null;

        spinachParser.functioncall_return functioncall12 = null;

        spinachParser.scalarvardec_return scalarvardec13 = null;

        spinachParser.vectorvardec_return vectorvardec14 = null;



        try 
    	{
            // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:39:4: ( expr2 | matrixvardec | plotfunctions | deletionofvar | print | functioncall | scalarvardec | vectorvardec )
            int alt3 = 8;
            alt3 = dfa3.Predict(input);
            switch (alt3) 
            {
                case 1 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:39:6: expr2
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_expr2_in_expr1143);
                    	expr27 = expr2();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 2 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:40:7: matrixvardec
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_matrixvardec_in_expr1152);
                    	matrixvardec8 = matrixvardec();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 3 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:41:7: plotfunctions
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_plotfunctions_in_expr1162);
                    	plotfunctions9 = plotfunctions();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 4 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:42:7: deletionofvar
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_deletionofvar_in_expr1171);
                    	deletionofvar10 = deletionofvar();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 5 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:43:7: print
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_print_in_expr1182);
                    	print11 = print();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 6 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:44:7: functioncall
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_functioncall_in_expr1192);
                    	functioncall12 = functioncall();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 7 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:45:7: scalarvardec
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_scalarvardec_in_expr1201);
                    	scalarvardec13 = scalarvardec();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 8 :
                    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:46:7: vectorvardec
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_vectorvardec_in_expr1211);
                    	vectorvardec14 = vectorvardec();
                    	state.followingStackPointer--;

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

                    }
                    break;

            }
            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.º 4
0
    // throws RecognitionException [1]
    // $ANTLR start "expr1"
    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:30:1: expr1 returns [Element ret] : ( assignment | scalarvardec | vectorvardec | matrixvardec | deletionofvar | structdec | structobjdec | print | ifelse | functioncall | equality | nonequality | forstatement | functiondefination | functionreturn | plotfunctions );
    public spinachParser.expr1_return expr1()
    {
        spinachParser.expr1_return retval = new spinachParser.expr1_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.assignment_return assignment4 = null;

        spinachParser.scalarvardec_return scalarvardec5 = null;

        spinachParser.vectorvardec_return vectorvardec6 = null;

        spinachParser.matrixvardec_return matrixvardec7 = null;

        spinachParser.deletionofvar_return deletionofvar8 = null;

        spinachParser.structdec_return structdec9 = null;

        spinachParser.structobjdec_return structobjdec10 = null;

        spinachParser.print_return print11 = null;

        spinachParser.ifelse_return ifelse12 = null;

        spinachParser.functioncall_return functioncall13 = null;

        spinachParser.equality_return equality14 = null;

        spinachParser.nonequality_return nonequality15 = null;

        spinachParser.forstatement_return forstatement16 = null;

        spinachParser.functiondefination_return functiondefination17 = null;

        spinachParser.functionreturn_return functionreturn18 = null;

        spinachParser.plotfunctions_return plotfunctions19 = null;

        try
        {
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:31:3: ( assignment | scalarvardec | vectorvardec | matrixvardec | deletionofvar | structdec | structobjdec | print | ifelse | functioncall | equality | nonequality | forstatement | functiondefination | functionreturn | plotfunctions )
            int alt3 = 16;
            alt3 = dfa3.Predict(input);
            switch (alt3)
            {
                case 1 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:31:5: assignment
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_assignment_in_expr1105);
                        assignment4 = assignment();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 2 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:32:5: scalarvardec
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_scalarvardec_in_expr1113);
                        scalarvardec5 = scalarvardec();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 3 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:33:5: vectorvardec
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_vectorvardec_in_expr1121);
                        vectorvardec6 = vectorvardec();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 4 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:34:5: matrixvardec
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_matrixvardec_in_expr1129);
                        matrixvardec7 = matrixvardec();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 5 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:35:5: deletionofvar
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_deletionofvar_in_expr1137);
                        deletionofvar8 = deletionofvar();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 6 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:36:5: structdec
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_structdec_in_expr1145);
                        structdec9 = structdec();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 7 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:37:5: structobjdec
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_structobjdec_in_expr1153);
                        structobjdec10 = structobjdec();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 8 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:38:5: print
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_print_in_expr1161);
                        print11 = print();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 9 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:39:5: ifelse
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_ifelse_in_expr1169);
                        ifelse12 = ifelse();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 10 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:40:5: functioncall
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_functioncall_in_expr1176);
                        functioncall13 = functioncall();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 11 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:41:5: equality
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_equality_in_expr1183);
                        equality14 = equality();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 12 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:42:5: nonequality
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_nonequality_in_expr1190);
                        nonequality15 = nonequality();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 13 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:43:5: forstatement
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_forstatement_in_expr1197);
                        forstatement16 = forstatement();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 14 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:44:5: functiondefination
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_functiondefination_in_expr1204);
                        functiondefination17 = functiondefination();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 15 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:45:5: functionreturn
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_functionreturn_in_expr1211);
                        functionreturn18 = functionreturn();
                        state.followingStackPointer--;

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

                    }
                    break;
                case 16 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:46:5: plotfunctions
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_plotfunctions_in_expr1218);
                        plotfunctions19 = plotfunctions();
                        state.followingStackPointer--;

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

                    }
                    break;

            }
            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.º 5
0
    // $ANTLR start "expr1"
    // spinach.g:37:1: expr1 returns [Element ret] : ( forexpr | print );
    public spinachParser.expr1_return expr1() // throws RecognitionException [1]
    {   
        spinachParser.expr1_return retval = new spinachParser.expr1_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.forexpr_return forexpr8 = null;

        spinachParser.print_return print9 = null;



        try 
    	{
            // spinach.g:38:4: ( forexpr | print )
            int alt3 = 2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0 == VARIABLE || LA3_0 == VARTYPE || LA3_0 == STRINGTYPE || LA3_0 == 27 || LA3_0 == 31 || LA3_0 == 34 || LA3_0 == 39 || LA3_0 == 41 || LA3_0 == 46 || (LA3_0 >= 50 && LA3_0 <= 54)) )
            {
                alt3 = 1;
            }
            else if ( (LA3_0 == 35) )
            {
                alt3 = 2;
            }
            else 
            {
                NoViableAltException nvae_d3s0 =
                    new NoViableAltException("", 3, 0, input);

                throw nvae_d3s0;
            }
            switch (alt3) 
            {
                case 1 :
                    // spinach.g:38:5: forexpr
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_forexpr_in_expr1140);
                    	forexpr8 = forexpr();
                    	state.followingStackPointer--;

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

                    }
                    break;
                case 2 :
                    // spinach.g:39:10: print
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_print_in_expr1152);
                    	print9 = print();
                    	state.followingStackPointer--;

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

                    }
                    break;

            }
            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;
    }