public void BeginList(eListBracketing pBracketing, cCommandPart pPrefix = null, cCommandPart pPostfix = null) { if (mList != null) { mLists.Push(mList); } mList = new cList(pBracketing, pPrefix, pPostfix); }
public void EndList() { var lList = mList; if (mLists.Count == 0) { mList = null; } else { mList = mLists.Pop(); } if (lList.Bracketing == eListBracketing.bracketed || (lList.Bracketing == eListBracketing.ifany && lList.AddCount > 0) || (lList.Bracketing == eListBracketing.ifmorethanone && lList.AddCount > 1)) { List <cCommandPart> lParts = new List <cCommandPart>(); if (lList.Prefix != null) { lParts.Add(lList.Prefix); } lParts.Add(cCommandPart.LParen); lParts.AddRange(lList.Parts); lParts.Add(cCommandPart.RParen); if (lList.Postfix != null) { lParts.Add(lList.Postfix); } Add(lParts); } else if (lList.Parts.Count > 0) { if (lList.Prefix != null || lList.Postfix != null) { List <cCommandPart> lParts = new List <cCommandPart>(); if (lList.Prefix != null) { lParts.Add(lList.Prefix); } lParts.AddRange(lList.Parts); if (lList.Postfix != null) { lParts.Add(lList.Postfix); } Add(lParts); } else { Add(lList.Parts); } } }