Пример #1
0
        protected virtual void EnterContext <T>(INodeContext <T> context, bool valueNode = false) where T : Node, new()
        {
            var valueNodeExpected = false;
            var parent            = _nodeStack.Peek();

            if (parent is DOM.IValueNode)
            {
                valueNodeExpected = (parent as DOM.IValueNode).ValueType == ValueType.ObjectValue;
            }

            if (!(valueNode || valueNodeExpected))
            {
                context.InitNode(_nodeStack.Count == 0 ? null : parent);
            }
            else
            {
                context.InitValueNode(_nodeStack.Count == 0 ? null : parent);
            }
            _nodeStack.Push(context.Node);
        }