Пример #1
0
 void PushTFS(TPredicateItemTFS ATFS, TDynamicArray AStack)
 {
     for (int i = 0; i <= ATFS.TFECount - 1; i++)
     {
         if (ATFS.GetTFEItems(i).Big != null)
         {
             AStack.InsertToFirst(ATFS.GetTFEItems(i).Big);
         }
     }
 }
Пример #2
0
        void PushTFS(TPredicateItemTFS ATFS, ref TDynamicArray AStack)
        {
            int m_type = ATFS.TFS.BaseWorkShape.TypeShape;

            if ((m_type != 1) || ((m_type == 1) && (ATFS.EnvelopeBIG != null)))
            {
                AStack.InsertToFirst(ATFS);
            }
            for (int i = 0; i <= ATFS.TFECount - 1; i++)
            {
                if (ATFS.GetTFEItems(i).Big != null)
                {
                    AStack.InsertToFirst(ATFS.GetTFEItems(i).Big);
                }
            }
        }
Пример #3
0
        void DoCopyTree(ref TPredicateItemBig ABig, ref TDynamicArray AStack)
        {
            int m_who;
            TAlternativeParserItemList ML;
            TAlternativeParserItemBase mBase;
            TAlternativeParserItemTFS  mTFS;
            TAlternativeParserItemBig  mBig;
            TPredicateItemTFE          mTFE;
            TAlternativeParserItemBig  mRfc = ABig.Rfc;

            ML = mRfc.MainList;
            for (int i = 0; i <= ML.Count - 1; i++)
            {
                mBase = ML.GetItems(i);
                m_who = mBase.Who();
                if (m_who == 0)
                {
                    mTFS = (TAlternativeParserItemTFS)(mBase);
                    TPredicateItemTFS iTfs = new TPredicateItemTFS();
                    iTfs.Assign(mTFS);
                    ABig.AddItem(iTfs);
                    for (int j = 0; j <= iTfs.TFECount - 1; j++)
                    {
                        mTFE = iTfs.GetTFEItems(j);
                        if (mTFE.RfcTFE.Big != null)
                        {
                            TPredicateItemBig iBig = NewBig(mTFE.RfcTFE.Big);
                            mTFE.Big = iBig;
                            AStack.InsertToFirst(iBig);
                        }
                    }
                }
                if (m_who == 1)
                {
                    mBig = (TAlternativeParserItemBig)(mBase);
                    TPredicateItemBig iBig = NewBig(mBig);
                    ABig.AddItem(iBig);
                    AStack.InsertToFirst(iBig);
                }
            }

            for (int i = 0; i <= mRfc.CountBig - 1; i++)
            {
                mBig = mRfc.GetItemsBig(i);
                TPredicateItemBig iBig = NewBig(mBig);
                ABig.AddItem(iBig);
                AStack.InsertToFirst(iBig);
            }
        }