Inheritance: Antlr.Runtime.ParserRuleReturnScope
Exemplo n.º 1
0
    // $ANTLR start "parallelfor"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:244:1: parallelfor returns [ParallelForElement ret] : 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS ;
    public spinachParser.parallelfor_return parallelfor() // throws RecognitionException [1]
    {   
        spinachParser.parallelfor_return retval = new spinachParser.parallelfor_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal98 = null;
        IToken LEFTBRACE99 = null;
        IToken POINT100 = null;
        IToken string_literal101 = null;
        IToken RIGHTBRACE102 = null;
        IToken LEFTPARANTHESIS103 = null;
        IToken string_literal104 = null;
        IToken END_OF_STATEMENT105 = null;
        IToken RIGHTPARANTHESIS106 = null;
        spinachParser.variable_return r11 = null;

        spinachParser.int_literal_return r12 = null;

        spinachParser.int_literal_return r13 = null;

        spinachParser.expr2_return e11 = null;


        object string_literal98_tree=null;
        object LEFTBRACE99_tree=null;
        object POINT100_tree=null;
        object string_literal101_tree=null;
        object RIGHTBRACE102_tree=null;
        object LEFTPARANTHESIS103_tree=null;
        object string_literal104_tree=null;
        object END_OF_STATEMENT105_tree=null;
        object RIGHTPARANTHESIS106_tree=null;


          retval.ret = new ParallelForElement();

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:2: ( 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS )
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:4: 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS
            {
            	root_0 = (object)adaptor.GetNilNode();

            	string_literal98=(IToken)Match(input,37,FOLLOW_37_in_parallelfor1377); 
            		string_literal98_tree = (object)adaptor.Create(string_literal98);
            		adaptor.AddChild(root_0, string_literal98_tree);

            	LEFTBRACE99=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_parallelfor1378); 
            		LEFTBRACE99_tree = (object)adaptor.Create(LEFTBRACE99);
            		adaptor.AddChild(root_0, LEFTBRACE99_tree);

            	PushFollow(FOLLOW_variable_in_parallelfor1384);
            	r11 = variable();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r11.Tree);
            	retval.ret.RANGEVARIABLE = ((r11 != null) ? r11.ret : null);
            	POINT100=(IToken)Match(input,POINT,FOLLOW_POINT_in_parallelfor1387); 
            		POINT100_tree = (object)adaptor.Create(POINT100);
            		adaptor.AddChild(root_0, POINT100_tree);

            	PushFollow(FOLLOW_int_literal_in_parallelfor1393);
            	r12 = int_literal();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r12.Tree);
            	retval.ret.STARTINGRANGE = ((r12 != null) ? r12.ret : null);
            	string_literal101=(IToken)Match(input,38,FOLLOW_38_in_parallelfor1396); 
            		string_literal101_tree = (object)adaptor.Create(string_literal101);
            		adaptor.AddChild(root_0, string_literal101_tree);

            	PushFollow(FOLLOW_int_literal_in_parallelfor1401);
            	r13 = int_literal();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r13.Tree);
            	retval.ret.ENDINGRANGE = ((r13 != null) ? r13.ret : null);
            	RIGHTBRACE102=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_parallelfor1404); 
            		RIGHTBRACE102_tree = (object)adaptor.Create(RIGHTBRACE102);
            		adaptor.AddChild(root_0, RIGHTBRACE102_tree);

            	LEFTPARANTHESIS103=(IToken)Match(input,LEFTPARANTHESIS,FOLLOW_LEFTPARANTHESIS_in_parallelfor1406); 
            		LEFTPARANTHESIS103_tree = (object)adaptor.Create(LEFTPARANTHESIS103);
            		adaptor.AddChild(root_0, LEFTPARANTHESIS103_tree);

            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:228: ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+
            	int cnt31 = 0;
            	do 
            	{
            	    int alt31 = 2;
            	    int LA31_0 = input.LA(1);

            	    if ( (LA31_0 == VARIABLE || LA31_0 == VARTYPE || LA31_0 == STRINGTYPE || LA31_0 == 35 || LA31_0 == 40 || LA31_0 == 42 || LA31_0 == 46) )
            	    {
            	        alt31 = 1;
            	    }


            	    switch (alt31) 
            		{
            			case 1 :
            			    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:229: (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | )
            			    {
            			    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:229: (e11= expr2 )+
            			    	int cnt29 = 0;
            			    	do 
            			    	{
            			    	    int alt29 = 2;
            			    	    switch ( input.LA(1) ) 
            			    	    {
            			    	    case VARIABLE:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;
            			    	    case 40:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;
            			    	    case 42:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;
            			    	    case 46:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;
            			    	    case VARTYPE:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;
            			    	    case STRINGTYPE:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;
            			    	    case 35:
            			    	    	{
            			    	        alt29 = 1;
            			    	        }
            			    	        break;

            			    	    }

            			    	    switch (alt29) 
            			    		{
            			    			case 1 :
            			    			    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:230: e11= expr2
            			    			    {
            			    			    	PushFollow(FOLLOW_expr2_in_parallelfor1413);
            			    			    	e11 = expr2();
            			    			    	state.followingStackPointer--;

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

            			    			    }
            			    			    break;

            			    			default:
            			    			    if ( cnt29 >= 1 ) goto loop29;
            			    		            EarlyExitException eee29 =
            			    		                new EarlyExitException(29, input);
            			    		            throw eee29;
            			    	    }
            			    	    cnt29++;
            			    	} while (true);

            			    	loop29:
            			    		;	// Stops C# compiler whinging that label 'loop29' has no statements

            			    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:272: ( ( 'SYNC' END_OF_STATEMENT ) | )
            			    	int alt30 = 2;
            			    	int LA30_0 = input.LA(1);

            			    	if ( (LA30_0 == 39) )
            			    	{
            			    	    alt30 = 1;
            			    	}
            			    	else if ( (LA30_0 == VARIABLE || LA30_0 == VARTYPE || LA30_0 == STRINGTYPE || LA30_0 == RIGHTPARANTHESIS || LA30_0 == 35 || LA30_0 == 40 || LA30_0 == 42 || LA30_0 == 46) )
            			    	{
            			    	    alt30 = 2;
            			    	}
            			    	else 
            			    	{
            			    	    NoViableAltException nvae_d30s0 =
            			    	        new NoViableAltException("", 30, 0, input);

            			    	    throw nvae_d30s0;
            			    	}
            			    	switch (alt30) 
            			    	{
            			    	    case 1 :
            			    	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:273: ( 'SYNC' END_OF_STATEMENT )
            			    	        {
            			    	        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:273: ( 'SYNC' END_OF_STATEMENT )
            			    	        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:274: 'SYNC' END_OF_STATEMENT
            			    	        	{
            			    	        		string_literal104=(IToken)Match(input,39,FOLLOW_39_in_parallelfor1419); 
            			    	        			string_literal104_tree = (object)adaptor.Create(string_literal104);
            			    	        			adaptor.AddChild(root_0, string_literal104_tree);

            			    	        		retval.ret.syncfunction();
            			    	        		END_OF_STATEMENT105=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_parallelfor1422); 
            			    	        			END_OF_STATEMENT105_tree = (object)adaptor.Create(END_OF_STATEMENT105);
            			    	        			adaptor.AddChild(root_0, END_OF_STATEMENT105_tree);


            			    	        	}


            			    	        }
            			    	        break;
            			    	    case 2 :
            			    	        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:247:327: 
            			    	        {
            			    	        	retval.ret.syncfunction();

            			    	        }
            			    	        break;

            			    	}


            			    }
            			    break;

            			default:
            			    if ( cnt31 >= 1 ) goto loop31;
            		            EarlyExitException eee31 =
            		                new EarlyExitException(31, input);
            		            throw eee31;
            	    }
            	    cnt31++;
            	} while (true);

            	loop31:
            		;	// Stops C# compiler whinging that label 'loop31' has no statements

            	RIGHTPARANTHESIS106=(IToken)Match(input,RIGHTPARANTHESIS,FOLLOW_RIGHTPARANTHESIS_in_parallelfor1430); 
            		RIGHTPARANTHESIS106_tree = (object)adaptor.Create(RIGHTPARANTHESIS106);
            		adaptor.AddChild(root_0, RIGHTPARANTHESIS106_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;
    }
Exemplo n.º 2
0
    // $ANTLR start "parallelfor"
    // spinach.g:217:1: parallelfor returns [ParallelForElement ret] : 'parallelfor' r11= range LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS ;
    public spinachParser.parallelfor_return parallelfor() // throws RecognitionException [1]
    {   
        spinachParser.parallelfor_return retval = new spinachParser.parallelfor_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal79 = null;
        IToken LEFTPARANTHESIS80 = null;
        IToken string_literal81 = null;
        IToken END_OF_STATEMENT82 = null;
        IToken RIGHTPARANTHESIS83 = null;
        spinachParser.range_return r11 = null;

        spinachParser.expr2_return e11 = null;


        object string_literal79_tree=null;
        object LEFTPARANTHESIS80_tree=null;
        object string_literal81_tree=null;
        object END_OF_STATEMENT82_tree=null;
        object RIGHTPARANTHESIS83_tree=null;


          retval.ret = new ParallelForElement();

        try 
    	{
            // spinach.g:220:2: ( 'parallelfor' r11= range LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS )
            // spinach.g:220:4: 'parallelfor' r11= range LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS
            {
            	root_0 = (object)adaptor.GetNilNode();

            	string_literal79=(IToken)Match(input,37,FOLLOW_37_in_parallelfor1249); 
            		string_literal79_tree = (object)adaptor.Create(string_literal79);
            		adaptor.AddChild(root_0, string_literal79_tree);

            	PushFollow(FOLLOW_range_in_parallelfor1255);
            	r11 = range();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r11.Tree);
            	retval.ret.RANGE = ((r11 != null) ? r11.ret : null);
            	LEFTPARANTHESIS80=(IToken)Match(input,LEFTPARANTHESIS,FOLLOW_LEFTPARANTHESIS_in_parallelfor1258); 
            		LEFTPARANTHESIS80_tree = (object)adaptor.Create(LEFTPARANTHESIS80);
            		adaptor.AddChild(root_0, LEFTPARANTHESIS80_tree);

            	// spinach.g:220:79: ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+
            	int cnt24 = 0;
            	do 
            	{
            	    int alt24 = 2;
            	    int LA24_0 = input.LA(1);

            	    if ( (LA24_0 == VARIABLE || LA24_0 == VARTYPE || LA24_0 == STRINGTYPE || LA24_0 == 32 || (LA24_0 >= 35 && LA24_0 <= 36) || LA24_0 == 40 || LA24_0 == 42 || LA24_0 == 46) )
            	    {
            	        alt24 = 1;
            	    }


            	    switch (alt24) 
            		{
            			case 1 :
            			    // spinach.g:220:80: (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | )
            			    {
            			    	// spinach.g:220:80: (e11= expr2 )+
            			    	int cnt22 = 0;
            			    	do 
            			    	{
            			    	    int alt22 = 2;
            			    	    alt22 = dfa22.Predict(input);
            			    	    switch (alt22) 
            			    		{
            			    			case 1 :
            			    			    // spinach.g:220:81: e11= expr2
            			    			    {
            			    			    	PushFollow(FOLLOW_expr2_in_parallelfor1265);
            			    			    	e11 = expr2();
            			    			    	state.followingStackPointer--;

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

            			    			    }
            			    			    break;

            			    			default:
            			    			    if ( cnt22 >= 1 ) goto loop22;
            			    		            EarlyExitException eee22 =
            			    		                new EarlyExitException(22, input);
            			    		            throw eee22;
            			    	    }
            			    	    cnt22++;
            			    	} while (true);

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

            			    	// spinach.g:220:123: ( ( 'SYNC' END_OF_STATEMENT ) | )
            			    	int alt23 = 2;
            			    	int LA23_0 = input.LA(1);

            			    	if ( (LA23_0 == 38) )
            			    	{
            			    	    alt23 = 1;
            			    	}
            			    	else if ( (LA23_0 == VARIABLE || LA23_0 == VARTYPE || LA23_0 == STRINGTYPE || LA23_0 == RIGHTPARANTHESIS || LA23_0 == 32 || (LA23_0 >= 35 && LA23_0 <= 36) || LA23_0 == 40 || LA23_0 == 42 || LA23_0 == 46) )
            			    	{
            			    	    alt23 = 2;
            			    	}
            			    	else 
            			    	{
            			    	    NoViableAltException nvae_d23s0 =
            			    	        new NoViableAltException("", 23, 0, input);

            			    	    throw nvae_d23s0;
            			    	}
            			    	switch (alt23) 
            			    	{
            			    	    case 1 :
            			    	        // spinach.g:220:124: ( 'SYNC' END_OF_STATEMENT )
            			    	        {
            			    	        	// spinach.g:220:124: ( 'SYNC' END_OF_STATEMENT )
            			    	        	// spinach.g:220:125: 'SYNC' END_OF_STATEMENT
            			    	        	{
            			    	        		string_literal81=(IToken)Match(input,38,FOLLOW_38_in_parallelfor1271); 
            			    	        			string_literal81_tree = (object)adaptor.Create(string_literal81);
            			    	        			adaptor.AddChild(root_0, string_literal81_tree);

            			    	        		retval.ret.syncfunction();
            			    	        		END_OF_STATEMENT82=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_parallelfor1274); 
            			    	        			END_OF_STATEMENT82_tree = (object)adaptor.Create(END_OF_STATEMENT82);
            			    	        			adaptor.AddChild(root_0, END_OF_STATEMENT82_tree);


            			    	        	}


            			    	        }
            			    	        break;
            			    	    case 2 :
            			    	        // spinach.g:220:178: 
            			    	        {
            			    	        	retval.ret.syncfunction();

            			    	        }
            			    	        break;

            			    	}


            			    }
            			    break;

            			default:
            			    if ( cnt24 >= 1 ) goto loop24;
            		            EarlyExitException eee24 =
            		                new EarlyExitException(24, input);
            		            throw eee24;
            	    }
            	    cnt24++;
            	} while (true);

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

            	RIGHTPARANTHESIS83=(IToken)Match(input,RIGHTPARANTHESIS,FOLLOW_RIGHTPARANTHESIS_in_parallelfor1282); 
            		RIGHTPARANTHESIS83_tree = (object)adaptor.Create(RIGHTPARANTHESIS83);
            		adaptor.AddChild(root_0, RIGHTPARANTHESIS83_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;
    }
Exemplo n.º 3
0
    // $ANTLR start "parallelfor"
    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:235:1: parallelfor returns [ParallelForElement ret] : 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS ;
    public spinachParser.parallelfor_return parallelfor() // throws RecognitionException [1]
    {   
        spinachParser.parallelfor_return retval = new spinachParser.parallelfor_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal90 = null;
        IToken LEFTBRACE91 = null;
        IToken POINT92 = null;
        IToken string_literal93 = null;
        IToken RIGHTBRACE94 = null;
        IToken LEFTPARANTHESIS95 = null;
        IToken string_literal96 = null;
        IToken END_OF_STATEMENT97 = null;
        IToken RIGHTPARANTHESIS98 = null;
        spinachParser.variable_return r11 = null;

        spinachParser.int_literal_return r12 = null;

        spinachParser.int_literal_return r13 = null;

        spinachParser.expr2_return e11 = null;


        object string_literal90_tree=null;
        object LEFTBRACE91_tree=null;
        object POINT92_tree=null;
        object string_literal93_tree=null;
        object RIGHTBRACE94_tree=null;
        object LEFTPARANTHESIS95_tree=null;
        object string_literal96_tree=null;
        object END_OF_STATEMENT97_tree=null;
        object RIGHTPARANTHESIS98_tree=null;


          retval.ret = new ParallelForElement();

        try 
    	{
            // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:2: ( 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS )
            // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:4: 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS
            {
            	root_0 = (object)adaptor.GetNilNode();

            	string_literal90=(IToken)Match(input,37,FOLLOW_37_in_parallelfor1316); 
            		string_literal90_tree = (object)adaptor.Create(string_literal90);
            		adaptor.AddChild(root_0, string_literal90_tree);

            	LEFTBRACE91=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_parallelfor1317); 
            		LEFTBRACE91_tree = (object)adaptor.Create(LEFTBRACE91);
            		adaptor.AddChild(root_0, LEFTBRACE91_tree);

            	PushFollow(FOLLOW_variable_in_parallelfor1323);
            	r11 = variable();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r11.Tree);
            	retval.ret.RANGEVARIABLE = ((r11 != null) ? r11.ret : null);
            	POINT92=(IToken)Match(input,POINT,FOLLOW_POINT_in_parallelfor1326); 
            		POINT92_tree = (object)adaptor.Create(POINT92);
            		adaptor.AddChild(root_0, POINT92_tree);

            	PushFollow(FOLLOW_int_literal_in_parallelfor1332);
            	r12 = int_literal();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r12.Tree);
            	retval.ret.STARTINGRANGE = ((r12 != null) ? r12.ret : null);
            	string_literal93=(IToken)Match(input,38,FOLLOW_38_in_parallelfor1335); 
            		string_literal93_tree = (object)adaptor.Create(string_literal93);
            		adaptor.AddChild(root_0, string_literal93_tree);

            	PushFollow(FOLLOW_int_literal_in_parallelfor1340);
            	r13 = int_literal();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r13.Tree);
            	retval.ret.ENDINGRANGE = ((r13 != null) ? r13.ret : null);
            	RIGHTBRACE94=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_parallelfor1343); 
            		RIGHTBRACE94_tree = (object)adaptor.Create(RIGHTBRACE94);
            		adaptor.AddChild(root_0, RIGHTBRACE94_tree);

            	LEFTPARANTHESIS95=(IToken)Match(input,LEFTPARANTHESIS,FOLLOW_LEFTPARANTHESIS_in_parallelfor1345); 
            		LEFTPARANTHESIS95_tree = (object)adaptor.Create(LEFTPARANTHESIS95);
            		adaptor.AddChild(root_0, LEFTPARANTHESIS95_tree);

            	// C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:228: ( (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+
            	int cnt29 = 0;
            	do 
            	{
            	    int alt29 = 2;
            	    int LA29_0 = input.LA(1);

            	    if ( (LA29_0 == VARIABLE || LA29_0 == 40 || LA29_0 == 42 || LA29_0 == 46) )
            	    {
            	        alt29 = 1;
            	    }


            	    switch (alt29) 
            		{
            			case 1 :
            			    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:229: (e11= expr2 )+ ( ( 'SYNC' END_OF_STATEMENT ) | )
            			    {
            			    	// C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:229: (e11= expr2 )+
            			    	int cnt27 = 0;
            			    	do 
            			    	{
            			    	    int alt27 = 2;
            			    	    switch ( input.LA(1) ) 
            			    	    {
            			    	    case VARIABLE:
            			    	    	{
            			    	        alt27 = 1;
            			    	        }
            			    	        break;
            			    	    case 40:
            			    	    	{
            			    	        alt27 = 1;
            			    	        }
            			    	        break;
            			    	    case 42:
            			    	    	{
            			    	        alt27 = 1;
            			    	        }
            			    	        break;
            			    	    case 46:
            			    	    	{
            			    	        alt27 = 1;
            			    	        }
            			    	        break;

            			    	    }

            			    	    switch (alt27) 
            			    		{
            			    			case 1 :
            			    			    // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:230: e11= expr2
            			    			    {
            			    			    	PushFollow(FOLLOW_expr2_in_parallelfor1352);
            			    			    	e11 = expr2();
            			    			    	state.followingStackPointer--;

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

            			    			    }
            			    			    break;

            			    			default:
            			    			    if ( cnt27 >= 1 ) goto loop27;
            			    		            EarlyExitException eee27 =
            			    		                new EarlyExitException(27, input);
            			    		            throw eee27;
            			    	    }
            			    	    cnt27++;
            			    	} while (true);

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

            			    	// C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:272: ( ( 'SYNC' END_OF_STATEMENT ) | )
            			    	int alt28 = 2;
            			    	int LA28_0 = input.LA(1);

            			    	if ( (LA28_0 == 39) )
            			    	{
            			    	    alt28 = 1;
            			    	}
            			    	else if ( (LA28_0 == VARIABLE || LA28_0 == RIGHTPARANTHESIS || LA28_0 == 40 || LA28_0 == 42 || LA28_0 == 46) )
            			    	{
            			    	    alt28 = 2;
            			    	}
            			    	else 
            			    	{
            			    	    NoViableAltException nvae_d28s0 =
            			    	        new NoViableAltException("", 28, 0, input);

            			    	    throw nvae_d28s0;
            			    	}
            			    	switch (alt28) 
            			    	{
            			    	    case 1 :
            			    	        // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:273: ( 'SYNC' END_OF_STATEMENT )
            			    	        {
            			    	        	// C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:273: ( 'SYNC' END_OF_STATEMENT )
            			    	        	// C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:274: 'SYNC' END_OF_STATEMENT
            			    	        	{
            			    	        		string_literal96=(IToken)Match(input,39,FOLLOW_39_in_parallelfor1358); 
            			    	        			string_literal96_tree = (object)adaptor.Create(string_literal96);
            			    	        			adaptor.AddChild(root_0, string_literal96_tree);

            			    	        		retval.ret.syncfunction();
            			    	        		END_OF_STATEMENT97=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_parallelfor1361); 
            			    	        			END_OF_STATEMENT97_tree = (object)adaptor.Create(END_OF_STATEMENT97);
            			    	        			adaptor.AddChild(root_0, END_OF_STATEMENT97_tree);


            			    	        	}


            			    	        }
            			    	        break;
            			    	    case 2 :
            			    	        // C:\\Users\\KULDEEP GANDHI\\Desktop\\pinac\\Spinach\\InterpreterFrontEnd\\spinach.g:238:327: 
            			    	        {
            			    	        	retval.ret.syncfunction();

            			    	        }
            			    	        break;

            			    	}


            			    }
            			    break;

            			default:
            			    if ( cnt29 >= 1 ) goto loop29;
            		            EarlyExitException eee29 =
            		                new EarlyExitException(29, input);
            		            throw eee29;
            	    }
            	    cnt29++;
            	} while (true);

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

            	RIGHTPARANTHESIS98=(IToken)Match(input,RIGHTPARANTHESIS,FOLLOW_RIGHTPARANTHESIS_in_parallelfor1369); 
            		RIGHTPARANTHESIS98_tree = (object)adaptor.Create(RIGHTPARANTHESIS98);
            		adaptor.AddChild(root_0, RIGHTPARANTHESIS98_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;
    }
Exemplo n.º 4
0
    // throws RecognitionException [1]
    // $ANTLR start "parallelfor"
    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:159:1: parallelfor returns [ParallelForElement ret] : 'parallelfor' r11= range LEFTPARANTHESIS ( (e11= expr1 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS ;
    public spinachParser.parallelfor_return parallelfor()
    {
        spinachParser.parallelfor_return retval = new spinachParser.parallelfor_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal74 = null;
        IToken LEFTPARANTHESIS75 = null;
        IToken string_literal76 = null;
        IToken END_OF_STATEMENT77 = null;
        IToken RIGHTPARANTHESIS78 = null;
        spinachParser.range_return r11 = null;

        spinachParser.expr1_return e11 = null;

        object string_literal74_tree=null;
        object LEFTPARANTHESIS75_tree=null;
        object string_literal76_tree=null;
        object END_OF_STATEMENT77_tree=null;
        object RIGHTPARANTHESIS78_tree=null;

          retval.ret = new ParallelForElement();

        try
        {
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:2: ( 'parallelfor' r11= range LEFTPARANTHESIS ( (e11= expr1 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS )
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:4: 'parallelfor' r11= range LEFTPARANTHESIS ( (e11= expr1 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+ RIGHTPARANTHESIS
            {
                root_0 = (object)adaptor.GetNilNode();

                string_literal74=(IToken)Match(input,33,FOLLOW_33_in_parallelfor854);
                    string_literal74_tree = (object)adaptor.Create(string_literal74);
                    adaptor.AddChild(root_0, string_literal74_tree);

                PushFollow(FOLLOW_range_in_parallelfor860);
                r11 = range();
                state.followingStackPointer--;

                adaptor.AddChild(root_0, r11.Tree);
                retval.ret.RANGE = ((r11 != null) ? r11.ret : null);
                LEFTPARANTHESIS75=(IToken)Match(input,LEFTPARANTHESIS,FOLLOW_LEFTPARANTHESIS_in_parallelfor863);
                    LEFTPARANTHESIS75_tree = (object)adaptor.Create(LEFTPARANTHESIS75);
                    adaptor.AddChild(root_0, LEFTPARANTHESIS75_tree);

                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:79: ( (e11= expr1 )+ ( ( 'SYNC' END_OF_STATEMENT ) | ) )+
                int cnt15 = 0;
                do
                {
                    int alt15 = 2;
                    int LA15_0 = input.LA(1);

                    if ( (LA15_0 == VARIABLE || LA15_0 == VARTYPE || LA15_0 == STRINGTYPE || LA15_0 == 23 || (LA15_0 >= 29 && LA15_0 <= 32) || LA15_0 == 36 || (LA15_0 >= 38 && LA15_0 <= 46)) )
                    {
                        alt15 = 1;
                    }

                    switch (alt15)
                    {
                        case 1 :
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:80: (e11= expr1 )+ ( ( 'SYNC' END_OF_STATEMENT ) | )
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:80: (e11= expr1 )+
                                int cnt13 = 0;
                                do
                                {
                                    int alt13 = 2;
                                    alt13 = dfa13.Predict(input);
                                    switch (alt13)
                                    {
                                        case 1 :
                                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:81: e11= expr1
                                            {
                                                PushFollow(FOLLOW_expr1_in_parallelfor870);
                                                e11 = expr1();
                                                state.followingStackPointer--;

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

                                            }
                                            break;

                                        default:
                                            if ( cnt13 >= 1 ) goto loop13;
                                                EarlyExitException eee13 =
                                                    new EarlyExitException(13, input);
                                                throw eee13;
                                    }
                                    cnt13++;
                                } while (true);

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

                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:123: ( ( 'SYNC' END_OF_STATEMENT ) | )
                                int alt14 = 2;
                                int LA14_0 = input.LA(1);

                                if ( (LA14_0 == 34) )
                                {
                                    alt14 = 1;
                                }
                                else if ( (LA14_0 == VARIABLE || LA14_0 == VARTYPE || LA14_0 == STRINGTYPE || LA14_0 == RIGHTPARANTHESIS || LA14_0 == 23 || (LA14_0 >= 29 && LA14_0 <= 32) || LA14_0 == 36 || (LA14_0 >= 38 && LA14_0 <= 46)) )
                                {
                                    alt14 = 2;
                                }
                                else
                                {
                                    NoViableAltException nvae_d14s0 =
                                        new NoViableAltException("", 14, 0, input);

                                    throw nvae_d14s0;
                                }
                                switch (alt14)
                                {
                                    case 1 :
                                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:124: ( 'SYNC' END_OF_STATEMENT )
                                        {
                                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:124: ( 'SYNC' END_OF_STATEMENT )
                                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:125: 'SYNC' END_OF_STATEMENT
                                            {
                                                string_literal76=(IToken)Match(input,34,FOLLOW_34_in_parallelfor876);
                                                    string_literal76_tree = (object)adaptor.Create(string_literal76);
                                                    adaptor.AddChild(root_0, string_literal76_tree);

                                                retval.ret.syncfunction();
                                                END_OF_STATEMENT77=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_parallelfor879);
                                                    END_OF_STATEMENT77_tree = (object)adaptor.Create(END_OF_STATEMENT77);
                                                    adaptor.AddChild(root_0, END_OF_STATEMENT77_tree);

                                            }

                                        }
                                        break;
                                    case 2 :
                                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:162:178:
                                        {
                                            retval.ret.syncfunction();

                                        }
                                        break;

                                }

                            }
                            break;

                        default:
                            if ( cnt15 >= 1 ) goto loop15;
                                EarlyExitException eee15 =
                                    new EarlyExitException(15, input);
                                throw eee15;
                    }
                    cnt15++;
                } while (true);

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

                RIGHTPARANTHESIS78=(IToken)Match(input,RIGHTPARANTHESIS,FOLLOW_RIGHTPARANTHESIS_in_parallelfor887);
                    RIGHTPARANTHESIS78_tree = (object)adaptor.Create(RIGHTPARANTHESIS78);
                    adaptor.AddChild(root_0, RIGHTPARANTHESIS78_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;
    }
Exemplo n.º 5
0
    // $ANTLR start "parallelfor"
    // spinach.g:241:1: parallelfor returns [ParallelForElement ret] : 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 ) ( 'SYNC' END_OF_STATEMENT )? )+ RIGHTPARANTHESIS ;
    public spinachParser.parallelfor_return parallelfor() // throws RecognitionException [1]
    {   
        spinachParser.parallelfor_return retval = new spinachParser.parallelfor_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal97 = null;
        IToken LEFTBRACE98 = null;
        IToken POINT99 = null;
        IToken string_literal100 = null;
        IToken RIGHTBRACE101 = null;
        IToken LEFTPARANTHESIS102 = null;
        IToken string_literal103 = null;
        IToken END_OF_STATEMENT104 = null;
        IToken RIGHTPARANTHESIS105 = null;
        spinachParser.variable_return r11 = null;

        spinachParser.int_literal_return r12 = null;

        spinachParser.int_literal_return r13 = null;

        spinachParser.expr2_return e11 = null;


        object string_literal97_tree=null;
        object LEFTBRACE98_tree=null;
        object POINT99_tree=null;
        object string_literal100_tree=null;
        object RIGHTBRACE101_tree=null;
        object LEFTPARANTHESIS102_tree=null;
        object string_literal103_tree=null;
        object END_OF_STATEMENT104_tree=null;
        object RIGHTPARANTHESIS105_tree=null;


          retval.ret = new ParallelForElement();

        try 
    	{
            // spinach.g:244:2: ( 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 ) ( 'SYNC' END_OF_STATEMENT )? )+ RIGHTPARANTHESIS )
            // spinach.g:244:4: 'parallelfor' LEFTBRACE r11= variable POINT r12= int_literal 'to' r13= int_literal RIGHTBRACE LEFTPARANTHESIS ( (e11= expr2 ) ( 'SYNC' END_OF_STATEMENT )? )+ RIGHTPARANTHESIS
            {
            	root_0 = (object)adaptor.GetNilNode();

            	string_literal97=(IToken)Match(input,37,FOLLOW_37_in_parallelfor1334); 
            		string_literal97_tree = (object)adaptor.Create(string_literal97);
            		adaptor.AddChild(root_0, string_literal97_tree);

            	LEFTBRACE98=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_parallelfor1335); 
            		LEFTBRACE98_tree = (object)adaptor.Create(LEFTBRACE98);
            		adaptor.AddChild(root_0, LEFTBRACE98_tree);

            	PushFollow(FOLLOW_variable_in_parallelfor1341);
            	r11 = variable();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r11.Tree);
            	retval.ret.RANGEVARIABLE = ((r11 != null) ? r11.ret : null);
            	POINT99=(IToken)Match(input,POINT,FOLLOW_POINT_in_parallelfor1344); 
            		POINT99_tree = (object)adaptor.Create(POINT99);
            		adaptor.AddChild(root_0, POINT99_tree);

            	PushFollow(FOLLOW_int_literal_in_parallelfor1350);
            	r12 = int_literal();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r12.Tree);
            	retval.ret.STARTINGRANGE = ((r12 != null) ? r12.ret : null);
            	string_literal100=(IToken)Match(input,38,FOLLOW_38_in_parallelfor1353); 
            		string_literal100_tree = (object)adaptor.Create(string_literal100);
            		adaptor.AddChild(root_0, string_literal100_tree);

            	PushFollow(FOLLOW_int_literal_in_parallelfor1358);
            	r13 = int_literal();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, r13.Tree);
            	retval.ret.ENDINGRANGE = ((r13 != null) ? r13.ret : null);
            	RIGHTBRACE101=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_parallelfor1361); 
            		RIGHTBRACE101_tree = (object)adaptor.Create(RIGHTBRACE101);
            		adaptor.AddChild(root_0, RIGHTBRACE101_tree);

            	LEFTPARANTHESIS102=(IToken)Match(input,LEFTPARANTHESIS,FOLLOW_LEFTPARANTHESIS_in_parallelfor1363); 
            		LEFTPARANTHESIS102_tree = (object)adaptor.Create(LEFTPARANTHESIS102);
            		adaptor.AddChild(root_0, LEFTPARANTHESIS102_tree);

            	// spinach.g:244:228: ( (e11= expr2 ) ( 'SYNC' END_OF_STATEMENT )? )+
            	int cnt29 = 0;
            	do 
            	{
            	    int alt29 = 2;
            	    int LA29_0 = input.LA(1);

            	    if ( (LA29_0 == VARIABLE || LA29_0 == VARTYPE || LA29_0 == STRINGTYPE || LA29_0 == 35 || LA29_0 == 40 || LA29_0 == 42) )
            	    {
            	        alt29 = 1;
            	    }


            	    switch (alt29) 
            		{
            			case 1 :
            			    // spinach.g:244:229: (e11= expr2 ) ( 'SYNC' END_OF_STATEMENT )?
            			    {
            			    	// spinach.g:244:229: (e11= expr2 )
            			    	// spinach.g:244:230: e11= expr2
            			    	{
            			    		PushFollow(FOLLOW_expr2_in_parallelfor1370);
            			    		e11 = expr2();
            			    		state.followingStackPointer--;

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

            			    	}

            			    	// spinach.g:244:271: ( 'SYNC' END_OF_STATEMENT )?
            			    	int alt28 = 2;
            			    	int LA28_0 = input.LA(1);

            			    	if ( (LA28_0 == 39) )
            			    	{
            			    	    alt28 = 1;
            			    	}
            			    	switch (alt28) 
            			    	{
            			    	    case 1 :
            			    	        // spinach.g:244:272: 'SYNC' END_OF_STATEMENT
            			    	        {
            			    	        	string_literal103=(IToken)Match(input,39,FOLLOW_39_in_parallelfor1374); 
            			    	        		string_literal103_tree = (object)adaptor.Create(string_literal103);
            			    	        		adaptor.AddChild(root_0, string_literal103_tree);

            			    	        	retval.ret.syncfunction();
            			    	        	END_OF_STATEMENT104=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_parallelfor1377); 
            			    	        		END_OF_STATEMENT104_tree = (object)adaptor.Create(END_OF_STATEMENT104);
            			    	        		adaptor.AddChild(root_0, END_OF_STATEMENT104_tree);


            			    	        }
            			    	        break;

            			    	}


            			    }
            			    break;

            			default:
            			    if ( cnt29 >= 1 ) goto loop29;
            		            EarlyExitException eee29 =
            		                new EarlyExitException(29, input);
            		            throw eee29;
            	    }
            	    cnt29++;
            	} while (true);

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

            	retval.ret.syncfunction();
            	RIGHTPARANTHESIS105=(IToken)Match(input,RIGHTPARANTHESIS,FOLLOW_RIGHTPARANTHESIS_in_parallelfor1384); 
            		RIGHTPARANTHESIS105_tree = (object)adaptor.Create(RIGHTPARANTHESIS105);
            		adaptor.AddChild(root_0, RIGHTPARANTHESIS105_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;
    }