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); }
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. }