internal JsonValueWithBackgroundSyntax(JsonMultiValueSyntax parent, int parentValueNodeIndex) { Parent = parent; ParentValueNodeIndex = parentValueNodeIndex; Green = parent.Green.ValueNodes[parentValueNodeIndex]; backgroundBefore = new SafeLazyObject<JsonBackgroundListSyntax>(() => new JsonBackgroundListSyntax(this)); contentNode = new SafeLazyObject<JsonValueSyntax>(() => JsonValueSyntaxCreator.Instance.Visit(Green.ContentNode, this)); }
/// <summary> /// Initializes a new instance of <see cref="RootJsonSyntax"/>. /// </summary> /// <param name="syntax"> /// The root <see cref="GreenJsonMultiValueSyntax"/> node from which to construct a <see cref="JsonMultiValueSyntax"/> abstract syntax tree. /// </param> /// <param name="errors"> /// The enumeration containing all errors generated during a parse. /// </param> /// <exception cref="ArgumentNullException"> /// <paramref name="syntax"/> and/or <paramref name="errors"/> are null. /// </exception> public RootJsonSyntax(GreenJsonMultiValueSyntax syntax, IEnumerable <JsonErrorInfo> errors) { if (syntax == null) { throw new ArgumentNullException(nameof(syntax)); } if (errors == null) { throw new ArgumentNullException(nameof(errors)); } Syntax = new JsonMultiValueSyntax(syntax); Errors = errors is List <JsonErrorInfo> errorList ? errorList : new List <JsonErrorInfo>(errors); }