public virtual void Pop() { LocalSymbolList list = mLevels.LastElement(); Commit(); mCurrentCount = list.GetLocalCountStart(); mLevels.Remove(mLevels.Count - 1); list = null; }
public virtual void Add(string name) { LocalSymbolList top = GetTopSymbolList(); if (top == null) { return; } top.Add(name); }
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); }
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; } } }
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); }
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); } } }