Inheritance: Antlr.Runtime.ParserRuleReturnScope
コード例 #1
0
ファイル: spinachParser.cs プロジェクト: shranjan/pinac
    // $ANTLR start "expr2"
    // spinach.g:39:1: expr2 returns [Element ret] : (el1= assignment | el2= scalarvardec | el3= vectorvardec | el4= deletionofvar | el5= print | el6= ifelse | el7= functioncall | el8= forstatement | el9= comment ) ;
    public spinachParser.expr2_return expr2() // throws RecognitionException [1]
    {   
        spinachParser.expr2_return retval = new spinachParser.expr2_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.assignment_return el1 = null;

        spinachParser.scalarvardec_return el2 = null;

        spinachParser.vectorvardec_return el3 = null;

        spinachParser.deletionofvar_return el4 = null;

        spinachParser.print_return el5 = null;

        spinachParser.ifelse_return el6 = null;

        spinachParser.functioncall_return el7 = null;

        spinachParser.forstatement_return el8 = null;

        spinachParser.comment_return el9 = null;



        try 
    	{
            // spinach.g:40:1: ( (el1= assignment | el2= scalarvardec | el3= vectorvardec | el4= deletionofvar | el5= print | el6= ifelse | el7= functioncall | el8= forstatement | el9= comment ) )
            // spinach.g:40:4: (el1= assignment | el2= scalarvardec | el3= vectorvardec | el4= deletionofvar | el5= print | el6= ifelse | el7= functioncall | el8= forstatement | el9= comment )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// spinach.g:40:4: (el1= assignment | el2= scalarvardec | el3= vectorvardec | el4= deletionofvar | el5= print | el6= ifelse | el7= functioncall | el8= forstatement | el9= comment )
            	int alt4 = 9;
            	alt4 = dfa4.Predict(input);
            	switch (alt4) 
            	{
            	    case 1 :
            	        // spinach.g:40:5: el1= assignment
            	        {
            	        	PushFollow(FOLLOW_assignment_in_expr2183);
            	        	el1 = assignment();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 2 :
            	        // spinach.g:41:5: el2= scalarvardec
            	        {
            	        	PushFollow(FOLLOW_scalarvardec_in_expr2193);
            	        	el2 = scalarvardec();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 3 :
            	        // spinach.g:42:5: el3= vectorvardec
            	        {
            	        	PushFollow(FOLLOW_vectorvardec_in_expr2203);
            	        	el3 = vectorvardec();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 4 :
            	        // spinach.g:43:5: el4= deletionofvar
            	        {
            	        	PushFollow(FOLLOW_deletionofvar_in_expr2214);
            	        	el4 = deletionofvar();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 5 :
            	        // spinach.g:44:5: el5= print
            	        {
            	        	PushFollow(FOLLOW_print_in_expr2225);
            	        	el5 = print();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 6 :
            	        // spinach.g:45:5: el6= ifelse
            	        {
            	        	PushFollow(FOLLOW_ifelse_in_expr2235);
            	        	el6 = ifelse();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 7 :
            	        // spinach.g:46:5: el7= functioncall
            	        {
            	        	PushFollow(FOLLOW_functioncall_in_expr2244);
            	        	el7 = functioncall();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 8 :
            	        // spinach.g:47:5: el8= forstatement
            	        {
            	        	PushFollow(FOLLOW_forstatement_in_expr2253);
            	        	el8 = forstatement();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 9 :
            	        // spinach.g:48:5: el9= comment
            	        {
            	        	PushFollow(FOLLOW_comment_in_expr2262);
            	        	el9 = comment();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, el9.Tree);
            	        	retval.ret = ((el9 != null) ? el9.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;
    }
コード例 #2
0
ファイル: spinachParser.cs プロジェクト: shranjan/SPINACH
    // $ANTLR start "expr2"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:52:1: expr2 returns [Element ret] : (el1= assignment | el4= ifelse | el5= forstatement | el6= comment | e12= scalarvardec | e13= deletionofvar | structobjdec ) ;
    public spinachParser.expr2_return expr2() // throws RecognitionException [1]
    {   
        spinachParser.expr2_return retval = new spinachParser.expr2_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.assignment_return el1 = null;

        spinachParser.ifelse_return el4 = null;

        spinachParser.forstatement_return el5 = null;

        spinachParser.comment_return el6 = null;

        spinachParser.scalarvardec_return e12 = null;

        spinachParser.deletionofvar_return e13 = null;

        spinachParser.structobjdec_return structobjdec13 = null;



        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:53:1: ( (el1= assignment | el4= ifelse | el5= forstatement | el6= comment | e12= scalarvardec | e13= deletionofvar | structobjdec ) )
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:53:4: (el1= assignment | el4= ifelse | el5= forstatement | el6= comment | e12= scalarvardec | e13= deletionofvar | structobjdec )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:53:4: (el1= assignment | el4= ifelse | el5= forstatement | el6= comment | e12= scalarvardec | e13= deletionofvar | structobjdec )
            	int alt5 = 7;
            	switch ( input.LA(1) ) 
            	{
            	case VARIABLE:
            		{
            	    int LA5_1 = input.LA(2);

            	    if ( (LA5_1 == ASSIGNMENT || LA5_1 == DOT || LA5_1 == 29) )
            	    {
            	        alt5 = 1;
            	    }
            	    else if ( (LA5_1 == VARIABLE) )
            	    {
            	        alt5 = 7;
            	    }
            	    else 
            	    {
            	        NoViableAltException nvae_d5s1 =
            	            new NoViableAltException("", 5, 1, input);

            	        throw nvae_d5s1;
            	    }
            	    }
            	    break;
            	case 40:
            		{
            	    alt5 = 2;
            	    }
            	    break;
            	case 42:
            		{
            	    alt5 = 3;
            	    }
            	    break;
            	case 46:
            		{
            	    alt5 = 4;
            	    }
            	    break;
            	case VARTYPE:
            	case STRINGTYPE:
            		{
            	    alt5 = 5;
            	    }
            	    break;
            	case 35:
            		{
            	    alt5 = 6;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d5s0 =
            		        new NoViableAltException("", 5, 0, input);

            		    throw nvae_d5s0;
            	}

            	switch (alt5) 
            	{
            	    case 1 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:53:5: el1= assignment
            	        {
            	        	PushFollow(FOLLOW_assignment_in_expr2233);
            	        	el1 = assignment();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 2 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:54:5: el4= ifelse
            	        {
            	        	PushFollow(FOLLOW_ifelse_in_expr2243);
            	        	el4 = ifelse();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 3 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:55:5: el5= forstatement
            	        {
            	        	PushFollow(FOLLOW_forstatement_in_expr2253);
            	        	el5 = forstatement();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 4 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:56:5: el6= comment
            	        {
            	        	PushFollow(FOLLOW_comment_in_expr2262);
            	        	el6 = comment();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 5 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:57:5: e12= scalarvardec
            	        {
            	        	PushFollow(FOLLOW_scalarvardec_in_expr2272);
            	        	e12 = scalarvardec();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 6 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:58:5: e13= deletionofvar
            	        {
            	        	PushFollow(FOLLOW_deletionofvar_in_expr2284);
            	        	e13 = deletionofvar();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 7 :
            	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:59:5: structobjdec
            	        {
            	        	PushFollow(FOLLOW_structobjdec_in_expr2291);
            	        	structobjdec13 = structobjdec();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, structobjdec13.Tree);
            	        	 retval.ret = ((structobjdec13 != null) ? structobjdec13.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;
    }
コード例 #3
0
ファイル: spinachParser.cs プロジェクト: shranjan/pinac
    // $ANTLR start "expr2"
    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:48:1: expr2 returns [Element ret] : (el1= assignment | el4= ifelse | el5= forstatement | el6= comment ) ;
    public spinachParser.expr2_return expr2() // throws RecognitionException [1]
    {   
        spinachParser.expr2_return retval = new spinachParser.expr2_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        spinachParser.assignment_return el1 = null;

        spinachParser.ifelse_return el4 = null;

        spinachParser.forstatement_return el5 = null;

        spinachParser.comment_return el6 = null;



        try 
    	{
            // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:49:1: ( (el1= assignment | el4= ifelse | el5= forstatement | el6= comment ) )
            // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:49:4: (el1= assignment | el4= ifelse | el5= forstatement | el6= comment )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:49:4: (el1= assignment | el4= ifelse | el5= forstatement | el6= comment )
            	int alt4 = 4;
            	switch ( input.LA(1) ) 
            	{
            	case VARIABLE:
            		{
            	    alt4 = 1;
            	    }
            	    break;
            	case 40:
            		{
            	    alt4 = 2;
            	    }
            	    break;
            	case 42:
            		{
            	    alt4 = 3;
            	    }
            	    break;
            	case 46:
            		{
            	    alt4 = 4;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d4s0 =
            		        new NoViableAltException("", 4, 0, input);

            		    throw nvae_d4s0;
            	}

            	switch (alt4) 
            	{
            	    case 1 :
            	        // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:49:5: el1= assignment
            	        {
            	        	PushFollow(FOLLOW_assignment_in_expr2231);
            	        	el1 = assignment();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 2 :
            	        // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:50:5: el4= ifelse
            	        {
            	        	PushFollow(FOLLOW_ifelse_in_expr2241);
            	        	el4 = ifelse();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 3 :
            	        // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:51:5: el5= forstatement
            	        {
            	        	PushFollow(FOLLOW_forstatement_in_expr2251);
            	        	el5 = forstatement();
            	        	state.followingStackPointer--;

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

            	        }
            	        break;
            	    case 4 :
            	        // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:52:5: el6= comment
            	        {
            	        	PushFollow(FOLLOW_comment_in_expr2260);
            	        	el6 = comment();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, el6.Tree);
            	        	retval.ret = ((el6 != null) ? el6.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;
    }