internal JsonKeyValueSyntax(JsonMapSyntax parent, int parentKeyValueNodeIndex)
        {
            Parent = parent;
            ParentKeyValueNodeIndex = parentKeyValueNodeIndex;
            Green = parent.Green.KeyValueNodes[parentKeyValueNodeIndex];

            int valueSectionNodeCount = Green.ValueSectionNodes.Count;

            ValueSectionNodes = new SafeLazyObjectCollection <JsonMultiValueSyntax>(
                valueSectionNodeCount,
                index => new JsonMultiValueSyntax(this, index));

            Colons = new SafeLazyObjectCollection <JsonColonSyntax>(
                valueSectionNodeCount - 1,
                index => new JsonColonSyntax(this, index));
        }
 public virtual TResult VisitMapSyntax(JsonMapSyntax node, T arg) => DefaultVisit(node, arg);
 internal JsonCommaSyntax(JsonMapSyntax parent, int commaIndex)
 {
     Parent     = parent;
     CommaIndex = commaIndex;
 }