Наследование: Antlr.Runtime.ParserRuleReturnScope
Пример #1
0
    // $ANTLR start "comment"
    // spinach.g:389:1: comment returns [CommentElement ret] : '//' ( var_int_or_double_literal )* ;
    public spinachParser.comment_return comment() // throws RecognitionException [1]
    {   
        spinachParser.comment_return retval = new spinachParser.comment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal170 = null;
        spinachParser.var_int_or_double_literal_return var_int_or_double_literal171 = null;


        object string_literal170_tree=null;


        retval.ret = new CommentElement();

        try 
    	{
            // spinach.g:393:1: ( '//' ( var_int_or_double_literal )* )
            // spinach.g:393:2: '//' ( var_int_or_double_literal )*
            {
            	root_0 = (object)adaptor.GetNilNode();

            	string_literal170=(IToken)Match(input,46,FOLLOW_46_in_comment2192); 
            		string_literal170_tree = (object)adaptor.Create(string_literal170);
            		adaptor.AddChild(root_0, string_literal170_tree);

            	// spinach.g:393:6: ( var_int_or_double_literal )*
            	do 
            	{
            	    int alt41 = 2;
            	    int LA41_0 = input.LA(1);

            	    if ( (LA41_0 == VARIABLE) )
            	    {
            	        int LA41_2 = input.LA(2);

            	        if ( (LA41_2 == VARIABLE) )
            	        {
            	            int LA41_4 = input.LA(3);

            	            if ( (LA41_4 == EOF || (LA41_4 >= VARIABLE && LA41_4 <= ASSIGNMENT) || LA41_4 == STRINGTYPE || (LA41_4 >= RIGHTPARANTHESIS && LA41_4 <= LEFTBRACE) || LA41_4 == DOT || (LA41_4 >= 28 && LA41_4 <= 29) || LA41_4 == 32 || (LA41_4 >= 34 && LA41_4 <= 38) || LA41_4 == 40 || (LA41_4 >= 42 && LA41_4 <= 43) || (LA41_4 >= 46 && LA41_4 <= 48) || (LA41_4 >= 52 && LA41_4 <= 56)) )
            	            {
            	                alt41 = 1;
            	            }


            	        }
            	        else if ( (LA41_2 == EOF || (LA41_2 >= INT_LITERAL && LA41_2 <= VARTYPE) || LA41_2 == STRINGTYPE || LA41_2 == RIGHTPARANTHESIS || LA41_2 == 28 || LA41_2 == 32 || (LA41_2 >= 34 && LA41_2 <= 38) || LA41_2 == 40 || (LA41_2 >= 42 && LA41_2 <= 43) || (LA41_2 >= 46 && LA41_2 <= 48) || (LA41_2 >= 52 && LA41_2 <= 56)) )
            	        {
            	            alt41 = 1;
            	        }


            	    }
            	    else if ( ((LA41_0 >= INT_LITERAL && LA41_0 <= DOUBLE_LITERAL)) )
            	    {
            	        alt41 = 1;
            	    }


            	    switch (alt41) 
            		{
            			case 1 :
            			    // spinach.g:393:6: var_int_or_double_literal
            			    {
            			    	PushFollow(FOLLOW_var_int_or_double_literal_in_comment2193);
            			    	var_int_or_double_literal171 = var_int_or_double_literal();
            			    	state.followingStackPointer--;

            			    	adaptor.AddChild(root_0, var_int_or_double_literal171.Tree);

            			    }
            			    break;

            			default:
            			    goto loop41;
            	    }
            	} while (true);

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


            }

            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
    // $ANTLR start "comment"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:365:1: comment returns [CommentElement ret] : '//' ( var_int_or_double_literal )* ;
    public spinachParser.comment_return comment() // throws RecognitionException [1]
    {   
        spinachParser.comment_return retval = new spinachParser.comment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal186 = null;
        spinachParser.var_int_or_double_literal_return var_int_or_double_literal187 = null;


        object string_literal186_tree=null;


        retval.ret = new CommentElement();

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:369:1: ( '//' ( var_int_or_double_literal )* )
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:369:2: '//' ( var_int_or_double_literal )*
            {
            	root_0 = (object)adaptor.GetNilNode();

            	string_literal186=(IToken)Match(input,46,FOLLOW_46_in_comment2170); 
            		string_literal186_tree = (object)adaptor.Create(string_literal186);
            		adaptor.AddChild(root_0, string_literal186_tree);

            	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:369:6: ( var_int_or_double_literal )*
            	do 
            	{
            	    int alt53 = 2;
            	    int LA53_0 = input.LA(1);

            	    if ( (LA53_0 == VARIABLE) )
            	    {
            	        switch ( input.LA(2) ) 
            	        {
            	        case VARIABLE:
            	        	{
            	            int LA53_4 = input.LA(3);

            	            if ( (LA53_4 == EOF || (LA53_4 >= VARIABLE && LA53_4 <= ASSIGNMENT) || (LA53_4 >= STRINGTYPE && LA53_4 <= LEFTBRACE) || LA53_4 == RIGHTPARANTHESIS || LA53_4 == DOT || (LA53_4 >= 28 && LA53_4 <= 29) || LA53_4 == 32 || (LA53_4 >= 34 && LA53_4 <= 37) || (LA53_4 >= 39 && LA53_4 <= 40) || (LA53_4 >= 42 && LA53_4 <= 43) || (LA53_4 >= 46 && LA53_4 <= 48) || (LA53_4 >= 52 && LA53_4 <= 56)) )
            	            {
            	                alt53 = 1;
            	            }


            	            }
            	            break;
            	        case DOT:
            	        	{
            	            int LA53_5 = input.LA(3);

            	            if ( (LA53_5 == VARIABLE) )
            	            {
            	                int LA53_6 = input.LA(4);

            	                if ( (LA53_6 == EOF || (LA53_6 >= VARIABLE && LA53_6 <= VARTYPE) || LA53_6 == STRINGTYPE || LA53_6 == RIGHTPARANTHESIS || LA53_6 == 28 || LA53_6 == 32 || (LA53_6 >= 34 && LA53_6 <= 37) || (LA53_6 >= 39 && LA53_6 <= 40) || (LA53_6 >= 42 && LA53_6 <= 43) || (LA53_6 >= 46 && LA53_6 <= 48) || (LA53_6 >= 52 && LA53_6 <= 56)) )
            	                {
            	                    alt53 = 1;
            	                }


            	            }


            	            }
            	            break;
            	        case EOF:
            	        case INT_LITERAL:
            	        case DOUBLE_LITERAL:
            	        case VARTYPE:
            	        case STRINGTYPE:
            	        case RIGHTPARANTHESIS:
            	        case 28:
            	        case 32:
            	        case 34:
            	        case 35:
            	        case 36:
            	        case 37:
            	        case 39:
            	        case 40:
            	        case 42:
            	        case 43:
            	        case 46:
            	        case 47:
            	        case 48:
            	        case 52:
            	        case 53:
            	        case 54:
            	        case 55:
            	        case 56:
            	        	{
            	            alt53 = 1;
            	            }
            	            break;

            	        }

            	    }
            	    else if ( ((LA53_0 >= INT_LITERAL && LA53_0 <= DOUBLE_LITERAL)) )
            	    {
            	        alt53 = 1;
            	    }


            	    switch (alt53) 
            		{
            			case 1 :
            			    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:369:6: var_int_or_double_literal
            			    {
            			    	PushFollow(FOLLOW_var_int_or_double_literal_in_comment2171);
            			    	var_int_or_double_literal187 = var_int_or_double_literal();
            			    	state.followingStackPointer--;

            			    	adaptor.AddChild(root_0, var_int_or_double_literal187.Tree);

            			    }
            			    break;

            			default:
            			    goto loop53;
            	    }
            	} while (true);

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


            }

            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
    // $ANTLR start "comment"
    // spinach.g:391:1: comment returns [CommentElement ret] : ( '//' (el3= VARIABLE | el2= INT_LITERAL | el1= DOUBLE_LITERAL | '.' | 'matrix' | 'vector' | '<' | '>' | VARTYPE | SCALEMODE | STRINGTYPE | ASSIGNMENT | PLUS | MULTIPLY | 'print' | 'subPlot' | 'plot' | 'resetPlot' | 'setPlotAxis' | 'setAxisTitle' | 'setScaleMode' | '\"' | 'delete' | 'return' | '(' | ')' | '{' | '}' | '->' | '==' | '!=' | '<=' | '&' | '-' | ';' | ':' | 'SYNC' | PERCENT | '^' | '$' | '#' | '@' | '!' | '?' | '/' | '[' | ']' | ',' | 'T' | 'DOT' | '1D' | '2D' | '3D' | 'void' | 'struct' | 'else' | 'if' | 'for' | 'parallelfor' | 'to' )* '//' ) ;
    public spinachParser.comment_return comment() // throws RecognitionException [1]
    {   
        spinachParser.comment_return retval = new spinachParser.comment_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken el3 = null;
        IToken el2 = null;
        IToken el1 = null;
        IToken string_literal241 = null;
        IToken char_literal242 = null;
        IToken string_literal243 = null;
        IToken string_literal244 = null;
        IToken char_literal245 = null;
        IToken char_literal246 = null;
        IToken VARTYPE247 = null;
        IToken SCALEMODE248 = null;
        IToken STRINGTYPE249 = null;
        IToken ASSIGNMENT250 = null;
        IToken PLUS251 = null;
        IToken MULTIPLY252 = null;
        IToken string_literal253 = null;
        IToken string_literal254 = null;
        IToken string_literal255 = null;
        IToken string_literal256 = null;
        IToken string_literal257 = null;
        IToken string_literal258 = null;
        IToken string_literal259 = null;
        IToken char_literal260 = null;
        IToken string_literal261 = null;
        IToken string_literal262 = null;
        IToken char_literal263 = null;
        IToken char_literal264 = null;
        IToken char_literal265 = null;
        IToken char_literal266 = null;
        IToken string_literal267 = null;
        IToken string_literal268 = null;
        IToken string_literal269 = null;
        IToken string_literal270 = null;
        IToken char_literal271 = null;
        IToken char_literal272 = null;
        IToken char_literal273 = null;
        IToken char_literal274 = null;
        IToken string_literal275 = null;
        IToken PERCENT276 = null;
        IToken char_literal277 = null;
        IToken char_literal278 = null;
        IToken char_literal279 = null;
        IToken char_literal280 = null;
        IToken char_literal281 = null;
        IToken char_literal282 = null;
        IToken char_literal283 = null;
        IToken char_literal284 = null;
        IToken char_literal285 = null;
        IToken char_literal286 = null;
        IToken char_literal287 = null;
        IToken string_literal288 = null;
        IToken string_literal289 = null;
        IToken string_literal290 = null;
        IToken string_literal291 = null;
        IToken string_literal292 = null;
        IToken string_literal293 = null;
        IToken string_literal294 = null;
        IToken string_literal295 = null;
        IToken string_literal296 = null;
        IToken string_literal297 = null;
        IToken string_literal298 = null;
        IToken string_literal299 = null;

        object el3_tree=null;
        object el2_tree=null;
        object el1_tree=null;
        object string_literal241_tree=null;
        object char_literal242_tree=null;
        object string_literal243_tree=null;
        object string_literal244_tree=null;
        object char_literal245_tree=null;
        object char_literal246_tree=null;
        object VARTYPE247_tree=null;
        object SCALEMODE248_tree=null;
        object STRINGTYPE249_tree=null;
        object ASSIGNMENT250_tree=null;
        object PLUS251_tree=null;
        object MULTIPLY252_tree=null;
        object string_literal253_tree=null;
        object string_literal254_tree=null;
        object string_literal255_tree=null;
        object string_literal256_tree=null;
        object string_literal257_tree=null;
        object string_literal258_tree=null;
        object string_literal259_tree=null;
        object char_literal260_tree=null;
        object string_literal261_tree=null;
        object string_literal262_tree=null;
        object char_literal263_tree=null;
        object char_literal264_tree=null;
        object char_literal265_tree=null;
        object char_literal266_tree=null;
        object string_literal267_tree=null;
        object string_literal268_tree=null;
        object string_literal269_tree=null;
        object string_literal270_tree=null;
        object char_literal271_tree=null;
        object char_literal272_tree=null;
        object char_literal273_tree=null;
        object char_literal274_tree=null;
        object string_literal275_tree=null;
        object PERCENT276_tree=null;
        object char_literal277_tree=null;
        object char_literal278_tree=null;
        object char_literal279_tree=null;
        object char_literal280_tree=null;
        object char_literal281_tree=null;
        object char_literal282_tree=null;
        object char_literal283_tree=null;
        object char_literal284_tree=null;
        object char_literal285_tree=null;
        object char_literal286_tree=null;
        object char_literal287_tree=null;
        object string_literal288_tree=null;
        object string_literal289_tree=null;
        object string_literal290_tree=null;
        object string_literal291_tree=null;
        object string_literal292_tree=null;
        object string_literal293_tree=null;
        object string_literal294_tree=null;
        object string_literal295_tree=null;
        object string_literal296_tree=null;
        object string_literal297_tree=null;
        object string_literal298_tree=null;
        object string_literal299_tree=null;


         retval.ret = new CommentElement();

        try 
    	{
            // spinach.g:395:2: ( ( '//' (el3= VARIABLE | el2= INT_LITERAL | el1= DOUBLE_LITERAL | '.' | 'matrix' | 'vector' | '<' | '>' | VARTYPE | SCALEMODE | STRINGTYPE | ASSIGNMENT | PLUS | MULTIPLY | 'print' | 'subPlot' | 'plot' | 'resetPlot' | 'setPlotAxis' | 'setAxisTitle' | 'setScaleMode' | '\"' | 'delete' | 'return' | '(' | ')' | '{' | '}' | '->' | '==' | '!=' | '<=' | '&' | '-' | ';' | ':' | 'SYNC' | PERCENT | '^' | '$' | '#' | '@' | '!' | '?' | '/' | '[' | ']' | ',' | 'T' | 'DOT' | '1D' | '2D' | '3D' | 'void' | 'struct' | 'else' | 'if' | 'for' | 'parallelfor' | 'to' )* '//' ) )
            // spinach.g:395:3: ( '//' (el3= VARIABLE | el2= INT_LITERAL | el1= DOUBLE_LITERAL | '.' | 'matrix' | 'vector' | '<' | '>' | VARTYPE | SCALEMODE | STRINGTYPE | ASSIGNMENT | PLUS | MULTIPLY | 'print' | 'subPlot' | 'plot' | 'resetPlot' | 'setPlotAxis' | 'setAxisTitle' | 'setScaleMode' | '\"' | 'delete' | 'return' | '(' | ')' | '{' | '}' | '->' | '==' | '!=' | '<=' | '&' | '-' | ';' | ':' | 'SYNC' | PERCENT | '^' | '$' | '#' | '@' | '!' | '?' | '/' | '[' | ']' | ',' | 'T' | 'DOT' | '1D' | '2D' | '3D' | 'void' | 'struct' | 'else' | 'if' | 'for' | 'parallelfor' | 'to' )* '//' )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	// spinach.g:395:3: ( '//' (el3= VARIABLE | el2= INT_LITERAL | el1= DOUBLE_LITERAL | '.' | 'matrix' | 'vector' | '<' | '>' | VARTYPE | SCALEMODE | STRINGTYPE | ASSIGNMENT | PLUS | MULTIPLY | 'print' | 'subPlot' | 'plot' | 'resetPlot' | 'setPlotAxis' | 'setAxisTitle' | 'setScaleMode' | '\"' | 'delete' | 'return' | '(' | ')' | '{' | '}' | '->' | '==' | '!=' | '<=' | '&' | '-' | ';' | ':' | 'SYNC' | PERCENT | '^' | '$' | '#' | '@' | '!' | '?' | '/' | '[' | ']' | ',' | 'T' | 'DOT' | '1D' | '2D' | '3D' | 'void' | 'struct' | 'else' | 'if' | 'for' | 'parallelfor' | 'to' )* '//' )
            	// spinach.g:395:4: '//' (el3= VARIABLE | el2= INT_LITERAL | el1= DOUBLE_LITERAL | '.' | 'matrix' | 'vector' | '<' | '>' | VARTYPE | SCALEMODE | STRINGTYPE | ASSIGNMENT | PLUS | MULTIPLY | 'print' | 'subPlot' | 'plot' | 'resetPlot' | 'setPlotAxis' | 'setAxisTitle' | 'setScaleMode' | '\"' | 'delete' | 'return' | '(' | ')' | '{' | '}' | '->' | '==' | '!=' | '<=' | '&' | '-' | ';' | ':' | 'SYNC' | PERCENT | '^' | '$' | '#' | '@' | '!' | '?' | '/' | '[' | ']' | ',' | 'T' | 'DOT' | '1D' | '2D' | '3D' | 'void' | 'struct' | 'else' | 'if' | 'for' | 'parallelfor' | 'to' )* '//'
            	{
            		string_literal241=(IToken)Match(input,56,FOLLOW_56_in_comment2419); 
            			string_literal241_tree = (object)adaptor.Create(string_literal241);
            			adaptor.AddChild(root_0, string_literal241_tree);

            		// spinach.g:396:1: (el3= VARIABLE | el2= INT_LITERAL | el1= DOUBLE_LITERAL | '.' | 'matrix' | 'vector' | '<' | '>' | VARTYPE | SCALEMODE | STRINGTYPE | ASSIGNMENT | PLUS | MULTIPLY | 'print' | 'subPlot' | 'plot' | 'resetPlot' | 'setPlotAxis' | 'setAxisTitle' | 'setScaleMode' | '\"' | 'delete' | 'return' | '(' | ')' | '{' | '}' | '->' | '==' | '!=' | '<=' | '&' | '-' | ';' | ':' | 'SYNC' | PERCENT | '^' | '$' | '#' | '@' | '!' | '?' | '/' | '[' | ']' | ',' | 'T' | 'DOT' | '1D' | '2D' | '3D' | 'void' | 'struct' | 'else' | 'if' | 'for' | 'parallelfor' | 'to' )*
            		do 
            		{
            		    int alt60 = 61;
            		    switch ( input.LA(1) ) 
            		    {
            		    case VARIABLE:
            		    	{
            		        alt60 = 1;
            		        }
            		        break;
            		    case INT_LITERAL:
            		    	{
            		        alt60 = 2;
            		        }
            		        break;
            		    case DOUBLE_LITERAL:
            		    	{
            		        alt60 = 3;
            		        }
            		        break;
            		    case DOT:
            		    	{
            		        alt60 = 4;
            		        }
            		        break;
            		    case 28:
            		    	{
            		        alt60 = 5;
            		        }
            		        break;
            		    case 32:
            		    	{
            		        alt60 = 6;
            		        }
            		        break;
            		    case LESSTHANEXPRESSION:
            		    	{
            		        alt60 = 7;
            		        }
            		        break;
            		    case GREATERTHANEXPRESSION:
            		    	{
            		        alt60 = 8;
            		        }
            		        break;
            		    case VARTYPE:
            		    	{
            		        alt60 = 9;
            		        }
            		        break;
            		    case SCALEMODE:
            		    	{
            		        alt60 = 10;
            		        }
            		        break;
            		    case STRINGTYPE:
            		    	{
            		        alt60 = 11;
            		        }
            		        break;
            		    case ASSIGNMENT:
            		    	{
            		        alt60 = 12;
            		        }
            		        break;
            		    case PLUS:
            		    	{
            		        alt60 = 13;
            		        }
            		        break;
            		    case MULTIPLY:
            		    	{
            		        alt60 = 14;
            		        }
            		        break;
            		    case 36:
            		    	{
            		        alt60 = 15;
            		        }
            		        break;
            		    case 47:
            		    	{
            		        alt60 = 16;
            		        }
            		        break;
            		    case 51:
            		    	{
            		        alt60 = 17;
            		        }
            		        break;
            		    case 52:
            		    	{
            		        alt60 = 18;
            		        }
            		        break;
            		    case 53:
            		    	{
            		        alt60 = 19;
            		        }
            		        break;
            		    case 54:
            		    	{
            		        alt60 = 20;
            		        }
            		        break;
            		    case 57:
            		    	{
            		        alt60 = 21;
            		        }
            		        break;
            		    case 58:
            		    	{
            		        alt60 = 22;
            		        }
            		        break;
            		    case 35:
            		    	{
            		        alt60 = 23;
            		        }
            		        break;
            		    case 46:
            		    	{
            		        alt60 = 24;
            		        }
            		        break;
            		    case LEFTBRACE:
            		    	{
            		        alt60 = 25;
            		        }
            		        break;
            		    case RIGHTBRACE:
            		    	{
            		        alt60 = 26;
            		        }
            		        break;
            		    case LEFTPARANTHESIS:
            		    	{
            		        alt60 = 27;
            		        }
            		        break;
            		    case RIGHTPARANTHESIS:
            		    	{
            		        alt60 = 28;
            		        }
            		        break;
            		    case POINT:
            		    	{
            		        alt60 = 29;
            		        }
            		        break;
            		    case EQUALITYEXPRESSION:
            		    	{
            		        alt60 = 30;
            		        }
            		        break;
            		    case NONEQUALITYEXPRESSION:
            		    	{
            		        alt60 = 31;
            		        }
            		        break;
            		    case LESSTHANEQUALTOEXPRESSION:
            		    	{
            		        alt60 = 32;
            		        }
            		        break;
            		    case 59:
            		    	{
            		        alt60 = 33;
            		        }
            		        break;
            		    case 33:
            		    	{
            		        alt60 = 34;
            		        }
            		        break;
            		    case END_OF_STATEMENT:
            		    	{
            		        alt60 = 35;
            		        }
            		        break;
            		    case 60:
            		    	{
            		        alt60 = 36;
            		        }
            		        break;
            		    case 39:
            		    	{
            		        alt60 = 37;
            		        }
            		        break;
            		    case PERCENT:
            		    	{
            		        alt60 = 38;
            		        }
            		        break;
            		    case 61:
            		    	{
            		        alt60 = 39;
            		        }
            		        break;
            		    case 62:
            		    	{
            		        alt60 = 40;
            		        }
            		        break;
            		    case 63:
            		    	{
            		        alt60 = 41;
            		        }
            		        break;
            		    case 64:
            		    	{
            		        alt60 = 42;
            		        }
            		        break;
            		    case 65:
            		    	{
            		        alt60 = 43;
            		        }
            		        break;
            		    case 66:
            		    	{
            		        alt60 = 44;
            		        }
            		        break;
            		    case 67:
            		    	{
            		        alt60 = 45;
            		        }
            		        break;
            		    case 29:
            		    	{
            		        alt60 = 46;
            		        }
            		        break;
            		    case 30:
            		    	{
            		        alt60 = 47;
            		        }
            		        break;
            		    case 31:
            		    	{
            		        alt60 = 48;
            		        }
            		        break;
            		    case 45:
            		    	{
            		        alt60 = 49;
            		        }
            		        break;
            		    case 44:
            		    	{
            		        alt60 = 50;
            		        }
            		        break;
            		    case 48:
            		    	{
            		        alt60 = 51;
            		        }
            		        break;
            		    case 49:
            		    	{
            		        alt60 = 52;
            		        }
            		        break;
            		    case 50:
            		    	{
            		        alt60 = 53;
            		        }
            		        break;
            		    case 43:
            		    	{
            		        alt60 = 54;
            		        }
            		        break;
            		    case 34:
            		    	{
            		        alt60 = 55;
            		        }
            		        break;
            		    case 41:
            		    	{
            		        alt60 = 56;
            		        }
            		        break;
            		    case 40:
            		    	{
            		        alt60 = 57;
            		        }
            		        break;
            		    case 42:
            		    	{
            		        alt60 = 58;
            		        }
            		        break;
            		    case 37:
            		    	{
            		        alt60 = 59;
            		        }
            		        break;
            		    case 38:
            		    	{
            		        alt60 = 60;
            		        }
            		        break;

            		    }

            		    switch (alt60) 
            			{
            				case 1 :
            				    // spinach.g:396:2: el3= VARIABLE
            				    {
            				    	el3=(IToken)Match(input,VARIABLE,FOLLOW_VARIABLE_in_comment2424); 
            				    		el3_tree = (object)adaptor.Create(el3);
            				    		adaptor.AddChild(root_0, el3_tree);



            				    }
            				    break;
            				case 2 :
            				    // spinach.g:397:3: el2= INT_LITERAL
            				    {
            				    	el2=(IToken)Match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_comment2431); 
            				    		el2_tree = (object)adaptor.Create(el2);
            				    		adaptor.AddChild(root_0, el2_tree);



            				    }
            				    break;
            				case 3 :
            				    // spinach.g:398:3: el1= DOUBLE_LITERAL
            				    {
            				    	el1=(IToken)Match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_comment2438); 
            				    		el1_tree = (object)adaptor.Create(el1);
            				    		adaptor.AddChild(root_0, el1_tree);



            				    }
            				    break;
            				case 4 :
            				    // spinach.g:399:3: '.'
            				    {
            				    	char_literal242=(IToken)Match(input,DOT,FOLLOW_DOT_in_comment2443); 
            				    		char_literal242_tree = (object)adaptor.Create(char_literal242);
            				    		adaptor.AddChild(root_0, char_literal242_tree);



            				    }
            				    break;
            				case 5 :
            				    // spinach.g:400:3: 'matrix'
            				    {
            				    	string_literal243=(IToken)Match(input,28,FOLLOW_28_in_comment2448); 
            				    		string_literal243_tree = (object)adaptor.Create(string_literal243);
            				    		adaptor.AddChild(root_0, string_literal243_tree);



            				    }
            				    break;
            				case 6 :
            				    // spinach.g:401:3: 'vector'
            				    {
            				    	string_literal244=(IToken)Match(input,32,FOLLOW_32_in_comment2453); 
            				    		string_literal244_tree = (object)adaptor.Create(string_literal244);
            				    		adaptor.AddChild(root_0, string_literal244_tree);



            				    }
            				    break;
            				case 7 :
            				    // spinach.g:402:3: '<'
            				    {
            				    	char_literal245=(IToken)Match(input,LESSTHANEXPRESSION,FOLLOW_LESSTHANEXPRESSION_in_comment2458); 
            				    		char_literal245_tree = (object)adaptor.Create(char_literal245);
            				    		adaptor.AddChild(root_0, char_literal245_tree);



            				    }
            				    break;
            				case 8 :
            				    // spinach.g:403:3: '>'
            				    {
            				    	char_literal246=(IToken)Match(input,GREATERTHANEXPRESSION,FOLLOW_GREATERTHANEXPRESSION_in_comment2463); 
            				    		char_literal246_tree = (object)adaptor.Create(char_literal246);
            				    		adaptor.AddChild(root_0, char_literal246_tree);



            				    }
            				    break;
            				case 9 :
            				    // spinach.g:404:3: VARTYPE
            				    {
            				    	VARTYPE247=(IToken)Match(input,VARTYPE,FOLLOW_VARTYPE_in_comment2468); 
            				    		VARTYPE247_tree = (object)adaptor.Create(VARTYPE247);
            				    		adaptor.AddChild(root_0, VARTYPE247_tree);



            				    }
            				    break;
            				case 10 :
            				    // spinach.g:405:3: SCALEMODE
            				    {
            				    	SCALEMODE248=(IToken)Match(input,SCALEMODE,FOLLOW_SCALEMODE_in_comment2473); 
            				    		SCALEMODE248_tree = (object)adaptor.Create(SCALEMODE248);
            				    		adaptor.AddChild(root_0, SCALEMODE248_tree);



            				    }
            				    break;
            				case 11 :
            				    // spinach.g:406:3: STRINGTYPE
            				    {
            				    	STRINGTYPE249=(IToken)Match(input,STRINGTYPE,FOLLOW_STRINGTYPE_in_comment2478); 
            				    		STRINGTYPE249_tree = (object)adaptor.Create(STRINGTYPE249);
            				    		adaptor.AddChild(root_0, STRINGTYPE249_tree);



            				    }
            				    break;
            				case 12 :
            				    // spinach.g:407:3: ASSIGNMENT
            				    {
            				    	ASSIGNMENT250=(IToken)Match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_comment2483); 
            				    		ASSIGNMENT250_tree = (object)adaptor.Create(ASSIGNMENT250);
            				    		adaptor.AddChild(root_0, ASSIGNMENT250_tree);



            				    }
            				    break;
            				case 13 :
            				    // spinach.g:408:3: PLUS
            				    {
            				    	PLUS251=(IToken)Match(input,PLUS,FOLLOW_PLUS_in_comment2488); 
            				    		PLUS251_tree = (object)adaptor.Create(PLUS251);
            				    		adaptor.AddChild(root_0, PLUS251_tree);



            				    }
            				    break;
            				case 14 :
            				    // spinach.g:409:3: MULTIPLY
            				    {
            				    	MULTIPLY252=(IToken)Match(input,MULTIPLY,FOLLOW_MULTIPLY_in_comment2493); 
            				    		MULTIPLY252_tree = (object)adaptor.Create(MULTIPLY252);
            				    		adaptor.AddChild(root_0, MULTIPLY252_tree);



            				    }
            				    break;
            				case 15 :
            				    // spinach.g:410:3: 'print'
            				    {
            				    	string_literal253=(IToken)Match(input,36,FOLLOW_36_in_comment2498); 
            				    		string_literal253_tree = (object)adaptor.Create(string_literal253);
            				    		adaptor.AddChild(root_0, string_literal253_tree);



            				    }
            				    break;
            				case 16 :
            				    // spinach.g:411:3: 'subPlot'
            				    {
            				    	string_literal254=(IToken)Match(input,47,FOLLOW_47_in_comment2503); 
            				    		string_literal254_tree = (object)adaptor.Create(string_literal254);
            				    		adaptor.AddChild(root_0, string_literal254_tree);



            				    }
            				    break;
            				case 17 :
            				    // spinach.g:412:3: 'plot'
            				    {
            				    	string_literal255=(IToken)Match(input,51,FOLLOW_51_in_comment2508); 
            				    		string_literal255_tree = (object)adaptor.Create(string_literal255);
            				    		adaptor.AddChild(root_0, string_literal255_tree);



            				    }
            				    break;
            				case 18 :
            				    // spinach.g:413:3: 'resetPlot'
            				    {
            				    	string_literal256=(IToken)Match(input,52,FOLLOW_52_in_comment2513); 
            				    		string_literal256_tree = (object)adaptor.Create(string_literal256);
            				    		adaptor.AddChild(root_0, string_literal256_tree);



            				    }
            				    break;
            				case 19 :
            				    // spinach.g:414:3: 'setPlotAxis'
            				    {
            				    	string_literal257=(IToken)Match(input,53,FOLLOW_53_in_comment2518); 
            				    		string_literal257_tree = (object)adaptor.Create(string_literal257);
            				    		adaptor.AddChild(root_0, string_literal257_tree);



            				    }
            				    break;
            				case 20 :
            				    // spinach.g:415:3: 'setAxisTitle'
            				    {
            				    	string_literal258=(IToken)Match(input,54,FOLLOW_54_in_comment2523); 
            				    		string_literal258_tree = (object)adaptor.Create(string_literal258);
            				    		adaptor.AddChild(root_0, string_literal258_tree);



            				    }
            				    break;
            				case 21 :
            				    // spinach.g:416:3: 'setScaleMode'
            				    {
            				    	string_literal259=(IToken)Match(input,57,FOLLOW_57_in_comment2528); 
            				    		string_literal259_tree = (object)adaptor.Create(string_literal259);
            				    		adaptor.AddChild(root_0, string_literal259_tree);



            				    }
            				    break;
            				case 22 :
            				    // spinach.g:417:3: '\"'
            				    {
            				    	char_literal260=(IToken)Match(input,58,FOLLOW_58_in_comment2533); 
            				    		char_literal260_tree = (object)adaptor.Create(char_literal260);
            				    		adaptor.AddChild(root_0, char_literal260_tree);



            				    }
            				    break;
            				case 23 :
            				    // spinach.g:418:3: 'delete'
            				    {
            				    	string_literal261=(IToken)Match(input,35,FOLLOW_35_in_comment2539); 
            				    		string_literal261_tree = (object)adaptor.Create(string_literal261);
            				    		adaptor.AddChild(root_0, string_literal261_tree);



            				    }
            				    break;
            				case 24 :
            				    // spinach.g:419:3: 'return'
            				    {
            				    	string_literal262=(IToken)Match(input,46,FOLLOW_46_in_comment2544); 
            				    		string_literal262_tree = (object)adaptor.Create(string_literal262);
            				    		adaptor.AddChild(root_0, string_literal262_tree);



            				    }
            				    break;
            				case 25 :
            				    // spinach.g:420:3: '('
            				    {
            				    	char_literal263=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_comment2549); 
            				    		char_literal263_tree = (object)adaptor.Create(char_literal263);
            				    		adaptor.AddChild(root_0, char_literal263_tree);



            				    }
            				    break;
            				case 26 :
            				    // spinach.g:421:3: ')'
            				    {
            				    	char_literal264=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_comment2554); 
            				    		char_literal264_tree = (object)adaptor.Create(char_literal264);
            				    		adaptor.AddChild(root_0, char_literal264_tree);



            				    }
            				    break;
            				case 27 :
            				    // spinach.g:422:3: '{'
            				    {
            				    	char_literal265=(IToken)Match(input,LEFTPARANTHESIS,FOLLOW_LEFTPARANTHESIS_in_comment2559); 
            				    		char_literal265_tree = (object)adaptor.Create(char_literal265);
            				    		adaptor.AddChild(root_0, char_literal265_tree);



            				    }
            				    break;
            				case 28 :
            				    // spinach.g:423:3: '}'
            				    {
            				    	char_literal266=(IToken)Match(input,RIGHTPARANTHESIS,FOLLOW_RIGHTPARANTHESIS_in_comment2564); 
            				    		char_literal266_tree = (object)adaptor.Create(char_literal266);
            				    		adaptor.AddChild(root_0, char_literal266_tree);



            				    }
            				    break;
            				case 29 :
            				    // spinach.g:424:3: '->'
            				    {
            				    	string_literal267=(IToken)Match(input,POINT,FOLLOW_POINT_in_comment2569); 
            				    		string_literal267_tree = (object)adaptor.Create(string_literal267);
            				    		adaptor.AddChild(root_0, string_literal267_tree);



            				    }
            				    break;
            				case 30 :
            				    // spinach.g:425:3: '=='
            				    {
            				    	string_literal268=(IToken)Match(input,EQUALITYEXPRESSION,FOLLOW_EQUALITYEXPRESSION_in_comment2574); 
            				    		string_literal268_tree = (object)adaptor.Create(string_literal268);
            				    		adaptor.AddChild(root_0, string_literal268_tree);



            				    }
            				    break;
            				case 31 :
            				    // spinach.g:426:3: '!='
            				    {
            				    	string_literal269=(IToken)Match(input,NONEQUALITYEXPRESSION,FOLLOW_NONEQUALITYEXPRESSION_in_comment2579); 
            				    		string_literal269_tree = (object)adaptor.Create(string_literal269);
            				    		adaptor.AddChild(root_0, string_literal269_tree);



            				    }
            				    break;
            				case 32 :
            				    // spinach.g:427:3: '<='
            				    {
            				    	string_literal270=(IToken)Match(input,LESSTHANEQUALTOEXPRESSION,FOLLOW_LESSTHANEQUALTOEXPRESSION_in_comment2584); 
            				    		string_literal270_tree = (object)adaptor.Create(string_literal270);
            				    		adaptor.AddChild(root_0, string_literal270_tree);



            				    }
            				    break;
            				case 33 :
            				    // spinach.g:428:3: '&'
            				    {
            				    	char_literal271=(IToken)Match(input,59,FOLLOW_59_in_comment2589); 
            				    		char_literal271_tree = (object)adaptor.Create(char_literal271);
            				    		adaptor.AddChild(root_0, char_literal271_tree);



            				    }
            				    break;
            				case 34 :
            				    // spinach.g:429:3: '-'
            				    {
            				    	char_literal272=(IToken)Match(input,33,FOLLOW_33_in_comment2594); 
            				    		char_literal272_tree = (object)adaptor.Create(char_literal272);
            				    		adaptor.AddChild(root_0, char_literal272_tree);



            				    }
            				    break;
            				case 35 :
            				    // spinach.g:430:3: ';'
            				    {
            				    	char_literal273=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_comment2599); 
            				    		char_literal273_tree = (object)adaptor.Create(char_literal273);
            				    		adaptor.AddChild(root_0, char_literal273_tree);



            				    }
            				    break;
            				case 36 :
            				    // spinach.g:431:3: ':'
            				    {
            				    	char_literal274=(IToken)Match(input,60,FOLLOW_60_in_comment2604); 
            				    		char_literal274_tree = (object)adaptor.Create(char_literal274);
            				    		adaptor.AddChild(root_0, char_literal274_tree);



            				    }
            				    break;
            				case 37 :
            				    // spinach.g:432:4: 'SYNC'
            				    {
            				    	string_literal275=(IToken)Match(input,39,FOLLOW_39_in_comment2610); 
            				    		string_literal275_tree = (object)adaptor.Create(string_literal275);
            				    		adaptor.AddChild(root_0, string_literal275_tree);



            				    }
            				    break;
            				case 38 :
            				    // spinach.g:433:4: PERCENT
            				    {
            				    	PERCENT276=(IToken)Match(input,PERCENT,FOLLOW_PERCENT_in_comment2617); 
            				    		PERCENT276_tree = (object)adaptor.Create(PERCENT276);
            				    		adaptor.AddChild(root_0, PERCENT276_tree);



            				    }
            				    break;
            				case 39 :
            				    // spinach.g:434:3: '^'
            				    {
            				    	char_literal277=(IToken)Match(input,61,FOLLOW_61_in_comment2623); 
            				    		char_literal277_tree = (object)adaptor.Create(char_literal277);
            				    		adaptor.AddChild(root_0, char_literal277_tree);



            				    }
            				    break;
            				case 40 :
            				    // spinach.g:435:3: '$'
            				    {
            				    	char_literal278=(IToken)Match(input,62,FOLLOW_62_in_comment2628); 
            				    		char_literal278_tree = (object)adaptor.Create(char_literal278);
            				    		adaptor.AddChild(root_0, char_literal278_tree);



            				    }
            				    break;
            				case 41 :
            				    // spinach.g:436:3: '#'
            				    {
            				    	char_literal279=(IToken)Match(input,63,FOLLOW_63_in_comment2633); 
            				    		char_literal279_tree = (object)adaptor.Create(char_literal279);
            				    		adaptor.AddChild(root_0, char_literal279_tree);



            				    }
            				    break;
            				case 42 :
            				    // spinach.g:437:3: '@'
            				    {
            				    	char_literal280=(IToken)Match(input,64,FOLLOW_64_in_comment2638); 
            				    		char_literal280_tree = (object)adaptor.Create(char_literal280);
            				    		adaptor.AddChild(root_0, char_literal280_tree);



            				    }
            				    break;
            				case 43 :
            				    // spinach.g:438:3: '!'
            				    {
            				    	char_literal281=(IToken)Match(input,65,FOLLOW_65_in_comment2643); 
            				    		char_literal281_tree = (object)adaptor.Create(char_literal281);
            				    		adaptor.AddChild(root_0, char_literal281_tree);



            				    }
            				    break;
            				case 44 :
            				    // spinach.g:439:3: '?'
            				    {
            				    	char_literal282=(IToken)Match(input,66,FOLLOW_66_in_comment2648); 
            				    		char_literal282_tree = (object)adaptor.Create(char_literal282);
            				    		adaptor.AddChild(root_0, char_literal282_tree);



            				    }
            				    break;
            				case 45 :
            				    // spinach.g:440:3: '/'
            				    {
            				    	char_literal283=(IToken)Match(input,67,FOLLOW_67_in_comment2653); 
            				    		char_literal283_tree = (object)adaptor.Create(char_literal283);
            				    		adaptor.AddChild(root_0, char_literal283_tree);



            				    }
            				    break;
            				case 46 :
            				    // spinach.g:441:3: '['
            				    {
            				    	char_literal284=(IToken)Match(input,29,FOLLOW_29_in_comment2660); 
            				    		char_literal284_tree = (object)adaptor.Create(char_literal284);
            				    		adaptor.AddChild(root_0, char_literal284_tree);



            				    }
            				    break;
            				case 47 :
            				    // spinach.g:442:3: ']'
            				    {
            				    	char_literal285=(IToken)Match(input,30,FOLLOW_30_in_comment2665); 
            				    		char_literal285_tree = (object)adaptor.Create(char_literal285);
            				    		adaptor.AddChild(root_0, char_literal285_tree);



            				    }
            				    break;
            				case 48 :
            				    // spinach.g:443:3: ','
            				    {
            				    	char_literal286=(IToken)Match(input,31,FOLLOW_31_in_comment2670); 
            				    		char_literal286_tree = (object)adaptor.Create(char_literal286);
            				    		adaptor.AddChild(root_0, char_literal286_tree);



            				    }
            				    break;
            				case 49 :
            				    // spinach.g:444:4: 'T'
            				    {
            				    	char_literal287=(IToken)Match(input,45,FOLLOW_45_in_comment2676); 
            				    		char_literal287_tree = (object)adaptor.Create(char_literal287);
            				    		adaptor.AddChild(root_0, char_literal287_tree);



            				    }
            				    break;
            				case 50 :
            				    // spinach.g:445:4: 'DOT'
            				    {
            				    	string_literal288=(IToken)Match(input,44,FOLLOW_44_in_comment2682); 
            				    		string_literal288_tree = (object)adaptor.Create(string_literal288);
            				    		adaptor.AddChild(root_0, string_literal288_tree);


            				    }
            				    break;
            				case 51 :
            				    // spinach.g:446:3: '1D'
            				    {
            				    	string_literal289=(IToken)Match(input,48,FOLLOW_48_in_comment2686); 
            				    		string_literal289_tree = (object)adaptor.Create(string_literal289);
            				    		adaptor.AddChild(root_0, string_literal289_tree);



            				    }
            				    break;
            				case 52 :
            				    // spinach.g:447:3: '2D'
            				    {
            				    	string_literal290=(IToken)Match(input,49,FOLLOW_49_in_comment2691); 
            				    		string_literal290_tree = (object)adaptor.Create(string_literal290);
            				    		adaptor.AddChild(root_0, string_literal290_tree);



            				    }
            				    break;
            				case 53 :
            				    // spinach.g:448:3: '3D'
            				    {
            				    	string_literal291=(IToken)Match(input,50,FOLLOW_50_in_comment2696); 
            				    		string_literal291_tree = (object)adaptor.Create(string_literal291);
            				    		adaptor.AddChild(root_0, string_literal291_tree);



            				    }
            				    break;
            				case 54 :
            				    // spinach.g:449:3: 'void'
            				    {
            				    	string_literal292=(IToken)Match(input,43,FOLLOW_43_in_comment2701); 
            				    		string_literal292_tree = (object)adaptor.Create(string_literal292);
            				    		adaptor.AddChild(root_0, string_literal292_tree);



            				    }
            				    break;
            				case 55 :
            				    // spinach.g:450:3: 'struct'
            				    {
            				    	string_literal293=(IToken)Match(input,34,FOLLOW_34_in_comment2706); 
            				    		string_literal293_tree = (object)adaptor.Create(string_literal293);
            				    		adaptor.AddChild(root_0, string_literal293_tree);



            				    }
            				    break;
            				case 56 :
            				    // spinach.g:451:4: 'else'
            				    {
            				    	string_literal294=(IToken)Match(input,41,FOLLOW_41_in_comment2712); 
            				    		string_literal294_tree = (object)adaptor.Create(string_literal294);
            				    		adaptor.AddChild(root_0, string_literal294_tree);



            				    }
            				    break;
            				case 57 :
            				    // spinach.g:452:4: 'if'
            				    {
            				    	string_literal295=(IToken)Match(input,40,FOLLOW_40_in_comment2719); 
            				    		string_literal295_tree = (object)adaptor.Create(string_literal295);
            				    		adaptor.AddChild(root_0, string_literal295_tree);


            				    }
            				    break;
            				case 58 :
            				    // spinach.g:453:4: 'for'
            				    {
            				    	string_literal296=(IToken)Match(input,42,FOLLOW_42_in_comment2724); 
            				    		string_literal296_tree = (object)adaptor.Create(string_literal296);
            				    		adaptor.AddChild(root_0, string_literal296_tree);


            				    }
            				    break;
            				case 59 :
            				    // spinach.g:454:3: 'parallelfor'
            				    {
            				    	string_literal297=(IToken)Match(input,37,FOLLOW_37_in_comment2728); 
            				    		string_literal297_tree = (object)adaptor.Create(string_literal297);
            				    		adaptor.AddChild(root_0, string_literal297_tree);


            				    }
            				    break;
            				case 60 :
            				    // spinach.g:455:4: 'to'
            				    {
            				    	string_literal298=(IToken)Match(input,38,FOLLOW_38_in_comment2733); 
            				    		string_literal298_tree = (object)adaptor.Create(string_literal298);
            				    		adaptor.AddChild(root_0, string_literal298_tree);


            				    }
            				    break;

            				default:
            				    goto loop60;
            		    }
            		} while (true);

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

            		string_literal299=(IToken)Match(input,56,FOLLOW_56_in_comment2737); 
            			string_literal299_tree = (object)adaptor.Create(string_literal299);
            			adaptor.AddChild(root_0, string_literal299_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;
    }