Пример #1
0
 public void BeginList(eListBracketing pBracketing, cCommandPart pPrefix = null, cCommandPart pPostfix = null)
 {
     if (mList != null)
     {
         mLists.Push(mList);
     }
     mList = new cList(pBracketing, pPrefix, pPostfix);
 }
Пример #2
0
                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);
                        }
                    }
                }