/// <summary> /// Creates a structurally equivalent ancestor initial context from a given context. /// </summary> /// <param name="context">The context to copy the structure from.</param> /// <returns>A structurally equivalent copy of the given segment.</returns> public static IStonAncestorInitialContext Copy(IStonAncestorInitialContext context) { if (context == null) { throw new ArgumentNullException("context"); } return(new StonAncestorInitialContext(context)); }
/// <summary> /// Checks the validity of a given STON ancestor initial context. /// </summary> /// <param name="initialContext">The initial context to check the validity of.</param> public static void ValidateInitialContext(IStonAncestorInitialContext initialContext) { if (initialContext == null) { throw new ArgumentNullException("initialContext"); } if (initialContext.AncestorOrder < 0) { throw new StonException("An ancestor initial context must have a positive ancestor order."); } }
// writes a reference defining initial context or an ancestor initial context private void WriteInitialContext(StonTokenWriter writer, IStonAncestorInitialContext context) { if (context.AncestorOrder == 0) { writer.Write('$'); } else { writer.Write(new string('^', context.AncestorOrder)); } }
/// <summary> /// Creates a structurally equivalent ancestor initial context from a given context. /// </summary> /// <param name="context">The context to copy the structure from.</param> public StonAncestorInitialContext(IStonAncestorInitialContext context) : this(context.AncestorOrder) { }