Inheritance: Antlr.Runtime.ParserRuleReturnScope
Beispiel #1
0
    // $ANTLR start "plotfunctions"
    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:383:1: plotfunctions returns [PlotFunctionElement ret] : ( ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT ) | ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT ) );
    public spinachParser.plotfunctions_return plotfunctions() // throws RecognitionException [1]
    {   
        spinachParser.plotfunctions_return retval = new spinachParser.plotfunctions_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal191 = null;
        IToken char_literal192 = null;
        IToken char_literal193 = null;
        IToken char_literal194 = null;
        IToken char_literal195 = null;
        IToken string_literal196 = null;
        IToken string_literal197 = null;
        IToken string_literal198 = null;
        IToken char_literal199 = null;
        IToken char_literal200 = null;
        IToken END_OF_STATEMENT201 = null;
        IToken string_literal202 = null;
        IToken char_literal203 = null;
        IToken char_literal204 = null;
        IToken char_literal205 = null;
        IToken string_literal206 = null;
        IToken string_literal207 = null;
        IToken string_literal208 = null;
        IToken char_literal209 = null;
        IToken char_literal210 = null;
        IToken END_OF_STATEMENT211 = null;
        IToken string_literal212 = null;
        IToken char_literal213 = null;
        IToken char_literal214 = null;
        IToken END_OF_STATEMENT215 = null;
        IToken string_literal216 = null;
        IToken char_literal217 = null;
        IToken char_literal218 = null;
        IToken char_literal219 = null;
        IToken char_literal220 = null;
        IToken END_OF_STATEMENT221 = null;
        IToken string_literal222 = null;
        IToken char_literal223 = null;
        IToken char_literal224 = null;
        IToken char_literal225 = null;
        IToken END_OF_STATEMENT226 = null;
        IToken string_literal227 = null;
        IToken char_literal228 = null;
        IToken char_literal229 = null;
        IToken END_OF_STATEMENT230 = null;
        IToken string_literal231 = null;
        IToken char_literal232 = null;
        IToken char_literal233 = null;
        IToken char_literal234 = null;
        IToken char_literal235 = null;
        IToken END_OF_STATEMENT236 = null;
        IToken string_literal237 = null;
        IToken char_literal238 = null;
        IToken char_literal239 = null;
        IToken char_literal240 = null;
        IToken END_OF_STATEMENT241 = null;
        IToken string_literal242 = null;
        IToken char_literal243 = null;
        IToken char_literal244 = null;
        IToken END_OF_STATEMENT245 = null;
        IToken string_literal246 = null;
        IToken char_literal247 = null;
        IToken SCALEMODE248 = null;
        IToken char_literal249 = null;
        IToken END_OF_STATEMENT250 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.variable_return vll1 = null;

        spinachParser.string_literal_return vll2 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.variable_return vll3 = null;

        spinachParser.string_literal_return vll4 = null;

        spinachParser.double_literal_return ell2 = null;

        spinachParser.double_literal_return ell3 = null;

        spinachParser.double_literal_return el4 = null;

        spinachParser.string_literal_return vl1 = null;

        spinachParser.string_literal_return vl2 = null;

        spinachParser.string_literal_return vl3 = null;


        object string_literal191_tree=null;
        object char_literal192_tree=null;
        object char_literal193_tree=null;
        object char_literal194_tree=null;
        object char_literal195_tree=null;
        object string_literal196_tree=null;
        object string_literal197_tree=null;
        object string_literal198_tree=null;
        object char_literal199_tree=null;
        object char_literal200_tree=null;
        object END_OF_STATEMENT201_tree=null;
        object string_literal202_tree=null;
        object char_literal203_tree=null;
        object char_literal204_tree=null;
        object char_literal205_tree=null;
        object string_literal206_tree=null;
        object string_literal207_tree=null;
        object string_literal208_tree=null;
        object char_literal209_tree=null;
        object char_literal210_tree=null;
        object END_OF_STATEMENT211_tree=null;
        object string_literal212_tree=null;
        object char_literal213_tree=null;
        object char_literal214_tree=null;
        object END_OF_STATEMENT215_tree=null;
        object string_literal216_tree=null;
        object char_literal217_tree=null;
        object char_literal218_tree=null;
        object char_literal219_tree=null;
        object char_literal220_tree=null;
        object END_OF_STATEMENT221_tree=null;
        object string_literal222_tree=null;
        object char_literal223_tree=null;
        object char_literal224_tree=null;
        object char_literal225_tree=null;
        object END_OF_STATEMENT226_tree=null;
        object string_literal227_tree=null;
        object char_literal228_tree=null;
        object char_literal229_tree=null;
        object END_OF_STATEMENT230_tree=null;
        object string_literal231_tree=null;
        object char_literal232_tree=null;
        object char_literal233_tree=null;
        object char_literal234_tree=null;
        object char_literal235_tree=null;
        object END_OF_STATEMENT236_tree=null;
        object string_literal237_tree=null;
        object char_literal238_tree=null;
        object char_literal239_tree=null;
        object char_literal240_tree=null;
        object END_OF_STATEMENT241_tree=null;
        object string_literal242_tree=null;
        object char_literal243_tree=null;
        object char_literal244_tree=null;
        object END_OF_STATEMENT245_tree=null;
        object string_literal246_tree=null;
        object char_literal247_tree=null;
        object SCALEMODE248_tree=null;
        object char_literal249_tree=null;
        object END_OF_STATEMENT250_tree=null;

         retval.ret = new PlotFunctionElement();

        try 
    	{
            // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:386:1: ( ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT ) | ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT ) )
            int alt58 = 10;
            alt58 = dfa58.Predict(input);
            switch (alt58) 
            {
                case 1 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:386:3: ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:386:3: ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:386:4: 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal191=(IToken)Match(input,48,FOLLOW_48_in_plotfunctions2220); 
                    			string_literal191_tree = (object)adaptor.Create(string_literal191);
                    			adaptor.AddChild(root_0, string_literal191_tree);

                    		retval.ret.setPlotFunction("subPlot");
                    		char_literal192=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2223); 
                    			char_literal192_tree = (object)adaptor.Create(char_literal192);
                    			adaptor.AddChild(root_0, char_literal192_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:387:1: (el1= int_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:387:2: el1= int_literal
                    		{
                    			PushFollow(FOLLOW_int_literal_in_plotfunctions2230);
                    			el1 = int_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal193=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2235); 
                    			char_literal193_tree = (object)adaptor.Create(char_literal193);
                    			adaptor.AddChild(root_0, char_literal193_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:388:1: (vll1= variable )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:388:2: vll1= variable
                    		{
                    			PushFollow(FOLLOW_variable_in_plotfunctions2242);
                    			vll1 = variable();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal194=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2247); 
                    			char_literal194_tree = (object)adaptor.Create(char_literal194);
                    			adaptor.AddChild(root_0, char_literal194_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:389:1: (vll2= string_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:389:2: vll2= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2254);
                    			vll2 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal195=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2258); 
                    			char_literal195_tree = (object)adaptor.Create(char_literal195);
                    			adaptor.AddChild(root_0, char_literal195_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:1: ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) )
                    		int alt55 = 3;
                    		switch ( input.LA(1) ) 
                    		{
                    		case 49:
                    			{
                    		    alt55 = 1;
                    		    }
                    		    break;
                    		case 50:
                    			{
                    		    alt55 = 2;
                    		    }
                    		    break;
                    		case 51:
                    			{
                    		    alt55 = 3;
                    		    }
                    		    break;
                    			default:
                    			    NoViableAltException nvae_d55s0 =
                    			        new NoViableAltException("", 55, 0, input);

                    			    throw nvae_d55s0;
                    		}

                    		switch (alt55) 
                    		{
                    		    case 1 :
                    		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:2: ( '1D' )
                    		        {
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:2: ( '1D' )
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:3: '1D'
                    		        	{
                    		        		string_literal196=(IToken)Match(input,49,FOLLOW_49_in_plotfunctions2262); 
                    		        			string_literal196_tree = (object)adaptor.Create(string_literal196);
                    		        			adaptor.AddChild(root_0, string_literal196_tree);

                    		        		retval.ret.setPlotType("1D");

                    		        	}


                    		        }
                    		        break;
                    		    case 2 :
                    		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:40: ( '2D' )
                    		        {
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:40: ( '2D' )
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:41: '2D'
                    		        	{
                    		        		string_literal197=(IToken)Match(input,50,FOLLOW_50_in_plotfunctions2267); 
                    		        			string_literal197_tree = (object)adaptor.Create(string_literal197);
                    		        			adaptor.AddChild(root_0, string_literal197_tree);

                    		        		retval.ret.setPlotType("2D");

                    		        	}


                    		        }
                    		        break;
                    		    case 3 :
                    		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        {
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:79: '3D' ( ',' (el3= int_literal ) )?
                    		        	{
                    		        		string_literal198=(IToken)Match(input,51,FOLLOW_51_in_plotfunctions2272); 
                    		        			string_literal198_tree = (object)adaptor.Create(string_literal198);
                    		        			adaptor.AddChild(root_0, string_literal198_tree);

                    		        		retval.ret.setPlotType("3D");
                    		        		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:114: ( ',' (el3= int_literal ) )?
                    		        		int alt54 = 2;
                    		        		int LA54_0 = input.LA(1);

                    		        		if ( (LA54_0 == 31) )
                    		        		{
                    		        		    alt54 = 1;
                    		        		}
                    		        		switch (alt54) 
                    		        		{
                    		        		    case 1 :
                    		        		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:115: ',' (el3= int_literal )
                    		        		        {
                    		        		        	char_literal199=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2275); 
                    		        		        		char_literal199_tree = (object)adaptor.Create(char_literal199);
                    		        		        		adaptor.AddChild(root_0, char_literal199_tree);

                    		        		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:118: (el3= int_literal )
                    		        		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:390:119: el3= int_literal
                    		        		        	{
                    		        		        		PushFollow(FOLLOW_int_literal_in_plotfunctions2281);
                    		        		        		el3 = int_literal();
                    		        		        		state.followingStackPointer--;

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

                    		        		        	}


                    		        		        }
                    		        		        break;

                    		        		}


                    		        	}


                    		        }
                    		        break;

                    		}

                    		char_literal200=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2289); 
                    			char_literal200_tree = (object)adaptor.Create(char_literal200);
                    			adaptor.AddChild(root_0, char_literal200_tree);

                    		END_OF_STATEMENT201=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2290); 
                    			END_OF_STATEMENT201_tree = (object)adaptor.Create(END_OF_STATEMENT201);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT201_tree);


                    	}


                    }
                    break;
                case 2 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:392:3: ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:392:3: ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:392:4: 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal202=(IToken)Match(input,52,FOLLOW_52_in_plotfunctions2296); 
                    			string_literal202_tree = (object)adaptor.Create(string_literal202);
                    			adaptor.AddChild(root_0, string_literal202_tree);

                    		retval.ret.setPlotFunction("plot");
                    		char_literal203=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2299); 
                    			char_literal203_tree = (object)adaptor.Create(char_literal203);
                    			adaptor.AddChild(root_0, char_literal203_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:393:1: (vll3= variable )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:393:2: vll3= variable
                    		{
                    			PushFollow(FOLLOW_variable_in_plotfunctions2305);
                    			vll3 = variable();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal204=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2310); 
                    			char_literal204_tree = (object)adaptor.Create(char_literal204);
                    			adaptor.AddChild(root_0, char_literal204_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:394:1: (vll4= string_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:394:2: vll4= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2316);
                    			vll4 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal205=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2320); 
                    			char_literal205_tree = (object)adaptor.Create(char_literal205);
                    			adaptor.AddChild(root_0, char_literal205_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:1: ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) )
                    		int alt57 = 3;
                    		switch ( input.LA(1) ) 
                    		{
                    		case 49:
                    			{
                    		    alt57 = 1;
                    		    }
                    		    break;
                    		case 50:
                    			{
                    		    alt57 = 2;
                    		    }
                    		    break;
                    		case 51:
                    			{
                    		    alt57 = 3;
                    		    }
                    		    break;
                    			default:
                    			    NoViableAltException nvae_d57s0 =
                    			        new NoViableAltException("", 57, 0, input);

                    			    throw nvae_d57s0;
                    		}

                    		switch (alt57) 
                    		{
                    		    case 1 :
                    		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:2: ( '1D' )
                    		        {
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:2: ( '1D' )
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:3: '1D'
                    		        	{
                    		        		string_literal206=(IToken)Match(input,49,FOLLOW_49_in_plotfunctions2324); 
                    		        			string_literal206_tree = (object)adaptor.Create(string_literal206);
                    		        			adaptor.AddChild(root_0, string_literal206_tree);

                    		        		retval.ret.setPlotType("1D");

                    		        	}


                    		        }
                    		        break;
                    		    case 2 :
                    		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:40: ( '2D' )
                    		        {
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:40: ( '2D' )
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:41: '2D'
                    		        	{
                    		        		string_literal207=(IToken)Match(input,50,FOLLOW_50_in_plotfunctions2329); 
                    		        			string_literal207_tree = (object)adaptor.Create(string_literal207);
                    		        			adaptor.AddChild(root_0, string_literal207_tree);

                    		        		retval.ret.setPlotType("2D");

                    		        	}


                    		        }
                    		        break;
                    		    case 3 :
                    		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        {
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:79: '3D' ( ',' (el3= int_literal ) )?
                    		        	{
                    		        		string_literal208=(IToken)Match(input,51,FOLLOW_51_in_plotfunctions2334); 
                    		        			string_literal208_tree = (object)adaptor.Create(string_literal208);
                    		        			adaptor.AddChild(root_0, string_literal208_tree);

                    		        		retval.ret.setPlotType("3D");
                    		        		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:114: ( ',' (el3= int_literal ) )?
                    		        		int alt56 = 2;
                    		        		int LA56_0 = input.LA(1);

                    		        		if ( (LA56_0 == 31) )
                    		        		{
                    		        		    alt56 = 1;
                    		        		}
                    		        		switch (alt56) 
                    		        		{
                    		        		    case 1 :
                    		        		        // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:115: ',' (el3= int_literal )
                    		        		        {
                    		        		        	char_literal209=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2337); 
                    		        		        		char_literal209_tree = (object)adaptor.Create(char_literal209);
                    		        		        		adaptor.AddChild(root_0, char_literal209_tree);

                    		        		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:118: (el3= int_literal )
                    		        		        	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:395:119: el3= int_literal
                    		        		        	{
                    		        		        		PushFollow(FOLLOW_int_literal_in_plotfunctions2343);
                    		        		        		el3 = int_literal();
                    		        		        		state.followingStackPointer--;

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

                    		        		        	}


                    		        		        }
                    		        		        break;

                    		        		}


                    		        	}


                    		        }
                    		        break;

                    		}

                    		char_literal210=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2351); 
                    			char_literal210_tree = (object)adaptor.Create(char_literal210);
                    			adaptor.AddChild(root_0, char_literal210_tree);

                    		END_OF_STATEMENT211=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2352); 
                    			END_OF_STATEMENT211_tree = (object)adaptor.Create(END_OF_STATEMENT211);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT211_tree);


                    	}


                    }
                    break;
                case 3 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:397:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:397:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:397:4: 'resetPlot' '(' ')' END_OF_STATEMENT
                    	{
                    		string_literal212=(IToken)Match(input,53,FOLLOW_53_in_plotfunctions2358); 
                    			string_literal212_tree = (object)adaptor.Create(string_literal212);
                    			adaptor.AddChild(root_0, string_literal212_tree);

                    		char_literal213=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2359); 
                    			char_literal213_tree = (object)adaptor.Create(char_literal213);
                    			adaptor.AddChild(root_0, char_literal213_tree);

                    		char_literal214=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2360); 
                    			char_literal214_tree = (object)adaptor.Create(char_literal214);
                    			adaptor.AddChild(root_0, char_literal214_tree);

                    		retval.ret.setPlotFunction("resetPlot");
                    		END_OF_STATEMENT215=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2362); 
                    			END_OF_STATEMENT215_tree = (object)adaptor.Create(END_OF_STATEMENT215);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT215_tree);


                    	}


                    }
                    break;
                case 4 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:398:3: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:398:3: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:398:4: 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal216=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2368); 
                    			string_literal216_tree = (object)adaptor.Create(string_literal216);
                    			adaptor.AddChild(root_0, string_literal216_tree);

                    		retval.ret.setPlotFunction("setPlotAxis");
                    		char_literal217=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2370); 
                    			char_literal217_tree = (object)adaptor.Create(char_literal217);
                    			adaptor.AddChild(root_0, char_literal217_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:399:1: (ell2= double_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:399:2: ell2= double_literal
                    		{
                    			PushFollow(FOLLOW_double_literal_in_plotfunctions2376);
                    			ell2 = double_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal218=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2379); 
                    			char_literal218_tree = (object)adaptor.Create(char_literal218);
                    			adaptor.AddChild(root_0, char_literal218_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:400:1: ( (ell3= double_literal ) ',' )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:400:2: (ell3= double_literal ) ','
                    		{
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:400:2: (ell3= double_literal )
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:400:3: ell3= double_literal
                    			{
                    				PushFollow(FOLLOW_double_literal_in_plotfunctions2385);
                    				ell3 = double_literal();
                    				state.followingStackPointer--;

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

                    			}

                    			char_literal219=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2388); 
                    				char_literal219_tree = (object)adaptor.Create(char_literal219);
                    				adaptor.AddChild(root_0, char_literal219_tree);


                    		}

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:401:1: ( (el4= double_literal ) )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:401:2: (el4= double_literal )
                    		{
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:401:2: (el4= double_literal )
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:401:3: el4= double_literal
                    			{
                    				PushFollow(FOLLOW_double_literal_in_plotfunctions2395);
                    				el4 = double_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal220=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2400); 
                    			char_literal220_tree = (object)adaptor.Create(char_literal220);
                    			adaptor.AddChild(root_0, char_literal220_tree);

                    		END_OF_STATEMENT221=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2401); 
                    			END_OF_STATEMENT221_tree = (object)adaptor.Create(END_OF_STATEMENT221);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT221_tree);


                    	}


                    }
                    break;
                case 5 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:403:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:403:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:403:3: 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal222=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2406); 
                    			string_literal222_tree = (object)adaptor.Create(string_literal222);
                    			adaptor.AddChild(root_0, string_literal222_tree);

                    		retval.ret.setPlotFunction("setPlotAxis");
                    		char_literal223=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2408); 
                    			char_literal223_tree = (object)adaptor.Create(char_literal223);
                    			adaptor.AddChild(root_0, char_literal223_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:404:1: (ell2= double_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:404:2: ell2= double_literal
                    		{
                    			PushFollow(FOLLOW_double_literal_in_plotfunctions2414);
                    			ell2 = double_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal224=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2417); 
                    			char_literal224_tree = (object)adaptor.Create(char_literal224);
                    			adaptor.AddChild(root_0, char_literal224_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:405:1: ( (ell3= double_literal ) )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:405:2: (ell3= double_literal )
                    		{
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:405:2: (ell3= double_literal )
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:405:3: ell3= double_literal
                    			{
                    				PushFollow(FOLLOW_double_literal_in_plotfunctions2423);
                    				ell3 = double_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal225=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2428); 
                    			char_literal225_tree = (object)adaptor.Create(char_literal225);
                    			adaptor.AddChild(root_0, char_literal225_tree);

                    		END_OF_STATEMENT226=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2429); 
                    			END_OF_STATEMENT226_tree = (object)adaptor.Create(END_OF_STATEMENT226);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT226_tree);


                    	}


                    }
                    break;
                case 6 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:407:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:407:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:407:3: 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT
                    	{
                    		string_literal227=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2434); 
                    			string_literal227_tree = (object)adaptor.Create(string_literal227);
                    			adaptor.AddChild(root_0, string_literal227_tree);

                    		retval.ret.setPlotFunction("setPlotAxis");
                    		char_literal228=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2436); 
                    			char_literal228_tree = (object)adaptor.Create(char_literal228);
                    			adaptor.AddChild(root_0, char_literal228_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:408:1: (ell2= double_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:408:2: ell2= double_literal
                    		{
                    			PushFollow(FOLLOW_double_literal_in_plotfunctions2442);
                    			ell2 = double_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal229=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2446); 
                    			char_literal229_tree = (object)adaptor.Create(char_literal229);
                    			adaptor.AddChild(root_0, char_literal229_tree);

                    		END_OF_STATEMENT230=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2447); 
                    			END_OF_STATEMENT230_tree = (object)adaptor.Create(END_OF_STATEMENT230);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT230_tree);


                    	}


                    }
                    break;
                case 7 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:410:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:410:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:410:4: 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal231=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2453); 
                    			string_literal231_tree = (object)adaptor.Create(string_literal231);
                    			adaptor.AddChild(root_0, string_literal231_tree);

                    		retval.ret.setPlotFunction("setAxisTitle");
                    		char_literal232=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2455); 
                    			char_literal232_tree = (object)adaptor.Create(char_literal232);
                    			adaptor.AddChild(root_0, char_literal232_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:411:1: (vl1= string_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:411:2: vl1= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2461);
                    			vl1 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal233=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2464); 
                    			char_literal233_tree = (object)adaptor.Create(char_literal233);
                    			adaptor.AddChild(root_0, char_literal233_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:412:1: ( (vl2= string_literal ) ',' )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:412:2: (vl2= string_literal ) ','
                    		{
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:412:2: (vl2= string_literal )
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:412:3: vl2= string_literal
                    			{
                    				PushFollow(FOLLOW_string_literal_in_plotfunctions2471);
                    				vl2 = string_literal();
                    				state.followingStackPointer--;

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

                    			}

                    			char_literal234=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2474); 
                    				char_literal234_tree = (object)adaptor.Create(char_literal234);
                    				adaptor.AddChild(root_0, char_literal234_tree);


                    		}

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:413:1: ( (vl3= string_literal ) )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:413:2: (vl3= string_literal )
                    		{
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:413:2: (vl3= string_literal )
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:413:3: vl3= string_literal
                    			{
                    				PushFollow(FOLLOW_string_literal_in_plotfunctions2482);
                    				vl3 = string_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal235=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2487); 
                    			char_literal235_tree = (object)adaptor.Create(char_literal235);
                    			adaptor.AddChild(root_0, char_literal235_tree);

                    		END_OF_STATEMENT236=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2488); 
                    			END_OF_STATEMENT236_tree = (object)adaptor.Create(END_OF_STATEMENT236);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT236_tree);


                    	}


                    }
                    break;
                case 8 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:415:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:415:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:415:4: 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal237=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2494); 
                    			string_literal237_tree = (object)adaptor.Create(string_literal237);
                    			adaptor.AddChild(root_0, string_literal237_tree);

                    		retval.ret.setPlotFunction("setAxisTitle");
                    		char_literal238=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2496); 
                    			char_literal238_tree = (object)adaptor.Create(char_literal238);
                    			adaptor.AddChild(root_0, char_literal238_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:416:1: (vl1= string_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:416:2: vl1= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2502);
                    			vl1 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal239=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2505); 
                    			char_literal239_tree = (object)adaptor.Create(char_literal239);
                    			adaptor.AddChild(root_0, char_literal239_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:417:1: ( (vl2= string_literal ) )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:417:2: (vl2= string_literal )
                    		{
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:417:2: (vl2= string_literal )
                    			// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:417:3: vl2= string_literal
                    			{
                    				PushFollow(FOLLOW_string_literal_in_plotfunctions2512);
                    				vl2 = string_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal240=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2517); 
                    			char_literal240_tree = (object)adaptor.Create(char_literal240);
                    			adaptor.AddChild(root_0, char_literal240_tree);

                    		END_OF_STATEMENT241=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2518); 
                    			END_OF_STATEMENT241_tree = (object)adaptor.Create(END_OF_STATEMENT241);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT241_tree);


                    	}


                    }
                    break;
                case 9 :
                    // C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:419:2: ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:419:2: ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:419:3: 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT
                    	{
                    		string_literal242=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2523); 
                    			string_literal242_tree = (object)adaptor.Create(string_literal242);
                    			adaptor.AddChild(root_0, string_literal242_tree);

                    		retval.ret.setPlotFunction("setAxisTitle");
                    		char_literal243=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2525); 
                    			char_literal243_tree = (object)adaptor.Create(char_literal243);
                    			adaptor.AddChild(root_0, char_literal243_tree);

                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:420:1: (vl1= string_literal )
                    		// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:420:2: vl1= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2531);
                    			vl1 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal244=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2535); 
                    			char_literal244_tree = (object)adaptor.Create(char_literal244);
                    			adaptor.AddChild(root_0, char_literal244_tree);

                    		END_OF_STATEMENT245=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2536); 
                    			END_OF_STATEMENT245_tree = (object)adaptor.Create(END_OF_STATEMENT245);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT245_tree);


                    	}


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

                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:422:2: ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT )
                    	// C:\\Documents and Settings\\Administrator\\Desktop\\Spinach\\InterpreterFrontEnd\\spinach.g:422:3: 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT
                    	{
                    		string_literal246=(IToken)Match(input,56,FOLLOW_56_in_plotfunctions2541); 
                    			string_literal246_tree = (object)adaptor.Create(string_literal246);
                    			adaptor.AddChild(root_0, string_literal246_tree);

                    		char_literal247=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2542); 
                    			char_literal247_tree = (object)adaptor.Create(char_literal247);
                    			adaptor.AddChild(root_0, char_literal247_tree);

                    		retval.ret.setPlotFunction("setScaleMode");
                    		SCALEMODE248=(IToken)Match(input,SCALEMODE,FOLLOW_SCALEMODE_in_plotfunctions2545); 
                    			SCALEMODE248_tree = (object)adaptor.Create(SCALEMODE248);
                    			adaptor.AddChild(root_0, SCALEMODE248_tree);

                    		retval.ret.setScaleMode(SCALEMODE248.Text);
                    		char_literal249=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2549); 
                    			char_literal249_tree = (object)adaptor.Create(char_literal249);
                    			adaptor.AddChild(root_0, char_literal249_tree);

                    		END_OF_STATEMENT250=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2551); 
                    			END_OF_STATEMENT250_tree = (object)adaptor.Create(END_OF_STATEMENT250);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT250_tree);


                    	}


                    }
                    break;

            }
            retval.Stop = input.LT(-1);

            	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }
Beispiel #2
0
    // throws RecognitionException [1]
    // $ANTLR start "plotfunctions"
    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:266:1: plotfunctions returns [PlotFunctionElement ret] : ( ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vl1= variable ) ',' ( (el3= int_literal ) ',' )? (vl2= variable ) ',' (el4= int_literal ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vl1= variable ) ',' ( (el1= int_literal ) ',' )? (vl2= variable ) ',' (el2= int_literal ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ',' ) ( (el4= int_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= int_literal ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ',' ) ( (vl3= variable ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= variable ) ')' END_OF_STATEMENT ) | ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT ) );
    public spinachParser.plotfunctions_return plotfunctions()
    {
        spinachParser.plotfunctions_return retval = new spinachParser.plotfunctions_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal144 = null;
        IToken char_literal145 = null;
        IToken char_literal146 = null;
        IToken char_literal147 = null;
        IToken char_literal148 = null;
        IToken char_literal149 = null;
        IToken char_literal150 = null;
        IToken char_literal151 = null;
        IToken END_OF_STATEMENT152 = null;
        IToken string_literal153 = null;
        IToken char_literal154 = null;
        IToken char_literal155 = null;
        IToken char_literal156 = null;
        IToken char_literal157 = null;
        IToken char_literal158 = null;
        IToken END_OF_STATEMENT159 = null;
        IToken string_literal160 = null;
        IToken char_literal161 = null;
        IToken char_literal162 = null;
        IToken END_OF_STATEMENT163 = null;
        IToken string_literal164 = null;
        IToken char_literal165 = null;
        IToken char_literal166 = null;
        IToken char_literal167 = null;
        IToken char_literal168 = null;
        IToken END_OF_STATEMENT169 = null;
        IToken string_literal170 = null;
        IToken char_literal171 = null;
        IToken char_literal172 = null;
        IToken char_literal173 = null;
        IToken END_OF_STATEMENT174 = null;
        IToken string_literal175 = null;
        IToken char_literal176 = null;
        IToken char_literal177 = null;
        IToken END_OF_STATEMENT178 = null;
        IToken string_literal179 = null;
        IToken char_literal180 = null;
        IToken char_literal181 = null;
        IToken char_literal182 = null;
        IToken char_literal183 = null;
        IToken END_OF_STATEMENT184 = null;
        IToken string_literal185 = null;
        IToken char_literal186 = null;
        IToken char_literal187 = null;
        IToken char_literal188 = null;
        IToken END_OF_STATEMENT189 = null;
        IToken string_literal190 = null;
        IToken char_literal191 = null;
        IToken char_literal192 = null;
        IToken END_OF_STATEMENT193 = null;
        IToken string_literal194 = null;
        IToken char_literal195 = null;
        IToken SCALEMODE196 = null;
        IToken char_literal197 = null;
        IToken END_OF_STATEMENT198 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.int_literal_return el2 = null;

        spinachParser.variable_return vl1 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.variable_return vl2 = null;

        spinachParser.int_literal_return el4 = null;

        spinachParser.int_literal_return ell2 = null;

        spinachParser.int_literal_return ell3 = null;

        spinachParser.variable_return vl3 = null;

        object string_literal144_tree=null;
        object char_literal145_tree=null;
        object char_literal146_tree=null;
        object char_literal147_tree=null;
        object char_literal148_tree=null;
        object char_literal149_tree=null;
        object char_literal150_tree=null;
        object char_literal151_tree=null;
        object END_OF_STATEMENT152_tree=null;
        object string_literal153_tree=null;
        object char_literal154_tree=null;
        object char_literal155_tree=null;
        object char_literal156_tree=null;
        object char_literal157_tree=null;
        object char_literal158_tree=null;
        object END_OF_STATEMENT159_tree=null;
        object string_literal160_tree=null;
        object char_literal161_tree=null;
        object char_literal162_tree=null;
        object END_OF_STATEMENT163_tree=null;
        object string_literal164_tree=null;
        object char_literal165_tree=null;
        object char_literal166_tree=null;
        object char_literal167_tree=null;
        object char_literal168_tree=null;
        object END_OF_STATEMENT169_tree=null;
        object string_literal170_tree=null;
        object char_literal171_tree=null;
        object char_literal172_tree=null;
        object char_literal173_tree=null;
        object END_OF_STATEMENT174_tree=null;
        object string_literal175_tree=null;
        object char_literal176_tree=null;
        object char_literal177_tree=null;
        object END_OF_STATEMENT178_tree=null;
        object string_literal179_tree=null;
        object char_literal180_tree=null;
        object char_literal181_tree=null;
        object char_literal182_tree=null;
        object char_literal183_tree=null;
        object END_OF_STATEMENT184_tree=null;
        object string_literal185_tree=null;
        object char_literal186_tree=null;
        object char_literal187_tree=null;
        object char_literal188_tree=null;
        object END_OF_STATEMENT189_tree=null;
        object string_literal190_tree=null;
        object char_literal191_tree=null;
        object char_literal192_tree=null;
        object END_OF_STATEMENT193_tree=null;
        object string_literal194_tree=null;
        object char_literal195_tree=null;
        object SCALEMODE196_tree=null;
        object char_literal197_tree=null;
        object END_OF_STATEMENT198_tree=null;

         retval.ret = new PlotFunctionElement();

        try
        {
            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:269:1: ( ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vl1= variable ) ',' ( (el3= int_literal ) ',' )? (vl2= variable ) ',' (el4= int_literal ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vl1= variable ) ',' ( (el1= int_literal ) ',' )? (vl2= variable ) ',' (el2= int_literal ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ',' ) ( (el4= int_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= int_literal ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ',' ) ( (vl3= variable ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= variable ) ')' END_OF_STATEMENT ) | ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT ) )
            int alt32 = 10;
            alt32 = dfa32.Predict(input);
            switch (alt32)
            {
                case 1 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:269:3: ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vl1= variable ) ',' ( (el3= int_literal ) ',' )? (vl2= variable ) ',' (el4= int_literal ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:269:3: ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vl1= variable ) ',' ( (el3= int_literal ) ',' )? (vl2= variable ) ',' (el4= int_literal ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:269:4: 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vl1= variable ) ',' ( (el3= int_literal ) ',' )? (vl2= variable ) ',' (el4= int_literal ) ')' END_OF_STATEMENT
                        {
                            string_literal144=(IToken)Match(input,41,FOLLOW_41_in_plotfunctions1482);
                                string_literal144_tree = (object)adaptor.Create(string_literal144);
                                adaptor.AddChild(root_0, string_literal144_tree);

                            retval.ret.setPlotFunction("subPlot");
                            char_literal145=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1485);
                                char_literal145_tree = (object)adaptor.Create(char_literal145);
                                adaptor.AddChild(root_0, char_literal145_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:270:1: (el1= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:270:2: el1= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1492);
                                el1 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal146=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1497);
                                char_literal146_tree = (object)adaptor.Create(char_literal146);
                                adaptor.AddChild(root_0, char_literal146_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:271:1: (el2= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:271:2: el2= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1504);
                                el2 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal147=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1509);
                                char_literal147_tree = (object)adaptor.Create(char_literal147);
                                adaptor.AddChild(root_0, char_literal147_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:272:1: (vl1= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:272:2: vl1= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1516);
                                vl1 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal148=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1521);
                                char_literal148_tree = (object)adaptor.Create(char_literal148);
                                adaptor.AddChild(root_0, char_literal148_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:273:1: ( (el3= int_literal ) ',' )?
                            int alt30 = 2;
                            int LA30_0 = input.LA(1);

                            if ( (LA30_0 == INT_LITERAL) )
                            {
                                alt30 = 1;
                            }
                            switch (alt30)
                            {
                                case 1 :
                                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:273:2: (el3= int_literal ) ','
                                    {
                                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:273:2: (el3= int_literal )
                                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:273:3: el3= int_literal
                                        {
                                            PushFollow(FOLLOW_int_literal_in_plotfunctions1529);
                                            el3 = int_literal();
                                            state.followingStackPointer--;

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

                                        }

                                        char_literal149=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1532);
                                            char_literal149_tree = (object)adaptor.Create(char_literal149);
                                            adaptor.AddChild(root_0, char_literal149_tree);

                                    }
                                    break;

                            }

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:274:1: (vl2= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:274:2: vl2= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1540);
                                vl2 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal150=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1544);
                                char_literal150_tree = (object)adaptor.Create(char_literal150);
                                adaptor.AddChild(root_0, char_literal150_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:275:1: (el4= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:275:2: el4= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1551);
                                el4 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal151=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1555);
                                char_literal151_tree = (object)adaptor.Create(char_literal151);
                                adaptor.AddChild(root_0, char_literal151_tree);

                            END_OF_STATEMENT152=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1556);
                                END_OF_STATEMENT152_tree = (object)adaptor.Create(END_OF_STATEMENT152);
                                adaptor.AddChild(root_0, END_OF_STATEMENT152_tree);

                        }

                    }
                    break;
                case 2 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:277:3: ( 'plot' '(' (vl1= variable ) ',' ( (el1= int_literal ) ',' )? (vl2= variable ) ',' (el2= int_literal ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:277:3: ( 'plot' '(' (vl1= variable ) ',' ( (el1= int_literal ) ',' )? (vl2= variable ) ',' (el2= int_literal ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:277:4: 'plot' '(' (vl1= variable ) ',' ( (el1= int_literal ) ',' )? (vl2= variable ) ',' (el2= int_literal ) ')' END_OF_STATEMENT
                        {
                            string_literal153=(IToken)Match(input,42,FOLLOW_42_in_plotfunctions1562);
                                string_literal153_tree = (object)adaptor.Create(string_literal153);
                                adaptor.AddChild(root_0, string_literal153_tree);

                            retval.ret.setPlotFunction("plot");
                            char_literal154=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1565);
                                char_literal154_tree = (object)adaptor.Create(char_literal154);
                                adaptor.AddChild(root_0, char_literal154_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:278:1: (vl1= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:278:2: vl1= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1571);
                                vl1 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal155=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1576);
                                char_literal155_tree = (object)adaptor.Create(char_literal155);
                                adaptor.AddChild(root_0, char_literal155_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:279:1: ( (el1= int_literal ) ',' )?
                            int alt31 = 2;
                            int LA31_0 = input.LA(1);

                            if ( (LA31_0 == INT_LITERAL) )
                            {
                                alt31 = 1;
                            }
                            switch (alt31)
                            {
                                case 1 :
                                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:279:2: (el1= int_literal ) ','
                                    {
                                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:279:2: (el1= int_literal )
                                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:279:3: el1= int_literal
                                        {
                                            PushFollow(FOLLOW_int_literal_in_plotfunctions1584);
                                            el1 = int_literal();
                                            state.followingStackPointer--;

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

                                        }

                                        char_literal156=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1587);
                                            char_literal156_tree = (object)adaptor.Create(char_literal156);
                                            adaptor.AddChild(root_0, char_literal156_tree);

                                    }
                                    break;

                            }

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:280:1: (vl2= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:280:2: vl2= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1595);
                                vl2 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal157=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1599);
                                char_literal157_tree = (object)adaptor.Create(char_literal157);
                                adaptor.AddChild(root_0, char_literal157_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:281:1: (el2= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:281:2: el2= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1605);
                                el2 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal158=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1609);
                                char_literal158_tree = (object)adaptor.Create(char_literal158);
                                adaptor.AddChild(root_0, char_literal158_tree);

                            END_OF_STATEMENT159=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1610);
                                END_OF_STATEMENT159_tree = (object)adaptor.Create(END_OF_STATEMENT159);
                                adaptor.AddChild(root_0, END_OF_STATEMENT159_tree);

                        }

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

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:283:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:283:4: 'resetPlot' '(' ')' END_OF_STATEMENT
                        {
                            string_literal160=(IToken)Match(input,43,FOLLOW_43_in_plotfunctions1616);
                                string_literal160_tree = (object)adaptor.Create(string_literal160);
                                adaptor.AddChild(root_0, string_literal160_tree);

                            char_literal161=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1617);
                                char_literal161_tree = (object)adaptor.Create(char_literal161);
                                adaptor.AddChild(root_0, char_literal161_tree);

                            char_literal162=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1618);
                                char_literal162_tree = (object)adaptor.Create(char_literal162);
                                adaptor.AddChild(root_0, char_literal162_tree);

                            retval.ret.setPlotFunction("resetPlot");
                            END_OF_STATEMENT163=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1620);
                                END_OF_STATEMENT163_tree = (object)adaptor.Create(END_OF_STATEMENT163);
                                adaptor.AddChild(root_0, END_OF_STATEMENT163_tree);

                        }

                    }
                    break;
                case 4 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:284:3: ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ',' ) ( (el4= int_literal ) ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:284:3: ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ',' ) ( (el4= int_literal ) ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:284:4: 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ',' ) ( (el4= int_literal ) ) ')' END_OF_STATEMENT
                        {
                            string_literal164=(IToken)Match(input,44,FOLLOW_44_in_plotfunctions1626);
                                string_literal164_tree = (object)adaptor.Create(string_literal164);
                                adaptor.AddChild(root_0, string_literal164_tree);

                            retval.ret.setPlotFunction("setPlotAxis");
                            char_literal165=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1628);
                                char_literal165_tree = (object)adaptor.Create(char_literal165);
                                adaptor.AddChild(root_0, char_literal165_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:285:1: (ell2= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:285:2: ell2= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1634);
                                ell2 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal166=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1637);
                                char_literal166_tree = (object)adaptor.Create(char_literal166);
                                adaptor.AddChild(root_0, char_literal166_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:286:1: ( (ell3= int_literal ) ',' )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:286:2: (ell3= int_literal ) ','
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:286:2: (ell3= int_literal )
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:286:3: ell3= int_literal
                                {
                                    PushFollow(FOLLOW_int_literal_in_plotfunctions1643);
                                    ell3 = int_literal();
                                    state.followingStackPointer--;

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

                                }

                                char_literal167=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1646);
                                    char_literal167_tree = (object)adaptor.Create(char_literal167);
                                    adaptor.AddChild(root_0, char_literal167_tree);

                            }

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:287:1: ( (el4= int_literal ) )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:287:2: (el4= int_literal )
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:287:2: (el4= int_literal )
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:287:3: el4= int_literal
                                {
                                    PushFollow(FOLLOW_int_literal_in_plotfunctions1653);
                                    el4 = int_literal();
                                    state.followingStackPointer--;

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

                                }

                            }

                            char_literal168=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1658);
                                char_literal168_tree = (object)adaptor.Create(char_literal168);
                                adaptor.AddChild(root_0, char_literal168_tree);

                            END_OF_STATEMENT169=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1659);
                                END_OF_STATEMENT169_tree = (object)adaptor.Create(END_OF_STATEMENT169);
                                adaptor.AddChild(root_0, END_OF_STATEMENT169_tree);

                        }

                    }
                    break;
                case 5 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:289:2: ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:289:2: ( 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:289:3: 'setPlotAxis' '(' (ell2= int_literal ) ',' ( (ell3= int_literal ) ) ')' END_OF_STATEMENT
                        {
                            string_literal170=(IToken)Match(input,44,FOLLOW_44_in_plotfunctions1664);
                                string_literal170_tree = (object)adaptor.Create(string_literal170);
                                adaptor.AddChild(root_0, string_literal170_tree);

                            retval.ret.setPlotFunction("setPlotAxis");
                            char_literal171=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1666);
                                char_literal171_tree = (object)adaptor.Create(char_literal171);
                                adaptor.AddChild(root_0, char_literal171_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:290:1: (ell2= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:290:2: ell2= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1672);
                                ell2 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal172=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1675);
                                char_literal172_tree = (object)adaptor.Create(char_literal172);
                                adaptor.AddChild(root_0, char_literal172_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:291:1: ( (ell3= int_literal ) )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:291:2: (ell3= int_literal )
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:291:2: (ell3= int_literal )
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:291:3: ell3= int_literal
                                {
                                    PushFollow(FOLLOW_int_literal_in_plotfunctions1681);
                                    ell3 = int_literal();
                                    state.followingStackPointer--;

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

                                }

                            }

                            char_literal173=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1686);
                                char_literal173_tree = (object)adaptor.Create(char_literal173);
                                adaptor.AddChild(root_0, char_literal173_tree);

                            END_OF_STATEMENT174=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1687);
                                END_OF_STATEMENT174_tree = (object)adaptor.Create(END_OF_STATEMENT174);
                                adaptor.AddChild(root_0, END_OF_STATEMENT174_tree);

                        }

                    }
                    break;
                case 6 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:293:2: ( 'setPlotAxis' '(' (ell2= int_literal ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:293:2: ( 'setPlotAxis' '(' (ell2= int_literal ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:293:3: 'setPlotAxis' '(' (ell2= int_literal ) ')' END_OF_STATEMENT
                        {
                            string_literal175=(IToken)Match(input,44,FOLLOW_44_in_plotfunctions1692);
                                string_literal175_tree = (object)adaptor.Create(string_literal175);
                                adaptor.AddChild(root_0, string_literal175_tree);

                            retval.ret.setPlotFunction("setPlotAxis");
                            char_literal176=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1694);
                                char_literal176_tree = (object)adaptor.Create(char_literal176);
                                adaptor.AddChild(root_0, char_literal176_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:294:1: (ell2= int_literal )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:294:2: ell2= int_literal
                            {
                                PushFollow(FOLLOW_int_literal_in_plotfunctions1700);
                                ell2 = int_literal();
                                state.followingStackPointer--;

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

                            }

                            char_literal177=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1704);
                                char_literal177_tree = (object)adaptor.Create(char_literal177);
                                adaptor.AddChild(root_0, char_literal177_tree);

                            END_OF_STATEMENT178=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1705);
                                END_OF_STATEMENT178_tree = (object)adaptor.Create(END_OF_STATEMENT178);
                                adaptor.AddChild(root_0, END_OF_STATEMENT178_tree);

                        }

                    }
                    break;
                case 7 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:296:3: ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ',' ) ( (vl3= variable ) ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:296:3: ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ',' ) ( (vl3= variable ) ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:296:4: 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ',' ) ( (vl3= variable ) ) ')' END_OF_STATEMENT
                        {
                            string_literal179=(IToken)Match(input,45,FOLLOW_45_in_plotfunctions1711);
                                string_literal179_tree = (object)adaptor.Create(string_literal179);
                                adaptor.AddChild(root_0, string_literal179_tree);

                            retval.ret.setPlotFunction("setAxisTitle");
                            char_literal180=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1713);
                                char_literal180_tree = (object)adaptor.Create(char_literal180);
                                adaptor.AddChild(root_0, char_literal180_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:297:1: (vl1= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:297:2: vl1= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1719);
                                vl1 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal181=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1722);
                                char_literal181_tree = (object)adaptor.Create(char_literal181);
                                adaptor.AddChild(root_0, char_literal181_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:298:1: ( (vl2= variable ) ',' )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:298:2: (vl2= variable ) ','
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:298:2: (vl2= variable )
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:298:3: vl2= variable
                                {
                                    PushFollow(FOLLOW_variable_in_plotfunctions1729);
                                    vl2 = variable();
                                    state.followingStackPointer--;

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

                                }

                                char_literal182=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1732);
                                    char_literal182_tree = (object)adaptor.Create(char_literal182);
                                    adaptor.AddChild(root_0, char_literal182_tree);

                            }

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:299:1: ( (vl3= variable ) )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:299:2: (vl3= variable )
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:299:2: (vl3= variable )
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:299:3: vl3= variable
                                {
                                    PushFollow(FOLLOW_variable_in_plotfunctions1740);
                                    vl3 = variable();
                                    state.followingStackPointer--;

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

                                }

                            }

                            char_literal183=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1745);
                                char_literal183_tree = (object)adaptor.Create(char_literal183);
                                adaptor.AddChild(root_0, char_literal183_tree);

                            END_OF_STATEMENT184=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1746);
                                END_OF_STATEMENT184_tree = (object)adaptor.Create(END_OF_STATEMENT184);
                                adaptor.AddChild(root_0, END_OF_STATEMENT184_tree);

                        }

                    }
                    break;
                case 8 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:301:3: ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:301:3: ( 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:301:4: 'setAxisTitle' '(' (vl1= variable ) ',' ( (vl2= variable ) ) ')' END_OF_STATEMENT
                        {
                            string_literal185=(IToken)Match(input,45,FOLLOW_45_in_plotfunctions1752);
                                string_literal185_tree = (object)adaptor.Create(string_literal185);
                                adaptor.AddChild(root_0, string_literal185_tree);

                            retval.ret.setPlotFunction("setAxisTitle");
                            char_literal186=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1754);
                                char_literal186_tree = (object)adaptor.Create(char_literal186);
                                adaptor.AddChild(root_0, char_literal186_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:302:1: (vl1= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:302:2: vl1= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1760);
                                vl1 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal187=(IToken)Match(input,28,FOLLOW_28_in_plotfunctions1763);
                                char_literal187_tree = (object)adaptor.Create(char_literal187);
                                adaptor.AddChild(root_0, char_literal187_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:303:1: ( (vl2= variable ) )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:303:2: (vl2= variable )
                            {
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:303:2: (vl2= variable )
                                // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:303:3: vl2= variable
                                {
                                    PushFollow(FOLLOW_variable_in_plotfunctions1770);
                                    vl2 = variable();
                                    state.followingStackPointer--;

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

                                }

                            }

                            char_literal188=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1775);
                                char_literal188_tree = (object)adaptor.Create(char_literal188);
                                adaptor.AddChild(root_0, char_literal188_tree);

                            END_OF_STATEMENT189=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1776);
                                END_OF_STATEMENT189_tree = (object)adaptor.Create(END_OF_STATEMENT189);
                                adaptor.AddChild(root_0, END_OF_STATEMENT189_tree);

                        }

                    }
                    break;
                case 9 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:305:2: ( 'setAxisTitle' '(' (vl1= variable ) ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:305:2: ( 'setAxisTitle' '(' (vl1= variable ) ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:305:3: 'setAxisTitle' '(' (vl1= variable ) ')' END_OF_STATEMENT
                        {
                            string_literal190=(IToken)Match(input,45,FOLLOW_45_in_plotfunctions1781);
                                string_literal190_tree = (object)adaptor.Create(string_literal190);
                                adaptor.AddChild(root_0, string_literal190_tree);

                            retval.ret.setPlotFunction("setAxisTitle");
                            char_literal191=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1783);
                                char_literal191_tree = (object)adaptor.Create(char_literal191);
                                adaptor.AddChild(root_0, char_literal191_tree);

                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:306:1: (vl1= variable )
                            // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:306:2: vl1= variable
                            {
                                PushFollow(FOLLOW_variable_in_plotfunctions1789);
                                vl1 = variable();
                                state.followingStackPointer--;

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

                            }

                            char_literal192=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1793);
                                char_literal192_tree = (object)adaptor.Create(char_literal192);
                                adaptor.AddChild(root_0, char_literal192_tree);

                            END_OF_STATEMENT193=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1794);
                                END_OF_STATEMENT193_tree = (object)adaptor.Create(END_OF_STATEMENT193);
                                adaptor.AddChild(root_0, END_OF_STATEMENT193_tree);

                        }

                    }
                    break;
                case 10 :
                    // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:308:2: ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT )
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:308:2: ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT )
                        // C:\\Users\\Jegan\\Documents\\MSCE\\FALL 09\\SoftwareStudio\\SPINACH-Srinivasan\\ConsoleApplication1\\ConsoleApplication1\\spinach.g:308:3: 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT
                        {
                            string_literal194=(IToken)Match(input,46,FOLLOW_46_in_plotfunctions1799);
                                string_literal194_tree = (object)adaptor.Create(string_literal194);
                                adaptor.AddChild(root_0, string_literal194_tree);

                            char_literal195=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions1800);
                                char_literal195_tree = (object)adaptor.Create(char_literal195);
                                adaptor.AddChild(root_0, char_literal195_tree);

                            retval.ret.setPlotFunction("setScaleMode");
                            SCALEMODE196=(IToken)Match(input,SCALEMODE,FOLLOW_SCALEMODE_in_plotfunctions1803);
                                SCALEMODE196_tree = (object)adaptor.Create(SCALEMODE196);
                                adaptor.AddChild(root_0, SCALEMODE196_tree);

                            retval.ret.setScaleMode(SCALEMODE196.Text);
                            char_literal197=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions1807);
                                char_literal197_tree = (object)adaptor.Create(char_literal197);
                                adaptor.AddChild(root_0, char_literal197_tree);

                            END_OF_STATEMENT198=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions1809);
                                END_OF_STATEMENT198_tree = (object)adaptor.Create(END_OF_STATEMENT198);
                                adaptor.AddChild(root_0, END_OF_STATEMENT198_tree);

                        }

                    }
                    break;

            }
            retval.Stop = input.LT(-1);

                retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        // Conversion of the second argument necessary, but harmless
        retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally
        {
        }
        return retval;
    }
Beispiel #3
0
    // $ANTLR start "plotfunctions"
    // spinach.g:407:1: plotfunctions returns [PlotFunctionElement ret] : ( ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT ) | ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT ) );
    public spinachParser.plotfunctions_return plotfunctions() // throws RecognitionException [1]
    {   
        spinachParser.plotfunctions_return retval = new spinachParser.plotfunctions_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal175 = null;
        IToken char_literal176 = null;
        IToken char_literal177 = null;
        IToken char_literal178 = null;
        IToken char_literal179 = null;
        IToken char_literal180 = null;
        IToken string_literal181 = null;
        IToken string_literal182 = null;
        IToken string_literal183 = null;
        IToken char_literal184 = null;
        IToken char_literal185 = null;
        IToken END_OF_STATEMENT186 = null;
        IToken string_literal187 = null;
        IToken char_literal188 = null;
        IToken char_literal189 = null;
        IToken char_literal190 = null;
        IToken string_literal191 = null;
        IToken string_literal192 = null;
        IToken string_literal193 = null;
        IToken char_literal194 = null;
        IToken char_literal195 = null;
        IToken END_OF_STATEMENT196 = null;
        IToken string_literal197 = null;
        IToken char_literal198 = null;
        IToken char_literal199 = null;
        IToken END_OF_STATEMENT200 = null;
        IToken string_literal201 = null;
        IToken char_literal202 = null;
        IToken char_literal203 = null;
        IToken char_literal204 = null;
        IToken char_literal205 = null;
        IToken END_OF_STATEMENT206 = null;
        IToken string_literal207 = null;
        IToken char_literal208 = null;
        IToken char_literal209 = null;
        IToken char_literal210 = null;
        IToken END_OF_STATEMENT211 = null;
        IToken string_literal212 = null;
        IToken char_literal213 = null;
        IToken char_literal214 = null;
        IToken END_OF_STATEMENT215 = null;
        IToken string_literal216 = null;
        IToken char_literal217 = null;
        IToken char_literal218 = null;
        IToken char_literal219 = null;
        IToken char_literal220 = null;
        IToken END_OF_STATEMENT221 = null;
        IToken string_literal222 = null;
        IToken char_literal223 = null;
        IToken char_literal224 = null;
        IToken char_literal225 = null;
        IToken END_OF_STATEMENT226 = null;
        IToken string_literal227 = null;
        IToken char_literal228 = null;
        IToken char_literal229 = null;
        IToken END_OF_STATEMENT230 = null;
        IToken string_literal231 = null;
        IToken char_literal232 = null;
        IToken SCALEMODE233 = null;
        IToken char_literal234 = null;
        IToken END_OF_STATEMENT235 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.int_literal_return el2 = null;

        spinachParser.variable_return vll1 = null;

        spinachParser.string_literal_return vll2 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.variable_return vll3 = null;

        spinachParser.string_literal_return vll4 = null;

        spinachParser.double_literal_return ell2 = null;

        spinachParser.double_literal_return ell3 = null;

        spinachParser.double_literal_return el4 = null;

        spinachParser.string_literal_return vl1 = null;

        spinachParser.string_literal_return vl2 = null;

        spinachParser.string_literal_return vl3 = null;


        object string_literal175_tree=null;
        object char_literal176_tree=null;
        object char_literal177_tree=null;
        object char_literal178_tree=null;
        object char_literal179_tree=null;
        object char_literal180_tree=null;
        object string_literal181_tree=null;
        object string_literal182_tree=null;
        object string_literal183_tree=null;
        object char_literal184_tree=null;
        object char_literal185_tree=null;
        object END_OF_STATEMENT186_tree=null;
        object string_literal187_tree=null;
        object char_literal188_tree=null;
        object char_literal189_tree=null;
        object char_literal190_tree=null;
        object string_literal191_tree=null;
        object string_literal192_tree=null;
        object string_literal193_tree=null;
        object char_literal194_tree=null;
        object char_literal195_tree=null;
        object END_OF_STATEMENT196_tree=null;
        object string_literal197_tree=null;
        object char_literal198_tree=null;
        object char_literal199_tree=null;
        object END_OF_STATEMENT200_tree=null;
        object string_literal201_tree=null;
        object char_literal202_tree=null;
        object char_literal203_tree=null;
        object char_literal204_tree=null;
        object char_literal205_tree=null;
        object END_OF_STATEMENT206_tree=null;
        object string_literal207_tree=null;
        object char_literal208_tree=null;
        object char_literal209_tree=null;
        object char_literal210_tree=null;
        object END_OF_STATEMENT211_tree=null;
        object string_literal212_tree=null;
        object char_literal213_tree=null;
        object char_literal214_tree=null;
        object END_OF_STATEMENT215_tree=null;
        object string_literal216_tree=null;
        object char_literal217_tree=null;
        object char_literal218_tree=null;
        object char_literal219_tree=null;
        object char_literal220_tree=null;
        object END_OF_STATEMENT221_tree=null;
        object string_literal222_tree=null;
        object char_literal223_tree=null;
        object char_literal224_tree=null;
        object char_literal225_tree=null;
        object END_OF_STATEMENT226_tree=null;
        object string_literal227_tree=null;
        object char_literal228_tree=null;
        object char_literal229_tree=null;
        object END_OF_STATEMENT230_tree=null;
        object string_literal231_tree=null;
        object char_literal232_tree=null;
        object SCALEMODE233_tree=null;
        object char_literal234_tree=null;
        object END_OF_STATEMENT235_tree=null;

         retval.ret = new PlotFunctionElement();

        try 
    	{
            // spinach.g:410:1: ( ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT ) | ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT ) | ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT ) | ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT ) )
            int alt46 = 10;
            alt46 = dfa46.Predict(input);
            switch (alt46) 
            {
                case 1 :
                    // spinach.g:410:3: ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:410:3: ( 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:410:4: 'subPlot' '(' (el1= int_literal ) ',' (el2= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal175=(IToken)Match(input,48,FOLLOW_48_in_plotfunctions2242); 
                    			string_literal175_tree = (object)adaptor.Create(string_literal175);
                    			adaptor.AddChild(root_0, string_literal175_tree);

                    		retval.ret.setPlotFunction("subPlot");
                    		char_literal176=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2245); 
                    			char_literal176_tree = (object)adaptor.Create(char_literal176);
                    			adaptor.AddChild(root_0, char_literal176_tree);

                    		// spinach.g:411:1: (el1= int_literal )
                    		// spinach.g:411:2: el1= int_literal
                    		{
                    			PushFollow(FOLLOW_int_literal_in_plotfunctions2252);
                    			el1 = int_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal177=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2257); 
                    			char_literal177_tree = (object)adaptor.Create(char_literal177);
                    			adaptor.AddChild(root_0, char_literal177_tree);

                    		// spinach.g:412:1: (el2= int_literal )
                    		// spinach.g:412:2: el2= int_literal
                    		{
                    			PushFollow(FOLLOW_int_literal_in_plotfunctions2264);
                    			el2 = int_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal178=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2269); 
                    			char_literal178_tree = (object)adaptor.Create(char_literal178);
                    			adaptor.AddChild(root_0, char_literal178_tree);

                    		// spinach.g:413:1: (vll1= variable )
                    		// spinach.g:413:2: vll1= variable
                    		{
                    			PushFollow(FOLLOW_variable_in_plotfunctions2276);
                    			vll1 = variable();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal179=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2281); 
                    			char_literal179_tree = (object)adaptor.Create(char_literal179);
                    			adaptor.AddChild(root_0, char_literal179_tree);

                    		// spinach.g:414:1: (vll2= string_literal )
                    		// spinach.g:414:2: vll2= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2288);
                    			vll2 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal180=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2292); 
                    			char_literal180_tree = (object)adaptor.Create(char_literal180);
                    			adaptor.AddChild(root_0, char_literal180_tree);

                    		// spinach.g:415:1: ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) )
                    		int alt43 = 3;
                    		switch ( input.LA(1) ) 
                    		{
                    		case 49:
                    			{
                    		    alt43 = 1;
                    		    }
                    		    break;
                    		case 50:
                    			{
                    		    alt43 = 2;
                    		    }
                    		    break;
                    		case 51:
                    			{
                    		    alt43 = 3;
                    		    }
                    		    break;
                    			default:
                    			    NoViableAltException nvae_d43s0 =
                    			        new NoViableAltException("", 43, 0, input);

                    			    throw nvae_d43s0;
                    		}

                    		switch (alt43) 
                    		{
                    		    case 1 :
                    		        // spinach.g:415:2: ( '1D' )
                    		        {
                    		        	// spinach.g:415:2: ( '1D' )
                    		        	// spinach.g:415:3: '1D'
                    		        	{
                    		        		string_literal181=(IToken)Match(input,49,FOLLOW_49_in_plotfunctions2296); 
                    		        			string_literal181_tree = (object)adaptor.Create(string_literal181);
                    		        			adaptor.AddChild(root_0, string_literal181_tree);

                    		        		retval.ret.setPlotType("1D");

                    		        	}


                    		        }
                    		        break;
                    		    case 2 :
                    		        // spinach.g:415:40: ( '2D' )
                    		        {
                    		        	// spinach.g:415:40: ( '2D' )
                    		        	// spinach.g:415:41: '2D'
                    		        	{
                    		        		string_literal182=(IToken)Match(input,50,FOLLOW_50_in_plotfunctions2301); 
                    		        			string_literal182_tree = (object)adaptor.Create(string_literal182);
                    		        			adaptor.AddChild(root_0, string_literal182_tree);

                    		        		retval.ret.setPlotType("2D");

                    		        	}


                    		        }
                    		        break;
                    		    case 3 :
                    		        // spinach.g:415:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        {
                    		        	// spinach.g:415:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        	// spinach.g:415:79: '3D' ( ',' (el3= int_literal ) )?
                    		        	{
                    		        		string_literal183=(IToken)Match(input,51,FOLLOW_51_in_plotfunctions2306); 
                    		        			string_literal183_tree = (object)adaptor.Create(string_literal183);
                    		        			adaptor.AddChild(root_0, string_literal183_tree);

                    		        		retval.ret.setPlotType("3D");
                    		        		// spinach.g:415:114: ( ',' (el3= int_literal ) )?
                    		        		int alt42 = 2;
                    		        		int LA42_0 = input.LA(1);

                    		        		if ( (LA42_0 == 31) )
                    		        		{
                    		        		    alt42 = 1;
                    		        		}
                    		        		switch (alt42) 
                    		        		{
                    		        		    case 1 :
                    		        		        // spinach.g:415:115: ',' (el3= int_literal )
                    		        		        {
                    		        		        	char_literal184=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2309); 
                    		        		        		char_literal184_tree = (object)adaptor.Create(char_literal184);
                    		        		        		adaptor.AddChild(root_0, char_literal184_tree);

                    		        		        	// spinach.g:415:118: (el3= int_literal )
                    		        		        	// spinach.g:415:119: el3= int_literal
                    		        		        	{
                    		        		        		PushFollow(FOLLOW_int_literal_in_plotfunctions2315);
                    		        		        		el3 = int_literal();
                    		        		        		state.followingStackPointer--;

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

                    		        		        	}


                    		        		        }
                    		        		        break;

                    		        		}


                    		        	}


                    		        }
                    		        break;

                    		}

                    		char_literal185=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2323); 
                    			char_literal185_tree = (object)adaptor.Create(char_literal185);
                    			adaptor.AddChild(root_0, char_literal185_tree);

                    		END_OF_STATEMENT186=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2324); 
                    			END_OF_STATEMENT186_tree = (object)adaptor.Create(END_OF_STATEMENT186);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT186_tree);


                    	}


                    }
                    break;
                case 2 :
                    // spinach.g:417:3: ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:417:3: ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:417:4: 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal187=(IToken)Match(input,52,FOLLOW_52_in_plotfunctions2330); 
                    			string_literal187_tree = (object)adaptor.Create(string_literal187);
                    			adaptor.AddChild(root_0, string_literal187_tree);

                    		retval.ret.setPlotFunction("plot");
                    		char_literal188=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2333); 
                    			char_literal188_tree = (object)adaptor.Create(char_literal188);
                    			adaptor.AddChild(root_0, char_literal188_tree);

                    		// spinach.g:418:1: (vll3= variable )
                    		// spinach.g:418:2: vll3= variable
                    		{
                    			PushFollow(FOLLOW_variable_in_plotfunctions2339);
                    			vll3 = variable();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal189=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2344); 
                    			char_literal189_tree = (object)adaptor.Create(char_literal189);
                    			adaptor.AddChild(root_0, char_literal189_tree);

                    		// spinach.g:419:1: (vll4= string_literal )
                    		// spinach.g:419:2: vll4= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2350);
                    			vll4 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal190=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2354); 
                    			char_literal190_tree = (object)adaptor.Create(char_literal190);
                    			adaptor.AddChild(root_0, char_literal190_tree);

                    		// spinach.g:420:1: ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) )
                    		int alt45 = 3;
                    		switch ( input.LA(1) ) 
                    		{
                    		case 49:
                    			{
                    		    alt45 = 1;
                    		    }
                    		    break;
                    		case 50:
                    			{
                    		    alt45 = 2;
                    		    }
                    		    break;
                    		case 51:
                    			{
                    		    alt45 = 3;
                    		    }
                    		    break;
                    			default:
                    			    NoViableAltException nvae_d45s0 =
                    			        new NoViableAltException("", 45, 0, input);

                    			    throw nvae_d45s0;
                    		}

                    		switch (alt45) 
                    		{
                    		    case 1 :
                    		        // spinach.g:420:2: ( '1D' )
                    		        {
                    		        	// spinach.g:420:2: ( '1D' )
                    		        	// spinach.g:420:3: '1D'
                    		        	{
                    		        		string_literal191=(IToken)Match(input,49,FOLLOW_49_in_plotfunctions2358); 
                    		        			string_literal191_tree = (object)adaptor.Create(string_literal191);
                    		        			adaptor.AddChild(root_0, string_literal191_tree);

                    		        		retval.ret.setPlotType("1D");

                    		        	}


                    		        }
                    		        break;
                    		    case 2 :
                    		        // spinach.g:420:40: ( '2D' )
                    		        {
                    		        	// spinach.g:420:40: ( '2D' )
                    		        	// spinach.g:420:41: '2D'
                    		        	{
                    		        		string_literal192=(IToken)Match(input,50,FOLLOW_50_in_plotfunctions2363); 
                    		        			string_literal192_tree = (object)adaptor.Create(string_literal192);
                    		        			adaptor.AddChild(root_0, string_literal192_tree);

                    		        		retval.ret.setPlotType("2D");

                    		        	}


                    		        }
                    		        break;
                    		    case 3 :
                    		        // spinach.g:420:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        {
                    		        	// spinach.g:420:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        	// spinach.g:420:79: '3D' ( ',' (el3= int_literal ) )?
                    		        	{
                    		        		string_literal193=(IToken)Match(input,51,FOLLOW_51_in_plotfunctions2368); 
                    		        			string_literal193_tree = (object)adaptor.Create(string_literal193);
                    		        			adaptor.AddChild(root_0, string_literal193_tree);

                    		        		retval.ret.setPlotType("3D");
                    		        		// spinach.g:420:114: ( ',' (el3= int_literal ) )?
                    		        		int alt44 = 2;
                    		        		int LA44_0 = input.LA(1);

                    		        		if ( (LA44_0 == 31) )
                    		        		{
                    		        		    alt44 = 1;
                    		        		}
                    		        		switch (alt44) 
                    		        		{
                    		        		    case 1 :
                    		        		        // spinach.g:420:115: ',' (el3= int_literal )
                    		        		        {
                    		        		        	char_literal194=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2371); 
                    		        		        		char_literal194_tree = (object)adaptor.Create(char_literal194);
                    		        		        		adaptor.AddChild(root_0, char_literal194_tree);

                    		        		        	// spinach.g:420:118: (el3= int_literal )
                    		        		        	// spinach.g:420:119: el3= int_literal
                    		        		        	{
                    		        		        		PushFollow(FOLLOW_int_literal_in_plotfunctions2377);
                    		        		        		el3 = int_literal();
                    		        		        		state.followingStackPointer--;

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

                    		        		        	}


                    		        		        }
                    		        		        break;

                    		        		}


                    		        	}


                    		        }
                    		        break;

                    		}

                    		char_literal195=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2385); 
                    			char_literal195_tree = (object)adaptor.Create(char_literal195);
                    			adaptor.AddChild(root_0, char_literal195_tree);

                    		END_OF_STATEMENT196=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2386); 
                    			END_OF_STATEMENT196_tree = (object)adaptor.Create(END_OF_STATEMENT196);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT196_tree);


                    	}


                    }
                    break;
                case 3 :
                    // spinach.g:422:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:422:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                    	// spinach.g:422:4: 'resetPlot' '(' ')' END_OF_STATEMENT
                    	{
                    		string_literal197=(IToken)Match(input,53,FOLLOW_53_in_plotfunctions2392); 
                    			string_literal197_tree = (object)adaptor.Create(string_literal197);
                    			adaptor.AddChild(root_0, string_literal197_tree);

                    		char_literal198=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2393); 
                    			char_literal198_tree = (object)adaptor.Create(char_literal198);
                    			adaptor.AddChild(root_0, char_literal198_tree);

                    		char_literal199=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2394); 
                    			char_literal199_tree = (object)adaptor.Create(char_literal199);
                    			adaptor.AddChild(root_0, char_literal199_tree);

                    		retval.ret.setPlotFunction("resetPlot");
                    		END_OF_STATEMENT200=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2396); 
                    			END_OF_STATEMENT200_tree = (object)adaptor.Create(END_OF_STATEMENT200);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT200_tree);


                    	}


                    }
                    break;
                case 4 :
                    // spinach.g:423:3: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:423:3: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:423:4: 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ',' ) ( (el4= double_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal201=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2402); 
                    			string_literal201_tree = (object)adaptor.Create(string_literal201);
                    			adaptor.AddChild(root_0, string_literal201_tree);

                    		retval.ret.setPlotFunction("setPlotAxis");
                    		char_literal202=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2404); 
                    			char_literal202_tree = (object)adaptor.Create(char_literal202);
                    			adaptor.AddChild(root_0, char_literal202_tree);

                    		// spinach.g:424:1: (ell2= double_literal )
                    		// spinach.g:424:2: ell2= double_literal
                    		{
                    			PushFollow(FOLLOW_double_literal_in_plotfunctions2410);
                    			ell2 = double_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal203=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2413); 
                    			char_literal203_tree = (object)adaptor.Create(char_literal203);
                    			adaptor.AddChild(root_0, char_literal203_tree);

                    		// spinach.g:425:1: ( (ell3= double_literal ) ',' )
                    		// spinach.g:425:2: (ell3= double_literal ) ','
                    		{
                    			// spinach.g:425:2: (ell3= double_literal )
                    			// spinach.g:425:3: ell3= double_literal
                    			{
                    				PushFollow(FOLLOW_double_literal_in_plotfunctions2419);
                    				ell3 = double_literal();
                    				state.followingStackPointer--;

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

                    			}

                    			char_literal204=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2422); 
                    				char_literal204_tree = (object)adaptor.Create(char_literal204);
                    				adaptor.AddChild(root_0, char_literal204_tree);


                    		}

                    		// spinach.g:426:1: ( (el4= double_literal ) )
                    		// spinach.g:426:2: (el4= double_literal )
                    		{
                    			// spinach.g:426:2: (el4= double_literal )
                    			// spinach.g:426:3: el4= double_literal
                    			{
                    				PushFollow(FOLLOW_double_literal_in_plotfunctions2429);
                    				el4 = double_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal205=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2434); 
                    			char_literal205_tree = (object)adaptor.Create(char_literal205);
                    			adaptor.AddChild(root_0, char_literal205_tree);

                    		END_OF_STATEMENT206=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2435); 
                    			END_OF_STATEMENT206_tree = (object)adaptor.Create(END_OF_STATEMENT206);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT206_tree);


                    	}


                    }
                    break;
                case 5 :
                    // spinach.g:428:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:428:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:428:3: 'setPlotAxis' '(' (ell2= double_literal ) ',' ( (ell3= double_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal207=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2440); 
                    			string_literal207_tree = (object)adaptor.Create(string_literal207);
                    			adaptor.AddChild(root_0, string_literal207_tree);

                    		retval.ret.setPlotFunction("setPlotAxis");
                    		char_literal208=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2442); 
                    			char_literal208_tree = (object)adaptor.Create(char_literal208);
                    			adaptor.AddChild(root_0, char_literal208_tree);

                    		// spinach.g:429:1: (ell2= double_literal )
                    		// spinach.g:429:2: ell2= double_literal
                    		{
                    			PushFollow(FOLLOW_double_literal_in_plotfunctions2448);
                    			ell2 = double_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal209=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2451); 
                    			char_literal209_tree = (object)adaptor.Create(char_literal209);
                    			adaptor.AddChild(root_0, char_literal209_tree);

                    		// spinach.g:430:1: ( (ell3= double_literal ) )
                    		// spinach.g:430:2: (ell3= double_literal )
                    		{
                    			// spinach.g:430:2: (ell3= double_literal )
                    			// spinach.g:430:3: ell3= double_literal
                    			{
                    				PushFollow(FOLLOW_double_literal_in_plotfunctions2457);
                    				ell3 = double_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal210=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2462); 
                    			char_literal210_tree = (object)adaptor.Create(char_literal210);
                    			adaptor.AddChild(root_0, char_literal210_tree);

                    		END_OF_STATEMENT211=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2463); 
                    			END_OF_STATEMENT211_tree = (object)adaptor.Create(END_OF_STATEMENT211);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT211_tree);


                    	}


                    }
                    break;
                case 6 :
                    // spinach.g:432:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:432:2: ( 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT )
                    	// spinach.g:432:3: 'setPlotAxis' '(' (ell2= double_literal ) ')' END_OF_STATEMENT
                    	{
                    		string_literal212=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2468); 
                    			string_literal212_tree = (object)adaptor.Create(string_literal212);
                    			adaptor.AddChild(root_0, string_literal212_tree);

                    		retval.ret.setPlotFunction("setPlotAxis");
                    		char_literal213=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2470); 
                    			char_literal213_tree = (object)adaptor.Create(char_literal213);
                    			adaptor.AddChild(root_0, char_literal213_tree);

                    		// spinach.g:433:1: (ell2= double_literal )
                    		// spinach.g:433:2: ell2= double_literal
                    		{
                    			PushFollow(FOLLOW_double_literal_in_plotfunctions2476);
                    			ell2 = double_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal214=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2480); 
                    			char_literal214_tree = (object)adaptor.Create(char_literal214);
                    			adaptor.AddChild(root_0, char_literal214_tree);

                    		END_OF_STATEMENT215=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2481); 
                    			END_OF_STATEMENT215_tree = (object)adaptor.Create(END_OF_STATEMENT215);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT215_tree);


                    	}


                    }
                    break;
                case 7 :
                    // spinach.g:435:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:435:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:435:4: 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ',' ) ( (vl3= string_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal216=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2487); 
                    			string_literal216_tree = (object)adaptor.Create(string_literal216);
                    			adaptor.AddChild(root_0, string_literal216_tree);

                    		retval.ret.setPlotFunction("setAxisTitle");
                    		char_literal217=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2489); 
                    			char_literal217_tree = (object)adaptor.Create(char_literal217);
                    			adaptor.AddChild(root_0, char_literal217_tree);

                    		// spinach.g:436:1: (vl1= string_literal )
                    		// spinach.g:436:2: vl1= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2495);
                    			vl1 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal218=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2498); 
                    			char_literal218_tree = (object)adaptor.Create(char_literal218);
                    			adaptor.AddChild(root_0, char_literal218_tree);

                    		// spinach.g:437:1: ( (vl2= string_literal ) ',' )
                    		// spinach.g:437:2: (vl2= string_literal ) ','
                    		{
                    			// spinach.g:437:2: (vl2= string_literal )
                    			// spinach.g:437:3: vl2= string_literal
                    			{
                    				PushFollow(FOLLOW_string_literal_in_plotfunctions2505);
                    				vl2 = string_literal();
                    				state.followingStackPointer--;

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

                    			}

                    			char_literal219=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2508); 
                    				char_literal219_tree = (object)adaptor.Create(char_literal219);
                    				adaptor.AddChild(root_0, char_literal219_tree);


                    		}

                    		// spinach.g:438:1: ( (vl3= string_literal ) )
                    		// spinach.g:438:2: (vl3= string_literal )
                    		{
                    			// spinach.g:438:2: (vl3= string_literal )
                    			// spinach.g:438:3: vl3= string_literal
                    			{
                    				PushFollow(FOLLOW_string_literal_in_plotfunctions2516);
                    				vl3 = string_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal220=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2521); 
                    			char_literal220_tree = (object)adaptor.Create(char_literal220);
                    			adaptor.AddChild(root_0, char_literal220_tree);

                    		END_OF_STATEMENT221=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2522); 
                    			END_OF_STATEMENT221_tree = (object)adaptor.Create(END_OF_STATEMENT221);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT221_tree);


                    	}


                    }
                    break;
                case 8 :
                    // spinach.g:440:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:440:3: ( 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:440:4: 'setAxisTitle' '(' (vl1= string_literal ) ',' ( (vl2= string_literal ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal222=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2528); 
                    			string_literal222_tree = (object)adaptor.Create(string_literal222);
                    			adaptor.AddChild(root_0, string_literal222_tree);

                    		retval.ret.setPlotFunction("setAxisTitle");
                    		char_literal223=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2530); 
                    			char_literal223_tree = (object)adaptor.Create(char_literal223);
                    			adaptor.AddChild(root_0, char_literal223_tree);

                    		// spinach.g:441:1: (vl1= string_literal )
                    		// spinach.g:441:2: vl1= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2536);
                    			vl1 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal224=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2539); 
                    			char_literal224_tree = (object)adaptor.Create(char_literal224);
                    			adaptor.AddChild(root_0, char_literal224_tree);

                    		// spinach.g:442:1: ( (vl2= string_literal ) )
                    		// spinach.g:442:2: (vl2= string_literal )
                    		{
                    			// spinach.g:442:2: (vl2= string_literal )
                    			// spinach.g:442:3: vl2= string_literal
                    			{
                    				PushFollow(FOLLOW_string_literal_in_plotfunctions2546);
                    				vl2 = string_literal();
                    				state.followingStackPointer--;

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

                    			}


                    		}

                    		char_literal225=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2551); 
                    			char_literal225_tree = (object)adaptor.Create(char_literal225);
                    			adaptor.AddChild(root_0, char_literal225_tree);

                    		END_OF_STATEMENT226=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2552); 
                    			END_OF_STATEMENT226_tree = (object)adaptor.Create(END_OF_STATEMENT226);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT226_tree);


                    	}


                    }
                    break;
                case 9 :
                    // spinach.g:444:2: ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:444:2: ( 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT )
                    	// spinach.g:444:3: 'setAxisTitle' '(' (vl1= string_literal ) ')' END_OF_STATEMENT
                    	{
                    		string_literal227=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2557); 
                    			string_literal227_tree = (object)adaptor.Create(string_literal227);
                    			adaptor.AddChild(root_0, string_literal227_tree);

                    		retval.ret.setPlotFunction("setAxisTitle");
                    		char_literal228=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2559); 
                    			char_literal228_tree = (object)adaptor.Create(char_literal228);
                    			adaptor.AddChild(root_0, char_literal228_tree);

                    		// spinach.g:445:1: (vl1= string_literal )
                    		// spinach.g:445:2: vl1= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2565);
                    			vl1 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal229=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2569); 
                    			char_literal229_tree = (object)adaptor.Create(char_literal229);
                    			adaptor.AddChild(root_0, char_literal229_tree);

                    		END_OF_STATEMENT230=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2570); 
                    			END_OF_STATEMENT230_tree = (object)adaptor.Create(END_OF_STATEMENT230);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT230_tree);


                    	}


                    }
                    break;
                case 10 :
                    // spinach.g:447:2: ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:447:2: ( 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT )
                    	// spinach.g:447:3: 'setScaleMode' '(' SCALEMODE ')' END_OF_STATEMENT
                    	{
                    		string_literal231=(IToken)Match(input,56,FOLLOW_56_in_plotfunctions2575); 
                    			string_literal231_tree = (object)adaptor.Create(string_literal231);
                    			adaptor.AddChild(root_0, string_literal231_tree);

                    		char_literal232=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2576); 
                    			char_literal232_tree = (object)adaptor.Create(char_literal232);
                    			adaptor.AddChild(root_0, char_literal232_tree);

                    		retval.ret.setPlotFunction("setScaleMode");
                    		SCALEMODE233=(IToken)Match(input,SCALEMODE,FOLLOW_SCALEMODE_in_plotfunctions2579); 
                    			SCALEMODE233_tree = (object)adaptor.Create(SCALEMODE233);
                    			adaptor.AddChild(root_0, SCALEMODE233_tree);

                    		retval.ret.setScaleMode(SCALEMODE233.Text);
                    		char_literal234=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2583); 
                    			char_literal234_tree = (object)adaptor.Create(char_literal234);
                    			adaptor.AddChild(root_0, char_literal234_tree);

                    		END_OF_STATEMENT235=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2585); 
                    			END_OF_STATEMENT235_tree = (object)adaptor.Create(END_OF_STATEMENT235);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT235_tree);


                    	}


                    }
                    break;

            }
            retval.Stop = input.LT(-1);

            	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }
Beispiel #4
0
    // $ANTLR start "plotfunctions"
    // spinach.g:362:1: plotfunctions returns [PlotFunctionElement ret] : ( ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | 'setPlotAxis' '(' e112= double_literal ( ')' END_OF_STATEMENT | ',' e113= double_literal ( ')' END_OF_STATEMENT | ',' e114= double_literal ')' END_OF_STATEMENT ) ) | 'setAxisTitle' '(' v112= string_literal ( ')' END_OF_STATEMENT | ',' v113= string_literal ( ')' END_OF_STATEMENT | ',' v114= string_literal ')' END_OF_STATEMENT ) ) | ( 'setScaleMode(' SCALEMODE ')' END_OF_STATEMENT ) );
    public spinachParser.plotfunctions_return plotfunctions() // throws RecognitionException [1]
    {   
        spinachParser.plotfunctions_return retval = new spinachParser.plotfunctions_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal192 = null;
        IToken char_literal193 = null;
        IToken char_literal194 = null;
        IToken char_literal195 = null;
        IToken char_literal196 = null;
        IToken string_literal197 = null;
        IToken string_literal198 = null;
        IToken string_literal199 = null;
        IToken char_literal200 = null;
        IToken char_literal201 = null;
        IToken END_OF_STATEMENT202 = null;
        IToken string_literal203 = null;
        IToken char_literal204 = null;
        IToken char_literal205 = null;
        IToken char_literal206 = null;
        IToken string_literal207 = null;
        IToken string_literal208 = null;
        IToken string_literal209 = null;
        IToken char_literal210 = null;
        IToken char_literal211 = null;
        IToken END_OF_STATEMENT212 = null;
        IToken string_literal213 = null;
        IToken char_literal214 = null;
        IToken char_literal215 = null;
        IToken END_OF_STATEMENT216 = null;
        IToken string_literal217 = null;
        IToken char_literal218 = null;
        IToken char_literal219 = null;
        IToken END_OF_STATEMENT220 = null;
        IToken char_literal221 = null;
        IToken char_literal222 = null;
        IToken END_OF_STATEMENT223 = null;
        IToken char_literal224 = null;
        IToken char_literal225 = null;
        IToken END_OF_STATEMENT226 = null;
        IToken string_literal227 = null;
        IToken char_literal228 = null;
        IToken char_literal229 = null;
        IToken END_OF_STATEMENT230 = null;
        IToken char_literal231 = null;
        IToken char_literal232 = null;
        IToken END_OF_STATEMENT233 = null;
        IToken char_literal234 = null;
        IToken char_literal235 = null;
        IToken END_OF_STATEMENT236 = null;
        IToken string_literal237 = null;
        IToken SCALEMODE238 = null;
        IToken char_literal239 = null;
        IToken END_OF_STATEMENT240 = null;
        spinachParser.int_literal_return el1 = null;

        spinachParser.variable_return vll1 = null;

        spinachParser.string_literal_return vll2 = null;

        spinachParser.int_literal_return el3 = null;

        spinachParser.variable_return vll3 = null;

        spinachParser.string_literal_return vll4 = null;

        spinachParser.double_literal_return e112 = null;

        spinachParser.double_literal_return e113 = null;

        spinachParser.double_literal_return e114 = null;

        spinachParser.string_literal_return v112 = null;

        spinachParser.string_literal_return v113 = null;

        spinachParser.string_literal_return v114 = null;


        object string_literal192_tree=null;
        object char_literal193_tree=null;
        object char_literal194_tree=null;
        object char_literal195_tree=null;
        object char_literal196_tree=null;
        object string_literal197_tree=null;
        object string_literal198_tree=null;
        object string_literal199_tree=null;
        object char_literal200_tree=null;
        object char_literal201_tree=null;
        object END_OF_STATEMENT202_tree=null;
        object string_literal203_tree=null;
        object char_literal204_tree=null;
        object char_literal205_tree=null;
        object char_literal206_tree=null;
        object string_literal207_tree=null;
        object string_literal208_tree=null;
        object string_literal209_tree=null;
        object char_literal210_tree=null;
        object char_literal211_tree=null;
        object END_OF_STATEMENT212_tree=null;
        object string_literal213_tree=null;
        object char_literal214_tree=null;
        object char_literal215_tree=null;
        object END_OF_STATEMENT216_tree=null;
        object string_literal217_tree=null;
        object char_literal218_tree=null;
        object char_literal219_tree=null;
        object END_OF_STATEMENT220_tree=null;
        object char_literal221_tree=null;
        object char_literal222_tree=null;
        object END_OF_STATEMENT223_tree=null;
        object char_literal224_tree=null;
        object char_literal225_tree=null;
        object END_OF_STATEMENT226_tree=null;
        object string_literal227_tree=null;
        object char_literal228_tree=null;
        object char_literal229_tree=null;
        object END_OF_STATEMENT230_tree=null;
        object char_literal231_tree=null;
        object char_literal232_tree=null;
        object END_OF_STATEMENT233_tree=null;
        object char_literal234_tree=null;
        object char_literal235_tree=null;
        object END_OF_STATEMENT236_tree=null;
        object string_literal237_tree=null;
        object SCALEMODE238_tree=null;
        object char_literal239_tree=null;
        object END_OF_STATEMENT240_tree=null;

         retval.ret = new PlotFunctionElement();

        try 
    	{
            // spinach.g:365:1: ( ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT ) | ( 'resetPlot' '(' ')' END_OF_STATEMENT ) | 'setPlotAxis' '(' e112= double_literal ( ')' END_OF_STATEMENT | ',' e113= double_literal ( ')' END_OF_STATEMENT | ',' e114= double_literal ')' END_OF_STATEMENT ) ) | 'setAxisTitle' '(' v112= string_literal ( ')' END_OF_STATEMENT | ',' v113= string_literal ( ')' END_OF_STATEMENT | ',' v114= string_literal ')' END_OF_STATEMENT ) ) | ( 'setScaleMode(' SCALEMODE ')' END_OF_STATEMENT ) )
            int alt59 = 6;
            switch ( input.LA(1) ) 
            {
            case 47:
            	{
                alt59 = 1;
                }
                break;
            case 51:
            	{
                alt59 = 2;
                }
                break;
            case 52:
            	{
                alt59 = 3;
                }
                break;
            case 53:
            	{
                alt59 = 4;
                }
                break;
            case 54:
            	{
                alt59 = 5;
                }
                break;
            case 55:
            	{
                alt59 = 6;
                }
                break;
            	default:
            	    NoViableAltException nvae_d59s0 =
            	        new NoViableAltException("", 59, 0, input);

            	    throw nvae_d59s0;
            }

            switch (alt59) 
            {
                case 1 :
                    // spinach.g:366:2: ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:366:2: ( 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:366:3: 'subPlot' '(' (el1= int_literal ) ',' (vll1= variable ) ',' (vll2= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal192=(IToken)Match(input,47,FOLLOW_47_in_plotfunctions2150); 
                    			string_literal192_tree = (object)adaptor.Create(string_literal192);
                    			adaptor.AddChild(root_0, string_literal192_tree);

                    		retval.ret.setPlotFunction("subPlot");
                    		char_literal193=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2153); 
                    			char_literal193_tree = (object)adaptor.Create(char_literal193);
                    			adaptor.AddChild(root_0, char_literal193_tree);

                    		// spinach.g:367:1: (el1= int_literal )
                    		// spinach.g:367:2: el1= int_literal
                    		{
                    			PushFollow(FOLLOW_int_literal_in_plotfunctions2160);
                    			el1 = int_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal194=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2165); 
                    			char_literal194_tree = (object)adaptor.Create(char_literal194);
                    			adaptor.AddChild(root_0, char_literal194_tree);

                    		// spinach.g:368:1: (vll1= variable )
                    		// spinach.g:368:2: vll1= variable
                    		{
                    			PushFollow(FOLLOW_variable_in_plotfunctions2172);
                    			vll1 = variable();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal195=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2177); 
                    			char_literal195_tree = (object)adaptor.Create(char_literal195);
                    			adaptor.AddChild(root_0, char_literal195_tree);

                    		// spinach.g:369:1: (vll2= string_literal )
                    		// spinach.g:369:2: vll2= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2184);
                    			vll2 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal196=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2188); 
                    			char_literal196_tree = (object)adaptor.Create(char_literal196);
                    			adaptor.AddChild(root_0, char_literal196_tree);

                    		// spinach.g:370:1: ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) )
                    		int alt52 = 3;
                    		switch ( input.LA(1) ) 
                    		{
                    		case 48:
                    			{
                    		    alt52 = 1;
                    		    }
                    		    break;
                    		case 49:
                    			{
                    		    alt52 = 2;
                    		    }
                    		    break;
                    		case 50:
                    			{
                    		    alt52 = 3;
                    		    }
                    		    break;
                    			default:
                    			    NoViableAltException nvae_d52s0 =
                    			        new NoViableAltException("", 52, 0, input);

                    			    throw nvae_d52s0;
                    		}

                    		switch (alt52) 
                    		{
                    		    case 1 :
                    		        // spinach.g:370:2: ( '1D' )
                    		        {
                    		        	// spinach.g:370:2: ( '1D' )
                    		        	// spinach.g:370:3: '1D'
                    		        	{
                    		        		string_literal197=(IToken)Match(input,48,FOLLOW_48_in_plotfunctions2192); 
                    		        			string_literal197_tree = (object)adaptor.Create(string_literal197);
                    		        			adaptor.AddChild(root_0, string_literal197_tree);

                    		        		retval.ret.setPlotType("1D");

                    		        	}


                    		        }
                    		        break;
                    		    case 2 :
                    		        // spinach.g:370:40: ( '2D' )
                    		        {
                    		        	// spinach.g:370:40: ( '2D' )
                    		        	// spinach.g:370:41: '2D'
                    		        	{
                    		        		string_literal198=(IToken)Match(input,49,FOLLOW_49_in_plotfunctions2197); 
                    		        			string_literal198_tree = (object)adaptor.Create(string_literal198);
                    		        			adaptor.AddChild(root_0, string_literal198_tree);

                    		        		retval.ret.setPlotType("2D");

                    		        	}


                    		        }
                    		        break;
                    		    case 3 :
                    		        // spinach.g:370:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        {
                    		        	// spinach.g:370:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        	// spinach.g:370:79: '3D' ( ',' (el3= int_literal ) )?
                    		        	{
                    		        		string_literal199=(IToken)Match(input,50,FOLLOW_50_in_plotfunctions2202); 
                    		        			string_literal199_tree = (object)adaptor.Create(string_literal199);
                    		        			adaptor.AddChild(root_0, string_literal199_tree);

                    		        		retval.ret.setPlotType("3D");
                    		        		// spinach.g:370:114: ( ',' (el3= int_literal ) )?
                    		        		int alt51 = 2;
                    		        		int LA51_0 = input.LA(1);

                    		        		if ( (LA51_0 == 31) )
                    		        		{
                    		        		    alt51 = 1;
                    		        		}
                    		        		switch (alt51) 
                    		        		{
                    		        		    case 1 :
                    		        		        // spinach.g:370:115: ',' (el3= int_literal )
                    		        		        {
                    		        		        	char_literal200=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2205); 
                    		        		        		char_literal200_tree = (object)adaptor.Create(char_literal200);
                    		        		        		adaptor.AddChild(root_0, char_literal200_tree);

                    		        		        	// spinach.g:370:118: (el3= int_literal )
                    		        		        	// spinach.g:370:119: el3= int_literal
                    		        		        	{
                    		        		        		PushFollow(FOLLOW_int_literal_in_plotfunctions2211);
                    		        		        		el3 = int_literal();
                    		        		        		state.followingStackPointer--;

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

                    		        		        	}


                    		        		        }
                    		        		        break;

                    		        		}


                    		        	}


                    		        }
                    		        break;

                    		}

                    		char_literal201=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2219); 
                    			char_literal201_tree = (object)adaptor.Create(char_literal201);
                    			adaptor.AddChild(root_0, char_literal201_tree);

                    		END_OF_STATEMENT202=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2220); 
                    			END_OF_STATEMENT202_tree = (object)adaptor.Create(END_OF_STATEMENT202);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT202_tree);


                    	}


                    }
                    break;
                case 2 :
                    // spinach.g:372:3: ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:372:3: ( 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT )
                    	// spinach.g:372:4: 'plot' '(' (vll3= variable ) ',' (vll4= string_literal ) ',' ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) ) ')' END_OF_STATEMENT
                    	{
                    		string_literal203=(IToken)Match(input,51,FOLLOW_51_in_plotfunctions2226); 
                    			string_literal203_tree = (object)adaptor.Create(string_literal203);
                    			adaptor.AddChild(root_0, string_literal203_tree);

                    		retval.ret.setPlotFunction("plot");
                    		char_literal204=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2229); 
                    			char_literal204_tree = (object)adaptor.Create(char_literal204);
                    			adaptor.AddChild(root_0, char_literal204_tree);

                    		// spinach.g:373:1: (vll3= variable )
                    		// spinach.g:373:2: vll3= variable
                    		{
                    			PushFollow(FOLLOW_variable_in_plotfunctions2235);
                    			vll3 = variable();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal205=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2240); 
                    			char_literal205_tree = (object)adaptor.Create(char_literal205);
                    			adaptor.AddChild(root_0, char_literal205_tree);

                    		// spinach.g:374:1: (vll4= string_literal )
                    		// spinach.g:374:2: vll4= string_literal
                    		{
                    			PushFollow(FOLLOW_string_literal_in_plotfunctions2246);
                    			vll4 = string_literal();
                    			state.followingStackPointer--;

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

                    		}

                    		char_literal206=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2250); 
                    			char_literal206_tree = (object)adaptor.Create(char_literal206);
                    			adaptor.AddChild(root_0, char_literal206_tree);

                    		// spinach.g:375:1: ( ( '1D' ) | ( '2D' ) | ( '3D' ( ',' (el3= int_literal ) )? ) )
                    		int alt54 = 3;
                    		switch ( input.LA(1) ) 
                    		{
                    		case 48:
                    			{
                    		    alt54 = 1;
                    		    }
                    		    break;
                    		case 49:
                    			{
                    		    alt54 = 2;
                    		    }
                    		    break;
                    		case 50:
                    			{
                    		    alt54 = 3;
                    		    }
                    		    break;
                    			default:
                    			    NoViableAltException nvae_d54s0 =
                    			        new NoViableAltException("", 54, 0, input);

                    			    throw nvae_d54s0;
                    		}

                    		switch (alt54) 
                    		{
                    		    case 1 :
                    		        // spinach.g:375:2: ( '1D' )
                    		        {
                    		        	// spinach.g:375:2: ( '1D' )
                    		        	// spinach.g:375:3: '1D'
                    		        	{
                    		        		string_literal207=(IToken)Match(input,48,FOLLOW_48_in_plotfunctions2254); 
                    		        			string_literal207_tree = (object)adaptor.Create(string_literal207);
                    		        			adaptor.AddChild(root_0, string_literal207_tree);

                    		        		retval.ret.setPlotType("1D");

                    		        	}


                    		        }
                    		        break;
                    		    case 2 :
                    		        // spinach.g:375:40: ( '2D' )
                    		        {
                    		        	// spinach.g:375:40: ( '2D' )
                    		        	// spinach.g:375:41: '2D'
                    		        	{
                    		        		string_literal208=(IToken)Match(input,49,FOLLOW_49_in_plotfunctions2259); 
                    		        			string_literal208_tree = (object)adaptor.Create(string_literal208);
                    		        			adaptor.AddChild(root_0, string_literal208_tree);

                    		        		retval.ret.setPlotType("2D");

                    		        	}


                    		        }
                    		        break;
                    		    case 3 :
                    		        // spinach.g:375:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        {
                    		        	// spinach.g:375:78: ( '3D' ( ',' (el3= int_literal ) )? )
                    		        	// spinach.g:375:79: '3D' ( ',' (el3= int_literal ) )?
                    		        	{
                    		        		string_literal209=(IToken)Match(input,50,FOLLOW_50_in_plotfunctions2264); 
                    		        			string_literal209_tree = (object)adaptor.Create(string_literal209);
                    		        			adaptor.AddChild(root_0, string_literal209_tree);

                    		        		retval.ret.setPlotType("3D");
                    		        		// spinach.g:375:114: ( ',' (el3= int_literal ) )?
                    		        		int alt53 = 2;
                    		        		int LA53_0 = input.LA(1);

                    		        		if ( (LA53_0 == 31) )
                    		        		{
                    		        		    alt53 = 1;
                    		        		}
                    		        		switch (alt53) 
                    		        		{
                    		        		    case 1 :
                    		        		        // spinach.g:375:115: ',' (el3= int_literal )
                    		        		        {
                    		        		        	char_literal210=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2267); 
                    		        		        		char_literal210_tree = (object)adaptor.Create(char_literal210);
                    		        		        		adaptor.AddChild(root_0, char_literal210_tree);

                    		        		        	// spinach.g:375:118: (el3= int_literal )
                    		        		        	// spinach.g:375:119: el3= int_literal
                    		        		        	{
                    		        		        		PushFollow(FOLLOW_int_literal_in_plotfunctions2273);
                    		        		        		el3 = int_literal();
                    		        		        		state.followingStackPointer--;

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

                    		        		        	}


                    		        		        }
                    		        		        break;

                    		        		}


                    		        	}


                    		        }
                    		        break;

                    		}

                    		char_literal211=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2281); 
                    			char_literal211_tree = (object)adaptor.Create(char_literal211);
                    			adaptor.AddChild(root_0, char_literal211_tree);

                    		END_OF_STATEMENT212=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2282); 
                    			END_OF_STATEMENT212_tree = (object)adaptor.Create(END_OF_STATEMENT212);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT212_tree);


                    	}


                    }
                    break;
                case 3 :
                    // spinach.g:377:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:377:3: ( 'resetPlot' '(' ')' END_OF_STATEMENT )
                    	// spinach.g:377:4: 'resetPlot' '(' ')' END_OF_STATEMENT
                    	{
                    		string_literal213=(IToken)Match(input,52,FOLLOW_52_in_plotfunctions2288); 
                    			string_literal213_tree = (object)adaptor.Create(string_literal213);
                    			adaptor.AddChild(root_0, string_literal213_tree);

                    		char_literal214=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2289); 
                    			char_literal214_tree = (object)adaptor.Create(char_literal214);
                    			adaptor.AddChild(root_0, char_literal214_tree);

                    		char_literal215=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2290); 
                    			char_literal215_tree = (object)adaptor.Create(char_literal215);
                    			adaptor.AddChild(root_0, char_literal215_tree);

                    		retval.ret.setPlotFunction("resetPlot");
                    		END_OF_STATEMENT216=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2292); 
                    			END_OF_STATEMENT216_tree = (object)adaptor.Create(END_OF_STATEMENT216);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT216_tree);


                    	}


                    }
                    break;
                case 4 :
                    // spinach.g:378:2: 'setPlotAxis' '(' e112= double_literal ( ')' END_OF_STATEMENT | ',' e113= double_literal ( ')' END_OF_STATEMENT | ',' e114= double_literal ')' END_OF_STATEMENT ) )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	string_literal217=(IToken)Match(input,53,FOLLOW_53_in_plotfunctions2296); 
                    		string_literal217_tree = (object)adaptor.Create(string_literal217);
                    		adaptor.AddChild(root_0, string_literal217_tree);

                    	retval.ret.setPlotFunction("setPlotAxis");
                    	char_literal218=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2300); 
                    		char_literal218_tree = (object)adaptor.Create(char_literal218);
                    		adaptor.AddChild(root_0, char_literal218_tree);

                    	PushFollow(FOLLOW_double_literal_in_plotfunctions2307);
                    	e112 = double_literal();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, e112.Tree);
                    	retval.ret.setXFact(((e112 != null) ? e112.ret : null));
                    	// spinach.g:380:2: ( ')' END_OF_STATEMENT | ',' e113= double_literal ( ')' END_OF_STATEMENT | ',' e114= double_literal ')' END_OF_STATEMENT ) )
                    	int alt56 = 2;
                    	int LA56_0 = input.LA(1);

                    	if ( (LA56_0 == RIGHTBRACE) )
                    	{
                    	    alt56 = 1;
                    	}
                    	else if ( (LA56_0 == 31) )
                    	{
                    	    alt56 = 2;
                    	}
                    	else 
                    	{
                    	    NoViableAltException nvae_d56s0 =
                    	        new NoViableAltException("", 56, 0, input);

                    	    throw nvae_d56s0;
                    	}
                    	switch (alt56) 
                    	{
                    	    case 1 :
                    	        // spinach.g:380:3: ')' END_OF_STATEMENT
                    	        {
                    	        	char_literal219=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2312); 
                    	        		char_literal219_tree = (object)adaptor.Create(char_literal219);
                    	        		adaptor.AddChild(root_0, char_literal219_tree);

                    	        	END_OF_STATEMENT220=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2314); 
                    	        		END_OF_STATEMENT220_tree = (object)adaptor.Create(END_OF_STATEMENT220);
                    	        		adaptor.AddChild(root_0, END_OF_STATEMENT220_tree);


                    	        }
                    	        break;
                    	    case 2 :
                    	        // spinach.g:380:24: ',' e113= double_literal ( ')' END_OF_STATEMENT | ',' e114= double_literal ')' END_OF_STATEMENT )
                    	        {
                    	        	char_literal221=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2316); 
                    	        		char_literal221_tree = (object)adaptor.Create(char_literal221);
                    	        		adaptor.AddChild(root_0, char_literal221_tree);

                    	        	PushFollow(FOLLOW_double_literal_in_plotfunctions2321);
                    	        	e113 = double_literal();
                    	        	state.followingStackPointer--;

                    	        	adaptor.AddChild(root_0, e113.Tree);
                    	        	retval.ret.setYFact(((e113 != null) ? e113.ret : null));
                    	        	// spinach.g:380:81: ( ')' END_OF_STATEMENT | ',' e114= double_literal ')' END_OF_STATEMENT )
                    	        	int alt55 = 2;
                    	        	int LA55_0 = input.LA(1);

                    	        	if ( (LA55_0 == RIGHTBRACE) )
                    	        	{
                    	        	    alt55 = 1;
                    	        	}
                    	        	else if ( (LA55_0 == 31) )
                    	        	{
                    	        	    alt55 = 2;
                    	        	}
                    	        	else 
                    	        	{
                    	        	    NoViableAltException nvae_d55s0 =
                    	        	        new NoViableAltException("", 55, 0, input);

                    	        	    throw nvae_d55s0;
                    	        	}
                    	        	switch (alt55) 
                    	        	{
                    	        	    case 1 :
                    	        	        // spinach.g:380:82: ')' END_OF_STATEMENT
                    	        	        {
                    	        	        	char_literal222=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2324); 
                    	        	        		char_literal222_tree = (object)adaptor.Create(char_literal222);
                    	        	        		adaptor.AddChild(root_0, char_literal222_tree);

                    	        	        	END_OF_STATEMENT223=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2325); 
                    	        	        		END_OF_STATEMENT223_tree = (object)adaptor.Create(END_OF_STATEMENT223);
                    	        	        		adaptor.AddChild(root_0, END_OF_STATEMENT223_tree);


                    	        	        }
                    	        	        break;
                    	        	    case 2 :
                    	        	        // spinach.g:380:102: ',' e114= double_literal ')' END_OF_STATEMENT
                    	        	        {
                    	        	        	char_literal224=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2327); 
                    	        	        		char_literal224_tree = (object)adaptor.Create(char_literal224);
                    	        	        		adaptor.AddChild(root_0, char_literal224_tree);

                    	        	        	PushFollow(FOLLOW_double_literal_in_plotfunctions2332);
                    	        	        	e114 = double_literal();
                    	        	        	state.followingStackPointer--;

                    	        	        	adaptor.AddChild(root_0, e114.Tree);
                    	        	        	retval.ret.setZFact(((e114 != null) ? e114.ret : null));
                    	        	        	char_literal225=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2335); 
                    	        	        		char_literal225_tree = (object)adaptor.Create(char_literal225);
                    	        	        		adaptor.AddChild(root_0, char_literal225_tree);

                    	        	        	END_OF_STATEMENT226=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2337); 
                    	        	        		END_OF_STATEMENT226_tree = (object)adaptor.Create(END_OF_STATEMENT226);
                    	        	        		adaptor.AddChild(root_0, END_OF_STATEMENT226_tree);


                    	        	        }
                    	        	        break;

                    	        	}


                    	        }
                    	        break;

                    	}


                    }
                    break;
                case 5 :
                    // spinach.g:381:2: 'setAxisTitle' '(' v112= string_literal ( ')' END_OF_STATEMENT | ',' v113= string_literal ( ')' END_OF_STATEMENT | ',' v114= string_literal ')' END_OF_STATEMENT ) )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	string_literal227=(IToken)Match(input,54,FOLLOW_54_in_plotfunctions2342); 
                    		string_literal227_tree = (object)adaptor.Create(string_literal227);
                    		adaptor.AddChild(root_0, string_literal227_tree);

                    	retval.ret.setPlotFunction("setAxisTitle");
                    	char_literal228=(IToken)Match(input,LEFTBRACE,FOLLOW_LEFTBRACE_in_plotfunctions2346); 
                    		char_literal228_tree = (object)adaptor.Create(char_literal228);
                    		adaptor.AddChild(root_0, char_literal228_tree);

                    	PushFollow(FOLLOW_string_literal_in_plotfunctions2353);
                    	v112 = string_literal();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, v112.Tree);
                    	retval.ret.setXTitle(((v112 != null) ? v112.ret : null));
                    	// spinach.g:383:2: ( ')' END_OF_STATEMENT | ',' v113= string_literal ( ')' END_OF_STATEMENT | ',' v114= string_literal ')' END_OF_STATEMENT ) )
                    	int alt58 = 2;
                    	int LA58_0 = input.LA(1);

                    	if ( (LA58_0 == RIGHTBRACE) )
                    	{
                    	    alt58 = 1;
                    	}
                    	else if ( (LA58_0 == 31) )
                    	{
                    	    alt58 = 2;
                    	}
                    	else 
                    	{
                    	    NoViableAltException nvae_d58s0 =
                    	        new NoViableAltException("", 58, 0, input);

                    	    throw nvae_d58s0;
                    	}
                    	switch (alt58) 
                    	{
                    	    case 1 :
                    	        // spinach.g:383:3: ')' END_OF_STATEMENT
                    	        {
                    	        	char_literal229=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2358); 
                    	        		char_literal229_tree = (object)adaptor.Create(char_literal229);
                    	        		adaptor.AddChild(root_0, char_literal229_tree);

                    	        	END_OF_STATEMENT230=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2360); 
                    	        		END_OF_STATEMENT230_tree = (object)adaptor.Create(END_OF_STATEMENT230);
                    	        		adaptor.AddChild(root_0, END_OF_STATEMENT230_tree);


                    	        }
                    	        break;
                    	    case 2 :
                    	        // spinach.g:383:24: ',' v113= string_literal ( ')' END_OF_STATEMENT | ',' v114= string_literal ')' END_OF_STATEMENT )
                    	        {
                    	        	char_literal231=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2362); 
                    	        		char_literal231_tree = (object)adaptor.Create(char_literal231);
                    	        		adaptor.AddChild(root_0, char_literal231_tree);

                    	        	PushFollow(FOLLOW_string_literal_in_plotfunctions2367);
                    	        	v113 = string_literal();
                    	        	state.followingStackPointer--;

                    	        	adaptor.AddChild(root_0, v113.Tree);
                    	        	retval.ret.setYTitle(((v113 != null) ? v113.ret : null));
                    	        	// spinach.g:383:82: ( ')' END_OF_STATEMENT | ',' v114= string_literal ')' END_OF_STATEMENT )
                    	        	int alt57 = 2;
                    	        	int LA57_0 = input.LA(1);

                    	        	if ( (LA57_0 == RIGHTBRACE) )
                    	        	{
                    	        	    alt57 = 1;
                    	        	}
                    	        	else if ( (LA57_0 == 31) )
                    	        	{
                    	        	    alt57 = 2;
                    	        	}
                    	        	else 
                    	        	{
                    	        	    NoViableAltException nvae_d57s0 =
                    	        	        new NoViableAltException("", 57, 0, input);

                    	        	    throw nvae_d57s0;
                    	        	}
                    	        	switch (alt57) 
                    	        	{
                    	        	    case 1 :
                    	        	        // spinach.g:383:83: ')' END_OF_STATEMENT
                    	        	        {
                    	        	        	char_literal232=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2370); 
                    	        	        		char_literal232_tree = (object)adaptor.Create(char_literal232);
                    	        	        		adaptor.AddChild(root_0, char_literal232_tree);

                    	        	        	END_OF_STATEMENT233=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2371); 
                    	        	        		END_OF_STATEMENT233_tree = (object)adaptor.Create(END_OF_STATEMENT233);
                    	        	        		adaptor.AddChild(root_0, END_OF_STATEMENT233_tree);


                    	        	        }
                    	        	        break;
                    	        	    case 2 :
                    	        	        // spinach.g:383:103: ',' v114= string_literal ')' END_OF_STATEMENT
                    	        	        {
                    	        	        	char_literal234=(IToken)Match(input,31,FOLLOW_31_in_plotfunctions2373); 
                    	        	        		char_literal234_tree = (object)adaptor.Create(char_literal234);
                    	        	        		adaptor.AddChild(root_0, char_literal234_tree);

                    	        	        	PushFollow(FOLLOW_string_literal_in_plotfunctions2378);
                    	        	        	v114 = string_literal();
                    	        	        	state.followingStackPointer--;

                    	        	        	adaptor.AddChild(root_0, v114.Tree);
                    	        	        	retval.ret.setZTitle(((v114 != null) ? v114.ret : null));
                    	        	        	char_literal235=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2381); 
                    	        	        		char_literal235_tree = (object)adaptor.Create(char_literal235);
                    	        	        		adaptor.AddChild(root_0, char_literal235_tree);

                    	        	        	END_OF_STATEMENT236=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2383); 
                    	        	        		END_OF_STATEMENT236_tree = (object)adaptor.Create(END_OF_STATEMENT236);
                    	        	        		adaptor.AddChild(root_0, END_OF_STATEMENT236_tree);


                    	        	        }
                    	        	        break;

                    	        	}


                    	        }
                    	        break;

                    	}


                    }
                    break;
                case 6 :
                    // spinach.g:384:2: ( 'setScaleMode(' SCALEMODE ')' END_OF_STATEMENT )
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	// spinach.g:384:2: ( 'setScaleMode(' SCALEMODE ')' END_OF_STATEMENT )
                    	// spinach.g:384:3: 'setScaleMode(' SCALEMODE ')' END_OF_STATEMENT
                    	{
                    		string_literal237=(IToken)Match(input,55,FOLLOW_55_in_plotfunctions2389); 
                    			string_literal237_tree = (object)adaptor.Create(string_literal237);
                    			adaptor.AddChild(root_0, string_literal237_tree);

                    		retval.ret.setPlotFunction("setScaleMode");
                    		SCALEMODE238=(IToken)Match(input,SCALEMODE,FOLLOW_SCALEMODE_in_plotfunctions2392); 
                    			SCALEMODE238_tree = (object)adaptor.Create(SCALEMODE238);
                    			adaptor.AddChild(root_0, SCALEMODE238_tree);

                    		retval.ret.setScaleMode(SCALEMODE238.Text);
                    		char_literal239=(IToken)Match(input,RIGHTBRACE,FOLLOW_RIGHTBRACE_in_plotfunctions2396); 
                    			char_literal239_tree = (object)adaptor.Create(char_literal239);
                    			adaptor.AddChild(root_0, char_literal239_tree);

                    		END_OF_STATEMENT240=(IToken)Match(input,END_OF_STATEMENT,FOLLOW_END_OF_STATEMENT_in_plotfunctions2398); 
                    			END_OF_STATEMENT240_tree = (object)adaptor.Create(END_OF_STATEMENT240);
                    			adaptor.AddChild(root_0, END_OF_STATEMENT240_tree);


                    	}


                    }
                    break;

            }
            retval.Stop = input.LT(-1);

            	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }