Пример #1
0
        public static async Task EncodeImages(FileInfo[] files, IF format, int qMin, int qMax, bool deleteSource)
        {
            Program.PreProcessing();
            int maxThreads = await Config.GetInt("procThreads");

            List <Task> runningTasks = new List <Task>();
            int         done         = 0;

            foreach (FileInfo file in files)
            {
                while (runningTasks.Count >= maxThreads)
                {
                    await Task.Delay(100);

                    runningTasks = MtUtils.RemoveCompletedTasks(runningTasks, ref done);
                }

                Task newTask = Task.Run(() => EncodeImage(file, format, qMin, qMax, deleteSource));
                runningTasks.Add(newTask);

                Program.ShowProgress("", done, files.Length);
            }

            while (runningTasks.Count > 0)
            {
                Program.ShowProgress("", done, files.Length);
                runningTasks = MtUtils.RemoveCompletedTasks(runningTasks, ref done);
                await Task.Delay(500);
            }

            Program.PostProcessing(files.Length, true);
        }
        public override string ToString()
        {
            s = (IF)base.Tag;

            Binding myBinding = new Binding("result");
            myBinding.Mode = BindingMode.TwoWay;
            myBinding.Source = s;
            txtres.SetBinding(TextBox.TextProperty, myBinding);

            Binding myBinding2 = new Binding("condition");
            myBinding2.Mode = BindingMode.TwoWay;
            myBinding2.Source = s;
            txtexp.SetBinding(TextBox.TextProperty, myBinding2);

            Binding myBinding3 = new Binding("res1");
            myBinding3.Mode = BindingMode.TwoWay;
            myBinding3.Source = s;
            txttrue.SetBinding(TextBox.TextProperty, myBinding3);

            Binding myBinding4 = new Binding("res2");
            myBinding4.Mode = BindingMode.TwoWay;
            myBinding4.Source = s;
            txtfalse.SetBinding(TextBox.TextProperty, myBinding4);

            Binding descbinding = new Binding("Description");
            descbinding.Mode = BindingMode.TwoWay;
            descbinding.Source = s;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);

            return base.ToString();
        }
Пример #3
0
        public void Polymorphic_UpCastTest()
        {
            var grainFullName = typeof(PolymorphicTestGrain).FullName;
            IC  ICRef         = GrainClient.GrainFactory.GetGrain <IC>(GetRandomGrainId(), grainFullName);
            IA  IARef         = ICRef; // cast to polymorphic interface

            Assert.AreEqual("A1", IARef.A1Method().Result);
            Assert.AreEqual("A2", IARef.A2Method().Result);
            Assert.AreEqual("A3", IARef.A3Method().Result);

            IB IBRef = ICRef; // cast to polymorphic interface

            Assert.AreEqual("B1", IBRef.B1Method().Result);
            Assert.AreEqual("B2", IBRef.B2Method().Result);
            Assert.AreEqual("B3", IBRef.B3Method().Result);

            IF IFRef = GrainClient.GrainFactory.GetGrain <IF>(GetRandomGrainId(), grainFullName);

            Assert.AreEqual("F1", IFRef.F1Method().Result);
            Assert.AreEqual("F2", IFRef.F2Method().Result);
            Assert.AreEqual("F3", IFRef.F3Method().Result);

            IE IERef = IFRef; // cast to polymorphic interface

            Assert.AreEqual("E1", IERef.E1Method().Result);
            Assert.AreEqual("E2", IERef.E2Method().Result);
            Assert.AreEqual("E3", IERef.E3Method().Result);
        }
Пример #4
0
        /// <summary>
        /// this function calculates intensity factor by accepting NP, IF and FTP
        /// </summary>
        /// <returns>returns intensity factor of a string data type</returns>
        public string CalculateIntensityFactor()
        {
            double IF1 = NP / FTP;

            IF = Math.Round(IF1, 2);

            return(IF.ToString());
        }
Пример #5
0
        static void InitIF()
        {
            var Es = new List<IF>();
            //var Es_spiketime = new List<double>();
            //var EsInput_spiketime = new List<double>();
            //for (int i = 0; i < 100; i++)
            //{
            //    Es_spiketime.Add(0);
            //}
            //for (int i = 0; i < 100; i++)
            //{
            //    EsInput_spiketime.Add(i * 0.5);
            //}
            int N = 100;
            for (int i = 0; i < N; i++)
            {
                Es.Add(new IF("IF:" + (i + 1), -50, -60.1, 1, -56, 10, 1, -60) { ParentNetwork = network, Position = new Point3D(-100 + (i * 2), 0, 0) });
            }

            var I = new IF("IF:" + (N + 1), -50, -60.1, 1, -56, 10, 1, -60) { ParentNetwork = network, Position = new Point3D(0, -10, 0) };

            var Es_Input = new IF("IF:" + (N + 2), -50, 1, 0.05, 10, 1, 1, 1) { ParentNetwork = network, Position = new Point3D(0, 10, 0) };

            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    if (i != j)
                    {
                        Es[i].ProjectedFrom(Es[j], new SpikeWeightSynapse(Es[j], 10 * CoreFunc.Gauss((j - i), 0, 3), 1));
                    }
                }

                Es[i].ProjectedFrom(I, new SpikeWeightSynapse(I, -5, 1));
                Es[i].ProjectTo(I, new SpikeWeightSynapse(Es[i], 2, 1));
                //Es_Input.ProjectTo(I, new WeightSynapse(I, -0.2,0.1));
            }
            for (int i = 45; i < 55; i++)
            {

                Es[i].ProjectedFrom(Es_Input, new SpikeWeightSynapse(Es_Input, 10 * CoreFunc.Gauss(i, 49.5, 3), 0.5));
            }

            for (int i = 5; i < 15; i++)
            {

                Es[i].ProjectedFrom(Es_Input, new SpikeWeightSynapse(Es_Input, 10 * CoreFunc.Gauss(i, 9.5, 3), 0.5));

            }
            for (int i = 85; i < 95; i++)
            {

                Es[i].ProjectedFrom(Es_Input, new SpikeWeightSynapse(Es_Input, 10 * CoreFunc.Gauss(i, 89.5, 3), 0.5));
            }
        }
Пример #6
0
        public void WhenAGenericInterfaceIsSearchedFor_ThenToCorrenspondingGenericImplementationIsResolved()
        {
            // Act
            var     rootObject = TabObject.Resolve <IA>();
            IG <IF> control    = rootObject.Find <IG <IF> >();
            IF      item       = control.Item;

            // Check
            Assert.AreEqual(typeof(G <IF>), control.GetType());
            Assert.AreEqual(typeof(F), control.Item.GetType());
        }
        public async Task <IEnumerable <DashboardMostReservedDays> > GetMostReservedDays()
        {
            try
            {
                using var con = new SqlConnection(_configuration["DefaultConnection"]);
                {
                    var reservationTopList = new List <DashboardMostReservedDays>();
                    var sqlCmd             = @$ "create Table #tmpDashboard (Quantity int, ReservationDay date)
                            declare @Initialday date = (Select Top 1 Reservation.InitialDate
                                                        From Reservation
                                                        order by Reservation.InitialDate asc);
                            declare @Lastday date = (Select Top 1 Reservation.FinalDate
                                                     From Reservation
                                                     order by Reservation.FinalDate desc);
                            Begin
                                While @Initialday <= @Lastday
                                Begin
                                    Insert into #tmpDashboard (Quantity,ReservationDay) values ((Select count(Reservation.Id) 
                                                                                                 From Reservation 
                                                                                                 where Reservation.InitialDate <= @Initialday 
                                                                                                 and @Initialday <= Reservation.FinalDate), @Initialday)
                                    IF @Initialday = @Lastday
                                        Break;
                                    Set @initialday = dateadd(dd,1,@initialday);
                                END;
                            END;
                            SELECT Top 5 Quantity, ReservationDay
                            From #tmpDashboard
                            Order By Quantity Desc;";

                    using (SqlCommand cmd = new SqlCommand(sqlCmd, con))
                    {
                        cmd.CommandType = CommandType.Text;
                        con.Open();

                        var reader = cmd.ExecuteReader();

                        while (await reader.ReadAsync())
                        {
                            var reservation = new DashboardMostReservedDays(reader["ReservationDay"].ToString(), reader["Quantity"].ToString());

                            reservationTopList.Add(reservation);
                        }
                        return(reservationTopList);
                    }
                }
            }

            catch (SqlException ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #8
0
        public static IEnumerable <Type> AllInterfaces(this Type target)
        {
            foreach (var IF in target.GetInterfaces())
            {
                yield return(IF);

                foreach (var childIF in IF.AllInterfaces())
                {
                    yield return(childIF);
                }
            }
        }
Пример #9
0
        public static IEnumerable <Type> AllInterfaces(this Type target)
        {
            Type[] interfaces = target.GetInterfaces();
            foreach (Type IF in interfaces)
            {
                yield return(IF);

                foreach (Type item in IF.AllInterfaces())
                {
                    yield return(item);
                }
            }
        }
Пример #10
0
        private void Calculate_Click(object sender, EventArgs e)
        {
            //Declare Swimmer's Label, so we can write the Swimmer's Name, and store it with his/her proper Data

            string swimmerName;

            swimmerName = Console.ReadLine();

            swimmerName = lblSwimerName.ToString();

            //Declarations

            double longDistance;
            double longTime;
            double shortDistance;
            double shortTime;

            double workoutDistance;
            double workingTime;

            double CSS; //Critical Swim Speed
            double NSS; //Normalized Swim Speed
            double IF;  //Intensity Factor
            double TSS; //Training Stress Score

            //Inputs
            //This 4 lines (with code) are used to calculate the CSS
            longDistance = double.Parse(lblLongerDistance.Text);
            longTime     = double.Parse(lblLongerTime.Text);

            shortDistance = double.Parse(lblShorterDistance.Text);
            shortTime     = double.Parse(lblShorterTime.Text);

            //This 2 lines of code are used to calculate the NSS
            workoutDistance = double.Parse(lblWorkoutDistance.Text);
            workingTime     = double.Parse(lblWorkingTime.Text);

            //Processing

            CSS = (longDistance - shortDistance) / (longTime - shortTime); //Calculates the CSS
            NSS = (workoutDistance / workingTime);                         //Calculates tge NSS
            IF  = (NSS / CSS);                                             //Calculates the IF
            TSS = ((Math.Pow(IF, 3)) * (workingTime / 3600) * 100);        //Calculates the TSS

            //OutPut

            lblCSS.Text = CSS.ToString();
            lblNSS.Text = NSS.ToString();
            lblIF.Text  = IF.ToString();
            lblTSS.Text = TSS.ToString();
        }
Пример #11
0
        protected override void Visit_IF(IF node)
        {
            GNode gnode = new GNode(node, last, this);
            GNode next  = new GNode(null, null, this);

            for (int i = 0; i < node.Alternatives.Length; i++)
            {
                last = gnode;
                Visit(node.Alternatives[i]);
                if (last != null)
                {
                    last.successors.AddLast(next);
                }
            }
            last = next;
        }
Пример #12
0
 static async Task EncodeImage(FileInfo file, IF format, int qMin, int qMax, bool deleteSource)
 {
     if (format == IF.JPG)
     {
         await ConvertUtils.ConvertToJpeg(file.FullName, qMin, qMax, deleteSource);
     }
     if (format == IF.PNG)
     {
         await ConvertUtils.ConvertToPng(file.FullName, qMin, deleteSource);
     }
     if (format == IF.WEBP)
     {
         await ConvertUtils.ConvertToWebp(file.FullName, qMin, qMax, deleteSource);
     }
     if (format == IF.BMP)
     {
         await ConvertUtils.ConvertToBmp(file.FullName, deleteSource);
     }
     if (format == IF.DDS)
     {
         await ConvertUtils.ConvertToDds(file.FullName, qMin, qMax, deleteSource);
     }
     if (format == IF.TGA)
     {
         await ConvertUtils.ConvertToTga(file.FullName, deleteSource);
     }
     if (format == IF.J2K)
     {
         await ConvertUtils.ConvertToJpeg2000(file.FullName, qMin, deleteSource);
     }
     if (format == IF.AVIF)
     {
         await ConvertUtils.ConvertToAvif(file.FullName, qMin, deleteSource);
     }
     if (format == IF.FLIF)
     {
         await ConvertUtils.ConvertToFlif(file.FullName, qMin, deleteSource);
     }
     if (format == IF.HEIF)
     {
         await ConvertUtils.ConvertToHeif(file.FullName, qMin, deleteSource);
     }
     if (format == IF.JXL)
     {
         await ConvertUtils.ConvertToJxl(file.FullName, qMin, qMax, deleteSource);
     }
 }
Пример #13
0
        public void Polymorphic__DerivedServiceType()
        {
            var grainFullName = typeof(DerivedServiceType).FullName;
            IDerivedServiceType derivedRef = GrainClient.GrainFactory.GetGrain <IDerivedServiceType>(GetRandomGrainId(), grainFullName);

            IA IARef = derivedRef;

            Assert.AreEqual("A1", IARef.A1Method().Result);
            Assert.AreEqual("A2", IARef.A2Method().Result);
            Assert.AreEqual("A3", IARef.A3Method().Result);


            IB IBRef = (IB)IARef; // this could result in an invalid cast exception but it shoudn't because we have a priori knowledge that DerivedServiceType implements the interface

            Assert.AreEqual("B1", IBRef.B1Method().Result);
            Assert.AreEqual("B2", IBRef.B2Method().Result);
            Assert.AreEqual("B3", IBRef.B3Method().Result);

            IF IFRef = (IF)IBRef;

            Assert.AreEqual("F1", IFRef.F1Method().Result);
            Assert.AreEqual("F2", IFRef.F2Method().Result);
            Assert.AreEqual("F3", IFRef.F3Method().Result);

            IE IERef = (IE)IFRef;

            Assert.AreEqual("E1", IERef.E1Method().Result);
            Assert.AreEqual("E2", IERef.E2Method().Result);
            Assert.AreEqual("E3", IERef.E3Method().Result);

            IH IHRef = derivedRef;

            Assert.AreEqual("H1", IHRef.H1Method().Result);
            Assert.AreEqual("H2", IHRef.H2Method().Result);
            Assert.AreEqual("H3", IHRef.H3Method().Result);


            IServiceType serviceTypeRef = derivedRef; // upcast the pointer reference

            Assert.AreEqual("ServiceTypeMethod1", serviceTypeRef.ServiceTypeMethod1().Result);
            Assert.AreEqual("ServiceTypeMethod2", serviceTypeRef.ServiceTypeMethod2().Result);
            Assert.AreEqual("ServiceTypeMethod3", serviceTypeRef.ServiceTypeMethod3().Result);

            Assert.AreEqual("DerivedServiceTypeMethod1", derivedRef.DerivedServiceTypeMethod1().Result);
        }
Пример #14
0
        public ICell Develop(NeuronType neurontype, double threshold = -50, double initpotential = -60, double restpotential = -60, double r = 5, double c = 2, double resetpotential = -60, double refractoryperiod = 1)
        {
            INeuron neuron = null;
            switch (neurontype)
            {
                case NeuronType.MP:
                    neuron = new MP(threshold, initpotential);
                    break;
                case NeuronType.LI:
                    neuron = new LI(threshold, initpotential, r, c, restpotential);
                    break;
                case NeuronType.IF:
                    neuron = new IF(threshold, resetpotential, refractoryperiod, initpotential, r, c, restpotential);
                    break;
            }

            return Develop(neuron);
        }
Пример #15
0
    /// <summary>
    /// freezes all game
    /// </summary>
    /// <param name="freeze">True= freezes, false= unfreezes</param>
    void FreezeGame(bool freeze)
    {
        if (freeze)
        {
            /*
             * foreach (TruckEntity te in FindObjectsOfType<TruckEntity>()) te.Freeze();
             * foreach (RoadEntity re in FindObjectsOfType<RoadEntity>()) re.Freeze();
             * var type = typeof(IFreezable);
             * var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(s => s.GetTypes()).Where(p => type.IsAssignableFrom(p));
             * foreach(var t in types)
             * {
             *
             *
             * }
             */

            foreach (IFreezable IF in InterfaceHelper.FindObjects <IFreezable>())
            {
                IF.Freeze();
            }

            if (TimeController.s.timer != null)
            {
                TimeController.s.timer.StopTimer();
            }
        }
        else
        {
            /*
             * foreach (TruckEntity te in FindObjectsOfType<TruckEntity>()) te.Unfreeze();
             * foreach (RoadEntity re in FindObjectsOfType<RoadEntity>()) re.Unfreeze();
             */
            foreach (IFreezable IF in InterfaceHelper.FindObjects <IFreezable>())
            {
                IF.Unfreeze();
            }
            if (TimeController.s.timer != null)
            {
                TimeController.s.timer.StartTimer();
            }
        }
    }
Пример #16
0
        public IF IFTHEN(ParseTreeNode actual)
        {
            /*
             * IFTHEN.Rule
             *  = RESERV_IF + EXPRESION
             + RESERV_THEN
             + IF_SENTENCE
             + ELIF;
             */
            IF            ifs           = new IF();
            ExpressionAST expressionAST = new ExpressionAST();
            var           row           = actual.ChildNodes[0].Token.Location.Line;
            var           col           = actual.ChildNodes[0].Token.Location.Column;

            var LOGIC_EXPRESION = expressionAST.getExpresion(actual.ChildNodes[1]);
            var SENTENCES       = IF_SENTENCE(actual.ChildNodes[3]);
            var ELSE            = ELIF(actual.ChildNodes[4]);


            return(new IF(LOGIC_EXPRESION, SENTENCES, ELSE, row, col));
        }
 //INSTRUCCION
 public Instruction INSTRUCCION(ParseTreeNode actual, int cant_tabs)
 {
     if (actual.Term.ToString().Equals("IF"))
     {
         IF _ifs = (new IfOptimize()).IFTHEN(actual, cant_tabs);
         return(_ifs);
     }
     else if (actual.Term.ToString().Equals("GOTO"))
     {
         Goto @goto = (new GotoOptimize()).GetGoto(actual);
         return(@goto);
     }
     else if (actual.Term.ToString().Equals("SET_LABEL"))
     {
         return((new LabelOptimize()).GetSetLabel(actual));
     }
     else if (actual.Term.ToString().Equals("ARITMETICA"))
     {
         return((Instruction)(new ArithmeticOptimizer()).GetArithmetic(actual));
     }
     else if (actual.Term.ToString().Equals("PRINT"))
     {
         return((new PrintOptimize()).GetPrint(actual));
     }
     else if (actual.Term.ToString().Equals("RETURN"))
     {
         return((new ReturnOptimize()).GetReturn(actual));
     }
     else if (actual.Term.ToString().Equals("CALL"))
     {
         return((new CallOptimize()).GetCall(actual));
     }
     else
     {
         return((new AssignationOptimize()).GetAssignation(actual));
     }
 }
Пример #18
0
        public override string ToString()
        {
            s = (IF)base.Tag;

            Binding myBinding = new Binding("result");

            myBinding.Mode   = BindingMode.TwoWay;
            myBinding.Source = s;
            txtres.SetBinding(TextBox.TextProperty, myBinding);

            Binding myBinding2 = new Binding("condition");

            myBinding2.Mode   = BindingMode.TwoWay;
            myBinding2.Source = s;
            txtexp.SetBinding(TextBox.TextProperty, myBinding2);

            Binding myBinding3 = new Binding("res1");

            myBinding3.Mode   = BindingMode.TwoWay;
            myBinding3.Source = s;
            txttrue.SetBinding(TextBox.TextProperty, myBinding3);

            Binding myBinding4 = new Binding("res2");

            myBinding4.Mode   = BindingMode.TwoWay;
            myBinding4.Source = s;
            txtfalse.SetBinding(TextBox.TextProperty, myBinding4);

            Binding descbinding = new Binding("Description");

            descbinding.Mode   = BindingMode.TwoWay;
            descbinding.Source = s;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);

            return(base.ToString());
        }
Пример #19
0
        public static void ConvertUsingPath(ComboBox qualityCombox, ComboBox qualityMaxCombox, IF selectedFormat, CheckBox delSrcCbox)
        {
            int qMin = int.Parse(qualityCombox.Text.Trim());
            int qMax = qMin;

            if (!string.IsNullOrWhiteSpace(qualityMaxCombox.Text.Trim()))
            {
                qMax = int.Parse(qualityMaxCombox.Text.Trim());
            }

            if (selectedFormat == IF.JPG)
            {
                ConvertUtils.ConvertDirToJpeg(qMin, qMax, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.PNG)
            {
                ConvertUtils.ConvertDirToPng(qMin, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.DDS)
            {
                ConvertUtils.ConvertDirToDds(qMin, qMax, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.TGA)
            {
                ConvertUtils.ConvertDirToTga(delSrcCbox.Checked);
            }

            if (selectedFormat == IF.WEBP)
            {
                ConvertUtils.ConvertDirToWebp(qMin, qMax, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.J2K)
            {
                ConvertUtils.ConvertDirToJpeg2000(qMin, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.FLIF)
            {
                ConvertUtils.ConvertDirToFlif(Config.GetInt("flifEnc") == 1, qMin, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.BMP)
            {
                ConvertUtils.ConvertDirToBmp(delSrcCbox.Checked);
            }

            if (selectedFormat == IF.AVIF)
            {
                ConvertUtils.ConvertDirToAvif(qMin, delSrcCbox.Checked);
            }

            if (selectedFormat == IF.HEIF)
            {
                ConvertUtils.ConvertDirToHeif(qMin, delSrcCbox.Checked);
            }
        }
Пример #20
0
 protected virtual void Visit_IF(IF node)
 {
 }
Пример #21
0
        private void CreateTokens()
        {
            if (!lines[0].Equals("[SCRIPT]"))
            {
                return;
            }

            for (int i = 0; i < lines.Length; ++i)
            {
                if (string.IsNullOrWhiteSpace(lines[i]))//Skip all empty lines
                {
                    continue;
                }

                lines[i] = lines[i].Trim();
                string[] tokens = lines[i].Split();
                if (lines[i].Contains("NUM"))
                {
                    NUM num;
                    num.name  = tokens[1]; //Name
                    num.value = Convert.ToSingle(tokens[3]);
                    nums.Add(num);
                }
                else if (lines[i].Contains("label"))
                {
                    LABEL label;
                    label.name    = tokens[1];
                    label.lineNum = i;
                    labels.Add(label);
                }
                else if (lines[i].Contains("goto"))
                {
                    GOTO jump;
                    jump.name = tokens[1];
                    jumps.Add(jump);
                }
                else if (lines[i].StartsWith("if"))
                {
                    IF iF;
                    iF.line      = i;
                    iF.name      = tokens[1];
                    iF.statement = string.Concat(tokens[3], " ", tokens[4], " ", tokens[5]);
                    iF.endLine   = null;
                    for (int x = 0; x < endifs.Count; ++x)//Check if an if statement can be paired to an end line
                    {
                        if (iF.name == endifs[x].name)
                        {
                            iF.endLine = endifs[x].line;
                        }
                    }


                    ifs.Add(iF);
                }
                else if (lines[i].Contains("endif"))
                {
                    ENDIF endif;
                    endif.name      = tokens[1];
                    endif.line      = i;
                    endif.startLine = null;
                    for (int x = 0; x < ifs.Count; ++x)
                    {
                        if (tokens[1] == ifs[x].name)
                        {
                            endif.startLine = ifs[x].line;
                            ifs[x]          = new IF {
                                endLine = endif.line, line = ifs[x].line, name = ifs[x].name, statement = ifs[x].statement
                            };                                                                                                              //Create a new copy of the if struct with a modified end line
                        }
                    }
                    endifs.Add(endif);
                }
            }
            HandleComments();
            InterpretTokens();
        }
Пример #22
0
        public static async Task ConvertUsingPath(ComboBox qualityCombox, ComboBox qualityMaxCombox, IF selectedFormat, CheckBox delSrcCbox)
        {
            int qMin = qualityCombox.GetInt();
            int qMax = qMin;

            if (!string.IsNullOrWhiteSpace(qualityMaxCombox.Text.Trim()))
            {
                qMax = qualityMaxCombox.GetInt();
            }

            await ConvertThreaded.EncodeImages(selectedFormat, qMin, qMin, delSrcCbox.Checked);
        }
Пример #23
0
    /** Method with the actual generated action code. */
    public TUVienna.CS_CUP.Runtime.Symbol CUP_Parser_do_action(
		int                        CUP_Parser_act_num,
		TUVienna.CS_CUP.Runtime.lr_parser CUP_Parser_parser,
		System.Collections.Stack            xstack1,
		int                        CUP_Parser_top)
    {
        /* Symbol object for return from actions */
        mStack CUP_Parser_stack = new mStack(xstack1);
        TUVienna.CS_CUP.Runtime.Symbol CUP_Parser_result;

        /* select the action based on the action number */
        switch (CUP_Parser_act_num) {
        /*. . . . . . . . . . . . . . . . . . . .*/
            case 358: // class_constant ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
                {
                    Expression RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PAAMAYIM_NEKUDOTAYIM(fqcn, new VARIABLE(s, sleft, sright), fqcnleft, fqcnright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(48/*class_constant*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 357: // isset_variables ::= isset_variables COMMA variable
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(105/*isset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 356: // isset_variables ::= variable
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(105/*isset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 355: // internal_functions_in_yacc ::= T_REQUIRE_ONCE expr
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 354: // internal_functions_in_yacc ::= T_REQUIRE expr
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 353: // internal_functions_in_yacc ::= T_EVAL BRACE_OPEN expr BRACE_CLOSE
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 352: // internal_functions_in_yacc ::= T_INCLUDE_ONCE expr
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 351: // internal_functions_in_yacc ::= T_INCLUDE expr
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 350: // internal_functions_in_yacc ::= T_EMPTY BRACE_OPEN variable BRACE_CLOSE
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 349: // internal_functions_in_yacc ::= T_ISSET BRACE_OPEN isset_variables BRACE_CLOSE
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(104/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 348: // encaps_var_offset ::= T_VARIABLE
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new VARIABLE(v, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(47/*encaps_var_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 347: // encaps_var_offset ::= T_NUM_STRING
                {
                    Expression RESULT = null;
                    int nsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int nsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string ns = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new STRING_SCALAR(ns, nsleft, nsright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(47/*encaps_var_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 346: // encaps_var_offset ::= T_STRING
                {
                    Expression RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new STRING_SCALAR(s, sleft, sright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(47/*encaps_var_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 345: // encaps_var ::= T_CURLY_OPEN variable CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 344: // encaps_var ::= T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME SQUARE_BRACE_OPEN expr SQUARE_BRACE_CLOSE CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 343: // encaps_var ::= T_DOLLAR_OPEN_CURLY_BRACES expr CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 342: // encaps_var ::= T_VARIABLE T_OBJECT_OPERATOR T_STRING
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new OBJECT_OPERATOR(new VARIABLE(v, vleft, vright), new VARIABLE(s, sleft, sright), vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 341: // encaps_var ::= T_VARIABLE SQUARE_BRACE_OPEN encaps_var_offset SQUARE_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int evoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int evoright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression evo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new VARIABLE(v, new OFFSET(OFFSET.SQUARE, evo, tleft, tright), vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 340: // encaps_var ::= T_VARIABLE
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new VARIABLE(v, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 339: // encaps_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 338: // encaps_list ::= encaps_list T_OBJECT_OPERATOR
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int ooleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ooright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string oo = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(oo);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 337: // encaps_list ::= encaps_list CURLY_BRACE_CLOSE
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int cbcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cbcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string cbc = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(cbc);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 336: // encaps_list ::= encaps_list CURLY_BRACE_OPEN
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int cboleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cboright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string cbo = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(cbo);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 335: // encaps_list ::= encaps_list SQUARE_BRACE_CLOSE
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int sbcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sbcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string sbc = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(sbc);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 334: // encaps_list ::= encaps_list SQUARE_BRACE_OPEN
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int sboleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sboright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string sbo = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(sbo);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 333: // encaps_list ::= encaps_list T_BAD_CHARACTER
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int bcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int bcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string bc = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(bc);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 332: // encaps_list ::= encaps_list T_CHARACTER
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int cleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string c = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(c);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 331: // encaps_list ::= encaps_list T_ENCAPSED_AND_WHITESPACE
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eawleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eawright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string eaw = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(eaw);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 330: // encaps_list ::= encaps_list T_NUM_STRING
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int nsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int nsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string ns = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(ns);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 329: // encaps_list ::= encaps_list T_STRING
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(s);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 328: // encaps_list ::= encaps_list encaps_var
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int evleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int evright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ev = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(ev);
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 327: // non_empty_array_pair_list ::= AND w_variable
                {
                    ArrayList RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList neapl = new ArrayList();
                    neapl.Add(new ARRAY_PAIR(null, new REFERENCE(wv, tleft, tright), tleft, tright));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 326: // non_empty_array_pair_list ::= expr T_DOUBLE_ARROW AND w_variable
                {
                    ArrayList RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList neapl = new ArrayList();
                    neapl.Add(new ARRAY_PAIR(e, new REFERENCE(wv, tleft, tright), eleft, eright));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 325: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA AND w_variable
                {
                    ArrayList RESULT = null;
                    int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    neapl.Add(new ARRAY_PAIR(null, new REFERENCE(wv, tleft, tright), tleft, tright));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 324: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA expr T_DOUBLE_ARROW AND w_variable
                {
                    ArrayList RESULT = null;
                    int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    neapl.Add(new ARRAY_PAIR(e, new REFERENCE(wv, tleft, tright), eleft, eright));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 323: // non_empty_array_pair_list ::= expr
                {
                    ArrayList RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList neapl = new ArrayList();
                    neapl.Add(new ARRAY_PAIR(null, e, eleft, eright));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 322: // non_empty_array_pair_list ::= expr T_DOUBLE_ARROW expr
                {
                    ArrayList RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList neapl = new ArrayList();
                    neapl.Add(new ARRAY_PAIR(e1, e2, e1left, e1right));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 321: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA expr
                {
                    ArrayList RESULT = null;
                    int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    neapl.Add(new ARRAY_PAIR(null, e, eleft, eright));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 320: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA expr T_DOUBLE_ARROW expr
                {
                    ArrayList RESULT = null;
                    int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    neapl.Add(new ARRAY_PAIR(e1, e2, e1left, e1right));
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 319: // array_pair_list ::= non_empty_array_pair_list possible_comma
                {
                    ArrayList RESULT = null;
                    int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = neapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(80/*array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 318: // array_pair_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(80/*array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 317: // assignment_list_element ::=
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*assignment_list_element*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 316: // assignment_list_element ::= T_LIST BRACE_OPEN assignment_list BRACE_CLOSE
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*assignment_list_element*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 315: // assignment_list_element ::= variable
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*assignment_list_element*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 314: // assignment_list ::= assignment_list_element
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*assignment_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 313: // assignment_list ::= assignment_list COMMA assignment_list_element
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*assignment_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 312: // simple_indirect_reference ::= simple_indirect_reference DOLLAR
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*simple_indirect_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 311: // simple_indirect_reference ::= DOLLAR
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*simple_indirect_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 310: // variable_name ::= CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*variable_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 309: // variable_name ::= T_STRING
                {
                    Expression RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new VARIABLE(s, sleft, sright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*variable_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 308: // object_dim_list ::= variable_name
                {
                    Expression RESULT = null;
                    int vnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression vn = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = vn;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(44/*object_dim_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 307: // object_dim_list ::= object_dim_list CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "offset");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(44/*object_dim_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 306: // object_dim_list ::= object_dim_list SQUARE_BRACE_OPEN dim_offset SQUARE_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int odlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int odlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression odl = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int dosleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int dosright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression dos = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    ((VARIABLE)odl).Offset = new OFFSET(OFFSET.SQUARE, dos, tleft, tright);
                    RESULT = odl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(44/*object_dim_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 305: // object_property ::= variable_without_objects
                {
                    Expression RESULT = null;
                    int wvoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvoright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wvo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = wvo;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(43/*object_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 304: // object_property ::= object_dim_list
                {
                    Expression RESULT = null;
                    int odlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int odlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression odl = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = odl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(43/*object_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 303: // dim_offset ::= expr
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = e;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(42/*dim_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 302: // dim_offset ::=
                {
                    Expression RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(42/*dim_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 301: // compound_variable ::= DOLLAR CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(41/*compound_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 300: // compound_variable ::= T_VARIABLE
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new VARIABLE(v, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(41/*compound_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 299: // reference_variable ::= compound_variable
                {
                    Expression RESULT = null;
                    int cvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression cv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = cv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(40/*reference_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 298: // reference_variable ::= reference_variable CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "offset");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(40/*reference_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 297: // reference_variable ::= reference_variable SQUARE_BRACE_OPEN dim_offset SQUARE_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int dofleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int dofright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression dof = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    ((VARIABLE)rv).Offset = new OFFSET(OFFSET.SQUARE, dof, tleft, tright);
                    RESULT = rv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(40/*reference_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 296: // base_variable ::= static_member
                {
                    Expression RESULT = null;
                    int smleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int smright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression sm = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = sm;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*base_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 295: // base_variable ::= simple_indirect_reference reference_variable
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*base_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 294: // base_variable ::= reference_variable
                {
                    Expression RESULT = null;
                    int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = rv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*base_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 293: // base_variable_with_function_calls ::= function_call
                {
                    Expression RESULT = null;
                    int fcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression fc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fc;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(38/*base_variable_with_function_calls*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 292: // base_variable_with_function_calls ::= base_variable
                {
                    Expression RESULT = null;
                    int bvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int bvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression bv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = bv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(38/*base_variable_with_function_calls*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 291: // static_member ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
                {
                    Expression RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vwoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vworight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression vwo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PAAMAYIM_NEKUDOTAYIM(fqcn, vwo, fqcnleft, fqcnright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(37/*static_member*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 290: // variable_without_objects ::= simple_indirect_reference reference_variable
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(36/*variable_without_objects*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 289: // variable_without_objects ::= reference_variable
                {
                    Expression RESULT = null;
                    int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = rv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(36/*variable_without_objects*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 288: // method_or_not ::=
                {
                    ExpressionList RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*method_or_not*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 287: // method_or_not ::= BRACE_OPEN function_call_parameter_list BRACE_CLOSE
                {
                    ExpressionList RESULT = null;
                    int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = fcpl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*method_or_not*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 286: // variable_property ::= T_OBJECT_OPERATOR object_property method_or_not
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int opleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int opright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression op = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int monleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int monright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ExpressionList mon = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    Expression expr2;
                    if (mon == null)
                        expr2 = (VARIABLE)op;
                    else
                        expr2 = new FUNCTION_CALL(((VARIABLE)op).Name, mon, opleft, opright);
                    RESULT = new OBJECT_OPERATOR(null, expr2, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(35/*variable_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 285: // variable_properties ::=
                {
                    ExpressionList RESULT = null;
                    RESULT = new ExpressionList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(62/*variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 284: // variable_properties ::= variable_properties variable_property
                {
                    ExpressionList RESULT = null;
                    int vpsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int vpsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList vps = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int vpleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vpright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression vp = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    vps.Add(vp);
                    RESULT = vps;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(62/*variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 283: // variable ::= base_variable_with_function_calls
                {
                    Expression RESULT = null;
                    int bvwfcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int bvwfcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression bvwfc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = bvwfc;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(34/*variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 282: // variable ::= base_variable_with_function_calls T_OBJECT_OPERATOR object_property method_or_not variable_properties
                {
                    Expression RESULT = null;
                    int bvwfcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int bvwfcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    Expression bvwfc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int opleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int opright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression op = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int monleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int monright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList mon = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int vpsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vpsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ExpressionList vps = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    Expression expr;
                    if (mon == null)
                        expr = (VARIABLE)op;
                    else
                        expr = new FUNCTION_CALL(((VARIABLE)op).Name, mon, opleft, opright);
                    if (vps.Count() == 0) {
                        RESULT = new OBJECT_OPERATOR(bvwfc, expr, bvwfcleft, bvwfcright);
                    } else {
                        for (int i = vps.Count() - 1; i > 0; i--) {
                            OBJECT_OPERATOR curr = (OBJECT_OPERATOR)vps.Get(i);
                            OBJECT_OPERATOR prev = (OBJECT_OPERATOR)vps.Get(i - 1);
                            curr.Expr1 = prev.Expr2;
                            prev.Expr2 = curr;
                        }
                        ((OBJECT_OPERATOR)vps.Get(0)).Expr1 = expr;
                        RESULT = new OBJECT_OPERATOR(bvwfc, vps.Get(0), bvwfcleft, bvwfcright);
                    }

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(34/*variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 281: // rw_variable ::= variable
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = v;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(33/*rw_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 280: // w_variable ::= variable
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = v;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(32/*w_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 279: // r_variable ::= variable
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = v;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(31/*r_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 278: // expr ::= expr_without_variable
                {
                    Expression RESULT = null;
                    int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = ewv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(30/*expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 277: // expr ::= r_variable
                {
                    Expression RESULT = null;
                    int rleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int rright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression r = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = r;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(30/*expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 276: // non_empty_static_array_pair_list ::= static_scalar
                {
                    ArrayList RESULT = null;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nesapl = new ArrayList();
                    nesapl.Add(new ARRAY_PAIR(null, ss, ssleft, ssright));
                    RESULT = nesapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(79/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 275: // non_empty_static_array_pair_list ::= static_scalar T_DOUBLE_ARROW static_scalar
                {
                    ArrayList RESULT = null;
                    int ss1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int ss1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression ss1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ss2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ss2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nesapl = new ArrayList();
                    nesapl.Add(new ARRAY_PAIR(ss1, ss2, ss1left, ss1right));
                    RESULT = nesapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(79/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 274: // non_empty_static_array_pair_list ::= non_empty_static_array_pair_list COMMA static_scalar
                {
                    ArrayList RESULT = null;
                    int nesaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int nesaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList nesapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nesapl.Add(new ARRAY_PAIR(null, ss, ssleft, ssright));
                    RESULT = nesapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(79/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 273: // non_empty_static_array_pair_list ::= non_empty_static_array_pair_list COMMA static_scalar T_DOUBLE_ARROW static_scalar
                {
                    ArrayList RESULT = null;
                    int nesaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int nesaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ArrayList nesapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int ss1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int ss1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression ss1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ss2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ss2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nesapl.Add(new ARRAY_PAIR(ss1, ss2, ss1left, ss1right));
                    RESULT = nesapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(79/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 272: // possible_comma ::= COMMA
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(94/*possible_comma*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 271: // possible_comma ::=
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(94/*possible_comma*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 270: // static_array_pair_list ::= non_empty_static_array_pair_list
                {
                    ArrayList RESULT = null;
                    int nesaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int nesaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList nesapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = nesapl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(78/*static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 269: // static_array_pair_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(78/*static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 268: // scalar ::= T_START_HEREDOC encaps_list T_END_HEREDOC
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new HEREDOC(el, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 267: // scalar ::= SINGLE_QUOTE encaps_list SINGLE_QUOTE
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new SINGLE_QUOTES(el, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 266: // scalar ::= DOUBLE_QUOTES encaps_list DOUBLE_QUOTES
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new DOUBLE_QUOTES(el, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 265: // scalar ::= common_scalar
                {
                    Expression RESULT = null;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression cs = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = cs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 264: // scalar ::= class_constant
                {
                    Expression RESULT = null;
                    int ccleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ccright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression cc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = cc;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 263: // scalar ::= T_STRING_VARNAME
                {
                    Expression RESULT = null;
                    int svleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int svright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string sv = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new VARIABLE(sv, svleft, svright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 262: // scalar ::= T_STRING
                {
                    Expression RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    if (s == "true".ToLower() || s == "false".ToLower())
                        RESULT = new STRING_SCALAR(s, sleft, sright);
                    else
                        RESULT = new CONSTANT(s, sleft, sright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 261: // static_class_constant ::= T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING
                {
                    Expression RESULT = null;
                    int s1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int s1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string s1 = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int s2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int s2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s2 = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PAAMAYIM_NEKUDOTAYIM(s1, new VARIABLE(s2, s1left, s1right), s1left, s1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*static_class_constant*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 260: // static_scalar ::= static_class_constant
                {
                    Expression RESULT = null;
                    int sccleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sccright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression scc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = scc;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 259: // static_scalar ::= T_ARRAY BRACE_OPEN static_array_pair_list BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int saplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int saplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList sapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new ARRAY(sapl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 258: // static_scalar ::= MINUS static_scalar
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MINUS(new LNUMBER_SCALAR(0, tleft, tright), ss, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 257: // static_scalar ::= PLUS static_scalar
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PLUS(new LNUMBER_SCALAR(0, tleft, tright), ss, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 256: // static_scalar ::= T_STRING
                {
                    Expression RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    if (s == "true".ToLower() || s == "false".ToLower())
                        RESULT = new STRING_SCALAR(s, sleft, sright);
                    else
                        RESULT = new CONSTANT(s, sleft, sright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 255: // static_scalar ::= common_scalar
                {
                    Expression RESULT = null;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression cs = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = cs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 254: // common_scalar ::= T_FUNC_C
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.FUNCTION, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 253: // common_scalar ::= T_METHOD_C
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.METHOD, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 252: // common_scalar ::= T_CLASS_C
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.CLASS, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 251: // common_scalar ::= T_FILE
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.FILE, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 250: // common_scalar ::= T_LINE
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.LINE, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 249: // common_scalar ::= T_CONSTANT_ENCAPSED_STRING
                {
                    Expression RESULT = null;
                    int cesleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cesright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string ces = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new STRING_SCALAR(ces, cesleft, cesright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 248: // common_scalar ::= T_DNUMBER
                {
                    Expression RESULT = null;
                    int dleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int dright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string d = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new DNUMBER_SCALAR(System.Convert.ToDouble(d), dleft, dright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 247: // common_scalar ::= T_LNUMBER
                {
                    Expression RESULT = null;
                    int lleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int lright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string l = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new LNUMBER_SCALAR(System.Convert.ToInt32(l), lleft, lright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 246: // ctor_arguments ::= BRACE_OPEN function_call_parameter_list BRACE_CLOSE
                {
                    ExpressionList RESULT = null;
                    int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = fcpl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(61/*ctor_arguments*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 245: // ctor_arguments ::=
                {
                    ExpressionList RESULT = null;
                    RESULT = new ExpressionList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(61/*ctor_arguments*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 244: // exit_expr ::= BRACE_OPEN expr BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = e;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*exit_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 243: // exit_expr ::= BRACE_OPEN BRACE_CLOSE
                {
                    Expression RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*exit_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 242: // exit_expr ::=
                {
                    Expression RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*exit_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 241: // dynamic_class_name_variable_property ::= T_OBJECT_OPERATOR object_property
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(100/*dynamic_class_name_variable_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 240: // dynamic_class_name_variable_properties ::=
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(99/*dynamic_class_name_variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 239: // dynamic_class_name_variable_properties ::= dynamic_class_name_variable_properties dynamic_class_name_variable_property
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(99/*dynamic_class_name_variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 238: // dynamic_class_name_reference ::= base_variable
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(98/*dynamic_class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 237: // dynamic_class_name_reference ::= base_variable T_OBJECT_OPERATOR object_property dynamic_class_name_variable_properties
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(98/*dynamic_class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 236: // class_name_reference ::= dynamic_class_name_reference
                {
                    string RESULT = null;
                    Report.Error(900, "dynamic class name references");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(87/*class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 235: // class_name_reference ::= fully_qualified_class_name
                {
                    string RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fqcn;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(87/*class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 234: // fully_qualified_class_name ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
                {
                    string RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fqcn + "::" + s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(86/*fully_qualified_class_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 233: // fully_qualified_class_name ::= T_STRING
                {
                    string RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(86/*fully_qualified_class_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 232: // function_call ::= variable_without_objects BRACE_OPEN function_call_parameter_list BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int vwoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int vworight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression vwo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, "variable functions");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 231: // function_call ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects BRACE_OPEN function_call_parameter_list BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    Report.Error(900, "variable functions");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 230: // function_call ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING BRACE_OPEN function_call_parameter_list BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new PAAMAYIM_NEKUDOTAYIM(fqcn, new FUNCTION_CALL(s, fcpl, fqcnleft, fqcnright), fqcnleft, fqcnright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 229: // function_call ::= T_STRING BRACE_OPEN function_call_parameter_list BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new FUNCTION_CALL(s, fcpl, sleft, sright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 228: // expr_without_variable ::= T_PRINT expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PRINT(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 227: // expr_without_variable ::= BACK_QUOTE encaps_list BACK_QUOTE
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 226: // expr_without_variable ::= T_ARRAY BRACE_OPEN array_pair_list BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int aplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int aplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList apl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new ARRAY(apl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 225: // expr_without_variable ::= scalar
                {
                    Expression RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression s = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 224: // expr_without_variable ::= AT expr
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 223: // expr_without_variable ::= T_EXIT exit_expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eeleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eeright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ee = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new EXIT(ee, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 222: // expr_without_variable ::= T_UNSET_CAST expr
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 221: // expr_without_variable ::= T_BOOL_CAST expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new BOOL_CAST(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 220: // expr_without_variable ::= T_OBJECT_CAST expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new OBJECT_CAST(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 219: // expr_without_variable ::= T_ARRAY_CAST expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ARRAY_CAST(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 218: // expr_without_variable ::= T_STRING_CAST expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new STRING_CAST(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 217: // expr_without_variable ::= T_DOUBLE_CAST expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new DOUBLE_CAST(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 216: // expr_without_variable ::= T_INT_CAST expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new INT_CAST(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 215: // expr_without_variable ::= internal_functions_in_yacc
                {
                    Expression RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 214: // expr_without_variable ::= expr QUESTION expr COLON expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e3left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e3right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e3 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IF_EXPR(e1, e2, e3, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 213: // expr_without_variable ::= BRACE_OPEN expr BRACE_CLOSE
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = e;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 212: // expr_without_variable ::= expr T_INSTANCEOF class_name_reference
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int cnrleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cnrright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string cnr = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new INSTANCEOF(e, cnr, eleft, eright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 211: // expr_without_variable ::= expr T_IS_GREATER_OR_EQUAL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IS_GREATER_OR_EQUAL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 210: // expr_without_variable ::= expr GREATER expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new GREATER(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 209: // expr_without_variable ::= expr T_IS_LOWER_OR_EQUAL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IS_LOWER_OR_EQUAL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 208: // expr_without_variable ::= expr LOWER expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new LOWER(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 207: // expr_without_variable ::= expr T_IS_NOT_EQUAL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IS_NOT_EQUAL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 206: // expr_without_variable ::= expr T_IS_EQUAL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IS_EQUAL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 205: // expr_without_variable ::= expr T_IS_NOT_IDENTICAL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IS_NOT_IDENTICAL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 204: // expr_without_variable ::= expr T_IS_IDENTICAL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IS_IDENTICAL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 203: // expr_without_variable ::= NOT expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new NOT(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 202: // expr_without_variable ::= BOOLEAN_NOT expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new BOOLEAN_NOT(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 201: // expr_without_variable ::= MINUS expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MINUS(new LNUMBER_SCALAR(0, tleft, tright), e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 200: // expr_without_variable ::= PLUS expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PLUS(new LNUMBER_SCALAR(0, tleft, tright), e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 199: // expr_without_variable ::= expr T_SR expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new SR(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 198: // expr_without_variable ::= expr T_SL expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new SL(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 197: // expr_without_variable ::= expr MOD expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MOD(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 196: // expr_without_variable ::= expr DIV expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new DIV(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 195: // expr_without_variable ::= expr TIMES expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new TIMES(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 194: // expr_without_variable ::= expr MINUS expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MINUS(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 193: // expr_without_variable ::= expr PLUS expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PLUS(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 192: // expr_without_variable ::= expr CONCAT expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new CONCAT(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 191: // expr_without_variable ::= expr XOR expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new XOR(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 190: // expr_without_variable ::= expr AND expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new AND(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 189: // expr_without_variable ::= expr OR expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new OR(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 188: // expr_without_variable ::= expr T_LOGICAL_XOR expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new LOGICAL_XOR(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 187: // expr_without_variable ::= expr T_LOGICAL_AND expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new LOGICAL_AND(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 186: // expr_without_variable ::= expr T_LOGICAL_OR expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new LOGICAL_OR(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 185: // expr_without_variable ::= expr T_BOOLEAN_AND expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new BOOLEAN_AND(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 184: // expr_without_variable ::= expr T_BOOLEAN_OR expr
                {
                    Expression RESULT = null;
                    int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new BOOLEAN_OR(e1, e2, e1left, e1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 183: // expr_without_variable ::= T_DEC rw_variable
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new DEC(rw, 0, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 182: // expr_without_variable ::= rw_variable T_DEC
                {
                    Expression RESULT = null;
                    int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new DEC(rw, 1, rwleft, rwright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 181: // expr_without_variable ::= T_INC rw_variable
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new INC(rw, 0, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 180: // expr_without_variable ::= rw_variable T_INC
                {
                    Expression RESULT = null;
                    int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new INC(rw, 1, rwleft, rwright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 179: // expr_without_variable ::= variable T_SR_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new SR_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 178: // expr_without_variable ::= variable T_SL_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new SL_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 177: // expr_without_variable ::= variable T_XOR_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new XOR_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 176: // expr_without_variable ::= variable T_OR_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new OR_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 175: // expr_without_variable ::= variable T_AND_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new AND_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 174: // expr_without_variable ::= variable T_MOD_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MOD_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 173: // expr_without_variable ::= variable T_CONCAT_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new CONCAT_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 172: // expr_without_variable ::= variable T_DIV_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new DIV_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 171: // expr_without_variable ::= variable T_MUL_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MUL_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 170: // expr_without_variable ::= variable T_MINUS_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new MINUS_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 169: // expr_without_variable ::= variable T_PLUS_EQUAL expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new PLUS_EQUAL(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 168: // expr_without_variable ::= T_CLONE expr
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new CLONE(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 167: // expr_without_variable ::= T_NEW class_name_reference ctor_arguments
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int cnrleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int cnrright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string cnr = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int caleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int caright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ExpressionList ca = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new NEW(cnr, ca, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 166: // expr_without_variable ::= variable EQUALS AND T_NEW class_name_reference ctor_arguments
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int cnrleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int cnrright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string cnr = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int caleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int caright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ExpressionList ca = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    Report.Warn(303);
                    RESULT = new EQUALS(v, new NEW(cnr, ca, tleft, tright), vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 165: // expr_without_variable ::= variable EQUALS AND variable
                {
                    Expression RESULT = null;
                    int v1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int v1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression v1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int v2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int v2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new EQUALS(v1, new REFERENCE(v2, v1left, v1right), v1left, v1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 164: // expr_without_variable ::= variable EQUALS expr
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new EQUALS(v, e, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 163: // expr_without_variable ::= T_LIST BRACE_OPEN assignment_list BRACE_CLOSE EQUALS expr
                {
                    Expression RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 162: // non_empty_for_expr ::= expr
                {
                    ExpressionList RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ExpressionList nefe = new ExpressionList();
                    nefe.Add(e);
                    RESULT = nefe;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(60/*non_empty_for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 161: // non_empty_for_expr ::= non_empty_for_expr COMMA expr
                {
                    ExpressionList RESULT = null;
                    int nefeleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int neferight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList nefe = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nefe.Add(e);
                    RESULT = nefe;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(60/*non_empty_for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 160: // for_expr ::= non_empty_for_expr
                {
                    ExpressionList RESULT = null;
                    int nefeleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int neferight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ExpressionList nefe = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = nefe;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(59/*for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 159: // for_expr ::=
                {
                    ExpressionList RESULT = null;
                    RESULT = new ExpressionList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(59/*for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 158: // echo_expr_list ::= expr
                {
                    ExpressionList RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ExpressionList eel = new ExpressionList();
                    eel.Add(e);
                    RESULT = eel;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(58/*echo_expr_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 157: // echo_expr_list ::= echo_expr_list COMMA expr
                {
                    ExpressionList RESULT = null;
                    int eelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList eel = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    eel.Add(e);
                    RESULT = eel;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(58/*echo_expr_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 156: // class_constant_declaration ::= T_CONST T_STRING EQUALS static_scalar
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList modifiers = new ArrayList();
                    modifiers.Add(Modifiers.CONST);
                    ArrayList names = new ArrayList();
                    names.Add(s);
                    RESULT = new CLASS_VARIABLE_DECLARATION(modifiers, names, new ExpressionList(ss), tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(18/*class_constant_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 155: // class_constant_declaration ::= class_constant_declaration COMMA T_STRING EQUALS static_scalar
                {
                    Statement RESULT = null;
                    int ccdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int ccdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    Statement ccd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ((CLASS_VARIABLE_DECLARATION)ccd).Names.Add(s);
                    ((CLASS_VARIABLE_DECLARATION)ccd).Values.Add(ss);
                    RESULT = ccd;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(18/*class_constant_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 154: // class_variable_declaration ::= T_VARIABLE EQUALS static_scalar
                {
                    Statement RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList names = new ArrayList();
                    names.Add(v);
                    RESULT = new CLASS_VARIABLE_DECLARATION(new ArrayList(), names, new ExpressionList(ss), vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(17/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 153: // class_variable_declaration ::= T_VARIABLE
                {
                    Statement RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList names = new ArrayList();
                    names.Add(v);
                    RESULT = new CLASS_VARIABLE_DECLARATION(new ArrayList(), names, new ExpressionList(null), vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(17/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 152: // class_variable_declaration ::= class_variable_declaration COMMA T_VARIABLE EQUALS static_scalar
                {
                    Statement RESULT = null;
                    int cvdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int cvdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    Statement cvd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ((CLASS_VARIABLE_DECLARATION)cvd).Names.Add(v);
                    ((CLASS_VARIABLE_DECLARATION)cvd).Values.Add(ss);
                    RESULT = cvd;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(17/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 151: // class_variable_declaration ::= class_variable_declaration COMMA T_VARIABLE
                {
                    Statement RESULT = null;
                    int cvdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int cvdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Statement cvd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ((CLASS_VARIABLE_DECLARATION)cvd).Names.Add(v);
                    ((CLASS_VARIABLE_DECLARATION)cvd).Values.Add(null);
                    RESULT = cvd;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(17/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 150: // member_modifier ::= T_FINAL
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.FINAL;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 149: // member_modifier ::= T_ABSTRACT
                {
                    object RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = PHP.Compiler.Modifiers.ABSTRACT;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 148: // member_modifier ::= T_STATIC
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.STATIC;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 147: // member_modifier ::= T_PRIVATE
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.PRIVATE;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 146: // member_modifier ::= T_PROTECTED
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.PROTECTED;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 145: // member_modifier ::= T_PUBLIC
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.PUBLIC;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 144: // non_empty_member_modifiers ::= non_empty_member_modifiers member_modifier
                {
                    ArrayList RESULT = null;
                    int nemmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int nemmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList nemm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int mmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int mmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    object mm = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nemm.Add(mm);
                    RESULT = nemm;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(77/*non_empty_member_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 143: // non_empty_member_modifiers ::= member_modifier
                {
                    ArrayList RESULT = null;
                    int mmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int mmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    object mm = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nemm = new ArrayList();
                    nemm.Add(mm);
                    RESULT = nemm;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(77/*non_empty_member_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 142: // method_modifiers ::= non_empty_member_modifiers
                {
                    ArrayList RESULT = null;
                    int nemmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int nemmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList nemm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = nemm;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*method_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 141: // method_modifiers ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*method_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 140: // variable_modifiers ::= T_VAR
                {
                    ArrayList RESULT = null;
                    ArrayList vm = new ArrayList();
                    vm.Add(6);
                    RESULT = vm;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*variable_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 139: // variable_modifiers ::= non_empty_member_modifiers
                {
                    ArrayList RESULT = null;
                    int nemmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int nemmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList nemm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = nemm;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*variable_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 138: // method_body ::= CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
                {
                    StatementList RESULT = null;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = istl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(52/*method_body*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 137: // method_body ::= SEMICOLON
                {
                    StatementList RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(52/*method_body*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 136: // class_statement ::= method_modifiers T_FUNCTION is_reference T_STRING BRACE_OPEN parameter_list BRACE_CLOSE method_body
                {
                    Statement RESULT = null;
                    int mmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left;
                    int mmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).right;
                    ArrayList mm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).value;
                    int fleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int fright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    string f = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int irleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int irright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    object ir = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int plleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int plright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList pl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int mbleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int mbright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    StatementList mb = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new FUNCTION_DECLARATION(mm, (bool)ir, s, pl, mb, (mmleft == 1) ? fleft : mmleft, (mmright == 1) ? fright : mmright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 135: // class_statement ::= class_constant_declaration SEMICOLON
                {
                    Statement RESULT = null;
                    int ccdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int ccdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Statement ccd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = ccd;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 134: // class_statement ::= variable_modifiers class_variable_declaration SEMICOLON
                {
                    Statement RESULT = null;
                    int vmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList vm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int cvdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int cvdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Statement cvd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    ((CLASS_VARIABLE_DECLARATION)cvd).Modifiers = vm;
                    RESULT = cvd;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 133: // class_statement_list ::=
                {
                    StatementList RESULT = null;
                    RESULT = new StatementList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(51/*class_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 132: // class_statement_list ::= class_statement_list class_statement
                {
                    StatementList RESULT = null;
                    int cstlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int cstlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList cstl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int cstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement cst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    cstl.Add(cst);
                    RESULT = cstl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(51/*class_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 131: // static_var_list ::= T_VARIABLE EQUALS static_scalar
                {
                    ExpressionList RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(new EQUALS(new VARIABLE(v, vleft, vright), ss, vleft, vright));
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(57/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 130: // static_var_list ::= T_VARIABLE
                {
                    ExpressionList RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(new VARIABLE(v, vleft, vright));
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(57/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 129: // static_var_list ::= static_var_list COMMA T_VARIABLE EQUALS static_scalar
                {
                    ExpressionList RESULT = null;
                    int svlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int svlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ExpressionList svl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    svl.Add(new EQUALS(new VARIABLE(v, vleft, vright), ss, vleft, vright));
                    RESULT = svl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(57/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 128: // static_var_list ::= static_var_list COMMA T_VARIABLE
                {
                    ExpressionList RESULT = null;
                    int svlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int svlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList svl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    svl.Add(new VARIABLE(v, vleft, vright));
                    RESULT = svl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(57/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 127: // global_var ::= DOLLAR CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
                {
                    Expression RESULT = null;
                    Report.Error(900, "variable variables");
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*global_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 126: // global_var ::= DOLLAR r_variable
                {
                    Expression RESULT = null;
                    int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = (VARIABLE)rv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*global_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 125: // global_var ::= T_VARIABLE
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new VARIABLE(v, vleft, vright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*global_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 124: // global_var_list ::= global_var
                {
                    ExpressionList RESULT = null;
                    int gvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int gvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression gv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(gv);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(56/*global_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 123: // global_var_list ::= global_var_list COMMA global_var
                {
                    ExpressionList RESULT = null;
                    int gvlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int gvlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList gvl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int gvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int gvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression gv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    gvl.Add(gv);
                    RESULT = gvl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(56/*global_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 122: // non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list COMMA AND w_variable
                {
                    ExpressionList RESULT = null;
                    int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nefcpl.Add(new REFERENCE(wv, tleft, tright));
                    RESULT = nefcpl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 121: // non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list COMMA variable
                {
                    ExpressionList RESULT = null;
                    int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nefcpl.Add(v);
                    RESULT = nefcpl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 120: // non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list COMMA expr_without_variable
                {
                    ExpressionList RESULT = null;
                    int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nefcpl.Add(ewv);
                    RESULT = nefcpl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 119: // non_empty_function_call_parameter_list ::= AND w_variable
                {
                    ExpressionList RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(new REFERENCE(wv, tleft, tright));
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 118: // non_empty_function_call_parameter_list ::= variable
                {
                    ExpressionList RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(v);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 117: // non_empty_function_call_parameter_list ::= expr_without_variable
                {
                    ExpressionList RESULT = null;
                    int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(ewv);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 116: // function_call_parameter_list ::=
                {
                    ExpressionList RESULT = null;
                    RESULT = new ExpressionList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 115: // function_call_parameter_list ::= non_empty_function_call_parameter_list
                {
                    ExpressionList RESULT = null;
                    int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = nefcpl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 114: // optional_class_type ::= T_STRING
                {
                    string RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(85/*optional_class_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 113: // optional_class_type ::=
                {
                    string RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(85/*optional_class_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 112: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type T_VARIABLE EQUALS static_scalar
                {
                    ArrayList RESULT = null;
                    int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nepl.Add(new PARAMETER_DECLARATION(oct, false, v, ss, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 111: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type AND T_VARIABLE EQUALS static_scalar
                {
                    ArrayList RESULT = null;
                    int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nepl.Add(new PARAMETER_DECLARATION(oct, true, v, ss, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 110: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type AND T_VARIABLE
                {
                    ArrayList RESULT = null;
                    int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nepl.Add(new PARAMETER_DECLARATION(oct, true, v, null, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 109: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type T_VARIABLE
                {
                    ArrayList RESULT = null;
                    int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nepl.Add(new PARAMETER_DECLARATION(oct, false, v, null, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 108: // non_empty_parameter_list ::= optional_class_type T_VARIABLE EQUALS static_scalar
                {
                    ArrayList RESULT = null;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nepl = new ArrayList();
                    nepl.Add(new PARAMETER_DECLARATION(oct, false, v, ss, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 107: // non_empty_parameter_list ::= optional_class_type AND T_VARIABLE EQUALS static_scalar
                {
                    ArrayList RESULT = null;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nepl = new ArrayList();
                    nepl.Add(new PARAMETER_DECLARATION(oct, true, v, ss, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 106: // non_empty_parameter_list ::= optional_class_type AND T_VARIABLE
                {
                    ArrayList RESULT = null;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nepl = new ArrayList();
                    nepl.Add(new PARAMETER_DECLARATION(oct, true, v, null, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 105: // non_empty_parameter_list ::= optional_class_type T_VARIABLE
                {
                    ArrayList RESULT = null;
                    int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList nepl = new ArrayList();
                    nepl.Add(new PARAMETER_DECLARATION(oct, false, v, null, octleft, octright));
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 104: // parameter_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 103: // parameter_list ::= non_empty_parameter_list
                {
                    ArrayList RESULT = null;
                    int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = nepl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 102: // new_else_single ::= T_ELSE COLON inner_statement_list
                {
                    Statement RESULT = null;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = istl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(15/*new_else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 101: // new_else_single ::=
                {
                    Statement RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(15/*new_else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 100: // else_single ::= T_ELSE statement
                {
                    Statement RESULT = null;
                    int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = st;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(14/*else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 99: // else_single ::=
                {
                    Statement RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(14/*else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 98: // new_elseif_list ::= new_elseif_list T_ELSEIF BRACE_OPEN expr BRACE_CLOSE COLON inner_statement_list
                {
                    ArrayList RESULT = null;
                    int nelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int nelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    ArrayList nel = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    nel.Add(new ELSEIF(e, istl, tleft, tright));
                    RESULT = nel;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(72/*new_elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 97: // new_elseif_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(72/*new_elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 96: // elseif_list ::= elseif_list T_ELSEIF BRACE_OPEN expr BRACE_CLOSE statement
                {
                    ArrayList RESULT = null;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    el.Add(new ELSEIF(e, st, tleft, tright));
                    RESULT = el;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(71/*elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 95: // elseif_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(71/*elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 94: // while_statement ::= COLON inner_statement_list T_ENDWHILE SEMICOLON
                {
                    Statement RESULT = null;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = istl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*while_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 93: // while_statement ::= statement
                {
                    Statement RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*while_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 92: // case_separator ::= SEMICOLON
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(92/*case_separator*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 91: // case_separator ::= COLON
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(92/*case_separator*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 90: // case_list ::= case_list T_DEFAULT case_separator inner_statement_list
                {
                    ArrayList RESULT = null;
                    int clleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int clright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ArrayList cl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    object cs = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    cl.Add(new DEFAULT(istl, tleft, tright));
                    RESULT = cl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(70/*case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 89: // case_list ::= case_list T_CASE expr case_separator inner_statement_list
                {
                    ArrayList RESULT = null;
                    int clleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int clright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ArrayList cl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    object cs = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    cl.Add(new CASE(e, istl, tleft, tright));
                    RESULT = cl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(70/*case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 88: // case_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(70/*case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 87: // switch_case_list ::= COLON SEMICOLON case_list T_ENDSWITCH SEMICOLON
                {
                    ArrayList RESULT = null;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = cs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(69/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 86: // switch_case_list ::= COLON case_list T_ENDSWITCH SEMICOLON
                {
                    ArrayList RESULT = null;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = cs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(69/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 85: // switch_case_list ::= CURLY_BRACE_OPEN SEMICOLON case_list CURLY_BRACE_CLOSE
                {
                    ArrayList RESULT = null;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = cs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(69/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 84: // switch_case_list ::= CURLY_BRACE_OPEN case_list CURLY_BRACE_CLOSE
                {
                    ArrayList RESULT = null;
                    int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = cs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(69/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 83: // declare_list ::= declare_list COMMA T_STRING EQUALS static_scalar
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(97/*declare_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 82: // declare_list ::= T_STRING EQUALS static_scalar
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(97/*declare_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 81: // declare_statement ::= COLON inner_statement_list T_ENDDECLARE SEMICOLON
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(96/*declare_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 80: // declare_statement ::= statement
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(96/*declare_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 79: // foreach_statement ::= COLON inner_statement_list T_ENDFOREACH SEMICOLON
                {
                    Statement RESULT = null;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = istl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*foreach_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 78: // foreach_statement ::= statement
                {
                    Statement RESULT = null;
                    int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = st;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*foreach_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 77: // for_statement ::= COLON inner_statement_list T_ENDFOR SEMICOLON
                {
                    Statement RESULT = null;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = istl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*for_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 76: // for_statement ::= statement
                {
                    Statement RESULT = null;
                    int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = st;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*for_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 75: // foreach_variable ::= AND w_variable
                {
                    Expression RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new REFERENCE(wv, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(21/*foreach_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 74: // foreach_variable ::= w_variable
                {
                    Expression RESULT = null;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = wv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(21/*foreach_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 73: // foreach_optional_arg ::= T_DOUBLE_ARROW foreach_variable
                {
                    Expression RESULT = null;
                    int fvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression fv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fv;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(20/*foreach_optional_arg*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 72: // foreach_optional_arg ::=
                {
                    Expression RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(20/*foreach_optional_arg*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 71: // interface_list ::= interface_list COMMA fully_qualified_class_name
                {
                    ArrayList RESULT = null;
                    int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    il.Add(fqcn);
                    RESULT = il;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*interface_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 70: // interface_list ::= fully_qualified_class_name
                {
                    ArrayList RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList il = new ArrayList();
                    il.Add(fqcn);
                    RESULT = il;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*interface_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 69: // implements_list ::= T_IMPLEMENTS interface_list
                {
                    ArrayList RESULT = null;
                    int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = il;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(67/*implements_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 68: // implements_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(67/*implements_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 67: // interface_extends_list ::= T_EXTENDS interface_list
                {
                    ArrayList RESULT = null;
                    int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = il;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(66/*interface_extends_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 66: // interface_extends_list ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(66/*interface_extends_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 65: // interface_entry ::= T_INTERFACE
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(91/*interface_entry*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 64: // extends_from ::= T_EXTENDS fully_qualified_class_name
                {
                    string RESULT = null;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fqcn;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*extends_from*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 63: // extends_from ::=
                {
                    string RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*extends_from*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 62: // class_entry_type ::= T_FINAL T_CLASS
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.FINAL;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*class_entry_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 61: // class_entry_type ::= T_ABSTRACT T_CLASS
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.ABSTRACT;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*class_entry_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 60: // class_entry_type ::= T_CLASS
                {
                    object RESULT = null;
                    RESULT = PHP.Compiler.Modifiers.PUBLIC;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*class_entry_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 59: // unticked_class_declaration_statement ::= interface_entry T_STRING interface_extends_list CURLY_BRACE_OPEN class_statement_list CURLY_BRACE_CLOSE
                {
                    Statement RESULT = null;
                    int ieleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int ieright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    object ie = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int ielleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int ielright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ArrayList iel = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int cstlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int cstlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList cstl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new INTERFACE_DECLARATION(s, iel, cstl, ieleft, ieright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*unticked_class_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 58: // unticked_class_declaration_statement ::= class_entry_type T_STRING extends_from implements_list CURLY_BRACE_OPEN class_statement_list CURLY_BRACE_CLOSE
                {
                    Statement RESULT = null;
                    int cetleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int cetright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    object cet = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int efleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int efright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string ef = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int cstlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int cstlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList cstl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new CLASS_DECLARATION((int)cet, s, ef, il, cstl, cetleft, cetright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*unticked_class_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 57: // unticked_function_declaration_statement ::= T_FUNCTION is_reference T_STRING BRACE_OPEN parameter_list BRACE_CLOSE CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).value;
                    int irleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left;
                    int irright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).right;
                    object ir = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int plleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int plright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ArrayList pl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new FUNCTION_DECLARATION(new ArrayList(), (bool)ir, s, pl, istl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(9/*unticked_function_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 56: // is_reference ::= AND
                {
                    object RESULT = null;
                    RESULT = true;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(89/*is_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 55: // is_reference ::=
                {
                    object RESULT = null;
                    RESULT = false;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(89/*is_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 54: // class_declaration_statement ::= unticked_class_declaration_statement
                {
                    Statement RESULT = null;
                    int ucdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ucdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement ucds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = ucds;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(8/*class_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 53: // function_declaration_statement ::= unticked_function_declaration_statement
                {
                    Statement RESULT = null;
                    int ufdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int ufdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement ufds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = ufds;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(7/*function_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 52: // use_filename ::= BRACE_OPEN T_CONSTANT_ENCAPSED_STRING BRACE_CLOSE
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(95/*use_filename*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 51: // use_filename ::= T_CONSTANT_ENCAPSED_STRING
                {
                    object RESULT = null;

                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(95/*use_filename*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 50: // unset_variable ::= variable
                {
                    Expression RESULT = null;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = v;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(19/*unset_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 49: // unset_variables ::= unset_variables COMMA unset_variable
                {
                    ExpressionList RESULT = null;
                    int uvsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int uvsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList uvs = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int uvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int uvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression uv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    uvs.Add(uv);
                    RESULT = uvs;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(53/*unset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 48: // unset_variables ::= unset_variable
                {
                    ExpressionList RESULT = null;
                    int uvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int uvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Expression uv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new ExpressionList(uv);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(53/*unset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 47: // additional_catch ::= T_CATCH BRACE_OPEN fully_qualified_class_name T_VARIABLE BRACE_CLOSE CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
                {
                    object RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).value;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new CATCH(fqcn, v, istl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(88/*additional_catch*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 46: // non_empty_additional_catches ::= non_empty_additional_catches additional_catch
                {
                    ArrayList RESULT = null;
                    int neacleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int neacright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList neac = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int acleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int acright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    object ac = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    neac.Add(ac);
                    RESULT = neac;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(65/*non_empty_additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 45: // non_empty_additional_catches ::= additional_catch
                {
                    ArrayList RESULT = null;
                    int acleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int acright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    object ac = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ArrayList al = new ArrayList();
                    al.Add(ac);
                    RESULT = al;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(65/*non_empty_additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 44: // additional_catches ::=
                {
                    ArrayList RESULT = null;
                    RESULT = new ArrayList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 43: // additional_catches ::= non_empty_additional_catches
                {
                    ArrayList RESULT = null;
                    int neacleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int neacright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList neac = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = neac;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 42: // unticked_statement ::= T_THROW expr SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new THROW(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 41: // unticked_statement ::= T_TRY CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE T_CATCH BRACE_OPEN fully_qualified_class_name T_VARIABLE BRACE_CLOSE CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE additional_catches
                {
                    Statement RESULT = null;
                    int t1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).left;
                    int t1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).right;
                    string t1 = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).value;
                    int istl1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 10)).left;
                    int istl1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 10)).right;
                    StatementList istl1 = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 10)).value;
                    int t2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).left;
                    int t2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).right;
                    string t2 = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).value;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int istl2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int istl2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    StatementList istl2 = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int acleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int acright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList ac = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    ac.Add(new CATCH(fqcn, v, istl2, t2left, t2right));
                    RESULT = new TRY(istl1, ac, t1left, t1right);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 40: // unticked_statement ::= SEMICOLON
                {
                    Statement RESULT = null;
                    RESULT = null;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 39: // unticked_statement ::= T_DECLARE BRACE_OPEN declare_list BRACE_CLOSE declare_statement
                {
                    Statement RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 38: // unticked_statement ::= T_FOREACH BRACE_OPEN expr_without_variable T_AS w_variable foreach_optional_arg BRACE_CLOSE foreach_statement
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).value;
                    int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int foaleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int foaright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression foa = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int fstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement fst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    Expression array = ewv;
                    Expression key = (foa == null) ? null : wv;
                    Expression value = (foa == null) ? wv : foa;
                    RESULT = new FOREACH(array, key, value, fst, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 37: // unticked_statement ::= T_FOREACH BRACE_OPEN variable T_AS foreach_variable foreach_optional_arg BRACE_CLOSE foreach_statement
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int fvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int fvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    Expression fv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int foaleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int foaright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression foa = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int fstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement fst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    Expression array = v;
                    Expression key = (foa == null) ? null : fv;
                    Expression value = (foa == null) ? fv : foa;
                    RESULT = new FOREACH(array, key, value, fst, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 36: // unticked_statement ::= T_UNSET BRACE_OPEN unset_variables BRACE_CLOSE SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int uvsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int uvsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList uvs = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = new UNSET(uvs, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 35: // unticked_statement ::= T_USE use_filename SEMICOLON
                {
                    Statement RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string e = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    Report.Error(900, e);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 34: // unticked_statement ::= expr SEMICOLON
                {
                    Statement RESULT = null;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new EXPRESSION_AS_STATEMENT(e, eleft, eright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 33: // unticked_statement ::= T_INLINE_HTML
                {
                    Statement RESULT = null;
                    /* This case will never be entered as HTML code is filtered by the parser */
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 32: // unticked_statement ::= T_ECHO echo_expr_list SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList eel = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new ECHO(eel, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 31: // unticked_statement ::= T_STATIC static_var_list SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int svlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int svlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList svl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new STATIC_DECLARATION((ExpressionList)svl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 30: // unticked_statement ::= T_GLOBAL global_var_list SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int gvlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int gvlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ExpressionList gvl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new GLOBAL(gvl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 29: // unticked_statement ::= T_RETURN variable SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new RETURN(v, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 28: // unticked_statement ::= T_RETURN expr_without_variable SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new RETURN(ewv, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 27: // unticked_statement ::= T_RETURN SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new RETURN(null, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 26: // unticked_statement ::= T_CONTINUE expr SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new CONTINUE(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 25: // unticked_statement ::= T_CONTINUE SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new CONTINUE(null, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 24: // unticked_statement ::= T_BREAK expr SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new BREAK(e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 23: // unticked_statement ::= T_BREAK SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new BREAK(null, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 22: // unticked_statement ::= T_SWITCH BRACE_OPEN expr BRACE_CLOSE switch_case_list
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int sclleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sclright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    ArrayList scl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new SWITCH(e, scl, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 21: // unticked_statement ::= T_FOR BRACE_OPEN for_expr SEMICOLON for_expr SEMICOLON for_expr BRACE_CLOSE for_statement
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).value;
                    int fe1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int fe1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    ExpressionList fe1 = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int fe2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int fe2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    ExpressionList fe2 = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int fe3left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int fe3right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    ExpressionList fe3 = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int fsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement fs = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new FOR(fe1, fe2, fe3, fs, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 20: // unticked_statement ::= T_DO statement T_WHILE BRACE_OPEN expr BRACE_CLOSE
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new DO(s, e, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 19: // unticked_statement ::= T_WHILE BRACE_OPEN expr BRACE_CLOSE while_statement
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int wstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int wstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement wst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new WHILE(e, wst, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 18: // unticked_statement ::= T_IF BRACE_OPEN expr BRACE_CLOSE COLON inner_statement_list new_elseif_list new_else_single T_ENDIF SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 9)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 9)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 9)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 7)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int nelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int nelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    ArrayList nel = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int nesleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int nesright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Statement nes = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    RESULT = new IF(e, istl, nel, nes, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 9)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 17: // unticked_statement ::= T_IF BRACE_OPEN expr BRACE_CLOSE statement elseif_list else_single
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).value;
                    int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int esleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int esright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement es = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new IF(e, st, el, es, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 16: // unticked_statement ::= CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
                {
                    Statement RESULT = null;
                    int cleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int cright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string c = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new BLOCK(istl, cleft, cright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 15: // statement ::= unticked_statement
                {
                    Statement RESULT = null;
                    int usleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int usright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement us = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = us;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 14: // inner_statement ::= class_declaration_statement
                {
                    Statement RESULT = null;
                    int cdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement cds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = cds;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(4/*inner_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 13: // inner_statement ::= function_declaration_statement
                {
                    Statement RESULT = null;
                    int fdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement fds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fds;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(4/*inner_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 12: // inner_statement ::= statement
                {
                    Statement RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(4/*inner_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 11: // inner_statement_list ::=
                {
                    StatementList RESULT = null;
                    RESULT = new StatementList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(50/*inner_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 10: // inner_statement_list ::= inner_statement_list inner_statement
                {
                    StatementList RESULT = null;
                    int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int istleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int istright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement ist = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    istl.Add(ist);
                    RESULT = istl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(50/*inner_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 9: // using_statement ::= T_USING T_STRING EQUALS fully_qualified_class_name SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).value;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right;
                    string s = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).value;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new USING(fqcn, s, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*using_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 8: // using_statement ::= T_USING fully_qualified_class_name SEMICOLON
                {
                    Statement RESULT = null;
                    int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left;
                    int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right;
                    string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value;
                    int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = new USING(fqcn, null, tleft, tright);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*using_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 7: // top_statement ::= using_statement
                {
                    Statement RESULT = null;
                    int usleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int usright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement us = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = us;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 6: // top_statement ::= class_declaration_statement
                {
                    Statement RESULT = null;
                    int cdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int cdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement cds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = cds;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 5: // top_statement ::= function_declaration_statement
                {
                    Statement RESULT = null;
                    int fdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int fdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement fds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = fds;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 4: // top_statement ::= statement
                {
                    Statement RESULT = null;
                    int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = s;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 3: // top_statement_list ::=
                {
                    StatementList RESULT = null;
                    RESULT = new StatementList();
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(49/*top_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 2: // top_statement_list ::= top_statement_list top_statement
                {
                    StatementList RESULT = null;
                    int tslleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int tslright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    StatementList tsl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    int tsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    Statement ts = (Statement)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    tsl.Add(ts);
                    RESULT = tsl;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(49/*top_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 1: // $START ::= begin EOF
                {
                    object RESULT = null;
                    int start_valleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left;
                    int start_valright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right;
                    AST start_val = (AST)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value;
                    RESULT = start_val;
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(0/*$START*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
          /* ACCEPT */
                CUP_Parser_parser.done_parsing();
                return CUP_Parser_result;

        /*. . . . . . . . . . . . . . . . . . . .*/
            case 0: // begin ::= top_statement_list
                {
                    AST RESULT = null;
                    int tslleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left;
                    int tslright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right;
                    StatementList tsl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value;
                    RESULT = new AST(tsl);
                    CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(1/*begin*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right, RESULT);
                }
                return CUP_Parser_result;

        /* . . . . . .*/
            default:
                throw new System.Exception(
                    "Invalid action number found in internal parse table");

        }
    }
Пример #24
0
 public static async Task EncodeImages(IF format, int qMin, int qMax, bool deleteSource)
 {
     await EncodeImages(IOUtils.GetFiles(), format, qMin, qMax, deleteSource);
 }
Пример #25
0
 public static async Task EncodeImages(string[] files, IF format, int qMin, int qMax, bool deleteSource)
 {
     FileInfo[] fileInfos = files.Select(x => new FileInfo(x)).ToArray();
     await EncodeImages(fileInfos, format, qMin, qMax, deleteSource);
 }
Пример #26
0
 protected override void Visit_IF(IF node)
 {
     /* MOVE CODE HERE */
 }
Пример #27
0
        public void ApicalConstriction1(float r)
        {
            //this.appliedForces = forces;
            //Debug.Log("Apical Constriction");
            Vector meanPoint = Vector.zero;

            for (int i = 0; i < nbOfParticles; i++)
            {
                meanPoint += vertices[i].GetPosition();
            }
            meanPoint /= nbOfParticles;

            float R = (float)innerRadius.x;
            float H = (float)innerRadius.y * 2f;

            //Console.WriteLine(R + ", " + r + ", " + H);

            float delta = 3 * (3 * R - r) * (R + r);
            float t1    = (float)(Math.Sqrt(delta) - (3 * R - r)) / 2f;
            //Console.WriteLine(t1);

            //float t2 = (-Mathf.Sqrt(delta) - (3 * R - r)) / 2f;
            //float zero = t1 * t1 + (3 * R - r) * t1 + R * R + (2 * R * R - 3 * R * r + r * r - 3 * R * R);
            //Debug.Log("zero: " + zero);
            //float V0 = 4 * R *R * H;
            //float V = (4f * H / (3f*(t1+r))) * ((R + t1) * (R + t1) * (R + t1) - (R - r) * (R - r) * (R - r));

            Vector O2, B, I, PI, IF, IB, F, MP, O2M, M;

            for (int i = 0; i < nbOfParticles; i++)
            {
                targetVertices[i] = vertices[i].GetPosition() - meanPoint;
                double xz = Math.Sqrt(targetVertices[i].x * targetVertices[i].x + targetVertices[i].z * targetVertices[i].z);

                //O2 = new Vector(0, targetVertices[i].y, targetVertices[i].z);
                O2 = new Vector(0, targetVertices[i].y);
                Vector O2P = targetVertices[i] - O2;
                B  = new Vector(targetVertices[i].x, -innerRadius.y, targetVertices[i].z);
                F  = new Vector(targetVertices[i].x, innerRadius.y, targetVertices[i].z);
                I  = B + new Vector(0f, t1 / (t1 + r) * H, 0f);
                PI = I - targetVertices[i];
                //Console.WriteLine(i + ", I: " + I + ", PI: " + PI);

                Vector O2Pnorm = (Vector)O2P.Clone(); O2Pnorm.normalize();
                //Console.WriteLine(i + ", " + O2P + ", " + O2Pnorm);
                if (targetVertices[i].y > I.y)
                {
                    IF  = F - I;
                    MP  = (2 * xz * r * PI.norm() / IF.norm()) * O2Pnorm;
                    O2M = O2P - MP;
                }
                else
                {
                    IB  = B - I;
                    MP  = -(2 * xz * t1 * PI.norm() / IB.norm()) * O2Pnorm;
                    O2M = O2P - MP;
                }

                M = O2M + O2;
                targetVertices[i] = M;// +meanPoint;
                //Console.WriteLine(i + ", " +M+", "+ targetVertices[i]);
            }

            if (polarisation == Vector.down)
            {
                for (int i = 0; i < nbOfParticles; i++)
                {
                    targetVertices[i].y = -targetVertices[i].y;
                    vertices[i].v       = 2 * meanPoint - vertices[i].v;
                }
            }

            //Console.WriteLine(nuclei[0].v + "," + meanPoint);
            for (int i = 0; i < nbOfParticles; i++)
            {
                targetVertices[i] += meanPoint;
                //Console.WriteLine(i + ", " + targetVertices[i]);
                nucleusEdges[i].l0 = (targetVertices[i] - meanPoint).norm();
                //if(cellId==5 || cellId==73)
                //Console.WriteLine(cellId + ", " + i + ", " + nucleusEdges[i].l0);
            }

            for (int j = 0; j < edgeCount(); j++)
            {
                edges[j].l0 = Vector.Distance(targetVertices[edges[j].ends[0].pos], targetVertices[edges[j].ends[1].pos]);
            }
        }
Пример #28
0
 public MySqlFunctionManager(bool allowFuncDefChange)
 {
     this.allowFuncDefChange                = allowFuncDefChange;
     parsingStrateg["CAST"]                 = FunctionParsingStrategy.Cast;
     parsingStrateg["POSITION"]             = FunctionParsingStrategy.Position;
     parsingStrateg["SUBSTR"]               = FunctionParsingStrategy.Substring;
     parsingStrateg["SUBSTRING"]            = FunctionParsingStrategy.Substring;
     parsingStrateg["TRIM"]                 = FunctionParsingStrategy.Trim;
     parsingStrateg["AVG"]                  = FunctionParsingStrategy.Avg;
     parsingStrateg["COUNT"]                = FunctionParsingStrategy.Count;
     parsingStrateg["GROUP_CONCAT"]         = FunctionParsingStrategy.GroupConcat;
     parsingStrateg["MAX"]                  = FunctionParsingStrategy.Max;
     parsingStrateg["MIN"]                  = FunctionParsingStrategy.Min;
     parsingStrateg["SUM"]                  = FunctionParsingStrategy.Sum;
     parsingStrateg["ROW"]                  = FunctionParsingStrategy.Row;
     parsingStrateg["CHAR"]                 = FunctionParsingStrategy.Char;
     parsingStrateg["CONVERT"]              = FunctionParsingStrategy.Convert;
     parsingStrateg["EXTRACT"]              = FunctionParsingStrategy.Extract;
     parsingStrateg["TIMESTAMPADD"]         = FunctionParsingStrategy.Timestampadd;
     parsingStrateg["TIMESTAMPDIFF"]        = FunctionParsingStrategy.Timestampdiff;
     parsingStrateg["GET_FORMAT"]           = FunctionParsingStrategy.GetFormat;
     functionPrototype["ABS"]               = new Abs(null);
     functionPrototype["ACOS"]              = new Acos(null);
     functionPrototype["ADDDATE"]           = new Adddate(null);
     functionPrototype["ADDTIME"]           = new Addtime(null);
     functionPrototype["AES_DECRYPT"]       = new AesDecrypt(null);
     functionPrototype["AES_ENCRYPT"]       = new AesEncrypt(null);
     functionPrototype["ANALYSE"]           = new Analyse(null);
     functionPrototype["ASCII"]             = new Ascii(null);
     functionPrototype["ASIN"]              = new Asin(null);
     functionPrototype["ATAN2"]             = new Atan2(null);
     functionPrototype["ATAN"]              = new Atan(null);
     functionPrototype["BENCHMARK"]         = new Benchmark(null);
     functionPrototype["BIN"]               = new Bin(null);
     functionPrototype["BIT_AND"]           = new BitAnd(null);
     functionPrototype["BIT_COUNT"]         = new BitCount(null);
     functionPrototype["BIT_LENGTH"]        = new BitLength(null);
     functionPrototype["BIT_OR"]            = new BitOR(null);
     functionPrototype["BIT_XOR"]           = new BitXor(null);
     functionPrototype["CEIL"]              = new Ceiling(null);
     functionPrototype["CEILING"]           = new Ceiling(null);
     functionPrototype["CHAR_LENGTH"]       = new CharLength(null);
     functionPrototype["CHARACTER_LENGTH"]  = new CharLength(null);
     functionPrototype["CHARSET"]           = new Charset(null);
     functionPrototype["COALESCE"]          = new Coalesce(null);
     functionPrototype["COERCIBILITY"]      = new Coercibility(null);
     functionPrototype["COLLATION"]         = new Collation(null);
     functionPrototype["COMPRESS"]          = new Compress(null);
     functionPrototype["CONCAT_WS"]         = new ConcatWs(null);
     functionPrototype["CONCAT"]            = new Concat(null);
     functionPrototype["CONNECTION_ID"]     = new ConnectionId(null);
     functionPrototype["CONV"]              = new Conv(null);
     functionPrototype["CONVERT_TZ"]        = new ConvertTz(null);
     functionPrototype["COS"]               = new Cos(null);
     functionPrototype["COT"]               = new Cot(null);
     functionPrototype["CRC32"]             = new Crc32(null);
     functionPrototype["CURDATE"]           = new Curdate();
     functionPrototype["CURRENT_DATE"]      = new Curdate();
     functionPrototype["CURRENT_TIME"]      = new Curtime();
     functionPrototype["CURTIME"]           = new Curtime();
     functionPrototype["CURRENT_TIMESTAMP"] = new Now();
     functionPrototype["CURRENT_USER"]      = new CurrentUser();
     functionPrototype["CURTIME"]           = new Curtime();
     functionPrototype["DATABASE"]          = new Database(null);
     functionPrototype["DATE_ADD"]          = new DateAdd(null);
     functionPrototype["DATE_FORMAT"]       = new DateFormat(null);
     functionPrototype["DATE_SUB"]          = new DateSub(null);
     functionPrototype["DATE"]              = new Date(null);
     functionPrototype["DATEDIFF"]          = new Datediff(null);
     functionPrototype["DAY"]               = new Dayofmonth(null);
     functionPrototype["DAYOFMONTH"]        = new Dayofmonth(null);
     functionPrototype["DAYNAME"]           = new Dayname(null);
     functionPrototype["DAYOFWEEK"]         = new Dayofweek(null);
     functionPrototype["DAYOFYEAR"]         = new Dayofyear(null);
     functionPrototype["DECODE"]            = new Decode(null);
     functionPrototype["DEFAULT"]           = new Default(null);
     functionPrototype["DEGREES"]           = new Degrees(null);
     functionPrototype["DES_DECRYPT"]       = new DesDecrypt(null);
     functionPrototype["DES_ENCRYPT"]       = new DesEncrypt(null);
     functionPrototype["ELT"]               = new Elt(null);
     functionPrototype["ENCODE"]            = new Encode(null);
     functionPrototype["ENCRYPT"]           = new Encrypt(null);
     functionPrototype["EXP"]               = new Exp(null);
     functionPrototype["EXPORT_SET"]        = new ExportSet(null);
     // functionPrototype.put("EXTRACT", new Extract(null));
     functionPrototype["EXTRACTVALUE"]  = new ExtractValue(null);
     functionPrototype["FIELD"]         = new Field(null);
     functionPrototype["FIND_IN_SET"]   = new FindInSet(null);
     functionPrototype["FLOOR"]         = new Floor(null);
     functionPrototype["FORMAT"]        = new Format(null);
     functionPrototype["FOUND_ROWS"]    = new FoundRows(null);
     functionPrototype["FROM_DAYS"]     = new FromDays(null);
     functionPrototype["FROM_UNIXTIME"] = new FromUnixtime(null);
     // functionPrototype.put("GET_FORMAT", new GetFormat(null));
     functionPrototype["GET_LOCK"]       = new GetLock(null);
     functionPrototype["GREATEST"]       = new Greatest(null);
     functionPrototype["HEX"]            = new Hex(null);
     functionPrototype["HOUR"]           = new Hour(null);
     functionPrototype["IF"]             = new IF(null);
     functionPrototype["IFNULL"]         = new IFNull(null);
     functionPrototype["INET_ATON"]      = new InetAton(null);
     functionPrototype["INET_NTOA"]      = new InetNtoa(null);
     functionPrototype["INSERT"]         = new Insert(null);
     functionPrototype["INSTR"]          = new Instr(null);
     functionPrototype["INTERVAL"]       = new Interval(null);
     functionPrototype["IS_FREE_LOCK"]   = new IsFreeLock(null);
     functionPrototype["IS_USED_LOCK"]   = new IsUsedLock(null);
     functionPrototype["ISNULL"]         = new IsNull(null);
     functionPrototype["LAST_DAY"]       = new LastDay(null);
     functionPrototype["LAST_INSERT_ID"] = new LastInsertId(null);
     functionPrototype["LCASE"]          = new Lower(null);
     functionPrototype["LEAST"]          = new Least(null);
     functionPrototype["LEFT"]           = new Left(null);
     functionPrototype["LENGTH"]         = new Length(null);
     functionPrototype["LN"]             = new Log(null);
     // Ln(X) equals Log(X)
     functionPrototype["LOAD_FILE"]       = new LoadFile(null);
     functionPrototype["LOCALTIME"]       = new Now();
     functionPrototype["LOCALTIMESTAMP"]  = new Now();
     functionPrototype["LOCATE"]          = new Locate(null);
     functionPrototype["LOG10"]           = new Log10(null);
     functionPrototype["LOG2"]            = new Log2(null);
     functionPrototype["LOG"]             = new Log(null);
     functionPrototype["LOWER"]           = new Lower(null);
     functionPrototype["LPAD"]            = new Lpad(null);
     functionPrototype["LTRIM"]           = new Ltrim(null);
     functionPrototype["MAKE_SET"]        = new MakeSet(null);
     functionPrototype["MAKEDATE"]        = new Makedate(null);
     functionPrototype["MAKETIME"]        = new Maketime(null);
     functionPrototype["MASTER_POS_WAIT"] = new MasterPosWait(null);
     functionPrototype["MD5"]             = new Md5(null);
     functionPrototype["MICROSECOND"]     = new Microsecond(null);
     functionPrototype["MID"]             = new Substring(null);
     functionPrototype["MINUTE"]          = new Minute(null);
     functionPrototype["MONTH"]           = new Month(null);
     functionPrototype["MONTHNAME"]       = new Monthname(null);
     functionPrototype["NAME_CONST"]      = new NameConst(null);
     functionPrototype["NOW"]             = new Now();
     functionPrototype["NULLIF"]          = new NullIF(null);
     functionPrototype["OCT"]             = new Oct(null);
     functionPrototype["OCTET_LENGTH"]    = new Length(null);
     functionPrototype["OLD_PASSWORD"]    = new OldPassword(null);
     functionPrototype["ORD"]             = new Ord(null);
     functionPrototype["PASSWORD"]        = new Password(null);
     functionPrototype["PERIOD_ADD"]      = new PeriodAdd(null);
     functionPrototype["PERIOD_DIFF"]     = new PeriodDiff(null);
     functionPrototype["PI"]              = new PI(null);
     functionPrototype["POW"]             = new Pow(null);
     functionPrototype["POWER"]           = new Pow(null);
     functionPrototype["QUARTER"]         = new Quarter(null);
     functionPrototype["QUOTE"]           = new Quote(null);
     functionPrototype["RADIANS"]         = new Radians(null);
     functionPrototype["RAND"]            = new Rand(null);
     functionPrototype["RELEASE_LOCK"]    = new ReleaseLock(null);
     functionPrototype["REPEAT"]          = new Repeat(null);
     functionPrototype["REPLACE"]         = new Replace(null);
     functionPrototype["REVERSE"]         = new Reverse(null);
     functionPrototype["RIGHT"]           = new Right(null);
     functionPrototype["ROUND"]           = new Round(null);
     functionPrototype["ROW_COUNT"]       = new RowCount(null);
     functionPrototype["RPAD"]            = new Rpad(null);
     functionPrototype["RTRIM"]           = new Rtrim(null);
     functionPrototype["SCHEMA"]          = new Database(null);
     functionPrototype["SEC_TO_TIME"]     = new SecToTime(null);
     functionPrototype["SECOND"]          = new Second(null);
     functionPrototype["SESSION_USER"]    = new User(null);
     functionPrototype["SHA1"]            = new Sha1(null);
     functionPrototype["SHA"]             = new Sha1(null);
     functionPrototype["SHA2"]            = new Sha2(null);
     functionPrototype["SIGN"]            = new Sign(null);
     functionPrototype["SIN"]             = new Sin(null);
     functionPrototype["SLEEP"]           = new Sleep(null);
     functionPrototype["SOUNDEX"]         = new Soundex(null);
     functionPrototype["SPACE"]           = new Space(null);
     functionPrototype["SQRT"]            = new Sqrt(null);
     functionPrototype["STD"]             = new Std(null);
     functionPrototype["STDDEV_POP"]      = new StdDevPop(null);
     functionPrototype["STDDEV_SAMP"]     = new StdDevSamp(null);
     functionPrototype["STDDEV"]          = new StdDev(null);
     functionPrototype["STR_TO_DATE"]     = new StrToDate(null);
     functionPrototype["STRCMP"]          = new Strcmp(null);
     functionPrototype["SUBDATE"]         = new Subdate(null);
     functionPrototype["SUBSTRING_INDEX"] = new SubstringIndex(null);
     functionPrototype["SUBTIME"]         = new Subtime(null);
     functionPrototype["SYSDATE"]         = new Sysdate(null);
     functionPrototype["SYSTEM_USER"]     = new User(null);
     functionPrototype["TAN"]             = new Tan(null);
     functionPrototype["TIME_FORMAT"]     = new TimeFormat(null);
     functionPrototype["TIME_TO_SEC"]     = new TimeToSec(null);
     functionPrototype["TIME"]            = new Time(null);
     functionPrototype["TIMEDIFF"]        = new Timediff(null);
     functionPrototype["TIMESTAMP"]       = new Timestamp(null);
     // functionPrototype.put("TIMESTAMPADD", new Timestampadd(null));
     // functionPrototype.put("TIMESTAMPDIFF", new Timestampdiff(null));
     functionPrototype["TO_DAYS"]             = new ToDays(null);
     functionPrototype["TO_SECONDS"]          = new ToSeconds(null);
     functionPrototype["TRUNCATE"]            = new Truncate(null);
     functionPrototype["UCASE"]               = new Upper(null);
     functionPrototype["UNCOMPRESS"]          = new Uncompress(null);
     functionPrototype["UNCOMPRESSED_LENGTH"] = new UncompressedLength(null);
     functionPrototype["UNHEX"]               = new Unhex(null);
     functionPrototype["UNIX_TIMESTAMP"]      = new UnixTimestamp(null);
     functionPrototype["UPDATEXML"]           = new UpdateXml(null);
     functionPrototype["UPPER"]               = new Upper(null);
     functionPrototype["USER"]          = new User(null);
     functionPrototype["UTC_DATE"]      = new UtcDate(null);
     functionPrototype["UTC_TIME"]      = new UtcTime(null);
     functionPrototype["UTC_TIMESTAMP"] = new UtcTimestamp(null);
     functionPrototype["UUID_SHORT"]    = new UuidShort(null);
     functionPrototype["UUID"]          = new Uuid(null);
     functionPrototype["VALUES"]        = new Values(null);
     functionPrototype["VAR_POP"]       = new VarPop(null);
     functionPrototype["VAR_SAMP"]      = new VarSamp(null);
     functionPrototype["VARIANCE"]      = new Variance(null);
     functionPrototype["VERSION"]       = new Version(null);
     functionPrototype["WEEK"]          = new Week(null);
     functionPrototype["WEEKDAY"]       = new Weekday(null);
     functionPrototype["WEEKOFYEAR"]    = new Weekofyear(null);
     functionPrototype["YEAR"]          = new Year(null);
     functionPrototype["YEARWEEK"]      = new Yearweek(null);
 }
Пример #29
0
        // An expression starts out with a starting value, which we get from GetNextValue
        // Functions are applied to that starting value
        // Each function has a "tier", which means how many tokens can go after it
        // toks: the max amount of tokens that should be parsed (determined by tier)
        private Expression ParseExpression(bool topLevel = false, int toks = -1)
        {
            var val = GetNextValue(ref toks);

            while (!tokenizer.EOF() && toks != 0 && tokenizer.Peek().Type == TokenType.Function)
            {
                // Another token has been consumed; therefore we need to update the breaks
                var next = tokenizer.Next().Value;
                toks--;

                if (Function.IsUnary(next))
                {
                    val = new FunctionInvocationExpression(val, next);
                }
                else
                {
                    var tier = Function.GetTier(next);
                    var arg  = ParseExpression(false, tier);
                    val = new FunctionInvocationExpression(val, next, arg);
                }
                // Get rid of all the brackets if this expression is a top level one
                // And also clear out all the breaks
                if (topLevel)
                {
                    bracket = -1;
                    while (IsBracket())
                    {
                        tokenizer.Next();
                    }
                }
                else
                {
                    ProcessBrackets();
                }
            }
            //If a '?' follows this expression, it means it's a conditional expression
            if (!tokenizer.EOF() && tokenizer.Peek().Type == TokenType.Punctuation && tokenizer.Peek().Value == IF.ToString())
            {
                tokenizer.Next();
                val = new ConditionalExpression(val, ParseExpression(), ParseExpression());
            }
            return(val);
        }
Пример #30
0
        public static void ConvertFileList(string[] files, ComboBox qualityCombox, ComboBox qualityMaxCombox, IF selectedFormat, CheckBox delSrcCbox)
        {
            int qMin = qualityCombox.GetInt();
            int qMax = qMin;

            if (!string.IsNullOrWhiteSpace(qualityMaxCombox.Text.Trim()))
            {
                qMax = qualityMaxCombox.GetInt();
            }

            foreach (string file in files)
            {
                Program.Print("\nDropped File: " + Path.GetFileName(file).Truncate(90));
                if (!IOUtils.IsPathDirectory(file))
                {
                    if (selectedFormat == IF.JPG)
                    {
                        ConvertUtils.ConvertToJpeg(file, qMin, qMax, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.PNG)
                    {
                        ConvertUtils.ConvertToPng(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.DDS)
                    {
                        if (Config.GetInt("ddsEnc") == 0)
                        {
                            ConvertUtils.ConvertToDds(file, delSrcCbox.Checked);
                        }
                        if (Config.GetInt("ddsEnc") == 1)
                        {
                            DdsInterface.NvCompress(file, Path.ChangeExtension(file, "dds"), delSrcCbox.Checked);
                        }
                        if (Config.GetInt("ddsEnc") == 2)
                        {
                            DdsInterface.Crunch(file, qMin, qMax, delSrcCbox.Checked);
                        }
                    }

                    if (selectedFormat == IF.TGA)
                    {
                        ConvertUtils.ConvertToTga(file, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.WEBP)
                    {
                        ConvertUtils.ConvertToWebp(file, qMin, qMax, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.J2K)
                    {
                        ConvertUtils.ConvertToJpeg2000(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.FLIF)
                    {
                        if (Config.GetInt("flifEnc") == 1)
                        {
                            FlifInterface.EncodeImage(file, qMin, delSrcCbox.Checked);
                        }
                        else
                        {
                            ConvertUtils.ConvertToFlif(file, qMin, delSrcCbox.Checked);
                        }
                    }

                    if (selectedFormat == IF.BMP)
                    {
                        ConvertUtils.ConvertToBmp(file, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.AVIF)
                    {
                        ConvertUtils.ConvertToAvif(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.HEIF)
                    {
                        HeifInterface.EncodeImage(file, qMin, delSrcCbox.Checked);
                    }
                }
            }
        }
Пример #31
0
 public class H : IH { public H(IF f)
                       {
                       }
Пример #32
0
        public static async Task ConvertFileList(string[] files, ComboBox qualityCombox, ComboBox qualityMaxCombox, IF selectedFormat, CheckBox delSrcCbox)
        {
            int qMin = qualityCombox.GetInt();
            int qMax = qMin;

            if (!string.IsNullOrWhiteSpace(qualityMaxCombox.Text.Trim()))
            {
                qMax = qualityMaxCombox.GetInt();
            }

            foreach (string file in files)
            {
                Logger.Log("\nDropped File: " + Path.GetFileName(file).Truncate(90));
                if (!IOUtils.IsPathDirectory(file))
                {
                    if (selectedFormat == IF.JPG)
                    {
                        await ConvertUtils.ConvertToJpeg(file, qMin, qMax, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.PNG)
                    {
                        await ConvertUtils.ConvertToPng(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.DDS)
                    {
                        await ConvertUtils.ConvertToDds(file, qMin, qMax, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.TGA)
                    {
                        await ConvertUtils.ConvertToTga(file, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.WEBP)
                    {
                        await ConvertUtils.ConvertToWebp(file, qMin, qMax, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.J2K)
                    {
                        await ConvertUtils.ConvertToJpeg2000(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.FLIF)
                    {
                        if (await Config.GetInt("flifEnc") == 1)
                        {
                            await FlifInterface.EncodeImage(file, qMin, delSrcCbox.Checked);
                        }
                        else
                        {
                            await ConvertUtils.ConvertToFlif(file, qMin, delSrcCbox.Checked);
                        }
                    }

                    if (selectedFormat == IF.BMP)
                    {
                        await ConvertUtils.ConvertToBmp(file, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.AVIF)
                    {
                        await ConvertUtils.ConvertToAvif(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.HEIF)
                    {
                        await HeifInterface.EncodeImage(file, qMin, delSrcCbox.Checked);
                    }

                    if (selectedFormat == IF.JXL)
                    {
                        await ConvertUtils.ConvertToJxl(file, qMin, qMax, delSrcCbox.Checked);
                    }
                }
            }
        }
        //INSTRUCCION
        public Instruction INSTRUCCION(ParseTreeNode actual)
        {
            if (actual.Term.ToString().Equals("WRITE"))
            {
                var WRHITE_PARAMETER = actual.ChildNodes[2];

                var isln = false;
                LinkedList <Expression> list = new LinkedList <Expression>();
                WriteAST writeAST            = new WriteAST();

                list = writeAST.WRITES(WRHITE_PARAMETER);

                if (actual.ChildNodes[0].Term.ToString().Equals("RESERV_WRITEN"))
                {
                    isln = true;
                }
                return(new Write(list, isln));
            }
            else if (actual.Term.ToString().Equals("IF-THEN"))
            {
                IF_AST iF_AST = new IF_AST();
                IF     _ifs   = iF_AST.IFTHEN(actual);
                return(_ifs);
            }
            else if (actual.Term.ToString().Equals("WHILE"))
            {
                While _while = (new WhileAST()).WHILE(actual);
                return(_while);
            }
            else if (actual.Term.ToString().Equals("VAR_ASSIGNATE"))
            {
                var _assignation = (new AssignationAST()).VAR_ASSIGNATE(actual);

                if (_assignation is Assignation)
                {
                    return((Assignation)_assignation);
                }
                else if (_assignation is Assignation_array)
                {
                    return((Assignation_array)_assignation);
                }
                else if (_assignation is Assignation_arrayMultiple)
                {
                    return((Assignation_arrayMultiple)_assignation);
                }
            }
            else if (actual.Term.ToString().Equals("REPEAT_UNTIL"))
            {
                Repeat _repeat = (new RepeatAST()).REPEAT_UNTIL(actual);
                return(_repeat);
            }
            else if (actual.Term.ToString().Equals("FOR"))
            {
                FOR _for = ((new ForAST())).SENCECIA_FOR(actual);
                return(_for);
            }
            else if (actual.Term.ToString().Equals("SENTENCE_CASE"))
            {
                Switch _SW = (new CaseAST()).SENTENCE_CASE(actual);
                return(_SW);
            }
            else if (actual.Term.ToString().Equals("CONTINUE"))
            {
                var row = actual.ChildNodes[0].Token.Location.Line;
                var col = actual.ChildNodes[0].Token.Location.Column;

                return(new Continue(row, col));
            }
            else if (actual.Term.ToString().Equals("BREAK"))
            {
                var row = actual.ChildNodes[0].Token.Location.Line;
                var col = actual.ChildNodes[0].Token.Location.Column;

                return(new Break(row, col));
            }
            else if (actual.Term.ToString().Equals("CALL"))
            {
                return((new Call_Instruction()).CALL(actual));
            }
            else if (actual.Term.ToString().Equals("EXIT"))
            {
                return((new ExitAst()).getExit(actual.ChildNodes[2]));
            }

            return(null);
        }
Пример #34
0
        /// <summary>
        /// The function processes all kinds of statements including
        /// assignments, calls, and variable/constant declarations.
        /// </summary>
        /// <param name="context"></param>
        /// <returns>true, if any construct (a statement, or a simple declaration)
        /// was processed, and false otherwise.</returns>
        public static bool parse(iSCOPE context, TokenCode stop1, TokenCode stop2, TokenCode stop3)
        {
            Debug.Indent();
            Debug.WriteLine("Entering STATEMENT.parse");

            bool result = true;

            Token token = get();
            Token begin = token;

            if (token.code == stop1 && stop1 != TokenCode.ERROR)
            {
                goto Finish;
            }
            if (token.code == stop2 && stop2 != TokenCode.ERROR)
            {
                goto Finish;
            }
            if (token.code == stop3 && stop3 != TokenCode.ERROR)
            {
                goto Finish;
            }

            switch (token.code)
            {
            // case TokenCode.Pure: -- doesn't make any sense
            case TokenCode.Safe:
            case TokenCode.Routine:
                ROUTINE.parse(token, false, false, false, 0, context);
                break;

            case TokenCode.If:
                IF.parse(context);
                break;

            case TokenCode.While:
            case TokenCode.Loop:
                LOOP.parse(null, context);
                break;

            // Break
            //     : break [ Label ]
            //
            // Label
            //     : Identifier
            case TokenCode.Break:
                BREAK.parse(context);
                break;

            // Statement
            //     : ...
            //     | raise [ Expression ]
            case TokenCode.Raise:
                forget();
                RAISE.parse(token.span, context);
                break;

            // Statement
            //     : ...
            //     | check PredicatesList end
            //     | ...
            case TokenCode.Check:
                CHECK.parse(context);
                break;

            // Statement
            //     : ...
            //     | return [ Expression ]
            //     | ...
            case TokenCode.Return:
                forget();
                EXPRESSION expr = EXPRESSION.parse(null, context);    // can be null
                RETURN     ret  = new RETURN(expr);
                if (expr != null)
                {
                    expr.parent = ret;
                    ret.setSpan(begin.span, expr.span);
                }
                else
                {
                    ret.setSpan(begin);
                }

                context.add(ret);
                break;

            // Statement
            //     : ...
            //     | Try
            //     | ...
            //
            // Try
            //     : try { Statement } Catches [ Else ] end
            //
            // Catches
            //     : catch [ "(" [ Identifier ":" ] Type ")" ] { Statement }
            //
            // Else
            //     : else { Statement }
            case TokenCode.Try:
                TRY.parse(context);
                break;

            // Statement
            //     : ...
            //     | ? Identifier
            //     | ...
            //
            case TokenCode.Question:

                break;

            case TokenCode.Init:
                // Initializer call
                forget();
                Token start = token;

                DECLARATION init = Context.find(INITIALIZER.initName);
                EXPRESSION  initRef;
                if (init != null)
                {
                    initRef = new REFERENCE(init);
                }
                else
                {
                    initRef = new UNRESOLVED(context, new IDENTIFIER(INITIALIZER.initName));
                }

                CALL call = new CALL(initRef);
                token = expect(TokenCode.LParen);
                while (true)
                {
                    EXPRESSION argument = EXPRESSION.parse(null, context);
                    call.add(argument);
                    argument.parent = call;

                    token = get();
                    if (token.code == TokenCode.Comma)
                    {
                        forget(); continue;
                    }
                    break;
                }
                token = expect(TokenCode.RParen);
                call.setSpan(start.span, token.span);
                context.add(call);
                break;

            case TokenCode.Identifier:
            {
                // Several different cases:
                //   - a label in front of while/loop
                //   - a declaration
                //   - a statement

                forget();
                Token next = get();
                if (next.code == TokenCode.LParen)
                {
                    forget();
                    TokenCode codeAfter = saveTokensUntilRightParenth(next);
                    switch (codeAfter)
                    {
                    case TokenCode.Colon:
                    case TokenCode.Is:
                    // case TokenCode.Do:
                    case TokenCode.Arrow:
                        //This as a routine declaration!!
                        ROUTINE.parse(token, false, false, false, 0, context);
                        goto Weiter;
                    }
                }
                EXPRESSION attempt = EXPRESSION.parse(token, context);
                if (attempt is UNRESOLVED)
                {
                    // Might be a label or a declaration...
                    Token idd = new Token(attempt.span, TokenCode.Identifier,
                                          (attempt as UNRESOLVED).name.identifier,
                                          new Category(CategoryCode.identifier));
                    token = get();
                    switch (token.code)
                    {
                    case TokenCode.Is:
                    case TokenCode.Comma:
                        // This is definitely a declaration
                        forget();
                        VARIABLE.parse(false, false, false, false, idd, token, context);
                        goto Weiter;

                    case TokenCode.Colon:
                        forget();
                        Token token2 = get();
                        if (token2.code == TokenCode.While || token2.code == TokenCode.Loop)
                        {
                            // This is a real label! Don't 'forget()'.
                            LOOP.parse(idd, context);
                        }
                        else
                        {
                            // This is definitely a variable declaration.
                            // Don't forget()
                            VARIABLE.parse(false, false, false, false, idd, token, context);
                        }
                        goto Weiter;

                    default:
                        // Nothing to do; just going further
                        break;
                    }
                }
                // 'attempt' is something else: a call or the left part of an assignment
                token = get();
                if (token.code == TokenCode.Assign)
                {
                    forget();
                    EXPRESSION right = EXPRESSION.parse(null, context);
                    ASSIGNMENT res   = new ASSIGNMENT(attempt, right);
                    res.setSpan(attempt.span, right.span);
                    context.add(res);
                }
                else
                {
                    if (!(attempt is CALL))       // something's wrong
                    {
                        result = false;
                    }
                    context.add(attempt);
                }
Weiter:
                break;
            }

            case TokenCode.Const:
                // Something like
                //     const a is 5...
                // OR
                //     const is a, b, ... end
                forget(); token = get();
                if (token.code == TokenCode.Is)
                {
                    forget();
                    CONSTANT.parse(context);
                }
                else
                {
                    VARIABLE.parse(false, false, true, false, null, null, context);
                }
                break;

            default:
                // Something else, e.g., (a... or this...
                // Either a function call or an assignment.
                //
                //     this := ...
                //     (if cond then a else b).f ...
                //     ^

                EXPRESSION e = EXPRESSION.parse(null, context);
                if (e == null)
                {
                    // Either an error or just the end of statement sequence
                    result = false;
                    break;
                }
                token = get();
                if (token.code == TokenCode.Assign)
                {
                    forget();
                    EXPRESSION right      = EXPRESSION.parse(null, context);
                    ASSIGNMENT assignment = new ASSIGNMENT(e, right);
                    assignment.setSpan(e.span, right.span);
                    context.add(assignment);
                }
                else
                {
                    context.add(e);
                }
                break;
            }
Finish:
            Debug.WriteLine("Exiting STATEMENT.parse");
            Debug.Unindent();

            return(result);
        }