Inheritance: Tools.TOKEN
Ejemplo n.º 1
0
        public void OR_InputChanged_OutputUpdatesCorrectly()
        {
            //When both inputs are off output should be off
            OR orGate = new OR();

            Assert.IsFalse(orGate.Output.value);

            //When InputA only is on output should be on
            orGate.InputA.value = true;
            Assert.IsTrue(orGate.Output.value);

            //When both inputs are on output should be on
            orGate.InputB.value = true;
            Assert.IsTrue(orGate.Output.value);

            //When InputB only is on output should be on
            orGate.InputA.value = false;
            Assert.IsTrue(orGate.Output.value);

            //When both inputs are off again output should be off
            orGate.InputB.value = false;
            Assert.IsFalse(orGate.Output.value);
        }
Ejemplo n.º 2
0
    // Start 0000069, KuangWei, 2014-09-03
    protected void initPayrollGroup()
    {
        DBFilter m_filter     = new DBFilter();
        DBFilter m_userFilter = new DBFilter();

        PayGroupID.Items.Add(new ListItem("Not Selected", "-1"));

        m_userFilter.add(new Match("UserID", WebUtils.GetCurUser(Session).UserID));

        OR m_or = new OR();

        m_or.add(new IN("PayGroupID", "SELECT PayGroupID FROM PayrollGroupUsers ", m_userFilter));
        m_or.add(new Match("PayGroupIsPublic", true));

        m_filter.add(m_or);
        m_filter.add("PayGroupCode", true);
        // since sorting is not feasible directly using DBFilter (because of the encrypted data), we use a local data table as a temp buffer
        DataTable m_localTable = new DataTable();

        m_localTable.Columns.Add("PayGroupCode", typeof(string));
        m_localTable.Columns.Add("PayGroupDesc", typeof(string));
        m_localTable.Columns.Add("PayGroupID", typeof(int));

        foreach (EPayrollGroup o in EPayrollGroup.db.select(dbConn, m_filter))
        {
            DataRow m_row = m_localTable.NewRow();
            m_row["PayGroupCode"] = o.PayGroupCode;
            m_row["PayGroupDesc"] = o.PayGroupDesc;
            m_row["PayGroupID"]   = o.PayGroupID;
            m_localTable.Rows.Add(m_row);
        }

        foreach (DataRow m_o in m_localTable.Select("", "payGroupCode"))
        {
            PayGroupID.Items.Add(new ListItem(m_o["PayGroupCode"].ToString() + " - " + m_o["PayGroupDesc"].ToString(), m_o["PayGroupID"].ToString()));
        }
    }
Ejemplo n.º 3
0
 private void SaveChild(Figuren F, StreamWriter sw, int Reclvl)
 {
     foreach (Figuren fig in F.GetGroep())
     {
         for (int i = 0; i < Reclvl; i++)
         {
             sw.Write("-");
         }
         sw.WriteLine("Groep:" + fig.GetGroep().Count().ToString() + " ");
         for (int i = 0; i < Reclvl; i++)
         {
             sw.Write("-");
         }
         foreach (Ornament OR in fig.GetOrnament())
         {
             sw.WriteLine("ornament " + OR.GetLocation() + " " + OR.GetText() + "");
         }
         for (int i = 0; i < Reclvl; i++)
         {
             sw.Write("-");
         }
         sw.WriteLine(fig.type);
         for (int i = 0; i < Reclvl; i++)
         {
             sw.Write("-");
         }
         int Left  = Convert.ToInt16(Canvas.GetLeft(fig.GetShape()));
         int Top   = Convert.ToInt16(Canvas.GetTop(fig.GetShape()));
         int Right = Convert.ToInt16(Canvas.GetRight(fig.GetShape()));
         int Bot   = Convert.ToInt16(Canvas.GetBottom(fig.GetShape()));
         sw.WriteLine(Left + " " + Top + " " + Right + " " + Bot); if (fig.GetGroep().Count != 0)
         {
             Reclvl++;
         }
         SaveChild(fig, sw, Reclvl);
     }
 }
Ejemplo n.º 4
0
    public void Urgent()
    {
        RemindersTX.color = new Color32(148, 148, 148, 255);
        ImportantTX.color = new Color32(148, 148, 148, 255);
        UpcomingTX.color  = new Color32(26, 28, 46, 255);

        foreach (GameObject IR in ImportantReminders)
        {
            IR.SetActive(false);
        }

        foreach (GameObject UR in UpcomingReminders)
        {
            if (UR.activeSelf == false)
            {
                UR.SetActive(true);
            }
        }

        foreach (GameObject OR in OtherReminders)
        {
            OR.SetActive(false);
        }
    }
Ejemplo n.º 5
0
        protected Logic GetCommonVisibleLogic(Boolean hasAdminTeamSite)
        {
            var topLogicNode = new OR();

            // topLogicNode.AddElement((new ReportOwnerAlias()).Equal(new Parameter<String>() { Name = ContextVariable.CurrentUser.ToString() }));

            //topLogicNode.AddElement(
            //        (new RestrictAccess()).Equal(false)
            //                          .Or((new PermissionUsers()).Equal(new Parameter<string>() { Name = ContextVariable.CurrentUser.ToString() }))
            //                          .Or((new PermissionGroups()).In(new Parameter<IEnumerable<string>>() { Name = ContextVariable.CurrentUserGroup.ToString() }))
            //        );

            //if (hasAdminTeamSite)
            //{
            topLogicNode.AddElement((new TeamSiteGUID()).In(
                                        new Parameter <IEnumerable <Guid> >()
            {
                Name = ContextVariable.TeamSiteGuidUnderControl.ToString()
            }
                                        ));
            //}

            return(topLogicNode);
        }
Ejemplo n.º 6
0
        public void Board_AddTwoCycles_YieldTwoCycles()
        {
            // Arrange
            var board = new Board();

            var input  = new Input();
            var node1  = new OR();
            var node2  = new OR();
            var output = new Probe();

            // Arrange - setup relations
            input.LinkNext(node1);
            input.LinkNext(node2);
            node1.LinkNext(output);
            node2.LinkNext(output);

            board.Components.Add("input", input);
            board.Components.Add("node1", node1);
            board.Components.Add("node2", node2);
            board.Components.Add("output", output);

            // Act
            var cycles = new List <Cycle <Component> >();

            foreach (var cycle in board.Cycle())
            {
                cycles.Add(cycle);
            }

            // Assert
            Assert.AreEqual(2, cycles.Count);

            var cycle1 = cycles[0];

            Assert.AreSame(input, cycle1[0]);
        }
    //public void loadState()
    //{
    //    info = new ListInfo();
    //    int page = 0;
    //    if (!CurPage.Value.Equals(""))
    //        page = Int32.Parse(CurPage.Value);
    //    info.loadState(Request, page);
    //    info.order = Order.Value.Equals("True");
    //    info.orderby = OrderBy.Value;
    //    if (info.orderby == "")
    //        info.orderby = null;
    //    info.recordPerPage = -1;
    //}
    public DataView loadData(ListInfo info, DBManager db, Repeater repeater)
    {
        ESSAuthorizationProcess    authorization = new ESSAuthorizationProcess(dbConn);
        List <EAuthorizationGroup> authGroupList = authorization.GetAuthorizerAuthorizationGroupList(CurID);

        if (authGroupList.Count > 0)
        {
            DBFilter filter = binding.createFilter();

            DateTime dtPeriodFr, dtPeriodTo;
            if (DateTime.TryParse(EmpRequestFromDate.Value, out dtPeriodFr))
            {
                filter.add(new Match("EmpRequestCreateDate", ">=", dtPeriodFr));
            }
            if (DateTime.TryParse(EmpRequestToDate.Value, out dtPeriodTo))
            {
                filter.add(new Match("EmpRequestCreateDate", "<", dtPeriodTo.AddDays(1)));
            }

            //if (info != null && info.orderby != null && !info.orderby.Equals(""))
            //    filter.add(info.orderby, info.order);

            filter.add(new Match("R.EmpRequestStatus", "<>", EEmpRequest.STATUS_CANCELLED));
            filter.add(new Match("R.EmpRequestStatus", "<>", EEmpRequest.STATUS_REJECTED));
            filter.add(new Match("R.EmpRequestStatus", "<>", EEmpRequest.STATUS_APPROVED));

            DBFilter workFlowDetailFilter = new DBFilter();
            OR       orWorkFlowIndexTerms = new OR();
            if (EmpRequestStatus2.SelectedValue == "Y")
            {
                orWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", "=", "R.EmpRequestLastAuthorizationWorkFlowIndex + 1"));
            }
            else if (EmpRequestStatus2.SelectedValue == "O")
            {
                orWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", ">", "R.EmpRequestLastAuthorizationWorkFlowIndex + 1"));
            }
            else
            {
                orWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", ">", "R.EmpRequestLastAuthorizationWorkFlowIndex"));
            }
            AND andMaxWorkFlowIndexTerms = new AND();
            andMaxWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", "=", "(SELECT MAX(maxAWFD.AuthorizationWorkFlowIndex) FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " maxAWFD WHERE maxAWFD.AuthorizationWorkFlowID=awfd.AuthorizationWorkFlowID)"));
            andMaxWorkFlowIndexTerms.add(new MatchField("R.EmpRequestLastAuthorizationWorkFlowIndex", ">=", "awfd.AuthorizationWorkFlowIndex"));

            orWorkFlowIndexTerms.add(andMaxWorkFlowIndexTerms);
            workFlowDetailFilter.add(orWorkFlowIndexTerms);
            DBFilter authorizerFilter = new DBFilter();

            string strAuthGroupInList = string.Empty;
            foreach (EAuthorizationGroup authGroup in authGroupList)
            {
                if (string.IsNullOrEmpty(strAuthGroupInList))
                {
                    strAuthGroupInList = authGroup.AuthorizationGroupID.ToString();
                }
                else
                {
                    strAuthGroupInList += "," + authGroup.AuthorizationGroupID.ToString();
                }
            }
            workFlowDetailFilter.add(new IN("awfd.AuthorizationGroupID", strAuthGroupInList, null));

            AND andLeaveApplicationTerms = new AND();
            andLeaveApplicationTerms.add(new IN("R.EmpRequestType", new string[] { EEmpRequest.TYPE_EELEAVEAPP, EEmpRequest.TYPE_EELEAVECANCEL }));
            andLeaveApplicationTerms.add(new IN("EP.AuthorizationWorkFlowIDLeaveApp", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));

            //andLeaveApplicationTerms.add(new Match("AuthorizationGroupIsApproveLeave", "<>", false));

            AND andEEProfileTerms = new AND();
            andEEProfileTerms.add(new Match("R.EmpRequestType", EEmpRequest.TYPE_EEPROFILE));
            andEEProfileTerms.add(new IN("EP.AuthorizationWorkFlowIDEmpInfoModified", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));

            // Start 0000060, Miranda, 2014-07-13
            AND andOTClaimTerms = new AND();
            andOTClaimTerms.add(new IN("R.EmpRequestType", new string[] { EEmpRequest.TYPE_EEOTCLAIM, EEmpRequest.TYPE_EEOTCLAIMCANCEL }));
            andOTClaimTerms.add(new IN("EP.AuthorizationWorkFlowIDOTClaims", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));
            // End 0000060, Miranda, 2014-07-13

            // Start 0000112, Miranda, 2014-12-10
            AND andLateWaiveTerms = new AND();
            andLateWaiveTerms.add(new IN("R.EmpRequestType", new string[] { EEmpRequest.TYPE_EELATEWAIVE, EEmpRequest.TYPE_EELATEWAIVECANCEL }));
            andLateWaiveTerms.add(new IN("EP.AuthorizationWorkFlowIDLateWaive", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));
            // End 0000112, Miranda, 2014-12-10

            OR orAuthorizationGrpApplicationTerms = new OR();
            orAuthorizationGrpApplicationTerms.add(andLeaveApplicationTerms);
            orAuthorizationGrpApplicationTerms.add(andEEProfileTerms);
            // Start 0000060, Miranda, 2014-07-13
            orAuthorizationGrpApplicationTerms.add(andOTClaimTerms);
            // End 0000060, Miranda, 2014-07-13
            // Start 0000112, Miranda, 2014-12-10
            orAuthorizationGrpApplicationTerms.add(andLateWaiveTerms);
            // End 0000112, Miranda, 2014-12-10
            filter.add(orAuthorizationGrpApplicationTerms);
            //string select = "R.*, E.EmpNo, E.EmpEngSurname, E.EmpEngOtherName, E.EmpAlias ";
            //string from = "from (select * from [" + db.dbclass.tableName + "] where EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_USRSUBMIT.ToString() + "' or EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_FSTAPP.ToString() + "' ) R LEFT JOIN " + EEmpPersonalInfo.db.dbclass.tableName + " E on R.EmpID = E.EmpID AND  R.EmpID in (Select P.EmpID From "
            //    + EEmpPositionInfo.db.dbclass.tableName + " P where P.EmpPosEffFr < '" + DateTime.Today.ToString("yyyy-MM-dd") + "' and ( P.EmpPosEffFr > '" + DateTime.Today.ToString("yyyy-MM-dd") + "' or P.EmpPosEffTo is Null ) and ( P.EmpFirstAuthorizationGp in ( Select A.AuthorizationGroupID From "
            //    + EAuthorizer.db.dbclass.tableName + " A where A.EmpID = " + CurID + " and R.EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_USRSUBMIT.ToString() + "')) or ( P.EmpSecondAuthorizationGp in ( Select A.AuthorizationGroupID From "
            //    + EAuthorizer.db.dbclass.tableName + " A where A.EmpID = " + CurID + " and (R.EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_FSTAPP.ToString() + "' or R.EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_USRSUBMIT.ToString() + "'))))";

            // Start 0000105, KuangWei, 2014-10-21
            // Start 0000232, Miranda, 2015-07-02
            string select = "R.*, E.EmpNo, E.EmpEngSurname, E.EmpEngOtherName, E.EmpAlias, ISNULL ( L.LeaveCode , L2.LeaveCode ) as LeaveCode, ISNULL ( L.LeaveCodeDesc , L2.LeaveCodeDesc) as LeaveCodeDesc";
            // End 0000232, Miranda, 2015-07-02
            string from = "from " + db.dbclass.tableName + " R "
                          + " LEFT JOIN " + EEmpPersonalInfo.db.dbclass.tableName + " E on R.EmpID = E.EmpID "
                          + " Left Join " + EEmpPositionInfo.db.dbclass.tableName + " EP on EP.EmpID = E.EmpID "
                          + " and EP.EmpPosEffFr <= '" + DateTime.Today.ToString("yyyy-MM-dd") + "' AND (EP.EmpPosEffTO >= '" + DateTime.Today.ToString("yyyy-MM-dd") + "' or EP.EmpPosEffTo is Null )"
                          // Start 0000112, Miranda, 2015-01-11
                          // Start 0000232, Miranda, 2015-07-02
                          + " LEFT JOIN " + ERequestLeaveApplication.db.dbclass.tableName + " C on R.EmpRequestRecordID = C.RequestLeaveAppID and R.EmpRequestType = '" + EEmpRequest.TYPE_EELEAVEAPP + "'"
                          + " LEFT JOIN " + ERequestLeaveApplicationCancel.db.dbclass.tableName + " CC on R.EmpRequestRecordID = CC.RequestLeaveAppCancelID and R.EmpRequestType = '" + EEmpRequest.TYPE_EELEAVECANCEL + "'"
                          + " LEFT JOIN " + ELeaveApplication.db.dbclass.tableName + " LA on LA.LeaveAppID = CC.LeaveAppID"
                          // End 0000112, Miranda, 2015-01-11
                          + " LEFT JOIN " + ELeaveCode.db.dbclass.tableName + " L on C .RequestLeaveCodeID = L.LeaveCodeID "
                          + " LEFT JOIN " + ELeaveCode.db.dbclass.tableName + " L2 on LA.LeaveCodeID = L2.LeaveCodeID";
            // End 0000232, Miranda, 2015-07-02
            // End 0000105, KuangWei, 2014-10-21

            //DBFilter authorizerFilter = new DBFilter();
            //authorizerFilter.add(new Match("EmpID", CurID));

            //OR orFirstGrpStatusTerms = new OR();
            //orFirstGrpStatusTerms.add(new Match("R.EmpRequestStatus", EEmpRequest.STATUS_SUBMITTED));

            //DBFilter firstGrpFilter = new DBFilter();
            //firstGrpFilter.add(orFirstGrpStatusTerms);
            //firstGrpFilter.add(orAuthorizationGrpApplicationTerms);
            //firstGrpFilter.add(new IN("AuthorizationGroupID", "Select AuthorizationGroupID from " + EAuthorizer.db.dbclass.tableName, authorizerFilter));


            //OR orSecondGrpStatusTerms = new OR();
            //orSecondGrpStatusTerms.add(new Match("R.EmpRequestStatus", EEmpRequest.STATUS_SUBMITTED));
            //orSecondGrpStatusTerms.add(new Match("R.EmpRequestStatus", EEmpRequest.STATUS_ACCEPTED));

            //DBFilter secondGrpFilter = new DBFilter();
            //secondGrpFilter.add(orSecondGrpStatusTerms);
            //secondGrpFilter.add(orAuthorizationGrpApplicationTerms);
            //secondGrpFilter.add(new IN("AuthorizationGroupID", "Select AuthorizationGroupID from " + EAuthorizer.db.dbclass.tableName, authorizerFilter));

            //OR orAuthorizationGrpFilter = new OR();
            //orAuthorizationGrpFilter.add(new IN("EP.EmpFirstAuthorizationGp", "Select AuthorizationGroupID from " + EAuthorizationGroup.db.dbclass.tableName, firstGrpFilter));
            //orAuthorizationGrpFilter.add(new IN("EP.EmpSecondAuthorizationGp", "Select AuthorizationGroupID from " + EAuthorizationGroup.db.dbclass.tableName, secondGrpFilter));
            //filter.add(orAuthorizationGrpFilter);

            DataTable table = filter.loadData(dbConn, info, select, from);


            view = new DataView(table);

            ListFooter.Refresh();

            if (repeater != null)
            {
                repeater.DataSource = view;
                repeater.DataBind();
            }
            return(view);
        }
        else
        {
            return(null);
        }
    }
    protected void Repeater_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        EUploadClaimsAndDeductions obj = new EUploadClaimsAndDeductions();

        db.toObject(((DataRowView)e.Item.DataItem).Row, obj);

        if (e.Item.ItemIndex == Repeater.EditItemIndex)
        {
            ebinding = new Binding(dbConn, db);
            ebinding.add((TextBox)e.Item.FindControl("CNDEffDate"));
            ebinding.add((HtmlInputHidden)e.Item.FindControl("CNDID"));
            ebinding.add(new DropDownVLBinder(db, (DropDownList)e.Item.FindControl("PayCodeID"), EPaymentCode.VLPaymentCode));
            ebinding.add(new DropDownVLBinder(db, (DropDownList)e.Item.FindControl("CurrencyID"), Values.VLCurrency));
            ebinding.add((TextBox)e.Item.FindControl("CNDAmount"));
            ebinding.add(new DropDownVLBinder(db, (DropDownList)e.Item.FindControl("CNDPayMethod"), Values.VLPaymentMethod));
            ebinding.add((TextBox)e.Item.FindControl("CNDRemark"));

            DBFilter empBankAccountFilter = new DBFilter();
            OR       bankAccountORTerm    = new OR();
            bankAccountORTerm.add(new Match("EmpID", obj.EmpID));
            {
                EEmpPersonalInfo tmpEmpInfo = new EEmpPersonalInfo();
                tmpEmpInfo.EmpID = obj.EmpID;
                if (EEmpPersonalInfo.db.select(dbConn, tmpEmpInfo) && tmpEmpInfo.MasterEmpID > 0)
                {
                    bankAccountORTerm.add(new Match("EmpID", tmpEmpInfo.MasterEmpID));
                }
            }
            empBankAccountFilter.add(bankAccountORTerm);
            ebinding.add(new DropDownVLBinder(db, (DropDownList)e.Item.FindControl("EmpAccID"), EEmpBankAccount.VLBankAccount, empBankAccountFilter).setNotSelected(HROne.Common.WebUtility.GetLocalizedString(EEmpBankAccount.DEFAULT_BANK_ACCOUNT_TEXT)));



            ebinding.init(Request, Session);

            Hashtable values = new Hashtable();
            db.populate(obj, values);

            ebinding.toControl(values);
            ((HtmlTableCell)e.Item.FindControl("CostCenterDetailCell")).Visible = WebUtils.productLicense(Session).IsCostCenter;
            ((HtmlTableCell)e.Item.FindControl("RemarkCell")).ColSpan           = ((HtmlTableRow)e.Item.FindControl("detailRow")).Cells.Count - 4 - (WebUtils.productLicense(Session).IsCostCenter ? 0 : 1);
        }
        else
        {
            //((Button)e.Item.FindControl("Edit")).Visible = IsAllowEdit;
            //if (obj.PayRecID != null)
            //{
            //    ((Button)e.Item.FindControl("Edit")).Visible = false;
            //    ((CheckBox)e.Item.FindControl("DeleteItem")).Visible = false;
            //}
            HtmlInputHidden h = (HtmlInputHidden)e.Item.FindControl("UploadCNDID");
            h.Value = ((DataRowView)e.Item.DataItem)["UploadCNDID"].ToString();

            ebinding = new Binding(dbConn, db);
            ebinding.add(new BlankZeroLabelVLBinder(db, (Label)e.Item.FindControl("CostCenterID"), ECostCenter.VLCostCenter).setTextDisplayForZero(HROne.Common.WebUtility.GetLocalizedString(ECostCenter.DEFAULT_COST_CENTER_TEXT)));

            DBFilter empBankAccountFilter = new DBFilter();
            OR       bankAccountORTerm    = new OR();
            bankAccountORTerm.add(new Match("EmpID", obj.EmpID));
            {
                EEmpPersonalInfo tmpEmpInfo = new EEmpPersonalInfo();
                tmpEmpInfo.EmpID = obj.EmpID;
                if (EEmpPersonalInfo.db.select(dbConn, tmpEmpInfo) && tmpEmpInfo.MasterEmpID > 0)
                {
                    bankAccountORTerm.add(new Match("EmpID", tmpEmpInfo.MasterEmpID));
                }
            }
            empBankAccountFilter.add(bankAccountORTerm);
            ebinding.add(new BlankZeroLabelVLBinder(db, (Label)e.Item.FindControl("EmpAccID"), EEmpBankAccount.VLBankAccount, empBankAccountFilter).setTextDisplayForZero(HROne.Common.WebUtility.GetLocalizedString(EEmpBankAccount.DEFAULT_BANK_ACCOUNT_TEXT)));

            ebinding.init(Request, Session);

            Hashtable values = new Hashtable();
            db.populate(obj, values);

            ebinding.toControl(values);
            ((HtmlTableCell)e.Item.FindControl("CostCenterDetailCell")).Visible = WebUtils.productLicense(Session).IsCostCenter;
            ((HtmlTableCell)e.Item.FindControl("RemarkCell")).ColSpan           = ((HtmlTableRow)e.Item.FindControl("detailRow")).Cells.Count - 4 - (WebUtils.productLicense(Session).IsCostCenter ? 0 : 1);
        }
        HROne.Common.WebUtility.WebControlsLocalization(this, e.Item.Controls);
    }
Ejemplo n.º 9
0
    internal static void twowaysAMI(Ice.Communicator communicator, Test.MyClassPrx p)
    {
        {
            Dictionary <int, int> i = new Dictionary <int, int>();
            i[0] = 1;
            i[1] = 0;

            AMI_MyClass_opNVI cb = new AMI_MyClass_opNVI(i);
            p.opNV_async(cb, i);
            cb.check();
        }

        {
            Dictionary <string, string> i = new Dictionary <string, string>();
            i["a"] = "b";
            i["b"] = "a";

            AMI_MyClass_opNRI cb = new AMI_MyClass_opNRI(i);
            p.opNR_async(cb, i);
            cb.check();
        }

        {
            Dictionary <string, Dictionary <int, int> > i = new Dictionary <string, Dictionary <int, int> >();
            Dictionary <int, int> id = new Dictionary <int, int>();
            id[0]  = 1;
            id[1]  = 0;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opNDVI cb = new AMI_MyClass_opNDVI(i);
            p.opNDV_async(cb, i);
            cb.check();
        }

        {
            Dictionary <string, Dictionary <string, string> > i = new Dictionary <string, Dictionary <string, string> >();
            Dictionary <string, string> id = new Dictionary <string, string>();
            id["a"] = "b";
            id["b"] = "a";
            i["a"]  = id;
            i["b"]  = id;

            AMI_MyClass_opNDRI cb = new AMI_MyClass_opNDRI(i);
            p.opNDR_async(cb, i);
            cb.check();
        }

        {
            OV i = new OV();
            i[0] = 1;
            i[1] = 0;

            AMI_MyClass_opOVI cb = new AMI_MyClass_opOVI(i);
            p.opOV_async(cb, i);
            cb.check();
        }

        {
            OR i = new OR();
            i["a"] = "b";
            i["b"] = "a";

            AMI_MyClass_opORI cb = new AMI_MyClass_opORI(i);
            p.opOR_async(cb, i);
            cb.check();
        }

        {
            ODV i  = new ODV();
            OV  id = new OV();
            id[0]  = 1;
            id[1]  = 0;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opODVI cb = new AMI_MyClass_opODVI(i);
            p.opODV_async(cb, i);
            cb.check();
        }

        {
            ODR i  = new ODR();
            OR  id = new OR();
            id["a"] = "b";
            id["b"] = "a";
            i["a"]  = id;
            i["b"]  = id;

            AMI_MyClass_opODRI cb = new AMI_MyClass_opODRI(i);
            p.opODR_async(cb, i);
            cb.check();
        }

        {
            Dictionary <string, ODV> i = new Dictionary <string, ODV>();
            OV iid = new OV();
            iid[0] = 1;
            iid[1] = 0;
            ODV id = new ODV();
            id["a"] = iid;
            id["b"] = iid;
            i["a"]  = id;
            i["b"]  = id;

            AMI_MyClass_opNODVI cb = new AMI_MyClass_opNODVI(i);
            p.opNODV_async(cb, i);
            cb.check();
        }

        {
            Dictionary <string, ODR> i = new Dictionary <string, ODR>();
            OR iid = new OR();
            iid["a"] = "b";
            iid["b"] = "a";
            ODR id = new ODR();
            id["a"] = iid;
            id["b"] = iid;
            i["a"]  = id;
            i["b"]  = id;

            AMI_MyClass_opNODRI cb = new AMI_MyClass_opNODRI(i);
            p.opNODR_async(cb, i);
            cb.check();
        }

        {
            ONDV i = new ONDV();
            Dictionary <int, int> iid = new Dictionary <int, int>();
            iid[0] = 1;
            iid[1] = 0;
            Dictionary <string, Dictionary <int, int> > id
                    = new Dictionary <string, Dictionary <int, int> >();
            id["a"] = iid;
            id["b"] = iid;
            i["a"]  = id;
            i["b"]  = id;

            AMI_MyClass_opONDVI cb = new AMI_MyClass_opONDVI(i);
            p.opONDV_async(cb, i);
            cb.check();
        }

        {
            ONDR i = new ONDR();
            Dictionary <string, string> iid = new Dictionary <string, string>();
            iid["a"] = "b";
            iid["b"] = "a";
            Dictionary <string, Dictionary <string, string> > id
                    = new Dictionary <string, Dictionary <string, string> >();
            id["a"] = iid;
            id["b"] = iid;
            i["a"]  = id;
            i["b"]  = id;

            AMI_MyClass_opONDRI cb = new AMI_MyClass_opONDRI(i);
            p.opONDR_async(cb, i);
            cb.check();
        }

        {
            int[] ii = new int[] { 1, 2 };
            Dictionary <string, int[]> i = new Dictionary <string, int[]>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDAISI cb = new AMI_MyClass_opNDAISI(i);
            p.opNDAIS_async(cb, i);
            cb.check();
        }

        {
            CIS ii = new CIS();
            ii.Add(1);
            ii.Add(2);
            Dictionary <string, CIS> i = new Dictionary <string, CIS>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDCISI cb = new AMI_MyClass_opNDCISI(i);
            p.opNDCIS_async(cb, i);
            cb.check();
        }

        {
            List <int> ii = new List <int>();
            ii.Add(1);
            ii.Add(2);
            Dictionary <string, List <int> > i = new Dictionary <string, List <int> >();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDGISI cb = new AMI_MyClass_opNDGISI(i);
            p.opNDGIS_async(cb, i);
            cb.check();
        }

        {
            string[] ii = new string[] { "a", "b" };
            Dictionary <string, string[]> i = new Dictionary <string, string[]>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDASSI cb = new AMI_MyClass_opNDASSI(i);
            p.opNDASS_async(cb, i);
            cb.check();
        }

        {
            CSS ii = new CSS();
            ii.Add("a");
            ii.Add("b");
            Dictionary <string, CSS> i = new Dictionary <string, CSS>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDCSSI cb = new AMI_MyClass_opNDCSSI(i);
            p.opNDCSS_async(cb, i);
            cb.check();
        }

        {
            List <string> ii = new List <string>();
            ii.Add("a");
            ii.Add("b");
            Dictionary <string, List <string> > i = new Dictionary <string, List <string> >();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDGSSI cb = new AMI_MyClass_opNDGSSI(i);
            p.opNDGSS_async(cb, i);
            cb.check();
        }

        {
            int[] ii = new int[] { 1, 2 };
            ODAIS i  = new ODAIS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODAISI cb = new AMI_MyClass_opODAISI(i);
            p.opODAIS_async(cb, i);
            cb.check();
        }

        {
            CIS ii = new CIS();
            ii.Add(1);
            ii.Add(2);
            ODCIS i = new ODCIS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODCISI cb = new AMI_MyClass_opODCISI(i);
            p.opODCIS_async(cb, i);
            cb.check();
        }

        {
            List <int> ii = new List <int>();
            ii.Add(1);
            ii.Add(2);
            ODGIS i = new ODGIS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODGISI cb = new AMI_MyClass_opODGISI(i);
            p.opODGIS_async(cb, i);
            cb.check();
        }

        {
            string[] ii = new string[] { "a", "b" };
            ODASS    i  = new ODASS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODASSI cb = new AMI_MyClass_opODASSI(i);
            p.opODASS_async(cb, i);
            cb.check();
        }

        {
            CSS ii = new CSS();
            ii.Add("a");
            ii.Add("b");
            ODCSS i = new ODCSS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODCSSI cb = new AMI_MyClass_opODCSSI(i);
            p.opODCSS_async(cb, i);
            cb.check();
        }

        {
            List <string> ii = new List <string>();
            ii.Add("a");
            ii.Add("b");
            ODGSS i = new ODGSS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODGSSI cb = new AMI_MyClass_opODGSSI(i);
            p.opODGSS_async(cb, i);
            cb.check();
        }
    }
Ejemplo n.º 10
0
 public AMI_MyClass_opORI(OR i)
 {
     _i = i;
 }
Ejemplo n.º 11
0
    internal static void twowaysAMI(Ice.Communicator communicator, Test.MyClassPrx p)
    {
        {
            Dictionary<int, int> i = new Dictionary<int, int>();
            i[0] = 1;
            i[1] = 0;

            AMI_MyClass_opNVI cb = new AMI_MyClass_opNVI(i);
            p.opNV_async(cb, i);
            cb.check();
        }

        {
            Dictionary<string, string> i = new Dictionary<string, string>();
            i["a"] = "b";
            i["b"] = "a";

            AMI_MyClass_opNRI cb = new AMI_MyClass_opNRI(i);
            p.opNR_async(cb, i);
            cb.check();
        }

        {
            Dictionary<string, Dictionary<int, int>> i = new Dictionary<string, Dictionary<int, int>>();
            Dictionary<int, int> id = new Dictionary<int, int>();
            id[0] = 1;
            id[1] = 0;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opNDVI cb = new AMI_MyClass_opNDVI(i);
            p.opNDV_async(cb, i);
            cb.check();
        }

        {
            Dictionary<string, Dictionary<string, string>> i = new Dictionary<string, Dictionary<string, string>>();
            Dictionary<string, string> id = new Dictionary<string, string>();
            id["a"] = "b";
            id["b"] = "a";
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opNDRI cb = new AMI_MyClass_opNDRI(i);
            p.opNDR_async(cb, i);
            cb.check();
        }

        {
            OV i = new OV();
            i[0] = 1;
            i[1] = 0;

            AMI_MyClass_opOVI cb = new AMI_MyClass_opOVI(i);
            p.opOV_async(cb, i);
            cb.check();
        }

        {
            OR i = new OR();
            i["a"] = "b";
            i["b"] = "a";

            AMI_MyClass_opORI cb = new AMI_MyClass_opORI(i);
            p.opOR_async(cb, i);
            cb.check();
        }

        {
            ODV i = new ODV();
            OV id = new OV();
            id[0] = 1;
            id[1] = 0;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opODVI cb = new AMI_MyClass_opODVI(i);
            p.opODV_async(cb, i);
            cb.check();
        }

        {
            ODR i = new ODR();
            OR id = new OR();
            id["a"] = "b";
            id["b"] = "a";
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opODRI cb = new AMI_MyClass_opODRI(i);
            p.opODR_async(cb, i);
            cb.check();
        }

        {
            Dictionary<string, ODV> i = new Dictionary<string, ODV>();
            OV iid = new OV();
            iid[0] = 1;
            iid[1] = 0;
            ODV id = new ODV();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opNODVI cb = new AMI_MyClass_opNODVI(i);
            p.opNODV_async(cb, i);
            cb.check();
        }

        {
            Dictionary<string, ODR> i = new Dictionary<string, ODR>();
            OR iid = new OR();
            iid["a"] = "b";
            iid["b"] = "a";
            ODR id = new ODR();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opNODRI cb = new AMI_MyClass_opNODRI(i);
            p.opNODR_async(cb, i);
            cb.check();
        }

        {
            ONDV i = new ONDV();
            Dictionary<int, int> iid = new Dictionary<int, int>();
            iid[0] = 1;
            iid[1] = 0;
            Dictionary<string, Dictionary<int, int>> id
                = new Dictionary<string, Dictionary<int, int>>();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opONDVI cb = new AMI_MyClass_opONDVI(i);
            p.opONDV_async(cb, i);
            cb.check();
        }

        {
            ONDR i = new ONDR();
            Dictionary<string, string> iid = new Dictionary<string, string>();
            iid["a"] = "b";
            iid["b"] = "a";
            Dictionary<string, Dictionary<string, string>> id
                = new Dictionary<string, Dictionary<string, string>>();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            AMI_MyClass_opONDRI cb = new AMI_MyClass_opONDRI(i);
            p.opONDR_async(cb, i);
            cb.check();
        }

        {
            int[] ii = new int[] { 1, 2 };
            Dictionary<string, int[]> i = new Dictionary<string, int[]>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDAISI cb = new AMI_MyClass_opNDAISI(i);
            p.opNDAIS_async(cb, i);
            cb.check();
        }

        {
            CIS ii = new CIS();
            ii.Add(1);
            ii.Add(2);
            Dictionary<string, CIS> i = new Dictionary<string, CIS>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDCISI cb = new AMI_MyClass_opNDCISI(i);
            p.opNDCIS_async(cb, i);
            cb.check();
        }

        {
            List<int> ii = new List<int>();
            ii.Add(1);
            ii.Add(2);
            Dictionary<string, List<int>> i = new Dictionary<string, List<int>>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDGISI cb = new AMI_MyClass_opNDGISI(i);
            p.opNDGIS_async(cb, i);
            cb.check();
        }

        {
            string[] ii = new string[] { "a", "b" };
            Dictionary<string, string[]> i = new Dictionary<string, string[]>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDASSI cb = new AMI_MyClass_opNDASSI(i);
            p.opNDASS_async(cb, i);
            cb.check();
        }

        {
            CSS ii = new CSS();
            ii.Add("a");
            ii.Add("b");
            Dictionary<string, CSS> i = new Dictionary<string, CSS>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDCSSI cb = new AMI_MyClass_opNDCSSI(i);
            p.opNDCSS_async(cb, i);
            cb.check();
        }

        {
            List<string> ii = new List<string>();
            ii.Add("a");
            ii.Add("b");
            Dictionary<string, List<string>> i = new Dictionary<string, List<string>>();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opNDGSSI cb = new AMI_MyClass_opNDGSSI(i);
            p.opNDGSS_async(cb, i);
            cb.check();
        }

        {
            int[] ii = new int[] { 1, 2 };
            ODAIS i = new ODAIS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODAISI cb = new AMI_MyClass_opODAISI(i);
            p.opODAIS_async(cb, i);
            cb.check();
        }

        {
            CIS ii = new CIS();
            ii.Add(1);
            ii.Add(2);
            ODCIS i = new ODCIS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODCISI cb = new AMI_MyClass_opODCISI(i);
            p.opODCIS_async(cb, i);
            cb.check();
        }

        {
            List<int> ii = new List<int>();
            ii.Add(1);
            ii.Add(2);
            ODGIS i = new ODGIS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODGISI cb = new AMI_MyClass_opODGISI(i);
            p.opODGIS_async(cb, i);
            cb.check();
        }

        {
            string[] ii = new string[] { "a", "b" };
            ODASS i = new ODASS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODASSI cb = new AMI_MyClass_opODASSI(i);
            p.opODASS_async(cb, i);
            cb.check();
        }

        {
            CSS ii = new CSS();
            ii.Add("a");
            ii.Add("b");
            ODCSS i = new ODCSS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODCSSI cb = new AMI_MyClass_opODCSSI(i);
            p.opODCSS_async(cb, i);
            cb.check();
        }

        {
            List<string> ii = new List<string>();
            ii.Add("a");
            ii.Add("b");
            ODGSS i = new ODGSS();
            i["a"] = ii;
            i["b"] = ii;

            AMI_MyClass_opODGSSI cb = new AMI_MyClass_opODGSSI(i);
            p.opODGSS_async(cb, i);
            cb.check();
        }
    }
Ejemplo n.º 12
0
 public AMI_MyClass_opORI(OR i)
 {
     _i = i;
 }
Ejemplo n.º 13
0
 public override OR opOR(OR i, out OR o, Ice.Current current)
 {
     o = i;
     return i;
 }
Ejemplo n.º 14
0
    protected DataSet GenerateCND(int ProcessID, int PaymentCodeID, DateTime PaymentDate)
    {
        EPaymentCode m_paymentCode = EPaymentCode.GetObject(dbConn, PaymentCodeID);
        ECommissionAchievementImportBatch m_process = ECommissionAchievementImportBatch.GetObject(dbConn, ProcessID);

        DataSet   dataSet   = new DataSet();//export.GetDataSet();
        DataTable dataTable = new DataTable("ClaimsAndDeduction$");

        dataSet.Tables.Add(dataTable);

        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO, typeof(string));
        dataTable.Columns.Add("English Name", typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE, typeof(DateTime));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT, typeof(double));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST, typeof(double));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER, typeof(string));

        DBFilter m_detailFilter = new DBFilter();

        m_detailFilter.add(new Match("CAImportBatchID", ProcessID));
        m_detailFilter.add("EmpID", true);

        foreach (ECommissionAchievement m_detail in ECommissionAchievement.db.select(dbConn, m_detailFilter))
        {
            DBFilter m_rpFilter = new DBFilter();
            OR       m_orDate   = new OR();

            m_orDate.add(new NullTerm("EmpRPEffTo"));
            m_orDate.add(new Match("EmpRPEffTo", ">=", m_detail.CAEffDate));

            m_rpFilter.add(m_orDate);
            m_rpFilter.add(new Match("EmpRPEffFr", "<=", m_detail.CAEffDate));
            m_rpFilter.add(new Match("EmpID", m_detail.EmpID));
            //m_rpFilter.add(new NullTerm("NOT EmpRPBasicSalary"));
            m_rpFilter.add(new Match("EmpRPBasicSalary", ">", 0));
            m_rpFilter.add(new Match("EmpRPFPS", "<", 100));
            m_rpFilter.add(new Match("EmpRPFPS", ">", 0));

            foreach (EEmpRecurringPayment m_empRP in EEmpRecurringPayment.db.select(dbConn, m_rpFilter))
            {
                double m_amount = m_empRP.EmpRPBasicSalary * m_detail.CAPercent / 100 - m_empRP.EmpRPAmount;
                string m_remarks;
                if (m_amount > 0 && Math.Abs(m_amount) >= 0.01)
                {
                    m_remarks = String.Format("({0}*{1}%) - {2}", m_empRP.EmpRPBasicSalary.ToString("#,##0.00"),
                                              m_detail.CAPercent.ToString("#,##0.00"),
                                              m_empRP.EmpRPAmount.ToString("#,##0.00"));

                    EEmpPersonalInfo m_empInfo = new EEmpPersonalInfo();
                    m_empInfo.EmpID = m_empRP.EmpID;
                    EEmpPersonalInfo.db.select(dbConn, m_empInfo);

                    DataRow m_row = dataTable.NewRow();
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO] = m_empInfo.EmpNo;
                    m_row["English Name"] = m_empInfo.EmpEngFullName;
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE] = PaymentDate;
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE]   = m_paymentCode.PaymentCode;
                    switch (m_empRP.EmpRPMethod)
                    {
                    case "A":
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Autopay";
                        break;

                    case "Q":
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cheque";
                        break;

                    case "C":
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cash";
                        break;

                    default:
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Other";
                        break;
                    }
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT]            = Math.Round(m_amount, 2);
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST] = 0; //DateTime.DaysInMonth(m_process.AsAtDate);
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT]      = "No";
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK]            = m_remarks;

                    EEmpBankAccount m_bank = new EEmpBankAccount();
                    m_bank.EmpBankAccountID = m_empRP.EmpAccID;
                    if (EEmpBankAccount.db.select(dbConn, m_bank))
                    {
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = m_bank.EmpAccountNo;
                    }

                    ECostCenter m_costCenter = new ECostCenter();
                    m_costCenter.CostCenterID = m_empRP.CostCenterID;
                    if (ECostCenter.db.select(dbConn, m_costCenter))
                    {
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER] = m_costCenter.CostCenterCode;
                    }
                    dataTable.Rows.Add(m_row);
                }
            }
        }
        return(dataSet);
    }
Ejemplo n.º 15
0
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        // m_list determine if generation of Recurring Payment is necessary
        ArrayList m_list = EPayScaleMap.db.select(dbConn, new DBFilter());

        if (BatchFile.HasFile)
        {
            string strTmpFolder = HROne.Common.Folder.GetOrCreateSessionTempFolder(Session.SessionID).FullName;;  //Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
            string strTmpFile   = System.IO.Path.Combine(strTmpFolder, AppUtils.ServerDateTime().ToString("~yyyyMMddHHmmss_") + BatchFile.FileName);
            BatchFile.SaveAs(strTmpFile);

            ArrayList pendingList = new ArrayList();

            try
            {
                DataTable rawDataTable = HROne.Import.ExcelImport.parse(strTmpFile, string.Empty).Tables[TABLE_NAME];

                if (rawDataTable.Columns.Contains("Effective Date") && rawDataTable.Columns.Contains("Expiry Date") &&
                    rawDataTable.Columns.Contains("Scheme Code") &&
                    rawDataTable.Columns.Contains("Point") && rawDataTable.Columns.Contains("Salary"))
                {
                    int      row_count = 0;
                    Decimal  m_point;
                    DateTime m_date;
                    Decimal  m_salary;

                    int id;
                    foreach (DataRow row in rawDataTable.Rows)
                    {
                        row_count++;

                        EPayScaleMap c = new EPayScaleMap();

                        if (!row.IsNull("Effective Date") && DateTime.TryParse(((String)row["Effective Date"]), out m_date))
                        {
                            c.EffectiveDate = m_date;
                        }
                        else
                        {
                            errors.addError("Missing Effective Date in row " + row_count.ToString());
                            if (!errors.isEmpty())
                            {
                                return;
                            }
                        }

                        if (!row.IsNull("Expiry Date") && DateTime.TryParse(((String)row["Expiry Date"]), out m_date))
                        {
                            c.ExpiryDate = m_date;
                        }

                        if (!row.IsNull("Scheme Code") && row["Scheme Code"].ToString().Trim() != "")
                        {
                            c.SchemeCode = row["Scheme Code"].ToString().Trim();
                        }
                        else
                        {
                            errors.addError("Missing Scheme Code in row " + row_count.ToString());
                            if (errors.errors.Count > 10)
                            {
                                return;
                            }
                        }

                        if (!row.IsNull("Point") && Decimal.TryParse(((String)row["Point"]), out m_point))
                        {
                            c.Point = m_point;
                        }
                        else
                        {
                            errors.addError("Missing Point in row " + row_count.ToString());
                            if (errors.errors.Count > 10)
                            {
                                return;
                            }
                        }

                        if (!row.IsNull("Salary") && Decimal.TryParse(((String)row["Salary"]), out m_salary))
                        {
                            c.Salary = m_salary;
                        }
                        else
                        {
                            errors.addError("Missing Salary in row " + row_count.ToString());
                            if (errors.errors.Count > 10)
                            {
                                return;
                            }
                        }

                        pendingList.Add(c);
                    }
                }
                else
                {
                    errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE);
                }
            }
            catch (Exception)
            {
                errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE);
            }

            if (errors.isEmpty())
            {
                try
                {
                    WebUtils.StartFunction(Session, FUNCTION_CODE);
                    dbConn.BeginTransaction();

                    foreach (EPayScaleMap c in pendingList)
                    {
                        // check existing point-salary-mapping
                        DBFilter filter = new DBFilter();
                        OR       m_OR   = new OR();

                        DBFieldTranscoder idTranscoder = EPayScale.db.getField("SchemeCode").transcoder;
                        if (idTranscoder != null)
                        {
                            filter.add(new Match("SchemeCode", idTranscoder.toDB(c.SchemeCode).ToString()));
                        }

                        //filter.add(new Match("SchemeCode", c.SchemeCode));
                        filter.add(new Match("Point", c.Point));
                        filter.add(new Match("EffectiveDate", "<=", c.EffectiveDate));

                        m_OR.add(new NullTerm("ExpiryDate"));
                        m_OR.add(new Match("ExpiryDate", ">=", c.EffectiveDate));
                        filter.add(m_OR);
                        filter.add("EffectiveDate", true);

                        ArrayList currentList = EPayScaleMap.db.select(dbConn, filter);

                        if (currentList.Count > 0)
                        {
                            foreach (EPayScaleMap m_currentItem in currentList)
                            {
                                if ((m_currentItem.ExpiryDate.Ticks != 0) && m_currentItem.ExpiryDate.CompareTo(c.EffectiveDate) < 0) // current expiry before new become effective
                                {
                                    ;
                                }
                                else if (m_currentItem.ExpiryDate.Ticks == 0)
                                {
                                    m_currentItem.ExpiryDate = c.EffectiveDate.AddDays(-1);
                                    EPayScaleMap.db.update(dbConn, m_currentItem);
                                }
                                else
                                {
                                    errors.addError("You are trying to insert a new point (" + c.SchemeCode + " - " + c.Point.ToString("0.00") + ") with invalid Effective Date(" + c.EffectiveDate.ToString("yyyy.MM.dd") + "). ");
                                    break;
                                }
                            }

                            if (errors.isEmpty())
                            {
                                EPayScaleMap.db.insert(dbConn, c);
                            }
                        }
                        else
                        {
                            EPayScaleMap.db.insert(dbConn, c);
                        }
                    }


                    if (!errors.isEmpty())
                    {
                        dbConn.RollbackTransaction();
                    }
                    else
                    {
                        if (m_list.Count > 0)
                        {
                            GenerateRecurringPayment();
                        }

                        dbConn.CommitTransaction();
                    }

                    WebUtils.EndFunction(dbConn);
                }
                catch (Exception)
                {
                    errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE);

                    dbConn.RollbackTransaction();
                    WebUtils.EndFunction(dbConn);
                }
            }
            else
            {
                errors.addError(HROne.Translation.PageErrorMessage.ERROR_NO_RECORD_IMPORT);
            }
            System.IO.File.Delete(strTmpFile);
        }
        else
        {
            errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE);
        }

//        Repeater.EditItemIndex = -1;
        view = loadData(info, db, Repeater);
        if (errors.isEmpty())
        {
            errors.addError(HROne.Translation.PageMessage.IMPORT_SUCCESSFUL);
        }
    }
Ejemplo n.º 16
0
        public static SemanticContext Or(SemanticContext a, SemanticContext b)
        {
            if (a is TruePredicate || b is TruePredicate)
            {
                return(TruePredicate.Instance);
            }

            SemanticContext commonTerms = FactorAnd(ref a, ref b);
            bool            factored    = commonTerms != null && commonTerms != EmptySemanticContext && !(commonTerms is FalsePredicate);

            if (factored)
            {
                return(And(commonTerms, Or(a, b)));
            }

            //System.Console.Out.WriteLine( "OR: " + a + "||" + b );
            if (a == EmptySemanticContext || a == null || a is FalsePredicate)
            {
                return(factored ? Or(commonTerms, b) : b);
            }

            if (b == EmptySemanticContext || b == null || b is FalsePredicate)
            {
                return(factored ? Or(commonTerms, a) : a);
            }

            if (a is TruePredicate || b is TruePredicate || commonTerms is TruePredicate)
            {
                return(TruePredicate.Instance);
            }
            else if (b is FalsePredicate)
            {
                return(a);
            }
            else if (a is FalsePredicate)
            {
                return(b);
            }

            //// Factoring takes care of this case
            //if (a.Equals(b))
            //    return a;

            NOT not = a as NOT;

            if (not != null)
            {
                if (not.ctx.Equals(b))
                {
                    return(TruePredicate.Instance);
                }
            }
            else
            {
                not = b as NOT;
                if (not != null && not.ctx.Equals(a))
                {
                    return(TruePredicate.Instance);
                }
            }

            //System.Console.Out.WriteLine( "## have to OR" );
            OR result = new OR(a, b);

            if (result.Operands.Count == 1)
            {
                return(result.Operands.First());
            }

            return(result);
        }
    private void GenerateReport(ArrayList empList, DateTime PeriodFrom, DateTime PeriodTo, string SortBy)
    {
        DataTable dataTable = new DataTable();

        dataTable.Columns.Add("EmpID", typeof(int));
        dataTable.Columns.Add("EmpNo", typeof(string));
        dataTable.Columns.Add("EmpName", typeof(string));
        dataTable.Columns.Add("EmpAlias", typeof(string));
        dataTable.Columns.Add("Company", typeof(string));

        DBFilter  hierarchyLevelFilter    = new DBFilter();
        Hashtable hierarchyLevelHashTable = new Hashtable();

        hierarchyLevelFilter.add("HLevelSeqNo", true);
        ArrayList hierarchyLevelList = EHierarchyLevel.db.select(dbConn, hierarchyLevelFilter);

        foreach (EHierarchyLevel hlevel in hierarchyLevelList)
        {
            dataTable.Columns.Add(hlevel.HLevelDesc, typeof(string));
            hierarchyLevelHashTable.Add(hlevel.HLevelID, hlevel);
        }
        dataTable.Columns.Add("Position", typeof(string));

        dataTable.Columns.Add("TrainingSeminarID", typeof(int));
        dataTable.Columns.Add("TrainingCourseName", typeof(string));
        dataTable.Columns.Add("TrainingSeminarDesc", typeof(string));
        dataTable.Columns.Add("TrainingSeminarDateFrom", typeof(DateTime));
        dataTable.Columns.Add("TrainingSeminarDateTo", typeof(DateTime));
        dataTable.Columns.Add("TrainingSeminarDuration", typeof(double));
        dataTable.Columns.Add("TrainingSeminarDurationUnit", typeof(string));
        dataTable.Columns.Add("TrainingSeminarTrainer", typeof(string));


        foreach (EEmpPersonalInfo empInfo in empList)
        {
            if (EEmpPersonalInfo.db.select(dbConn, empInfo))
            {
                EEmpPositionInfo empPos = AppUtils.GetLastPositionInfo(dbConn, AppUtils.ServerDateTime().Date, empInfo.EmpID);

                ECompany  company          = new ECompany();
                EPosition position         = new EPosition();
                ArrayList empHierarchyList = new ArrayList();
                if (empPos != null)
                {
                    company.CompanyID = empPos.CompanyID;
                    ECompany.db.select(dbConn, company);
                    //row["Company"] = company.CompanyCode;
                    DBFilter empHierarchyFilter = new DBFilter();
                    empHierarchyFilter.add(new Match("EmpPosID", empPos.EmpPosID));
                    empHierarchyList = EEmpHierarchy.db.select(dbConn, empHierarchyFilter);
                    //foreach (EEmpHierarchy empHierarchy in empHierarchyList)
                    //{
                    //    EHierarchyLevel hierarchyLevel = (EHierarchyLevel)hierarchyLevelHashTable[empHierarchy.HLevelID];
                    //    if (hierarchyLevel != null)
                    //    {
                    //        EHierarchyElement hierarchyElement = new EHierarchyElement();
                    //        hierarchyElement.HElementID = empHierarchy.HElementID;
                    //        if (EHierarchyElement.db.select(dbConn, hierarchyElement))
                    //            row[hierarchyLevel.HLevelDesc] = hierarchyElement.HElementDesc;
                    //    }
                    //}

                    position.PositionID = empPos.PositionID;
                    EPosition.db.select(dbConn, position);
                }

                DBFilter empTrainingSeminar = new DBFilter();
                empTrainingSeminar.add(new Match("EmpID", empInfo.EmpID));

                OR orTrainingCourse = null;
                foreach (ListItem item in TrainingCourseList.Items)
                {
                    if (item.Selected)
                    {
                        if (orTrainingCourse == null)
                        {
                            orTrainingCourse = new OR();
                        }
                        orTrainingCourse.add(new Match("te.TrainingCourseID", item.Value));
                    }
                }
                DBFilter trainingSeminarFilter = new DBFilter();
                if (!PeriodFrom.Ticks.Equals(0))
                {
                    trainingSeminarFilter.add(new Match("TrainingSeminarDateFrom", ">=", PeriodFrom));
                }
                if (!PeriodTo.Ticks.Equals(0))
                {
                    trainingSeminarFilter.add(new Match("TrainingSeminarDateTo", "<=", PeriodTo));
                }
                if (orTrainingCourse != null)
                {
                    trainingSeminarFilter.add(orTrainingCourse);
                }
                empTrainingSeminar.add(new IN("TrainingSeminarID", "Select TrainingSeminarID from " + ETrainingSeminar.db.dbclass.tableName + " te", trainingSeminarFilter));
                ArrayList empTrainingSeminarList = EEmpTrainingEnroll.db.select(dbConn, empTrainingSeminar);
                foreach (EEmpTrainingEnroll empTrainingEnroll in empTrainingSeminarList)
                {
                    ETrainingSeminar trainingSeminar = new ETrainingSeminar();
                    trainingSeminar.TrainingSeminarID = empTrainingEnroll.TrainingSeminarID;
                    if (ETrainingSeminar.db.select(dbConn, trainingSeminar))
                    {
                        DataRow row = dataTable.NewRow();
                        row["EmpID"]    = empInfo.EmpID;
                        row["EmpNo"]    = empInfo.EmpNo;
                        row["EmpName"]  = empInfo.EmpEngFullName;
                        row["EmpAlias"] = empInfo.EmpAlias;
                        row["Company"]  = company.CompanyCode;
                        foreach (EEmpHierarchy empHierarchy in empHierarchyList)
                        {
                            EHierarchyLevel hierarchyLevel = (EHierarchyLevel)hierarchyLevelHashTable[empHierarchy.HLevelID];
                            if (hierarchyLevel != null)
                            {
                                EHierarchyElement hierarchyElement = new EHierarchyElement();
                                hierarchyElement.HElementID = empHierarchy.HElementID;
                                if (EHierarchyElement.db.select(dbConn, hierarchyElement))
                                {
                                    row[hierarchyLevel.HLevelDesc] = hierarchyElement.HElementDesc;
                                }
                            }
                        }
                        row["Position"] = position.PositionDesc;

                        row["TrainingSeminarID"] = trainingSeminar.TrainingSeminarID;
                        ETrainingCourse trainingCourse = new ETrainingCourse();
                        trainingCourse.TrainingCourseID = trainingSeminar.TrainingCourseID;
                        if (ETrainingCourse.db.select(dbConn, trainingCourse))
                        {
                            row["TrainingCourseName"] = trainingCourse.TrainingCourseName;
                        }
                        else
                        {
                            row["TrainingCourseName"] = string.Empty;
                        }

                        row["TrainingSeminarDesc"]     = trainingSeminar.TrainingSeminarDesc == null ? string.Empty : trainingSeminar.TrainingSeminarDesc;
                        row["TrainingSeminarDateFrom"] = trainingSeminar.TrainingSeminarDateFrom;
                        row["TrainingSeminarDateTo"]   = trainingSeminar.TrainingSeminarDateTo;
                        row["TrainingSeminarDuration"] = trainingSeminar.TrainingSeminarDuration;
                        if (trainingSeminar.TrainingSeminarDurationUnit.Equals("H"))
                        {
                            row["TrainingSeminarDurationUnit"] = "Hour(s)";
                        }
                        else
                        {
                            row["TrainingSeminarDurationUnit"] = trainingSeminar.TrainingSeminarDurationUnit;
                        }

                        row["TrainingSeminarTrainer"] = trainingSeminar.TrainingSeminarTrainer;

                        dataTable.Rows.Add(row);
                    }
                }
            }
        }

        //org.in2bits.MyXls.XlsDocument document = new org.in2bits.MyXls.XlsDocument();
        //org.in2bits.MyXls.Worksheet worksheet = document.Workbook.Worksheets.Add("training report");

        NPOI.HSSF.UserModel.HSSFWorkbook workbook  = new NPOI.HSSF.UserModel.HSSFWorkbook();
        NPOI.HSSF.UserModel.HSSFSheet    worksheet = (NPOI.HSSF.UserModel.HSSFSheet)workbook.CreateSheet("training report");

        NPOI.HSSF.UserModel.HSSFFont boldFont = (NPOI.HSSF.UserModel.HSSFFont)workbook.CreateFont();
        boldFont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD;

        NPOI.HSSF.UserModel.HSSFCellStyle reportHeaderStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
        reportHeaderStyle.SetFont(boldFont);

        NPOI.HSSF.UserModel.HSSFCellStyle columnHeaderStyleCenter = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
        columnHeaderStyleCenter.SetFont(boldFont);
        columnHeaderStyleCenter.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;

        //NPOI.HSSF.UserModel.HSSFCellStyle numericStyle = (NPOI.HSSF.UserModel.HSSFCellStyle)workbook.CreateCellStyle();
        //numericStyle.DataFormat = workbook.CreateDataFormat().GetFormat("0.00");

        int rowCount = 0;

        //worksheet.Cells.Add(rowCount, (ushort)1, "Training Report").Font.Bold = true;
        NPOI.HSSF.UserModel.HSSFCell reportHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)worksheet.CreateRow(rowCount).CreateCell(0);
        reportHeaderCell.SetCellValue("Training Report");
        reportHeaderCell.CellStyle = reportHeaderStyle;
        rowCount++;

        if (!PeriodFrom.Ticks.Equals(0) && !PeriodTo.Ticks.Equals(0))
        {
            rowCount++;
            //worksheet.Cells.Add(rowCount, (ushort)1, "Period: " + PeriodFrom.ToString("dd/MM/yyyy") + " - " + PeriodTo.ToString("dd/MM/yyyy"));
            worksheet.CreateRow(rowCount).CreateCell(0).SetCellValue("Period: " + PeriodFrom.ToString("dd/MM/yyyy") + " - " + PeriodTo.ToString("dd/MM/yyyy"));
            rowCount++;
        }
        else if (!PeriodTo.Ticks.Equals(0))
        {
            rowCount++;
            //worksheet.Cells.Add(rowCount, (ushort)1, "Up to: " + PeriodTo.ToString("dd/MM/yyyy"));
            worksheet.CreateRow(rowCount).CreateCell(0).SetCellValue("Up to: " + PeriodTo.ToString("dd/MM/yyyy"));
            rowCount++;
        }
        else if (!PeriodFrom.Ticks.Equals(0))
        {
            rowCount++;
            //worksheet.Cells.Add(rowCount, (ushort)1, "From: " + PeriodFrom.ToString("dd/MM/yyyy"));
            worksheet.CreateRow(rowCount).CreateCell(0).SetCellValue("From: " + PeriodFrom.ToString("dd/MM/yyyy"));
            rowCount++;
        }

        if (SortBy.Equals("Date", StringComparison.CurrentCultureIgnoreCase))
        {
            DataView dataView = new DataView(dataTable);
            dataView.Sort = "TrainingSeminarDateFrom, TrainingSeminarDateTo, TrainingCourseName, EmpNo";
            DataTable sortedTable = dataView.ToTable();
            rowCount++;
            //worksheet.Cells.Add(rowCount, (ushort)1, "Training Date").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)2, "Course Name").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)3, "Description").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)4, "Duration").Font.Bold = true;
            //worksheet.Rows[rowCount].GetCell(4).HorizontalAlignment = org.in2bits.MyXls.HorizontalAlignments.Centered;
            //worksheet.Cells.Add(rowCount, (ushort)5, string.Empty);
            //worksheet.Cells.Add(rowCount, (ushort)6, "Trainer").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)7, "Employee No.").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)8, "Employee Name").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)9, "Alias").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)10, "Position").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)11, "Company").Font.Bold = true;
            //worksheet.Cells.Merge(rowCount, rowCount, 4, 5);
            NPOI.HSSF.UserModel.HSSFRow  columnHeaderRow  = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);
            NPOI.HSSF.UserModel.HSSFCell columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(0);
            columnHeaderCell.SetCellValue("Training Date");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(1);
            columnHeaderCell.SetCellValue("Course Name");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(2);
            columnHeaderCell.SetCellValue("Description");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(3);
            columnHeaderCell.SetCellValue("Duration");
            columnHeaderCell.CellStyle = columnHeaderStyleCenter;
            worksheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowCount, rowCount, 3, 4));
            columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(5);
            columnHeaderCell.SetCellValue("Trainer");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(6);
            columnHeaderCell.SetCellValue("Employee No.");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(7);
            columnHeaderCell.SetCellValue("Employee Name");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(8);
            columnHeaderCell.SetCellValue("Alias");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(9);
            columnHeaderCell.SetCellValue("Position");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(10);
            columnHeaderCell.SetCellValue("Company");
            columnHeaderCell.CellStyle = reportHeaderStyle;

            int colCount = 10;
            foreach (EHierarchyLevel hlevel in hierarchyLevelList)
            {
                colCount++;
                //worksheet.Cells.Add(rowCount, colCount, hlevel.HLevelDesc).Font.Bold = true;
                columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount);
                columnHeaderCell.SetCellValue(hlevel.HLevelDesc);
                columnHeaderCell.CellStyle = reportHeaderStyle;
            }

            int currentTrainingSeminarID = 0;
            foreach (DataRow row in sortedTable.Rows)
            {
                rowCount++;
                NPOI.HSSF.UserModel.HSSFRow detailRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);

                if (!currentTrainingSeminarID.Equals((int)row["TrainingSeminarID"]))
                {
                    if (row["TrainingSeminarDateFrom"] != DBNull.Value)
                    {
                        DateTime trainingFrom = ((DateTime)row["TrainingSeminarDateFrom"]);
                        DateTime trainingTo   = ((DateTime)row["TrainingSeminarDateTo"]);
                        if (trainingFrom.Equals(trainingTo))
                        {
                            //worksheet.Cells.Add(rowCount, (ushort)1, trainingFrom.ToString("dd/MM/yyyy"));
                            detailRow.CreateCell(0).SetCellValue(trainingFrom.ToString("dd/MM/yyyy"));
                        }
                        else
                        {
                            //worksheet.Cells.Add(rowCount, (ushort)1, trainingFrom.ToString("dd/MM/yyyy") + " - " + trainingTo.ToString("dd/MM/yyyy"));
                            detailRow.CreateCell(0).SetCellValue(trainingFrom.ToString("dd/MM/yyyy") + " - " + trainingTo.ToString("dd/MM/yyyy"));
                        }
                    }
                }
                currentTrainingSeminarID = ((int)row["TrainingSeminarID"]);

                //worksheet.Cells.Add(rowCount, (ushort)2, row["TrainingCourseName"]);
                //worksheet.Cells.Add(rowCount, (ushort)3, row["TrainingSeminarDesc"]);
                //worksheet.Cells.Add(rowCount, (ushort)4, row["TrainingSeminarDuration"]);
                //worksheet.Cells.Add(rowCount, (ushort)5, row["TrainingSeminarDurationUnit"]);
                //worksheet.Cells.Add(rowCount, (ushort)6, row["TrainingSeminarTrainer"]);
                //worksheet.Cells.Add(rowCount, (ushort)7, row["EmpNo"]);
                //worksheet.Cells.Add(rowCount, (ushort)8, row["EmpName"]);
                //worksheet.Cells.Add(rowCount, (ushort)9, row["EmpAlias"]);
                //worksheet.Cells.Add(rowCount, (ushort)10, row["Position"]);
                //worksheet.Cells.Add(rowCount, (ushort)11, row["Company"]);

                detailRow.CreateCell(1).SetCellValue(row["TrainingCourseName"].ToString());
                detailRow.CreateCell(2).SetCellValue(row["TrainingSeminarDesc"].ToString());
                detailRow.CreateCell(3).SetCellValue((double)row["TrainingSeminarDuration"]);
                //detailRow.GetCell(3).CellStyle = numericStyle;
                detailRow.CreateCell(4).SetCellValue(row["TrainingSeminarDurationUnit"].ToString());
                detailRow.CreateCell(5).SetCellValue(row["TrainingSeminarTrainer"].ToString());
                detailRow.CreateCell(6).SetCellValue(row["EmpNo"].ToString());
                detailRow.CreateCell(7).SetCellValue(row["EmpName"].ToString());
                detailRow.CreateCell(8).SetCellValue(row["EmpAlias"].ToString());
                detailRow.CreateCell(9).SetCellValue(row["Position"].ToString());
                detailRow.CreateCell(10).SetCellValue(row["Company"].ToString());

                colCount = 10;
                foreach (EHierarchyLevel hlevel in hierarchyLevelList)
                {
                    colCount++;
                    if (row[hlevel.HLevelDesc] != DBNull.Value)
                    {
                        //worksheet.Cells.Add(rowCount, colCount, row[hlevel.HLevelDesc]);
                        detailRow.CreateCell(colCount).SetCellValue(row[hlevel.HLevelDesc].ToString());
                    }
                }
            }
        }
        else if (SortBy.Equals("Position", StringComparison.CurrentCultureIgnoreCase))
        {
            DataView dataView = new DataView(dataTable);
            dataView.Sort = "Position, EmpNo, TrainingSeminarDateFrom, TrainingSeminarDateTo, TrainingCourseName ";
            DataTable sortedTable = dataView.ToTable();
            rowCount++;
            //worksheet.Cells.Add(rowCount, (ushort)1, "Position").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)2, "Employee No.").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)3, "Employee Name").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)4, "Alias").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)5, "Company").Font.Bold = true;
            NPOI.HSSF.UserModel.HSSFRow  columnHeaderRow  = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);
            NPOI.HSSF.UserModel.HSSFCell columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(0);
            columnHeaderCell.SetCellValue("Position");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(1);
            columnHeaderCell.SetCellValue("Employee No.");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(2);
            columnHeaderCell.SetCellValue("Employee Name");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(3);
            columnHeaderCell.SetCellValue("Alias");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(4);
            columnHeaderCell.SetCellValue("Company");
            columnHeaderCell.CellStyle = reportHeaderStyle;

            int colCount = 4;
            foreach (EHierarchyLevel hlevel in hierarchyLevelList)
            {
                colCount++;
                //worksheet.Cells.Add(rowCount, colCount, hlevel.HLevelDesc).Font.Bold = true;
                columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount);
                columnHeaderCell.SetCellValue(hlevel.HLevelDesc);
                columnHeaderCell.CellStyle = reportHeaderStyle;
            }

            //worksheet.Cells.Add(rowCount, (ushort)colCount + 1, "Course Name").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)colCount + 2, "Description").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)colCount + 3, "Training Date").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)colCount + 4, "Duration").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)colCount + 5, string.Empty);
            //worksheet.Cells.Merge(rowCount, rowCount, colCount + 4, colCount + 5);
            //worksheet.Rows[rowCount].GetCell((ushort)(colCount + 4)).HorizontalAlignment = org.in2bits.MyXls.HorizontalAlignments.Centered;
            //worksheet.Cells.Add(rowCount, (ushort)colCount + 6, "Trainer").Font.Bold = true;

            columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount + 1);
            columnHeaderCell.SetCellValue("Course Name");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount + 2);
            columnHeaderCell.SetCellValue("Description");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount + 3);
            columnHeaderCell.SetCellValue("Training Date");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount + 4);
            columnHeaderCell.SetCellValue("Duration");
            columnHeaderCell.CellStyle = columnHeaderStyleCenter;
            worksheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowCount, rowCount, colCount + 4, colCount + 5));
            columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount + 6);
            columnHeaderCell.SetCellValue("Trainer");
            columnHeaderCell.CellStyle = reportHeaderStyle;

            int currentEmpID = 0;
            foreach (DataRow row in sortedTable.Rows)
            {
                rowCount++;
                NPOI.HSSF.UserModel.HSSFRow detailRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);

                if (!currentEmpID.Equals((int)row["EmpID"]))
                {
                    //worksheet.Cells.Add(rowCount, (ushort)1, row["Position"]);
                    //worksheet.Cells.Add(rowCount, (ushort)2, row["EmpNo"]);
                    //worksheet.Cells.Add(rowCount, (ushort)3, row["EmpName"]);
                    //worksheet.Cells.Add(rowCount, (ushort)4, row["EmpAlias"]);
                    //worksheet.Cells.Add(rowCount, (ushort)5, row["Company"]);
                    detailRow.CreateCell(0).SetCellValue(row["Position"].ToString());
                    detailRow.CreateCell(1).SetCellValue(row["EmpNo"].ToString());
                    detailRow.CreateCell(2).SetCellValue(row["EmpName"].ToString());
                    detailRow.CreateCell(3).SetCellValue(row["EmpAlias"].ToString());
                    detailRow.CreateCell(4).SetCellValue(row["Company"].ToString());


                    colCount = 4;
                    foreach (EHierarchyLevel hlevel in hierarchyLevelList)
                    {
                        colCount++;
                        if (row[hlevel.HLevelDesc] != DBNull.Value)
                        {
                            //worksheet.Cells.Add(rowCount, colCount, row[hlevel.HLevelDesc]);
                            detailRow.CreateCell(colCount).SetCellValue(row[hlevel.HLevelDesc].ToString());
                        }
                    }
                }
                currentEmpID = ((int)row["EmpID"]);

                //worksheet.Cells.Add(rowCount, (ushort)colCount + 1, row["TrainingCourseName"]);
                //worksheet.Cells.Add(rowCount, (ushort)colCount + 2, row["TrainingSeminarDesc"]);
                detailRow.CreateCell(colCount + 1).SetCellValue(row["TrainingCourseName"].ToString());
                detailRow.CreateCell(colCount + 2).SetCellValue(row["TrainingSeminarDesc"].ToString());
                if (row["TrainingSeminarDateFrom"] != DBNull.Value)
                {
                    DateTime trainingFrom = ((DateTime)row["TrainingSeminarDateFrom"]);
                    DateTime trainingTo   = ((DateTime)row["TrainingSeminarDateTo"]);
                    if (trainingFrom.Equals(trainingTo))
                    {
                        //worksheet.Cells.Add(rowCount, (ushort)colCount + 3, trainingFrom.ToString("dd/MM/yyyy"));
                        detailRow.CreateCell(colCount + 3).SetCellValue(trainingFrom.ToString("dd/MM/yyyy"));
                    }
                    else
                    {
                        //worksheet.Cells.Add(rowCount, (ushort)colCount + 3, trainingFrom.ToString("dd/MM/yyyy") + " - " + trainingTo.ToString("dd/MM/yyyy"));
                        detailRow.CreateCell(colCount + 3).SetCellValue(trainingFrom.ToString("dd/MM/yyyy") + " - " + trainingTo.ToString("dd/MM/yyyy"));
                    }
                }

                //worksheet.Cells.Add(rowCount, (ushort)colCount + 4, row["TrainingSeminarDuration"]);
                //worksheet.Cells.Add(rowCount, (ushort)colCount + 5, row["TrainingSeminarDurationUnit"]);
                //worksheet.Cells.Add(rowCount, (ushort)colCount + 6, row["TrainingSeminarTrainer"]);
                detailRow.CreateCell(colCount + 4).SetCellValue((double)row["TrainingSeminarDuration"]);
                //detailRow.GetCell(colCount + 4).CellStyle = numericStyle;
                detailRow.CreateCell(colCount + 5).SetCellValue(row["TrainingSeminarDurationUnit"].ToString());
                detailRow.CreateCell(colCount + 6).SetCellValue(row["TrainingSeminarTrainer"].ToString());
            }
        }
        else if (SortBy.Equals("Course", StringComparison.CurrentCultureIgnoreCase))
        {
            DataView dataView = new DataView(dataTable);
            dataView.Sort = "TrainingCourseName, TrainingSeminarDateFrom, TrainingSeminarDateTo, EmpNo";
            DataTable sortedTable = dataView.ToTable();
            rowCount++;
            //worksheet.Cells.Add(rowCount, (ushort)1, "Course Name").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)2, "Description").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)3, "Training Date").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)4, "Duration").Font.Bold = true;
            //worksheet.Rows[rowCount].GetCell(4).HorizontalAlignment = org.in2bits.MyXls.HorizontalAlignments.Centered;
            //worksheet.Cells.Add(rowCount, (ushort)5, string.Empty);
            //worksheet.Cells.Add(rowCount, (ushort)6, "Trainer").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)7, "Employee No.").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)8, "Employee Name").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)9, "Alias").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)10, "Position").Font.Bold = true;
            //worksheet.Cells.Add(rowCount, (ushort)11, "Company").Font.Bold = true;
            //worksheet.Cells.Merge(rowCount, rowCount, 4, 5);

            NPOI.HSSF.UserModel.HSSFRow  columnHeaderRow  = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);
            NPOI.HSSF.UserModel.HSSFCell columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(0);
            columnHeaderCell.SetCellValue("Course Name");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(1);
            columnHeaderCell.SetCellValue("Description");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(2);
            columnHeaderCell.SetCellValue("Training Date");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(3);
            columnHeaderCell.SetCellValue("Duration");
            columnHeaderCell.CellStyle = columnHeaderStyleCenter;
            worksheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowCount, rowCount, 3, 4));
            columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(5);
            columnHeaderCell.SetCellValue("Trainer");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(6);
            columnHeaderCell.SetCellValue("Employee No.");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(7);
            columnHeaderCell.SetCellValue("Employee Name");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(8);
            columnHeaderCell.SetCellValue("Alias");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(9);
            columnHeaderCell.SetCellValue("Position");
            columnHeaderCell.CellStyle = reportHeaderStyle;
            columnHeaderCell           = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(10);
            columnHeaderCell.SetCellValue("Company");
            columnHeaderCell.CellStyle = reportHeaderStyle;

            int colCount = 10;
            foreach (EHierarchyLevel hlevel in hierarchyLevelList)
            {
                colCount++;
                //worksheet.Cells.Add(rowCount, colCount, hlevel.HLevelDesc).Font.Bold = true;
                columnHeaderCell = (NPOI.HSSF.UserModel.HSSFCell)columnHeaderRow.CreateCell(colCount);
                columnHeaderCell.SetCellValue(hlevel.HLevelDesc);
                columnHeaderCell.CellStyle = reportHeaderStyle;
            }

            foreach (DataRow row in sortedTable.Rows)
            {
                rowCount++;

                NPOI.HSSF.UserModel.HSSFRow detailRow = (NPOI.HSSF.UserModel.HSSFRow)worksheet.CreateRow(rowCount);
                //worksheet.Cells.Add(rowCount, (ushort)1, row["TrainingCourseName"]);
                //worksheet.Cells.Add(rowCount, (ushort)2, row["TrainingSeminarDesc"]);
                detailRow.CreateCell(0).SetCellValue(row["TrainingCourseName"].ToString());
                detailRow.CreateCell(1).SetCellValue(row["TrainingSeminarDesc"].ToString());

                if (row["TrainingSeminarDateFrom"] != DBNull.Value)
                {
                    DateTime trainingFrom = ((DateTime)row["TrainingSeminarDateFrom"]);
                    DateTime trainingTo   = ((DateTime)row["TrainingSeminarDateTo"]);
                    if (trainingFrom.Equals(trainingTo))
                    {
                        //worksheet.Cells.Add(rowCount, (ushort)3, trainingFrom.ToString("dd/MM/yyyy"));
                        detailRow.CreateCell(2).SetCellValue(trainingFrom.ToString("dd/MM/yyyy"));
                    }
                    else
                    {
                        //worksheet.Cells.Add(rowCount, (ushort)3, trainingFrom.ToString("dd/MM/yyyy") + " - " + trainingTo.ToString("dd/MM/yyyy"));
                        detailRow.CreateCell(2).SetCellValue(trainingFrom.ToString("dd/MM/yyyy") + " - " + trainingTo.ToString("dd/MM/yyyy"));
                    }
                }

                //worksheet.Cells.Add(rowCount, (ushort)4, row["TrainingSeminarDuration"]);
                //worksheet.Cells.Add(rowCount, (ushort)5, row["TrainingSeminarDurationUnit"]);
                //worksheet.Cells.Add(rowCount, (ushort)6, row["TrainingSeminarTrainer"]);
                //worksheet.Cells.Add(rowCount, (ushort)7, row["EmpNo"]);
                //worksheet.Cells.Add(rowCount, (ushort)8, row["EmpName"]);
                //worksheet.Cells.Add(rowCount, (ushort)9, row["EmpAlias"]);
                //worksheet.Cells.Add(rowCount, (ushort)10, row["Position"]);
                //worksheet.Cells.Add(rowCount, (ushort)11, row["Company"]);
                detailRow.CreateCell(3).SetCellValue((double)row["TrainingSeminarDuration"]);
                //detailRow.GetCell(3).CellStyle = numericStyle;
                detailRow.CreateCell(4).SetCellValue(row["TrainingSeminarDurationUnit"].ToString());
                detailRow.CreateCell(5).SetCellValue(row["TrainingSeminarTrainer"].ToString());
                detailRow.CreateCell(6).SetCellValue(row["EmpNo"].ToString());
                detailRow.CreateCell(7).SetCellValue(row["EmpName"].ToString());
                detailRow.CreateCell(8).SetCellValue(row["EmpAlias"].ToString());
                detailRow.CreateCell(9).SetCellValue(row["Position"].ToString());
                detailRow.CreateCell(10).SetCellValue(row["Company"].ToString());

                colCount = 10;
                foreach (EHierarchyLevel hlevel in hierarchyLevelList)
                {
                    colCount++;
                    if (row[hlevel.HLevelDesc] != DBNull.Value)
                    {
                        //worksheet.Cells.Add(rowCount, colCount, row[hlevel.HLevelDesc]);
                        detailRow.CreateCell(colCount).SetCellValue(row[hlevel.HLevelDesc].ToString());
                    }
                }
            }
        }
        string exportFileName = System.IO.Path.GetTempFileName();

        System.IO.File.Delete(exportFileName);
        exportFileName += ".xls";
        //document.FileName = exportFileName;
        //document.Save();
        System.IO.FileStream file = new System.IO.FileStream(exportFileName, System.IO.FileMode.Create);
        workbook.Write(file);
        file.Close();
        string filename = "TrainingReport_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls";

        WebUtils.TransmitFile(Response, exportFileName, filename, true);
        return;
    }
Ejemplo n.º 18
0
    public DataView emploadData(ListInfo info, DBManager db, Repeater repeater)
    {
        DBFilter filter = new DBFilter();// empSBinding.createFilter();

        //if (info != null && info.orderby != null && !info.orderby.Equals(""))
        //    filter.add(info.orderby, info.order);

        string select = "* ";
        string from   = "from [" + EEmpPersonalInfo.db.dbclass.tableName + "] e ";


        DBFilter empInfoFilter = EmployeeSearchControl1.GetEmpInfoFilter(AppUtils.ServerDateTime(), AppUtils.ServerDateTime());

        empInfoFilter.add(new MatchField("e.EmpID", "ee.EmpID"));
        DateTime dtPeriodFr, dtPeriodTo;

        if (DateTime.TryParse(PeriodFr.Value, out dtPeriodFr) && DateTime.TryParse(PeriodTo.Value, out dtPeriodTo))
        {
            empInfoFilter.add(new Match("EmpDateOfJoin", "<=", dtPeriodTo));
            DBFilter empTermFilter = new DBFilter();
            empTermFilter.add(new MatchField("ee.EmpID", "et.EmpID"));
            empTermFilter.add(new Match("et.EmpTermLastDate", "<", dtPeriodFr));
            empInfoFilter.add(new Exists(EEmpTermination.db.dbclass.tableName + " et ", empTermFilter, true));

            DBFilter attendanceRecordFilter = new DBFilter();
            attendanceRecordFilter.add(new MatchField("e.EmpID", "ar.EmpID"));
            attendanceRecordFilter.add(new Match("ar.AttendanceRecordDate", "<=", dtPeriodTo));
            attendanceRecordFilter.add(new Match("ar.AttendanceRecordDate", ">=", dtPeriodFr));
            //attendanceRecordFilter.add(new Match("ar.AttendanceRecordActualOvertimeMins", ">", 0));
            empInfoFilter.add(new Exists(EAttendanceRecord.db.dbclass.tableName + " ar", attendanceRecordFilter));

            DBFilter empPosFilter = new DBFilter();
            empPosFilter.add(new MatchField("e.EmpID", "ep.EmpID"));
            empPosFilter.add(new Match("ep.EmpPosEffFr", "<=", dtPeriodTo));
            OR orEmpPosEffToTerm = new OR();
            orEmpPosEffToTerm.add(new Match("ep.EmpPosEffTo", ">=", dtPeriodFr));
            orEmpPosEffToTerm.add(new NullTerm("ep.EmpPosEffTo"));
            empPosFilter.add(orEmpPosEffToTerm);
            DBFilter attendancePlanFilter = new DBFilter();
            attendancePlanFilter.add(new MatchField("ep.AttendancePlanID", "ap.AttendancePlanID"));
            attendancePlanFilter.add(new Match("ap.AttendancePlanOTGainAsCompensationLeaveEntitle", true));
            empPosFilter.add(new Exists(EAttendancePlan.db.dbclass.tableName + " ap", attendancePlanFilter));
            empInfoFilter.add(new Exists(EEmpPositionInfo.db.dbclass.tableName + " ep", empPosFilter));
        }
        else
        {
            btnGenerate.Visible = false;
            empView             = null;
            repeater.DataSource = null;
            repeater.DataBind();

            return(null);
        }

        filter.add(new Exists(EEmpPersonalInfo.db.dbclass.tableName + " ee", empInfoFilter));



        DataTable table = filter.loadData(dbConn, null, select, from);

        table = EmployeeSearchControl1.FilterEncryptedEmpInfoField(table, info);

        if (table.Rows.Count != 0)
        {
            btnGenerate.Visible = true;
        }
        else
        {
            btnGenerate.Visible = false;
        }
        empView = new DataView(table);
        ListFooter.Refresh();

        if (repeater != null)
        {
            repeater.DataSource = empView;
            repeater.DataBind();
        }

        return(empView);
    }
Ejemplo n.º 19
0
    public static bool ValidateUser(DatabaseConnection dbConn, string username, string encryptedPassword, bool throwException, out bool ChangePasswordRequired, out EESSUser user)
    {
        string message = string.Empty;

        ChangePasswordRequired = false;
        user = null;

        if (dbConn == null)
        {
            if (throwException)
            {
                message = HROne.Common.WebUtility.GetLocalizedString("Invalid User Name or Password");
                throw new Exception(message);
            }
            return(false);
        }

        DBFilter filter       = new DBFilter();
        OR       orEmpNoTerms = new OR();

        orEmpNoTerms.add(new Match("EmpNo", username));
        DBFieldTranscoder empNoTranscoder = EESSUser.db.getField("EmpNo").transcoder;

        if (empNoTranscoder != null)
        {
            orEmpNoTerms.add(new Match("EmpNo", empNoTranscoder.toDB(username.ToUpper())));
        }
        filter.add(orEmpNoTerms);
        ArrayList list = EESSUser.db.select(dbConn, filter);

        if (list.Count == 0)
        {
            if (throwException)
            {
                message = HROne.Common.WebUtility.GetLocalizedString("Invalid User Name / Password");
                throw new Exception(message);
            }
            return(false);
        }
        {
            user = (EESSUser)list[0];

            ChangePasswordRequired = false;
            if (string.IsNullOrEmpty(user.EmpPW))
            {
                ChangePasswordRequired = true;
                if (!(user.EmpHKID == "()") && !string.IsNullOrEmpty(user.EmpHKID))
                {
                    user.EmpPW = WebUtils.PasswordHash(user.EmpHKID.Substring(0, (user.EmpHKID.Length - 3)));
                }
                else
                {
                    user.EmpPW = WebUtils.PasswordHash(user.EmpPassportNo);
                }
            }
            //if (user.EmpPW == WebUtils.PasswordHash(user.EmpPassportNo))
            //{
            //    if (!user.EmpPW.Equals(Password.Text))
            //    {
            //        Prompt.Text = "Invalid User Name / Password";
            //        return;
            //    }
            //    else
            //    {
            //        user.EmpPW = WebUtils.PasswordHash(Password.Text);
            //        EESSUser.db.update(user);
            //    }
            //}
            //else
            if (!user.EmpPW.Equals(encryptedPassword))
            {
                if (throwException)
                {
                    message = HROne.Common.WebUtility.GetLocalizedString("Invalid User Name / Password");
                    throw new Exception(message);
                }
                return(false);
            }

            EEmpTermination empTerm = EEmpTermination.GetObjectByEmpID(dbConn, user.EmpID);
            if (empTerm != null)
            {
                if (throwException)
                {
                    if (empTerm.EmpTermLastDate < AppUtils.ServerDateTime().Date)
                    {
                        message = HROne.Common.WebUtility.GetLocalizedString("User is terminated");
                        throw new Exception(message);
                    }
                    return(false);
                }
            }
        }



        return(true);
    }
        public override ReportDocument GenerateReport()
        {
            DataSet.Payroll_DiscrepancyList dataSet = new DataSet.Payroll_DiscrepancyList();


            if (intProcessYear > 0 && intProcessMonth > 0 && intReferenceYear > 0 && intReferenceMonth > 0 && empList != null)
            {
                DataSet.Payroll_DiscrepancyList.DiscrepancyListDataTable dataTable = dataSet.DiscrepancyList;

                foreach (EEmpPersonalInfo empInfo in empList)
                {
                    DateTime dtPayPeriodFr = new DateTime(intReferenceYear, intReferenceMonth, 1);
                    DateTime dtPayPeriodTo = new DateTime(intProcessYear, intProcessMonth, 1).AddMonths(1).AddDays(-1);

                    EEmpPersonalInfo.db.select(dbConn, empInfo);


                    DBFilter positionFilter = new DBFilter();
                    positionFilter.add(new Match("EmpID", empInfo.EmpID));
                    //if (lngPayPeriodFr != 0 && lngPayPeriodTo != 0)
                    //{
                    positionFilter.add(new Match("EmpPosEffFr", "<=", dtPayPeriodTo));
                    OR orPosEffToTerms = new OR();
                    orPosEffToTerms.add(new Match("EmpPosEffTo", ">=", dtPayPeriodFr));
                    orPosEffToTerms.add(new NullTerm("EmpPosEffTo"));
                    positionFilter.add(orPosEffToTerms);
                    //}
                    positionFilter.add("EmpPosEffFr", false);

                    ArrayList        empPositionInfos = EEmpPositionInfo.db.select(dbConn, positionFilter);
                    EEmpPositionInfo empPositionInfo;
                    if (empPositionInfos.Count > 0)
                    {
                        empPositionInfo = (EEmpPositionInfo)empPositionInfos[0];

                        ECompany company = new ECompany();
                        company.CompanyID = empPositionInfo.CompanyID;
                        ECompany.db.select(dbConn, company);

                        EPayrollGroup payGroup = new EPayrollGroup();
                        payGroup.PayGroupID = empPositionInfo.PayGroupID;
                        EPayrollGroup.db.select(dbConn, payGroup);

                        ERank rank = new ERank();
                        rank.RankID = empPositionInfo.RankID;
                        ERank.db.select(dbConn, rank);

                        EPosition position = new EPosition();
                        position.PositionID = empPositionInfo.PositionID;
                        EPosition.db.select(dbConn, position);

                        DataSet.Payroll_DiscrepancyList.DiscrepancyListRow row = dataTable.NewDiscrepancyListRow();
                        row.EmpID         = empInfo.EmpID;
                        row.EmpNo         = empInfo.EmpNo;
                        row.EmpName       = empInfo.EmpEngFullName;
                        row.CompanyID     = company.CompanyID;
                        row.CompanyCode   = company.CompanyCode;
                        row.CompanyName   = company.CompanyName;
                        row.PayGroupID    = payGroup.PayGroupID;
                        row.PayGroupDesc  = payGroup.PayGroupDesc;
                        row.Rank          = rank.RankDesc;
                        row.Position      = position.PositionDesc;
                        row.LastNetPay    = getNetIncome(empInfo.EmpID, intReferenceMonth, intReferenceYear);
                        row.CurrentNetPay = getNetIncome(empInfo.EmpID, intProcessMonth, intProcessYear);
                        dataTable.Rows.Add(row);
                    }
                }


                if (reportDocument == null)
                {
                    reportDocument = new ReportTemplate.Report_Payroll_DiscrepancyList();
                    //reportDocument.Load(@"ReportTemplate\Report_Payroll_DiscrepancyList.rpt");
                }
                else
                {
                }
                reportDocument.SetDataSource(dataSet);

                reportDocument.SetParameterValue("ProcessYear", intProcessYear);
                reportDocument.SetParameterValue("ProcessMonth", intProcessMonth);
                reportDocument.SetParameterValue("ReferenceYear", intReferenceYear);
                reportDocument.SetParameterValue("ReferenceMonth", intReferenceMonth);


                //            rpt.SetDataSource((DataTable)mpfTable);
                return(reportDocument);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 21
0
 public override OR opOR(OR i, out OR o, Ice.Current current)
 {
     o = i;
     return(i);
 }
Ejemplo n.º 22
0
        public override CrystalDecisions.CrystalReports.Engine.ReportDocument GenerateReport()
        {
            DataSet.Payroll_NetPaymentList dataSet = new DataSet.Payroll_NetPaymentList();

            if (ByAutoPay)
            {
                DataSet.Payroll_NetPaymentList.PaymentMethodRow payMethodRow = dataSet.PaymentMethod.NewPaymentMethodRow();
                payMethodRow.PayMethodCode = "A";
                payMethodRow.PayMethodDesc = "Autopay";
                dataSet.PaymentMethod.AddPaymentMethodRow(payMethodRow);
            }

            if (ByCheque)
            {
                DataSet.Payroll_NetPaymentList.PaymentMethodRow payMethodRow = dataSet.PaymentMethod.NewPaymentMethodRow();
                payMethodRow.PayMethodCode = "Q";
                payMethodRow.PayMethodDesc = "Cheque";
                dataSet.PaymentMethod.AddPaymentMethodRow(payMethodRow);
            }
            if (ByCash)
            {
                DataSet.Payroll_NetPaymentList.PaymentMethodRow payMethodRow = dataSet.PaymentMethod.NewPaymentMethodRow();
                payMethodRow.PayMethodCode = "C";
                payMethodRow.PayMethodDesc = "Cash";
                dataSet.PaymentMethod.AddPaymentMethodRow(payMethodRow);
            }
            if (ByOthers)
            {
                DataSet.Payroll_NetPaymentList.PaymentMethodRow payMethodRow = dataSet.PaymentMethod.NewPaymentMethodRow();
                payMethodRow.PayMethodCode = "O";
                payMethodRow.PayMethodDesc = "Others";
                dataSet.PaymentMethod.AddPaymentMethodRow(payMethodRow);
            }
            foreach (EEmpPersonalInfo empInfo in EmpList)
            {
                if (EEmpPersonalInfo.db.select(dbConn, empInfo))
                {
                    DataSet.Payroll_NetPaymentList.employeedetailRow row = dataSet.employeedetail.NewemployeedetailRow();

                    {
                        EEmpPositionInfo posInfo = AppUtils.GetLastPositionInfo(dbConn, empInfo.EmpID);

                        if (posInfo != null)
                        {
                            ECompany company = new ECompany();
                            company.CompanyID = posInfo.CompanyID;
                            if (ECompany.db.select(dbConn, company))
                            {
                                row.CompanyCode = company.CompanyCode;
                                row.CompanyID   = company.CompanyID;
                                row.CompanyName = company.CompanyName;
                            }
                            else
                            {
                                row.CompanyCode = string.Empty;
                                row.CompanyID   = 0;
                                row.CompanyName = "-";
                            }
                            row.EmpPosEffFr = posInfo.EmpPosEffFr;
                            row.EmpPosEffTo = posInfo.EmpPosEffTo;
                            //posInfo.EmploymentTypeID
                            row.EmpPosID    = posInfo.EmpPosID;
                            row.LeavePlanID = posInfo.LeavePlanID;
                            row.PayGroupID  = posInfo.PayGroupID;
                            EPosition position = new EPosition();
                            position.PositionID = posInfo.PositionID;
                            if (EPosition.db.select(dbConn, position))
                            {
                                row.PositionCode = position.PositionCode;
                                row.PositionDesc = position.PositionDesc;
                                row.PositionID   = position.PositionID;
                            }
                            else
                            {
                                row.PositionCode = string.Empty;
                                row.PositionDesc = "-";
                                row.PositionID   = 0;
                            }

                            row.RankID      = posInfo.RankID;
                            row.Remark      = empInfo.Remark;
                            row.StaffTypeID = posInfo.StaffTypeID;
                            //posInfo.YebPlanID;

                            ArrayList HierarchyLevelList = EHierarchyLevel.db.select(dbConn, new DBFilter());
                            foreach (EHierarchyLevel hLevel in HierarchyLevelList)
                            {
                                if (hLevel.HLevelSeqNo < 4 && hLevel.HLevelSeqNo > 0)
                                {
                                    DBFilter empHierarchyFilter = new DBFilter();
                                    empHierarchyFilter.add(new Match("EmpPosID", posInfo.EmpPosID));
                                    empHierarchyFilter.add(new Match("HLevelID", hLevel.HLevelID));

                                    ArrayList empHierarchyList = EEmpHierarchy.db.select(dbConn, empHierarchyFilter);

                                    if (empHierarchyList.Count > 0)
                                    {
                                        EEmpHierarchy empHierarchy = (EEmpHierarchy)empHierarchyList[0];

                                        EHierarchyElement hElement = new EHierarchyElement();
                                        hElement.HElementID = empHierarchy.HElementID;
                                        EHierarchyElement.db.select(dbConn, hElement);

                                        row["HierarchyCode" + hLevel.HLevelSeqNo] = hElement.HElementCode;
                                        row["HierarchyDesc" + hLevel.HLevelSeqNo] = hElement.HElementDesc;
                                    }
                                }
                            }
                        }
                        else
                        {
                            row.CompanyCode  = string.Empty;
                            row.CompanyID    = 0;
                            row.CompanyName  = "-";
                            row.PositionCode = string.Empty;
                            row.PositionDesc = "-";
                            row.PositionID   = 0;
                        }
                    }

                    row.EmpAlias                 = empInfo.EmpAlias;
                    row.EmpChiFullName           = empInfo.EmpChiFullName;
                    row.EmpCorAddr               = empInfo.EmpCorAddr;
                    row.EmpDateOfBirth           = empInfo.EmpDateOfBirth;
                    row.EmpDateOfJoin            = empInfo.EmpDateOfJoin;
                    row.EmpEmail                 = empInfo.EmpEmail;
                    row.EmpEngOtherName          = empInfo.EmpEngOtherName;
                    row.EmpEngSurname            = empInfo.EmpEngSurname;
                    row.EmpEngFullName           = empInfo.EmpEngFullName;
                    row.EmpGender                = empInfo.EmpGender;
                    row.EmpHKID                  = empInfo.EmpHKID;
                    row.EmpHomePhoneNo           = empInfo.EmpHomePhoneNo;
                    row.EmpID                    = empInfo.EmpID;
                    row.EmpMaritalStatus         = empInfo.EmpMaritalStatus;
                    row.EmpMobileNo              = empInfo.EmpMobileNo;
                    row.EmpNationality           = empInfo.EmpNationality;
                    row.EmpNo                    = empInfo.EmpNo;
                    row.EmpNoticePeriod          = empInfo.EmpNoticePeriod;
                    row.EmpNoticeUnit            = empInfo.EmpNoticeUnit;
                    row.EmpOfficePhoneNo         = empInfo.EmpOfficePhoneNo;
                    row.EmpPassportExpiryDate    = empInfo.EmpPassportExpiryDate;
                    row.EmpPassportIssuedCountry = empInfo.EmpPassportIssuedCountry;
                    row.EmpPassportNo            = empInfo.EmpPassportNo;
                    row.EmpPlaceOfBirth          = empInfo.EmpPlaceOfBirth;
                    row.EmpProbaLastDate         = empInfo.EmpProbaLastDate;
                    row.EmpProbaPeriod           = empInfo.EmpProbaPeriod;
                    row.EmpProbaUnit             = empInfo.EmpProbaUnit;
                    row.EmpResAddr               = empInfo.EmpResAddr;
                    row.EmpResAddrAreaCode       = empInfo.EmpResAddrAreaCode;
                    row.EmpServiceDate           = empInfo.EmpServiceDate;
                    row.EmpStatus                = empInfo.EmpStatus;


                    DBFilter empTermFilter = new DBFilter();
                    empTermFilter.add(new Match("EmpID", empInfo.EmpID));
                    ArrayList empTermList = EEmpTermination.db.select(dbConn, empTermFilter);
                    if (empTermList.Count > 0)
                    {
                        row.EmpTermLastDate = ((EEmpTermination)empTermList[0]).EmpTermLastDate;
                    }


                    dataSet.employeedetail.AddemployeedetailRow(row);



                    DBFilter empPayrollFilter = new DBFilter();
                    empPayrollFilter.add(new Match("EmpID", empInfo.EmpID));
                    OR orPayrollBatch = new OR();
                    foreach (EPayrollBatch payBatch in PayrollBatchList)
                    {
                        orPayrollBatch.add(new Match("PayBatchID", payBatch.PayBatchID));
                    }
                    empPayrollFilter.add(orPayrollBatch);

                    IN inEmpPayroll = new IN("EmpPayrollID", "Select EmpPayrollID from EmpPayroll", empPayrollFilter);

                    DBFilter autoPayPaymentRecordFilter = new DBFilter();
                    autoPayPaymentRecordFilter.add(inEmpPayroll);
                    autoPayPaymentRecordFilter.add("EmpAccID", true);
                    ArrayList autoPayPaymentRecords = EPaymentRecord.db.select(dbConn, autoPayPaymentRecordFilter);

                    foreach (EPaymentRecord paymentRecord in autoPayPaymentRecords)
                    {
                        DataSet.Payroll_NetPaymentList.PaymentRecordRow paymentRow = dataSet.PaymentRecord.NewPaymentRecordRow();
                        paymentRow.PayRecID        = paymentRecord.PayRecID;
                        paymentRow.EmpID           = empInfo.EmpID;
                        paymentRow.PayRecActAmount = paymentRecord.PayRecActAmount;
                        paymentRow.PayRecMethod    = paymentRecord.PayRecMethod;
                        paymentRow.EmpAccountNo    = string.Empty;

                        EEmpPayroll empPayroll = new EEmpPayroll();
                        empPayroll.EmpPayrollID = paymentRecord.EmpPayrollID;
                        if (EEmpPayroll.db.select(dbConn, empPayroll))
                        {
                            if (!empPayroll.EmpPayValueDate.Ticks.Equals(0))
                            {
                                paymentRow.EmpPayValueDate = empPayroll.EmpPayValueDate;
                            }
                        }

                        if (paymentRecord.PayRecMethod.Equals("A", StringComparison.CurrentCultureIgnoreCase))
                        {
                            //  Only Autopay payment show account no
                            EEmpBankAccount empBankAccount = new EEmpBankAccount();
                            empBankAccount.EmpBankAccountID = paymentRecord.EmpAccID;
                            if (EEmpBankAccount.db.select(dbConn, empBankAccount))
                            {
                                if (empBankAccount.EmpID.Equals(empInfo.EmpID))
                                {
                                    paymentRow.EmpAccountNo = empBankAccount.EmpBankCode + "-" + empBankAccount.EmpBranchCode + "-" + empBankAccount.EmpAccountNo;
                                    paymentRow.EmpAccID     = paymentRecord.EmpAccID;
                                }
                            }
                        }
                        dataSet.PaymentRecord.AddPaymentRecordRow(paymentRow);
                    }
                }
            }
            if (reportDocument == null)
            {
                reportDocument = new ReportTemplate.Report_Payroll_NetPaymentListByPaymentMethod();
            }
            else
            {
            }

            reportDocument.SetDataSource(dataSet);

            return(reportDocument);
        }
Ejemplo n.º 23
0
        public override CrystalDecisions.CrystalReports.Engine.ReportDocument GenerateReport()
        {
            if (EmpPayrollList != null)
            {
                DataSet.PayrollTrialRunSummaryDataSet dataSet = new DataSet.PayrollTrialRunSummaryDataSet();
                DataSet.PayrollTrialRunSummaryDataSet.TrialRunSummaryDataTable dataTable = dataSet.TrialRunSummary;

                foreach (EEmpPayroll empPayroll in EmpPayrollList)
                {
                    EEmpPayroll.db.select(dbConn, empPayroll);

                    EPayrollPeriod payPeriod = new EPayrollPeriod();
                    payPeriod.PayPeriodID = empPayroll.PayPeriodID;
                    EPayrollPeriod.db.select(dbConn, payPeriod);

                    string strPayPeriod = payPeriod.PayPeriodFr.ToString("yyyy-MM-dd") + " - " + payPeriod.PayPeriodTo.ToString("yyyy-MM-dd");

                    EPayrollGroup payGroup = new EPayrollGroup();
                    payGroup.PayGroupID = payPeriod.PayGroupID;
                    EPayrollGroup.db.select(dbConn, payGroup);

                    EPayrollBatch payBatch = new EPayrollBatch();
                    payBatch.PayBatchID = empPayroll.PayBatchID;
                    EPayrollBatch.db.select(dbConn, payBatch);

                    EEmpPersonalInfo empInfo = new EEmpPersonalInfo();
                    empInfo.EmpID = empPayroll.EmpID;
                    EEmpPersonalInfo.db.select(dbConn, empInfo);


                    DataSet.PayrollTrialRunSummaryDataSet.TrialRunSummaryRow row = dataTable.NewTrialRunSummaryRow();
                    row.EmpPayrollID  = empPayroll.EmpPayrollID;
                    row.EmpID         = empPayroll.EmpID;
                    row.EmpNo         = empInfo.EmpNo;
                    row.EmpName       = empInfo.EmpEngFullName;
                    row.EmpAlias      = empInfo.EmpAlias;
                    row.PayGroupDesc  = payGroup.PayGroupCode + " - " + payGroup.PayGroupDesc;
                    row.PayGroupID    = empPayroll.PayPeriodID;
                    row.PayrollPeriod = strPayPeriod;
                    if (!payBatch.PayBatchValueDate.Ticks.Equals(0))
                    {
                        row.PayBatchValueDate = payBatch.PayBatchValueDate;
                    }
                    row.PayBatchRemark   = payBatch.PayBatchRemark;
                    row.BasicSalary      = 0;
                    row.LeaveAllowance   = 0;
                    row.PFundEE          = 0;
                    row.PFundER          = 0;
                    row.Overtime         = 0;
                    row.Bonus            = 0;
                    row.Commission       = 0;
                    row.Others           = 0;
                    row.NetIncome        = 0;
                    row.TotalIncome      = 0;
                    row.PayMethodAutoPay = 0;
                    row.PayMethodCash    = 0;
                    row.PayMethodCheque  = 0;
                    row.PayMethodOthers  = 0;

                    AND recurringBasicSalaryAndTerms = new AND();
                    recurringBasicSalaryAndTerms.add(new Match("EmpRPEffFr", "<=", payPeriod.PayPeriodTo));

                    DBFilter basicSalaryPaymentCodeFilter = new DBFilter();
                    basicSalaryPaymentCodeFilter.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeID));
                    recurringBasicSalaryAndTerms.add(new IN("PayCodeID", "Select PaymentCodeID FROM " + EPaymentCode.db.dbclass.tableName, basicSalaryPaymentCodeFilter));
                    EEmpRecurringPayment empRP = (EEmpRecurringPayment)AppUtils.GetLastObj(dbConn, EEmpRecurringPayment.db, "EmpRPEffFr", empPayroll.EmpID, recurringBasicSalaryAndTerms);
                    if (empRP != null)
                    {
                        row.RecurringBasicSalary = empRP.EmpRPAmount;
                    }

                    DBFilter paymentRecordFilter = new DBFilter();
                    paymentRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID));
                    paymentRecordFilter.add(new Match("PayRecStatus", "A"));
                    ArrayList paymentRecords = EPaymentRecord.db.select(dbConn, paymentRecordFilter);
                    foreach (EPaymentRecord paymentRecord in paymentRecords)
                    {
                        EPaymentCode payCode = new EPaymentCode();
                        payCode.PaymentCodeID = paymentRecord.PaymentCodeID;
                        EPaymentCode.db.select(dbConn, payCode);

                        EPaymentType payType = new EPaymentType();
                        payType.PaymentTypeID = payCode.PaymentTypeID;
                        EPaymentType.db.select(dbConn, payType);

                        if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.BasicSalary += paymentRecord.PayRecActAmount;
                            row.TotalIncome += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.LeaveDeductionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.LeaveAllowance += paymentRecord.PayRecActAmount;
                            row.TotalIncome    += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.LeaveAllowancePaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.LeaveAllowance += paymentRecord.PayRecActAmount;
                            row.TotalIncome    += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployeeMandatoryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.PFundEE += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployeeVoluntaryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.PFundEE += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.PFundEmployeeContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.PFundEE += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployerMandatoryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.PFundER += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.MPFEmployerVoluntaryContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.PFundER += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.PFundEmployerContributionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.PFundER += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.OverTimePaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.Overtime    += paymentRecord.PayRecActAmount;
                            row.TotalIncome += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.BonusPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.Bonus       += paymentRecord.PayRecActAmount;
                            row.TotalIncome += paymentRecord.PayRecActAmount;
                        }
                        else if (payType.PaymentTypeCode.Equals(EPaymentType.SystemPaymentType.CommissionPaymentType(dbConn).PaymentTypeCode, StringComparison.CurrentCultureIgnoreCase))
                        {
                            row.Commission  += paymentRecord.PayRecActAmount;
                            row.TotalIncome += paymentRecord.PayRecActAmount;
                        }
                        else
                        {
                            row.Others      += paymentRecord.PayRecActAmount;
                            row.TotalIncome += paymentRecord.PayRecActAmount;
                        }
                        if (paymentRecord.PayRecMethod.Equals("A"))
                        {
                            row.PayMethodAutoPay += paymentRecord.PayRecActAmount;
                        }
                        else if (paymentRecord.PayRecMethod.Equals("C"))
                        {
                            row.PayMethodCash += paymentRecord.PayRecActAmount;
                        }
                        else if (paymentRecord.PayRecMethod.Equals("Q"))
                        {
                            row.PayMethodCheque += paymentRecord.PayRecActAmount;
                        }
                        else
                        {
                            row.PayMethodOthers += paymentRecord.PayRecActAmount;
                        }

                        row.NetIncome += paymentRecord.PayRecActAmount;
                    }
                    row.TotalWagesForMinWages = HROne.Payroll.PayrollProcess.GetTotalWagesWithoutRestDayPayment(dbConn, empInfo.EmpID, payPeriod.PayPeriodFr, payPeriod.PayPeriodTo, null);
                    row.TotalWorkingHours     = HROne.Payroll.PayrollProcess.GetTotalEmpPayrollWorkingHours(dbConn, empInfo.EmpID, payPeriod.PayPeriodID);
                    row.MinWagesRequired      = row.TotalWorkingHours * HROne.Payroll.PayrollProcess.GetMinimumWages(dbConn, empInfo.EmpID, payPeriod.PayPeriodTo);
                    DBFilter mpfRecordFilter = new DBFilter();
                    mpfRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID));
                    ArrayList mpfRecords = EMPFRecord.db.select(dbConn, mpfRecordFilter);
                    foreach (EMPFRecord mpfRecord in mpfRecords)
                    {
                        row.PFundER += mpfRecord.MPFRecActVCER + mpfRecord.MPFRecActMCER;
                    }
                    ArrayList orsoRecords = EORSORecord.db.select(dbConn, mpfRecordFilter);
                    foreach (EORSORecord orsoRecord in orsoRecords)
                    {
                        row.PFundER += orsoRecord.ORSORecActER;
                    }

                    DBFilter positionFilter = new DBFilter();
                    positionFilter.add(new Match("EmpID", empInfo.EmpID));
                    positionFilter.add(new Match("PayGroupID", payGroup.PayGroupID));
                    positionFilter.add(new Match("EmpPosEffFr", "<=", payPeriod.PayPeriodTo));

                    OR orPosEffToTerms = new OR();
                    orPosEffToTerms.add(new Match("EmpPosEffTo", ">=", payPeriod.PayPeriodFr));
                    orPosEffToTerms.add(new NullTerm("EmpPosEffTo"));
                    positionFilter.add(orPosEffToTerms);

                    ArrayList        positionInfos = EEmpPositionInfo.db.select(dbConn, positionFilter);
                    EEmpPositionInfo empPos        = null;
                    if (positionInfos.Count > 0)
                    {
                        empPos = (EEmpPositionInfo)positionInfos[0];
                    }
                    else
                    {
                        empPos = AppUtils.GetLastPositionInfo(dbConn, payPeriod.PayPeriodTo, empInfo.EmpID);
                    }

                    if (HLevelIDDisplayList != null && empPos != null)
                    {
                        for (int count = 0; count < HLevelIDDisplayList.Count && count < 2; count++)
                        {
                            int hLevelID = Convert.ToInt32(HLevelIDDisplayList[count]);

                            EHierarchyLevel hLevel = new EHierarchyLevel();
                            hLevel.HLevelID = hLevelID;
                            if (EHierarchyLevel.db.select(dbConn, hLevel))
                            {
                                row["HLevelDesc" + (count + 1)] = hLevel.HLevelDesc;

                                DBFilter empHierarchyFilter = new DBFilter();
                                empHierarchyFilter.add(new Match("EmpPosID", empPos.EmpPosID));
                                empHierarchyFilter.add(new Match("HLevelID", hLevelID));
                                ArrayList empHierarchyList = EEmpHierarchy.db.select(dbConn, empHierarchyFilter);
                                if (empHierarchyList.Count > 0)
                                {
                                    EEmpHierarchy empHierarchy = (EEmpHierarchy)empHierarchyList[0];

                                    EHierarchyElement hElement = new EHierarchyElement();
                                    hElement.HElementID = empHierarchy.HElementID;
                                    if (EHierarchyElement.db.select(dbConn, hElement))
                                    {
                                        row["HElementCode" + (count + 1)] = hElement.HElementCode;
                                        row["HElementDesc" + (count + 1)] = hElement.HElementDesc;
                                    }
                                }
                            }
                        }
                    }

                    dataTable.Rows.Add(row);
                }
                if (reportDocument == null)
                {
                    if (reportType.Equals(ReportType.TrialRun))
                    {
                        reportDocument = new ReportTemplate.Report_Payroll_TrialRunSummary();
                    }
                    else if (reportType.Equals(ReportType.History))
                    {
                        reportDocument = new ReportTemplate.Report_Payroll_HistorySummary();
                    }
                }
                else
                {
                }

                reportDocument.SetDataSource(dataSet);

                return(reportDocument);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 24
0
    public DataView loadNotTrialRunData(ListInfo info, DBManager db, Repeater repeater)
    {
        DBFilter filter = sNotTrialRunEmpBinding.createFilter();

        //if (info != null && info.orderby != null && !info.orderby.Equals(""))
        //    filter.add(info.orderby, info.order);

        string select = "e.* ";
        string from   = "from [" + db.dbclass.tableName + "] e, [EmpPositionInfo] ep, [PayrollPeriod] pp ";

        filter.add(new MatchField("e.EmpID", "ep.EmpID"));
        filter.add(new MatchField("ep.PayGroupID", "pp.PayGroupID"));
        filter.add(new MatchField("ep.EmpPosEffFr", "<=", "pp.PayPeriodTo"));
        filter.add(new MatchField("e.EmpDateOfJoin", "<=", "pp.PayPeriodTo"));
        filter.add(new Match("pp.PayPeriodID", CurPayPeriodID));

        OR orFilter = new OR();

        orFilter.add(new MatchField("ep.EmpPosEffTo", ">=", "pp.PayPeriodFr"));
        orFilter.add(new NullTerm("ep.EmpPosEffTo"));

        filter.add(orFilter);


        filter.add(new IN("Not e.empid", "Select et.empid from [EmpTermination] et where et.EmpTermLastDate<pp.PayPeriodFr", new DBFilter()));

        filter.add(new IN("Not e.empid", "Select ep.empid from [EmpPayroll] ep where pp.PayPeriodID=ep.PayPeriodID and ep.EmpPayIsRP='Y'", new DBFilter()));

        // Start 0000185, KuangWei, 2015-04-21
        DBFilter empInfoFilter = EmployeeSearchControl1.GetEmpInfoFilter(AppUtils.ServerDateTime(), AppUtils.ServerDateTime());

        empInfoFilter.add(new MatchField("e.EmpID", "ee.EmpID"));
        filter.add(new Exists(EEmpPersonalInfo.db.dbclass.tableName + " ee", empInfoFilter));

        DataTable table = WebUtils.GetDataTableFromSelectQueryWithFilter(dbConn, select, from, filter, info);

        table = EmployeeSearchControl1.FilterEncryptedEmpInfoField(table, info);
        // End 0000185, KuangWei, 2015-04-21

        if (table.Rows.Count > 0)
        // Start 0000096, KuangWei, 2014-09-18
        {
            panelNotTrialRunEmployeeList.Visible = true; //& panelProcessEndOption.Visible;
            notTrialRunCount = table.Rows.Count;
            //string msg = notTrialRunCount + " of employees have not been run!!! Are you sure to end this payroll process?";
            string msg = "Certain number of employees have not been run!!! Are you sure to end this payroll process?";
            btnProcessEnd.OnClientClick = HROne.Translation.PromptMessage.CreateConfirmDialogJavascript(HROne.Common.WebUtility.GetLocalizedString(msg));
        }
        // End 0000096, KuangWei, 2014-09-18
        else
        {
            panelNotTrialRunEmployeeList.Visible = false;
        }

        NotTrialRunEmpView = new DataView(table);

        NotTrialRun_ListFooter.Refresh();

        if (repeater != null)
        {
            repeater.DataSource = NotTrialRunEmpView;
            repeater.DataBind();
        }

        return(NotTrialRunEmpView);
    }
Ejemplo n.º 25
0
    internal static void twoways(Ice.Communicator communicator, Test.MyClassPrx p)
    {
        {
            Dictionary<int, int> i = new Dictionary<int, int>();
            i[0] = 1;
            i[1] = 0;

            Dictionary<int, int> o;
            Dictionary<int, int> r;
            r = p.opNV(i, out o);

            test(Ice.CollectionComparer.Equals(i, o));
            test(Ice.CollectionComparer.Equals(i, r));
        }

        {
            Dictionary<string, string> i = new Dictionary<string, string>();
            i["a"] = "b";
            i["b"] = "a";

            Dictionary<string, string> o;
            Dictionary<string, string> r;
            r = p.opNR(i, out o);

            test(Ice.CollectionComparer.Equals(i, o));
            test(Ice.CollectionComparer.Equals(i, r));
        }

        {
            Dictionary<string, Dictionary<int, int>> i = new Dictionary<string, Dictionary<int, int>>();
            Dictionary<int, int> id = new Dictionary<int, int>();
            id[0] = 1;
            id[1] = 0;
            i["a"] = id;
            i["b"] = id;

            Dictionary<string, Dictionary<int, int>> o;
            Dictionary<string, Dictionary<int, int>> r;
            r = p.opNDV(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            Dictionary<string, Dictionary<string, string>> i = new Dictionary<string, Dictionary<string, string>>();
            Dictionary<string, string> id = new Dictionary<string, string>();
            id["a"] = "b";
            id["b"] = "a";
            i["a"] = id;
            i["b"] = id;

            Dictionary<string, Dictionary<string, string>> o;
            Dictionary<string, Dictionary<string, string>> r;
            r = p.opNDR(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            OV i = new OV();
            i[0] = 1;
            i[1] = 0;

            OV o;
            OV r;
            r = p.opOV(i, out o);

            test(OV.Equals(i, o));
            test(OV.Equals(i, r));
        }

        {
            OR i = new OR();
            i["a"] = "b";
            i["b"] = "a";

            OR o;
            OR r;
            r = p.opOR(i, out o);

            test(OR.Equals(i, o));
            test(OR.Equals(i, r));
        }

        {
            ODV i = new ODV();
            OV id = new OV();
            id[0] = 1;
            id[1] = 0;
            i["a"] = id;
            i["b"] = id;

            ODV o;
            ODV r;
            r = p.opODV(i, out o);

            test(ODV.Equals(i, o));
            test(ODV.Equals(i, r));
        }

        {
            ODR i = new ODR();
            OR id = new OR();
            id["a"] = "b";
            id["b"] = "a";
            i["a"] = id;
            i["b"] = id;

            ODR o;
            ODR r;
            r = p.opODR(i, out o);

            test(ODR.Equals(i, o));
            test(ODR.Equals(i, r));
        }

        {
            Dictionary<string, ODV> i = new Dictionary<string, ODV>();
            OV iid = new OV();
            iid[0] = 1;
            iid[1] = 0;
            ODV id = new ODV();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            Dictionary<string, ODV> o;
            Dictionary<string, ODV> r;
            r = p.opNODV(i, out o);

            test(Ice.CollectionComparer.Equals(i, o));
            test(Ice.CollectionComparer.Equals(i, r));
        }

        {
            Dictionary<string, ODR> i = new Dictionary<string, ODR>();
            OR iid = new OR();
            iid["a"] = "b";
            iid["a"] = "b";
            ODR id = new ODR();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            Dictionary<string, ODR> o;
            Dictionary<string, ODR> r;
            r = p.opNODR(i, out o);

            test(Ice.CollectionComparer.Equals(i, o));
            test(Ice.CollectionComparer.Equals(i, r));
        }

        {
            ONDV i = new ONDV();
            Dictionary<int, int> iid = new Dictionary<int, int>();
            iid[0] = 1;
            iid[1] = 0;
            Dictionary<string, Dictionary<int, int>> id
                = new Dictionary<string, Dictionary<int, int>>();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            ONDV o;
            ONDV r;
            r = p.opONDV(i, out o);

            foreach(string key in i.Keys)
            {
                foreach(string s in i[key].Keys)
                {
                    test(Ice.CollectionComparer.Equals(i[key][s], o[key][s]));
                    test(Ice.CollectionComparer.Equals(i[key][s], r[key][s]));
                }
            }
        }

        {
            ONDR i = new ONDR();
            Dictionary<string, string> iid = new Dictionary<string, string>();
            iid["a"] = "b";
            iid["b"] = "a";
            Dictionary<string, Dictionary<string, string>> id
                = new Dictionary<string, Dictionary<string, string>>();
            id["a"] = iid;
            id["b"] = iid;
            i["a"] = id;
            i["b"] = id;

            ONDR o;
            ONDR r;
            r = p.opONDR(i, out o);

            foreach(string key in i.Keys)
            {
                foreach(string s in i[key].Keys)
                {
                    test(Ice.CollectionComparer.Equals(i[key][s], o[key][s]));
                    test(Ice.CollectionComparer.Equals(i[key][s], r[key][s]));
                }
            }
        }

        {
            int[] ii = new int[] { 1, 2 };
            Dictionary<string, int[]> i = new Dictionary<string, int[]>();
            i["a"] = ii;
            i["b"] = ii;

            Dictionary<string, int[]> o;
            Dictionary<string, int[]> r;
            r = p.opNDAIS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            CIS ii = new CIS();
            ii.Add(1);
            ii.Add(2);
            Dictionary<string, CIS> i = new Dictionary<string, CIS>();
            i["a"] = ii;
            i["b"] = ii;

            Dictionary<string, CIS> o;
            Dictionary<string, CIS> r;
            r = p.opNDCIS(i, out o);

            test(Ice.CollectionComparer.Equals(i, o));
            test(Ice.CollectionComparer.Equals(i, r));
        }

        {
            List<int> ii = new List<int>();
            ii.Add(1);
            ii.Add(2);
            Dictionary<string, List<int>> i = new Dictionary<string, List<int>>();
            i["a"] = ii;
            i["b"] = ii;

            Dictionary<string, List<int>> o;
            Dictionary<string, List<int>> r;
            r = p.opNDGIS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            string[] ii = new string[] { "a", "b" };
            Dictionary<string, string[]> i = new Dictionary<string, string[]>();
            i["a"] = ii;
            i["b"] = ii;

            Dictionary<string, string[]> o;
            Dictionary<string, string[]> r;
            r = p.opNDASS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            CSS ii = new CSS();
            ii.Add("a");
            ii.Add("b");
            Dictionary<string, CSS> i = new Dictionary<string, CSS>();
            i["a"] = ii;
            i["b"] = ii;

            Dictionary<string, CSS> o;
            Dictionary<string, CSS> r;
            r = p.opNDCSS(i, out o);

            test(Ice.CollectionComparer.Equals(i, o));
            test(Ice.CollectionComparer.Equals(i, r));
        }

        {
            List<string> ii = new List<string>();
            ii.Add("a");
            ii.Add("b");
            Dictionary<string, List<string>> i = new Dictionary<string, List<string>>();
            i["a"] = ii;
            i["b"] = ii;

            Dictionary<string, List<string>> o;
            Dictionary<string, List<string>> r;
            r = p.opNDGSS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            int[] ii = new int[] { 1, 2 };
            ODAIS i = new ODAIS();
            i["a"] = ii;
            i["b"] = ii;

            ODAIS o;
            ODAIS r;
            r = p.opODAIS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            CIS ii = new CIS();
            ii.Add(1);
            ii.Add(2);
            ODCIS i = new ODCIS();
            i["a"] = ii;
            i["b"] = ii;

            ODCIS o;
            ODCIS r;
            r = p.opODCIS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            List<int> ii = new List<int>();
            ii.Add(1);
            ii.Add(2);
            ODGIS i = new ODGIS();
            i["a"] = ii;
            i["b"] = ii;

            ODGIS o;
            ODGIS r;
            r = p.opODGIS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            string[] ii = new string[] { "a", "b" };
            ODASS i = new ODASS();
            i["a"] = ii;
            i["b"] = ii;

            ODASS o;
            ODASS r;
            r = p.opODASS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            CSS ii = new CSS();
            ii.Add("a");
            ii.Add("b");
            ODCSS i = new ODCSS();
            i["a"] = ii;
            i["b"] = ii;

            ODCSS o;
            ODCSS r;
            r = p.opODCSS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }

        {
            List<string> ii = new List<string>();
            ii.Add("a");
            ii.Add("b");
            ODGSS i = new ODGSS();
            i["a"] = ii;
            i["b"] = ii;

            ODGSS o;
            ODGSS r;
            r = p.opODGSS(i, out o);

            foreach(string key in i.Keys)
            {
                test(Ice.CollectionComparer.Equals(i[key], o[key]));
                test(Ice.CollectionComparer.Equals(i[key], r[key]));
            }
        }
    }
Ejemplo n.º 26
0
 public override void ice_response(OR r, OR o)
 {
     test(Ice.CollectionComparer.Equals(_i, o));
     test(Ice.CollectionComparer.Equals(_i, r));
     callback.called();
 }
Ejemplo n.º 27
0
 protected override void Visit_OR(OR node)
 {
     /* MOVE CODE HERE */
 }
    public DataView LoadFinalPaymentData(ListInfo info, DBManager db, Repeater repeater)
    {
        DBFilter filter = finalPaymentSearchBinding.createFilter();

        //if (info != null && info.orderby != null && !info.orderby.Equals(""))
        //    filter.add(info.orderby, info.order);

        string select = "e.* ";
        string from   = "from EmpPersonalInfo e ";

        IN inTerm = new IN("e.EmpID", "Select DISTINCT epi.EmpID from [EmpPositionInfo] epi, [PayrollPeriod] pp ", filter);

        filter.add(new MatchField("e.EmpID", "epi.EmpID"));
        filter.add(new MatchField("epi.PayGroupID", "pp.PayGroupID"));
        filter.add(new MatchField("epi.EmpPosEffFr", "<=", "pp.PayPeriodTo"));
        filter.add(new Match("pp.PayPeriodID", CurID));
        filter.add(WebUtils.AddRankFilter(Session, "e.EmpID", true));

        OR orFilter = new OR();

        orFilter.add(new MatchField("epi.EmpPosEffTo", ">=", "pp.PayPeriodFr"));
        orFilter.add(new NullTerm("epi.EmpPosEffTo"));

        filter.add(orFilter);

        filter.add(new IN("Not e.empid", "Select DISTINCT empid from EmpPayroll  where EmpPayStatus='T'", new DBFilter()));

        DBFilter empTerminationFilter = new DBFilter();

        if (DecryptedRequest["RecurringPayment"] == "1" || DecryptedRequest["YearEndBonus"] == "1")
        {
            empTerminationFilter.add(new MatchField("et.EmpTermLastDate", ">=", "pp.PayPeriodFr"));
        }
        empTerminationFilter.add(new MatchField("et.EmpTermLastDate", "<=", "pp.PayPeriodTo"));

        filter.add(new IN(" e.empid", "Select DISTINCT et.empid from EmpTermination et ", empTerminationFilter));

        if (DecryptedRequest["RecurringPayment"] == "1")
        {
            // PayRecType should be 'F'
            filter.add(new IN("Not e.empid", "Select DISTINCT epp.empid from EmpPayroll epp where pp.PayPeriodID=epp.PayPeriodID and epp.EmpPayIsRP='Y'", new DBFilter()));
        }
        else if (DecryptedRequest["ClaimsAndDeduction"] == "1")
        {
            // Claims and Deductions only
            DBFilter CNDFilter = new DBFilter();
            CNDFilter.add(new MatchField("CNDEffDate", "<=", "pp.PayperiodTo"));
            CNDFilter.add(new MatchField("CNDEffDate", ">=", "epi.EmpPosEffFr"));

            OR orCNDPos = new OR();
            orCNDPos.add(new MatchField("CNDEffDate", "<=", "epi.EmpPosEffTo"));
            orCNDPos.add(new NullTerm("epi.EmpPosEffTo"));

            CNDFilter.add(orCNDPos);
            OR orCNDPayRecID = new OR();
            orCNDPayRecID.add(new Match("PayRecID", 0));
            orCNDPayRecID.add(new NullTerm("PayRecID"));
            CNDFilter.add(orCNDPayRecID);
            filter.add(new IN("e.empid", "Select DISTINCT empid from ClaimsAndDeductions ", CNDFilter));
        }
        else if (DecryptedRequest["AdditionalRemuneration"] == "1" && (DecryptedRequest["ClaimsAndDeduction"] != "1" && DecryptedRequest["RecurringPayment"] != "1"))
        {
            filter.add(new IN("e.empid", "Select DISTINCT epp.empid from EmpPayroll epp where pp.PayPeriodID=epp.PayPeriodID", new DBFilter()));
        }
        else if (DecryptedRequest["YearEndBonus"] == "1")
        {
            //  Year End Bonus Only
            filter.add(new IN("Not e.empid", "Select DISTINCT epp.empid from EmpPayroll epp where pp.PayPeriodID=epp.PayPeriodID and epp.EmpPayIsYEB='Y'", new DBFilter()));
        }

        DBFilter resultFilter = new DBFilter();

        resultFilter.add(inTerm);
        resultFilter.add(new IN("e.EmpID", "Select DISTINCT EmpID From " + EEmpPersonalInfo.db.dbclass.tableName + " ee", EmployeeSearchControl1.GetEmpInfoFilter(AppUtils.ServerDateTime(), AppUtils.ServerDateTime())));

        //DataTable table = WebUtils.GetDataTableFromSelectQueryWithFilter(select, from, resultFilter, info);
        DataTable table = resultFilter.loadData(dbConn, null, select, from);

        table = EmployeeSearchControl1.FilterEncryptedEmpInfoField(table, info);


        newJoinView = new DataView(table);
        if (info != null)
        {
            //info.loadPageList(null, PrevPage, NextPage, FirstPage, LastPage);

            //CurPage.Value = info.page.ToString();
            //NumPage.Value = info.numPage.ToString();
        }
        if (repeater != null)
        {
            repeater.DataSource = newJoinView;
            repeater.DataBind();
        }
        return(newJoinView);
    }
Ejemplo n.º 29
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");

        }
    }
Ejemplo n.º 30
0
 public override void ice_response(OR r, OR o)
 {
     test(Ice.CollectionComparer.Equals(_i, o));
     test(Ice.CollectionComparer.Equals(_i, r));
     callback.called();
 }
Ejemplo n.º 31
0
        public override ReportDocument GenerateReport()
        {
            string HierarchyLevel1 = string.Empty;
            string HierarchyLevel2 = string.Empty;
            string HierarchyLevel3 = string.Empty;
            string HierarchyLevel4 = string.Empty;

            if (values.Count > 0)
            {
                DataSet.EmployeeDetail ds = new DataSet.EmployeeDetail();

                DataSet.EmployeeDetail.HierarchyLevelDataTable HierarchyLevelTable = ds.HierarchyLevel;
                ArrayList HierarchyLevelList = EHierarchyLevel.db.select(dbConn, new DBFilter());
                foreach (EHierarchyLevel HierarchyLevel in HierarchyLevelList)
                {
                    DataSet.EmployeeDetail.HierarchyLevelRow row = HierarchyLevelTable.NewHierarchyLevelRow();
                    row.HLevelCode  = HierarchyLevel.HLevelCode;
                    row.HLevelDesc  = HierarchyLevel.HLevelDesc;
                    row.HLevelID    = HierarchyLevel.HLevelID;
                    row.HLevelSeqNo = HierarchyLevel.HLevelSeqNo;
                    HierarchyLevelTable.Rows.Add(row);
                }

                int currentDummyPosID       = 0;
                int currentDummyHierarchyID = 0;
                foreach (int EmpID in values)
                {
                    EmployeeDetailProcess.ImportEmployeeDetailRow(dbConn, ds.employeedetail, EmpID, AsOfDate);


                    DBFilter empBasicSalaryfilter = new DBFilter();
                    DBFilter paymentCodeFilter    = new DBFilter();
                    paymentCodeFilter.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeID));
                    //empBasicSalaryfilter.add(new MatchField("erp.PayCodeID", "pc.PaymentCodeID"));
                    empBasicSalaryfilter.add(new IN("PayCodeID", "Select PaymentCodeID from PaymentCode", paymentCodeFilter));
                    empBasicSalaryfilter.add(new Match("EmpRPEffFr", "<=", AsOfDate));
                    OR orEffToFilter = new OR();
                    orEffToFilter.add(new Match("EmpRPEffTo", ">=", AsOfDate));
                    orEffToFilter.add(new NullTerm("EmpRPEffTo"));
                    empBasicSalaryfilter.add(orEffToFilter);

                    empBasicSalaryfilter.add(new Match("EmpID", EmpID));

                    DataSet.EmployeeDetail.EmpRecurringPaymentDataTable empRPTable = ds.EmpRecurringPayment;
                    ArrayList empRecurringPaymentList = EEmpRecurringPayment.db.select(dbConn, empBasicSalaryfilter);
                    foreach (EEmpRecurringPayment empRP in empRecurringPaymentList)
                    {
                        DataSet.EmployeeDetail.EmpRecurringPaymentRow row = empRPTable.NewEmpRecurringPaymentRow();

                        row.CurrencyID  = empRP.CurrencyID;
                        row.EmpAccID    = empRP.EmpAccID;
                        row.EmpID       = empRP.EmpID;
                        row.EmpRPAmount = Convert.ToDecimal(empRP.EmpRPAmount);
                        row.EmpRPEffFr  = empRP.EmpRPEffFr;
                        row.EmpRPEffTo  = empRP.EmpRPEffTo;
                        row.EmpRPID     = empRP.EmpRPID;
                        row.EmpRPMethod = empRP.EmpRPMethod;
                        row.EmpRPRemark = empRP.EmpRPRemark;
                        row.EmpRPUnit   = empRP.EmpRPUnit;

                        EPaymentCode paymentCode = new EPaymentCode();
                        paymentCode.PaymentCodeID = empRP.PayCodeID;
                        if (EPaymentCode.db.select(dbConn, paymentCode))
                        {
                            row.PayCodeID       = paymentCode.PaymentCodeID;
                            row.PaymentCode     = paymentCode.PaymentCode;
                            row.PaymentCodeDesc = paymentCode.PaymentCodeDesc;
                            row.PaymentCodeID   = paymentCode.PaymentCodeID;
                            //                            row.p
                        }

                        empRPTable.AddEmpRecurringPaymentRow(row);
                    }

                    {
                        DataSet.EmployeeDetail.EmpPositionInfoDataTable empPosTable = ds.EmpPositionInfo;
                        EEmpPositionInfo empPos = AppUtils.GetLastPositionInfo(dbConn, AsOfDate, EmpID);

                        if (empPos == null)
                        {
                            currentDummyPosID--;
                            DataSet.EmployeeDetail.EmpPositionInfoRow row = empPosTable.NewEmpPositionInfoRow();
                            row.EmpPosID = currentDummyPosID;
                            row.EmpID    = EmpID;

                            empPosTable.AddEmpPositionInfoRow(row);

                            DataSet.EmployeeDetail.EmpHierarchyDataTable empHierarchyTable = ds.EmpHierarchy;
                            foreach (EHierarchyLevel hLevel in HierarchyLevelList)
                            {
                                currentDummyHierarchyID--;
                                DataSet.EmployeeDetail.EmpHierarchyRow empHierarchyRow = empHierarchyTable.NewEmpHierarchyRow();

                                empHierarchyRow.EmpHierarchyID = currentDummyHierarchyID;
                                empHierarchyRow.EmpID          = EmpID;
                                empHierarchyRow.EmpPosID       = currentDummyPosID;
                                empHierarchyRow.HLevelID       = hLevel.HLevelID;
                                empHierarchyRow.HLevelSeqNo    = hLevel.HLevelSeqNo;

                                empHierarchyTable.AddEmpHierarchyRow(empHierarchyRow);
                            }
                        }
                        else
                        {
                            DataSet.EmployeeDetail.EmpPositionInfoRow row = empPosTable.NewEmpPositionInfoRow();

                            row.CompanyID   = empPos.CompanyID;
                            row.EmpID       = empPos.EmpID;
                            row.EmpPosEffFr = empPos.EmpPosEffFr;
                            row.EmpPosEffTo = empPos.EmpPosEffTo;
                            row.EmpPosID    = empPos.EmpPosID;
                            row.LeavePlanID = empPos.LeavePlanID;
                            row.PayGroupID  = empPos.PayGroupID;

                            EPosition position = new EPosition();
                            position.PositionID = empPos.PositionID;
                            if (EPosition.db.select(dbConn, position))
                            {
                                row.PositionCode = position.PositionCode;
                                row.PositionDesc = position.PositionDesc;
                                row.PositionID   = position.PositionID;
                            }

                            ERank rank = new ERank();
                            rank.RankID = empPos.RankID;
                            if (ERank.db.select(dbConn, rank))
                            {
                                row.RankCode = rank.RankCode;
                                row.RankDesc = rank.RankDesc;
                                row.RankID   = rank.RankID;
                            }

                            row.StaffTypeID = empPos.StaffTypeID;

                            empPosTable.AddEmpPositionInfoRow(row);

                            DataSet.EmployeeDetail.EmpHierarchyDataTable empHierarchyTable = ds.EmpHierarchy;
                            foreach (EHierarchyLevel hLevel in HierarchyLevelList)
                            {
                                if (hLevel.HLevelSeqNo.Equals(1))
                                {
                                    HierarchyLevel1 = hLevel.HLevelDesc;
                                }
                                else if (hLevel.HLevelSeqNo.Equals(2))
                                {
                                    HierarchyLevel2 = hLevel.HLevelDesc;
                                }
                                else if (hLevel.HLevelSeqNo.Equals(3))
                                {
                                    HierarchyLevel3 = hLevel.HLevelDesc;
                                }
                                else if (hLevel.HLevelSeqNo.Equals(4))
                                {
                                    HierarchyLevel4 = hLevel.HLevelDesc;
                                }


                                DBFilter empHierarchyFilter = new DBFilter();
                                empHierarchyFilter.add(new Match("EmpPosID", empPos.EmpPosID));
                                empHierarchyFilter.add(new Match("HLevelID", hLevel.HLevelID));

                                ArrayList empHierarchyList = EEmpHierarchy.db.select(dbConn, empHierarchyFilter);

                                DataSet.EmployeeDetail.EmpHierarchyRow empHierarchyRow = empHierarchyTable.NewEmpHierarchyRow();
                                empHierarchyRow.EmpID       = EmpID;
                                empHierarchyRow.EmpPosID    = empPos.EmpPosID;
                                empHierarchyRow.HLevelID    = hLevel.HLevelID;
                                empHierarchyRow.HLevelSeqNo = hLevel.HLevelSeqNo;

                                if (empHierarchyList.Count > 0)
                                {
                                    EEmpHierarchy empHierarchy = (EEmpHierarchy)empHierarchyList[0];
                                    empHierarchyRow.EmpHierarchyID = empHierarchy.EmpHierarchyID;

                                    EHierarchyElement hElement = new EHierarchyElement();
                                    hElement.HElementID = empHierarchy.HElementID;
                                    EHierarchyElement.db.select(dbConn, hElement);
                                    empHierarchyRow.HElementCode = hElement.HElementCode;
                                    empHierarchyRow.HElementDesc = hElement.HElementDesc;
                                    empHierarchyRow.HElementID   = hElement.HElementID;
                                }
                                else
                                {
                                    currentDummyHierarchyID--;
                                    empHierarchyRow.EmpHierarchyID = currentDummyHierarchyID;
                                }

                                empHierarchyTable.AddEmpHierarchyRow(empHierarchyRow);
                            }
                        }
                    }
                }

                DataSet.EmployeeDetail.PayrollGroupDataTable payrollGroupTable = ds.PayrollGroup;
                ArrayList payrollGroupList = EPayrollGroup.db.select(dbConn, new DBFilter());
                foreach (EPayrollGroup payrollGroup in payrollGroupList)
                {
                    DataSet.EmployeeDetail.PayrollGroupRow row = payrollGroupTable.NewPayrollGroupRow();
                    row.PayGroupCode = payrollGroup.PayGroupCode;
                    row.PayGroupDesc = payrollGroup.PayGroupDesc;
                    row.PayGroupID   = payrollGroup.PayGroupID;
                    payrollGroupTable.Rows.Add(row);
                }

                DataSet.EmployeeDetail.PositionDataTable PositionTable = ds.Position;
                ArrayList PositionList = EPosition.db.select(dbConn, new DBFilter());
                foreach (EPosition Position in PositionList)
                {
                    DataSet.EmployeeDetail.PositionRow row = PositionTable.NewPositionRow();
                    row.PositionCode = Position.PositionCode;
                    row.PositionDesc = Position.PositionDesc;
                    row.PositionID   = Position.PositionID;
                    PositionTable.Rows.Add(row);
                }

                DataSet.EmployeeDetail.BankListDataTable BankListTable = ds.BankList;
                ArrayList BankListList = EBankList.db.select(dbConn, new DBFilter());
                foreach (EBankList BankList in BankListList)
                {
                    DataSet.EmployeeDetail.BankListRow row = BankListTable.NewBankListRow();
                    row.BankCode = BankList.BankCode;
                    row.BankName = BankList.BankName;
                    BankListTable.Rows.Add(row);
                }


                //System.Data.DataSet ds = new System.Data.DataSet();

                //string select;
                //string from;
                //DBFilter filter;
                //OR or;

                //foreach (int EmpID in values)
                //{

                //from = "from EmpPersonalInfo e LEFT JOIN EmpTermination et ON et.EmpID=e.EmpID ";
                //select = " e.*, et.EmpTermLastDate";
                //filter = new DBFilter();
                //filter.add(new Match("e.EmpID", EmpID));
                //filter.loadData(ds, "employeedetail", null, select, from, null);

                //from = "from EmpPositionInfo ";//EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID";
                //select = "* ";
                //filter = new DBFilter();
                //filter.add(new Match("EmpPosEffFr", "<=", AsOfDate));
                //OR orEffToFilter = new OR();
                //orEffToFilter.add(new Match("EmpPosEffTo", ">=", AsOfDate));
                //orEffToFilter.add(new NullTerm("EmpPosEffTo"));
                //filter.add(orEffToFilter);
                //filter.add(new Match("EmpID", EmpID));
                //filter.loadData(ds, "EmpPositionInfo", null, select, from, null);


                //from = "from EmpRecurringPayment erp, PaymentCode pc";//EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID";
                //select = "* ";
                //filter = new DBFilter();
                //filter.add(new MatchField("erp.PayCodeID", "pc.PaymentCodeID"));
                //filter.add(new Match("pc.PaymentTypeID", EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeID));
                //filter.add(new Match("erp.EmpRPEffFr", "<=", AsOfDate));
                //orEffToFilter = new OR();
                //orEffToFilter.add(new Match("erp.EmpRPEffTo", ">=", AsOfDate));
                //orEffToFilter.add(new NullTerm("erp.EmpRPEffTo"));
                //filter.add(orEffToFilter);

                //filter.add(new Match("EmpID", EmpID));
                //filter.loadData(ds, "EmpRecurringPayment", null, select, from, null);
                //}
                //from = " from PayrollGroup ";//EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID";
                //select = "* ";
                //filter = new DBFilter();
                //filter.loadData(ds, "PayrollGroup", null, select, from, null);

                //from = " from Position ";//EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID";
                //select = "* ";
                //filter = new DBFilter();
                //filter.loadData(ds, "Position", null, select, from, null);

                //from = "from EmpHierarchy eh Left Join HierarchyElement he ON eh.HElementID=he.HElementID LEFT JOIN HierarchyLevel hl on hl.HLevelID=eh.HLevelID";//EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID";
                //select = " eh.*, he.HElementCode, he.HElementDesc, hl.HLevelSeqNo";
                //filter = new DBFilter();
                //filter.add("HLevelSeqNo", true);
                //filter.loadData(ds, "EmpHierarchy", null, select, from, null);

                foreach (System.Data.DataRow row in ds.Tables["EmpHierarchy"].Rows)
                {
                    if (row.IsNull("HElementDesc"))
                    {
                        row["HElementDesc"] = "-";
                    }
                    if (string.IsNullOrEmpty(row["HElementDesc"].ToString()))
                    {
                        row["HElementDesc"] = "-";
                    }
                }

                //from = "from HierarchyLevel hl ";//EmpPos ON P.EmpID=EmpPos.EmpID AND EmpPos.EmpPosEffTo IS NULL LEFT JOIN Position Pos ON EmpPos.PositionID=Pos.PositionID";
                //select = " hl.* ";
                //filter = new DBFilter();
                //filter.add("HLevelSeqNo", true);
                //filter.loadData(ds, "HierarchyLevel", null, select, from, null);


                if (reportDocument == null)
                {
                    reportDocument = new ReportTemplate.Report_Employee_SalaryList();
                }
                else
                {
                }



                reportDocument.SetDataSource(ds);
                reportDocument.SetParameterValue("HierarchyLevel1", HierarchyLevel1);
                reportDocument.SetParameterValue("HierarchyLevel2", HierarchyLevel2);
                reportDocument.SetParameterValue("HierarchyLevel3", HierarchyLevel3);

                if (reportDocument.ParameterFields["HierarchyLevel4"] != null)
                {
                    reportDocument.SetParameterValue("HierarchyLevel4", HierarchyLevel4);
                }

                return(reportDocument);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 32
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite))
        {
            return;
        }
        toolBar.FunctionCode = FUNCTION_CODE;



        binding = new Binding(dbConn, db);
        binding.add(AttendancePlanID);
        binding.add(AttendancePlanCode);
        binding.add(AttendancePlanDesc);
        binding.add(new DropDownVLBinder(db, AttendancePlanAbsentProrataPayFormID, EPayrollProrataFormula.VLPayrollProrataFormula));
        binding.add(AttendancePlanOTMinsUnit);
        binding.add(AttendancePlanLateMinsUnit);

        DBFilter overtimePaymentTypeFilter = new DBFilter();
        OR       orOverTimePaymentTerms    = new OR();

        orOverTimePaymentTerms.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeID));
        orOverTimePaymentTerms.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.OverTimePaymentType(dbConn).PaymentTypeID));
        overtimePaymentTypeFilter.add(orOverTimePaymentTerms);

        DBFilter salaryOthersFilter  = new DBFilter();
        OR       orSalaryOthersTerms = new OR();

        orSalaryOthersTerms.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.BasicSalaryPaymentType(dbConn).PaymentTypeID));
        orSalaryOthersTerms.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.BonusPaymentType(dbConn).PaymentTypeID));
        orSalaryOthersTerms.add(new Match("PaymentTypeID", EPaymentType.SystemPaymentType.OthersPaymentType(dbConn).PaymentTypeID));
        salaryOthersFilter.add(orSalaryOthersTerms);

        binding.add(new DropDownVLBinder(db, AttendancePlanOTFormula, EAttendanceFormula.VLAttendanceFormula));
        binding.add(new DropDownVLBinder(db, AttendancePlanLateFormula, EAttendanceFormula.VLAttendanceFormula));
        binding.add(new DropDownVLBinder(db, AttendancePlanOTPayCodeID, EPaymentCode.VLPaymentCode, overtimePaymentTypeFilter));
        binding.add(new DropDownVLBinder(db, AttendancePlanLatePayCodeID, EPaymentCode.VLPaymentCode, salaryOthersFilter));
        binding.add(new DropDownVLBinder(db, AttendancePlanOTMinsRoundingRule, Values.VLRoundingRule));
        binding.add(new DropDownVLBinder(db, AttendancePlanLateMinsRoundingRule, Values.VLRoundingRule));
        binding.add(new CheckBoxBinder(db, AttendancePlanOTIncludeLunchOvertime));
        binding.add(new CheckBoxBinder(db, AttendancePlanLateIncludeEarlyLeave));
        binding.add(new CheckBoxBinder(db, AttendancePlanLateIncludeLunchLate));
        binding.add(new CheckBoxBinder(db, AttendancePlanLateIncludeLunchEarlyLeave));
        binding.add(new CheckBoxBinder(db, AttendancePlanCompensateLateByOT));
        binding.add(AttendancePlanOTRateMultiplier);
        binding.add(new CheckBoxBinder(db, AttendancePlanOTGainAsCompensationLeaveEntitle));
        binding.add(AttendancePlanLateMaxTotalToleranceMins);

        binding.add(AttendancePlanBonusMaxTotalLateCount);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusMaxTotalLateCountIncludeLunch));
        binding.add(AttendancePlanBonusMaxTotalLateMins);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusMaxTotalLateMinsIncludeLunch));
        binding.add(AttendancePlanBonusMaxTotalEarlyLeaveCount);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusMaxTotalEarlyLeaveCountIncludeLunch));
        binding.add(AttendancePlanBonusMaxTotalEarlyLeaveMins);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusMaxTotalEarlyLeaveMinsIncludeLunch));
        binding.add(AttendancePlanBonusMaxTotalSLWithMedicalCertificate);
        binding.add(AttendancePlanBonusMaxTotalSLWithoutMedicalCertificate);
        binding.add(AttendancePlanBonusMaxTotalInjuryLeave);
        binding.add(AttendancePlanBonusMaxTotalNonFullPayCasualLeave);
        binding.add(AttendancePlanBonusMaxTotalAbsentCount);
        binding.add(new CheckBoxBinder(db, AttendancePlanTerminatedHasBonus));

        binding.add(AttendancePlanBonusAmount);
        binding.add(new CheckBoxBinder(db, AttendancePlanUseBonusAmountByRecurringPayment));
        binding.add(AttendancePlanBonusOTAmount);
        binding.add(new DropDownVLBinder(db, AttendancePlanBonusAmountUnit, Values.VLPaymentUnit));
        binding.add(new CheckBoxBinder(db, AttendancePlanProrataBonusforNewJoin));
        binding.add(new CheckBoxBinder(db, AttendancePlanProrataBonusforTerminated));
        binding.add(new DropDownVLBinder(db, AttendancePlanBonusPayCodeID, EPaymentCode.VLPaymentCode, salaryOthersFilter));

        binding.add(AttendancePlanBonusPartialPaidMaxTotalLateCount);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusPartialPaidMaxTotalLateCountIncludeLunch));
        binding.add(AttendancePlanBonusPartialPaidMaxTotalLateMins);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusPartialPaidMaxTotalLateMinsIncludeLunch));
        binding.add(AttendancePlanBonusPartialPaidMaxTotalEarlyLeaveCount);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusPartialPaidMaxTotalEarlyLeaveCountIncludeLunch));
        binding.add(AttendancePlanBonusPartialPaidMaxTotalEarlyLeaveMins);
        binding.add(new CheckBoxBinder(db, AttendancePlanBonusPartialPaidMaxTotalEarlyLeaveMinsIncludeLunch));
        binding.add(AttendancePlanBonusPartialPaidMaxTotalSLWithMedicalCertificate);
        binding.add(AttendancePlanBonusPartialPaidMaxTotalSLWithoutMedicalCertificate);
        binding.add(AttendancePlanBonusPartialPaidMaxTotalInjuryLeave);
        binding.add(AttendancePlanBonusPartialPaidMaxTotalNonFullPayCasualLeave);
        binding.add(AttendancePlanBonusPartialPaidMaxTotalAbsentCount);
        binding.add(AttendancePlanBonusPartialPaidPercent);

        binding.init(Request, Session);

        if (!int.TryParse(DecryptedRequest["AttendancePlanID"], out CurID))
        {
            CurID = -1;
        }

        //  MUST applied Label Change before translation
        if (CurID > 0)
        {
            ActionHeader.Text = "Edit";
        }
        else
        {
            ActionHeader.Text = "Add";
        }

        HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls);

        if (!Page.IsPostBack)
        {
            if (CurID > 0)
            {
                loadObject();
            }
            else
            {
                toolBar.DeleteButton_Visible = false;
            }
        }
    }
    public DBFilter GetEmpInfoFilter(DateTime FromDate, DateTime ToDate)
    {
        FromDate = FromDate.Date;
        ToDate   = ToDate.Date;
        DBFilter filter = binding.createFilter();

        DateTime dtPeriodFr, dtPeriodTo;

        if (DateTime.TryParse(JoinDateFrom.Value, out dtPeriodFr))
        {
            filter.add(new Match("ee.EmpDateOfJoin", ">=", dtPeriodFr));
        }
        if (DateTime.TryParse(JoinDateTo.Value, out dtPeriodTo))
        {
            filter.add(new Match("ee.EmpDateOfJoin", "<=", dtPeriodTo));
        }

        //if (EmpStatus.SelectedValue.Equals("A") || EmpStatus.SelectedValue.Equals("T") || EmpStatus.SelectedValue.Equals("TERMINATED"))
        //    filter.add(new Match("EmpDateOfJoin", "<=", ToDate.Date));

        filter.add(WebUtils.AddRankFilter(Session, "ee.EmpID", true));


        DateTime dtLastDateFr, dtLastDateTo;
        DBFilter empTerminationFilter = new DBFilter();

        if (DateTime.TryParse(LastDateFrom.Value, out dtLastDateFr))
        {
            empTerminationFilter.add(new Match("searchet.EmpTermLastDate", ">=", dtLastDateFr));
        }
        if (DateTime.TryParse(LastDateTo.Value, out dtLastDateTo))
        {
            empTerminationFilter.add(new Match("searchet.EmpTermLastDate", "<=", dtLastDateTo));
        }

        if (EmpStatus.SelectedValue.Equals("TERMINATED"))
        {
            empTerminationFilter.add(new Match("searchet.EmpTermLastDate", "<", FromDate.Date));
        }
        if (empTerminationFilter.terms().Count > 0 || EmpStatus.SelectedValue.Equals("T"))
        {
            empTerminationFilter.add(new MatchField("ee.EmpID", "searchet.EmpID"));
            filter.add(new Exists(EEmpTermination.db.dbclass.tableName + " searchet ", empTerminationFilter));
        }
        if (EmpStatus.SelectedValue.Equals("AT"))
        {
            DBFilter notExistsEmpTerminationFilter = new DBFilter();
            notExistsEmpTerminationFilter.add(new Match("searchnoet.EmpTermLastDate", "<", FromDate.Date));
            notExistsEmpTerminationFilter.add(new MatchField("ee.EmpID", "searchnoet.EmpID"));
            filter.add(new Exists(EEmpTermination.db.dbclass.tableName + " searchnoet ", notExistsEmpTerminationFilter, true));
        }
        if (EmpStatus.SelectedValue.Equals("A"))
        {
            DBFilter notExistsEmpTerminationFilter = new DBFilter();
            notExistsEmpTerminationFilter.add(new MatchField("ee.EmpID", "searchnoet.EmpID"));
            filter.add(new Exists(EEmpTermination.db.dbclass.tableName + " searchnoet ", notExistsEmpTerminationFilter, true));
        }
        DBFilter empPosFilter = new DBFilter();

        //{
        //    OR orPositionTerm = null;
        //    foreach (ListItem item in PositionList.Items)
        //        if (item.Selected)
        //        {
        //            if (orPositionTerm == null)
        //                orPositionTerm = new OR();
        //            orPositionTerm.add(new Match("searchepi.PositionID", item.Value));
        //        }
        //    if (orPositionTerm != null)
        //        empPosFilter.add(orPositionTerm);
        //}

        DBTerm positionDBTerm = CreateDBTermsFromListControl("searchepi.PositionID", EPosition.db.dbclass.tableName + " pos", "pos.PositionID", PositionList.ListControl);

        if (positionDBTerm != null)
        {
            empPosFilter.add(positionDBTerm);
        }

        DBTerm rankDBTerms = CreateDBTermsFromListControl("searchepi.RankID", ERank.db.dbclass.tableName + " rank", "rank.RankID", RankList.ListControl);

        if (rankDBTerms != null)
        {
            empPosFilter.add(rankDBTerms);
        }

        DBTerm employmentTypeDBTerms = CreateDBTermsFromListControl("searchepi.EmploymentTypeID", EEmploymentType.db.dbclass.tableName + " empType", "empType.EmploymentTypeID", EmploymentTypeList.ListControl);

        if (employmentTypeDBTerms != null)
        {
            empPosFilter.add(employmentTypeDBTerms);
        }

        DBTerm staffTypeDBTerms = CreateDBTermsFromListControl("searchepi.StaffTypeID", EStaffType.db.dbclass.tableName + " staffType", "staffType.StaffTypeID", StaffTypeList.ListControl);

        if (staffTypeDBTerms != null)
        {
            empPosFilter.add(staffTypeDBTerms);
        }

        DBTerm payrollGroupDBTerms = CreateDBTermsFromListControl("searchepi.PayGroupID", EPayrollGroup.db.dbclass.tableName + " payGroup", "payGroup.PayGroupID", PayrollGroupList.ListControl);

        if (payrollGroupDBTerms != null)
        {
            empPosFilter.add(payrollGroupDBTerms);
        }

        DBTerm companyAndHierarchyTerm = HierarchyCheckBoxList1.GetFilters("searchepi", "EmpPosID");

        if (companyAndHierarchyTerm != null)
        {
            empPosFilter.add(companyAndHierarchyTerm);
        }
        if (empPosFilter.terms().Count > 0)
        {
            empPosFilter.add(new MatchField("ee.EmpID", "searchepi.EmpID"));

            EEmpPositionInfo.DBFilterAddDateRange(empPosFilter, "searchepi", FromDate, ToDate);

            OR orEmpPosTerm = new OR();
            orEmpPosTerm.add(new Exists(EEmpPositionInfo.db.dbclass.tableName + " searchepi ", empPosFilter));
            filter.add(orEmpPosTerm);
        }


        //DBFilter empPosNotExistsFilter = new DBFilter();
        //empPosNotExistsFilter.add(new MatchField("ee.EmpID", "np.EmpID"));
        //orEmpPosTerm.add(new Exists(EEmpPositionInfo.db.dbclass.tableName + " np", empPosNotExistsFilter, true));


        return(filter);
    }
Ejemplo n.º 34
0
        public virtual void LoadBankFileDetail(ArrayList PayrollBatchList, ArrayList EmpList)
        {
            BankFileDetails.Clear();
            m_TotalAmount = 0;

            //  Move autoPayList out of the EmpList loop for sharing bank account feature between roles
            Dictionary <EmpBankTransactionBreakDownKey, GenericBankFileDetail> autoPayList = new Dictionary <EmpBankTransactionBreakDownKey, GenericBankFileDetail>();
            List <int> PayPeriodIDList = new List <int>();

            foreach (EEmpPersonalInfo empInfo in EmpList)
            {
                Dictionary <EmpBankTransactionBreakDownKey, GenericBankFileDetail> chequePaymentList = new Dictionary <EmpBankTransactionBreakDownKey, GenericBankFileDetail>();

                DBFilter empPayrollFilter = new DBFilter();
                empPayrollFilter.add(new Match("EmpID", empInfo.EmpID));
                OR orPayrollBatch = new OR();
                foreach (EPayrollBatch payBatch in PayrollBatchList)
                {
                    orPayrollBatch.add(new Match("PayBatchID", payBatch.PayBatchID));
                }
                empPayrollFilter.add(orPayrollBatch);

                ArrayList empPayrollList = EEmpPayroll.db.select(dbConn, empPayrollFilter);

                foreach (EEmpPayroll empPayroll in empPayrollList)
                {
                    if (!PayPeriodIDList.Contains(empPayroll.PayPeriodID))
                    {
                        PayPeriodIDList.Add(empPayroll.PayPeriodID);
                    }

                    if (!m_ValueDate.Ticks.Equals(0))
                    {
                        empPayroll.EmpPayValueDate = m_ValueDate;
                    }
                    if (empPayroll.EmpPayValueDate.Ticks.Equals(0))
                    {
                        EPayrollBatch payBatch = new EPayrollBatch();
                        payBatch.PayBatchID = empPayroll.PayBatchID;
                        if (EPayrollBatch.db.select(dbConn, payBatch))
                        {
                            empPayroll.EmpPayValueDate = payBatch.PayBatchValueDate;
                        }
                    }

                    DBFilter paymentRecordFilter = new DBFilter();
                    paymentRecordFilter.add(new Match("EmpPayrollID", empPayroll.EmpPayrollID));
                    OR orPaymentMethodTerm = new OR();
                    orPaymentMethodTerm.add(new Match("PayRecMethod", "A"));
                    if (m_IsGenerateChequePayment)
                    {
                        orPaymentMethodTerm.add(new Match("PayRecMethod", "Q"));
                    }
                    paymentRecordFilter.add(orPaymentMethodTerm);

                    ArrayList paymentRecordList = EPaymentRecord.db.select(dbConn, paymentRecordFilter);
                    foreach (EPaymentRecord paymentRecord in paymentRecordList)
                    {
                        if (paymentRecord.PayRecMethod.Equals("A"))
                        {
                            EEmpBankAccount empAcc = new EEmpBankAccount();
                            empAcc.EmpBankAccountID = paymentRecord.EmpAccID;
                            if (!EEmpBankAccount.db.select(dbConn, empAcc))
                            {
                                empAcc = EEmpBankAccount.GetDefaultBankAccount(dbConn, empInfo.EmpID);
                                if (empAcc == null)
                                {
                                    EEmpPersonalInfo.db.select(dbConn, empInfo);
                                    throw new InvalidEEBankAccountException(empInfo.EmpNo, empInfo.EmpEngFullName);
                                }
                            }
                            EmpBankTransactionBreakDownKey key = new EmpBankTransactionBreakDownKey(empAcc.EmpBankAccountID, empPayroll.EmpPayValueDate);

                            GenericBankFileDetail BankFileDetail;
                            if (autoPayList.ContainsKey(key))
                            {
                                BankFileDetail = autoPayList[key];
                            }
                            else
                            {
                                BankFileDetail = CreateBankFileDetail(empAcc.EmpID);
                                BankFileDetail.EmpBankAccountHolderName = empAcc.EmpBankAccountHolderName.Trim();
                                BankFileDetail.BankCode   = empAcc.EmpBankCode;
                                BankFileDetail.BranchCode = empAcc.EmpBranchCode;
                                BankFileDetail.AccountNo  = empAcc.EmpAccountNo;
                                BankFileDetail.ValueDate  = empPayroll.EmpPayValueDate;
                                autoPayList.Add(key, BankFileDetail);
                            }
                            BankFileDetail.Amount += paymentRecord.PayRecActAmount;
                            BankFileDetail.Amount  = Math.Round(BankFileDetail.Amount, 2, MidpointRounding.AwayFromZero);
                            m_TotalAmount         += paymentRecord.PayRecActAmount;
                        }
                        else if (paymentRecord.PayRecMethod.Equals("Q") && m_IsGenerateChequePayment)
                        {
                            EmpBankTransactionBreakDownKey key = new EmpBankTransactionBreakDownKey(0, empPayroll.EmpPayValueDate);
                            GenericBankFileDetail          BankFileDetail;
                            if (chequePaymentList.ContainsKey(key))
                            {
                                BankFileDetail = chequePaymentList[key];
                            }
                            else
                            {
                                BankFileDetail                 = CreateBankFileDetail(empInfo.EmpID);
                                BankFileDetail.ValueDate       = empPayroll.EmpPayValueDate;
                                BankFileDetail.IsChequePayment = true;
                                chequePaymentList.Add(key, BankFileDetail);
                            }
                            BankFileDetail.Amount += paymentRecord.PayRecActAmount;
                            BankFileDetail.Amount  = Math.Round(BankFileDetail.Amount, 2, MidpointRounding.AwayFromZero);
                            m_TotalAmount         += paymentRecord.PayRecActAmount;
                        }
                    }
                }

                BankFileDetails.AddRange(chequePaymentList.Values);
                chequePaymentList.Clear();
            }
            BankFileDetails.AddRange(autoPayList.Values);
            autoPayList.Clear();

            List <GenericBankFileDetail> NegativeBankFileDetailList = new List <GenericBankFileDetail>();
            List <GenericBankFileDetail> zeroAmountBankFileDetails  = new List <GenericBankFileDetail>();

            foreach (GenericBankFileDetail bankFileDetail in BankFileDetails)
            {
                if (bankFileDetail != null)
                {
                    if (bankFileDetail.Amount < 0)
                    {
                        NegativeBankFileDetailList.Add(bankFileDetail);
                    }
                    else if (Math.Abs(bankFileDetail.Amount) <= 0.005)
                    {
                        zeroAmountBankFileDetails.Add(bankFileDetail);
                    }
                }
            }
            foreach (GenericBankFileDetail bankFileDetail in zeroAmountBankFileDetails)
            {
                BankFileDetails.Remove(bankFileDetail);
                ZeroBankFileDetails.Add(bankFileDetail);
            }
            foreach (int PayPeriodID in PayPeriodIDList)
            {
                EPayrollPeriod payPeriod = new EPayrollPeriod();
                payPeriod.PayPeriodID = PayPeriodID;
                if (EPayrollPeriod.db.select(dbConn, payPeriod))
                {
                    if (m_PayPeriodFr.Ticks.Equals(0) || m_PayPeriodFr > payPeriod.PayPeriodFr)
                    {
                        m_PayPeriodFr = payPeriod.PayPeriodFr;
                    }
                    if (m_PayPeriodTo.Ticks.Equals(0) || m_PayPeriodTo < payPeriod.PayPeriodTo)
                    {
                        m_PayPeriodTo = payPeriod.PayPeriodTo;
                    }
                }
            }
            if (NegativeBankFileDetailList.Count > 0)
            {
                throw new NegativeAmountException(new ArrayList(NegativeBankFileDetailList));
            }
        }
Ejemplo n.º 35
0
        public static DataTable GenerateTemplate(DatabaseConnection dbConn, ArrayList EmpInfoList, DateTime PeriodFrom, DateTime PeriodTo)
        {
            DataTable tmpDataTable = new DataTable("WorkingSummary$");

            tmpDataTable.Columns.Add(FIELD_EMP_NO, typeof(string));
            tmpDataTable.Columns.Add("EnglishName", typeof(string));
            tmpDataTable.Columns.Add("ChineseName", typeof(string));

            tmpDataTable.Columns.Add("Company", typeof(string));

            DBFilter  hierarchyLevelFilter    = new DBFilter();
            Hashtable hierarchyLevelHashTable = new Hashtable();

            hierarchyLevelFilter.add("HLevelSeqNo", true);
            ArrayList hierarchyLevelList = EHierarchyLevel.db.select(dbConn, hierarchyLevelFilter);

            foreach (EHierarchyLevel hlevel in hierarchyLevelList)
            {
                tmpDataTable.Columns.Add(hlevel.HLevelDesc, typeof(string));
                hierarchyLevelHashTable.Add(hlevel.HLevelID, hlevel);
            }

            tmpDataTable.Columns.Add(FIELD_AS_OF_DATE, typeof(DateTime));
            tmpDataTable.Columns.Add(FIELD_REST_DAY_ENTITLED, typeof(double));
            tmpDataTable.Columns.Add(FIELD_REST_DAY_TAKEN, typeof(double));
            tmpDataTable.Columns.Add(FIELD_TOTAL_WORKING_DAYS, typeof(double));
            tmpDataTable.Columns.Add(FIELD_TOTAL_WORKING_HOURS, typeof(double));
            tmpDataTable.Columns.Add(FIELD_TOTAL_LUNCH_HOURS, typeof(double));

            //  Extra Information
            tmpDataTable.Columns.Add(FIELD_EXTRA_TOTAL_STATUTORY_HOLIDAY, typeof(double));
            tmpDataTable.Columns.Add(FIELD_EXTRA_TOTAL_LEAVE_APPLICATION_TAKEN, typeof(double));

            tmpDataTable.Columns.Add(FIELD_EXTRA_TOTAL_WORKING_HOURS_EXPECTED, typeof(double));
            tmpDataTable.Columns.Add(FIELD_EXTRA_TOTAL_OVERTIME_MINS, typeof(double));
            tmpDataTable.Columns.Add(FIELD_EXTRA_TOTAL_LATE_MINS, typeof(double));
            tmpDataTable.Columns.Add(FIELD_EXTRA_TOTAL_EARLYLEAVE_MINS, typeof(double));


            foreach (EEmpPersonalInfo empInfo in EmpInfoList)
            {
                if (EEmpPersonalInfo.db.select(dbConn, empInfo))
                {
                    DBFilter empPosFilter = new DBFilter();
                    empPosFilter.add(new Match("EmpID", empInfo.EmpID));
                    empPosFilter.add(new Match("EmpPosEffFr", "<=", PeriodTo));
                    OR empPosEffOR = new OR();
                    empPosEffOR.add(new Match("EmpPosEffTo", ">=", PeriodFrom));
                    empPosEffOR.add(new NullTerm("EmpPosEffTo"));
                    empPosFilter.add(empPosEffOR);
                    empPosFilter.add("EmpPosEffFr", true);

                    ArrayList empPosList = EEmpPositionInfo.db.select(dbConn, empPosFilter);

                    EWorkHourPattern currentWorkHourPattern = null;

                    DateTime lastStartDate = PeriodFrom;
                    foreach (EEmpPositionInfo empPos in empPosList)
                    {
                        if (currentWorkHourPattern == null)
                        {
                            EWorkHourPattern tempWorkHourPattern = new EWorkHourPattern();
                            tempWorkHourPattern.WorkHourPatternID = empPos.WorkHourPatternID;
                            if (EWorkHourPattern.db.select(dbConn, tempWorkHourPattern))
                            {
                                currentWorkHourPattern = tempWorkHourPattern;
                                if (empPos.EmpPosEffFr > PeriodFrom)
                                {
                                    //  generate working summary before the period for first join date

                                    CreateWorkingSummaryTemplateRow(dbConn, tmpDataTable, hierarchyLevelHashTable, empInfo, lastStartDate, empPos.EmpPosEffFr.AddDays(-1), currentWorkHourPattern);
                                    lastStartDate = empPos.EmpPosEffFr;
                                }
                            }
                        }
                        else if (currentWorkHourPattern.WorkHourPatternID != empPos.WorkHourPatternID)
                        {
                            EWorkHourPattern tempWorkHourPattern = new EWorkHourPattern();
                            tempWorkHourPattern.WorkHourPatternID = empPos.WorkHourPatternID;
                            if (EWorkHourPattern.db.select(dbConn, tempWorkHourPattern))
                            {
                                CreateWorkingSummaryTemplateRow(dbConn, tmpDataTable, hierarchyLevelHashTable, empInfo, lastStartDate, empPos.EmpPosEffFr.AddDays(-1), currentWorkHourPattern);
                                lastStartDate = empPos.EmpPosEffFr;

                                currentWorkHourPattern = tempWorkHourPattern;
                            }
                        }
                    }
                    EEmpTermination empTermination = EEmpTermination.GetObjectByEmpID(dbConn, empInfo.EmpID);
                    if (empTermination != null)
                    {
                        if (empTermination.EmpTermLastDate >= lastStartDate && empTermination.EmpTermLastDate < PeriodTo)
                        {
                            CreateWorkingSummaryTemplateRow(dbConn, tmpDataTable, hierarchyLevelHashTable, empInfo, lastStartDate, empTermination.EmpTermLastDate, currentWorkHourPattern);
                            lastStartDate = empTermination.EmpTermLastDate.AddDays(1);
                        }
                    }

                    CreateWorkingSummaryTemplateRow(dbConn, tmpDataTable, hierarchyLevelHashTable, empInfo, lastStartDate, PeriodTo, currentWorkHourPattern);
                    lastStartDate = PeriodTo.AddDays(1);
                }
            }
            return(tmpDataTable);
        }
Ejemplo n.º 36
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!WebUtils.CheckAccess(Response, Session, FUNCTION_CODE, WebUtils.AccessLevel.Read))
        {
            return;
        }
        toolBar.FunctionCode = FUNCTION_CODE;

        if (!int.TryParse(DecryptedRequest["EmpContractID"], out CurID))
        {
            CurID = -1;
        }

        if (!int.TryParse(DecryptedRequest["EmpID"], out CurEmpID))
        {
            CurEmpID = -1;
        }

        binding = new Binding(dbConn, db);
        binding.add(EmpContractID);
        binding.add(EmpID);
        binding.add(EmpContractCompanyName);
        binding.add(EmpContractCompanyContactNo);
        binding.add(EmpContractEmployedFrom);
        binding.add(EmpContractEmployedTo);
        binding.add(EmpContractCompanyAddr);
        binding.add(EmpContractGratuity);

        binding.add(new BlankZeroLabelVLBinder(db, PayCodeID, EPaymentCode.VLPaymentCode));
        binding.add(new LabelVLBinder(db, EmpContractGratuityMethod, Values.VLPaymentMethod));

        DBFilter empBankAccountFilter = new DBFilter();
        OR       bankAccountORTerm    = new OR();

        bankAccountORTerm.add(new Match("EmpID", CurEmpID));
        {
            EEmpPersonalInfo tmpEmpInfo = new EEmpPersonalInfo();
            tmpEmpInfo.EmpID = CurEmpID;
            if (EEmpPersonalInfo.db.select(dbConn, tmpEmpInfo) && tmpEmpInfo.MasterEmpID > 0)
            {
                bankAccountORTerm.add(new Match("EmpID", tmpEmpInfo.MasterEmpID));
            }
        }
        empBankAccountFilter.add(bankAccountORTerm); binding.add(new BlankZeroLabelVLBinder(db, EmpAccID, EEmpBankAccount.VLBankAccount, empBankAccountFilter));


        binding.add(CurrencyID);
        binding.init(Request, Session);



        EmpID.Value = CurEmpID.ToString();

        HROne.Common.WebUtility.WebControlsLocalization(this, this.Controls);

        if (!Page.IsPostBack)
        {
            if (CurID > 0)
            {
                loadObject();
            }
            else
            {
                toolBar.DeleteButton_Visible = false;
            }
        }
    }
Ejemplo n.º 37
0
 public override void opOR_async(AMD_MyClass_opOR cb, OR i, Ice.Current current)
 {
     cb.ice_response(i, i);
 }