예제 #1
0
        public override void ExitPropertyblock([NotNull] SBP.PropertyblockContext context)
        {
            var childs   = m_propertyBlockOperands.Pop();
            var homeList = m_propertyBlockOperands.Peek();
            var block    = (PropertyBlock)homeList[homeList.Count - 1]; // This block is last in the current stack level.

            block.AddRange(childs);
        }
예제 #2
0
 public override void EnterPropertyblock([NotNull] SBP.PropertyblockContext context)
 {
     if (m_propertyBlockOperands.Count < 1)
     {
         throw new InvalidOperationException("Operands stack not initiated.");
     }
     m_propertyBlockOperands.Peek().Add(new PropertyBlock(context.Start.Line)); // Add this block to the current stack level list.
     m_propertyBlockOperands.Push(new List <PropertyBlockEntry>());             // Add new stack level for the children.
 }