Beispiel #1
0
        public virtual void Pop()
        {
            LocalSymbolList list = mLevels.LastElement();

            Commit();
            mCurrentCount = list.GetLocalCountStart();
            mLevels.Remove(mLevels.Count - 1);
            list = null;
        }
Beispiel #2
0
        public virtual void Add(string name)
        {
            LocalSymbolList top = GetTopSymbolList();

            if (top == null)
            {
                return;
            }
            top.Add(name);
        }
Beispiel #3
0
        public virtual int GetCount()
        {
            int count = 0;
            int size  = mLevels.Count;

            for (int i = 0; i < size; i++)
            {
                LocalSymbolList list = mLevels[i];
                count += list.GetCount();
            }
            return(count);
        }
Beispiel #4
0
        public virtual void Remove(string name)
        {
            int count = mLevels.Count;

            for (int i = count - 1; i >= 0; i--)
            {
                LocalSymbolList list   = mLevels[i];
                int             lindex = list.Find(name);
                if (lindex != -1)
                {
                    list.Remove(lindex);
                    return;
                }
            }
        }
Beispiel #5
0
        public virtual int Find(string name)
        {
            int count = mLevels.Count;

            for (int i = count - 1; i >= 0; i--)
            {
                LocalSymbolList list   = mLevels[i];
                int             lindex = list.Find(name);
                if (lindex != -1)
                {
                    return(lindex + list.GetLocalCountStart());
                }
            }
            return(-1);
        }
Beispiel #6
0
        public virtual void Commit()
        {
            int count = 0;

            for (int i = mLevels.Count - 1; i >= 0; i--)
            {
                LocalSymbolList list = mLevels[i];
                count += list.GetCount();
            }
            if (mMaxCount < count)
            {
                mMaxCount = count;
                if (mMaxCountWriter != null)
                {
                    mMaxCountWriter.SetMaxCount(count);
                }
            }
        }