Indicates the status of an array index vis a vis whether the element occurrence at that index is required, optional, etc.
The purpose of this parser is to create/evaluate delimiter DFAs and push them to the delimiter stack (bring them in scope) for subsequent (internal/body) parse steps.
Mixin for signaling Schema Definition Errors at runtime.
Mixin for signaling Schema Definition Errors at runtime.
Some SDE cannot be detected until runtime. Classes that need to signal them mixin this trait.
* This parser should only ever be called when a dynamic escape scheme exists so the escape scheme is evaluated in the right scope.
* This parser should only ever be called when a dynamic escape scheme exists so the escape scheme is evaluated in the right scope. If a constant escape scheme exists, the Evaluatable should store the constant and this should never be called.
Note that the escape scheme evaluatable (and its dependencies) are manually cached, so upon exiting scope the cache must be invalidated.
Common parser base class for any parser that evaluates an expression.
Indicates that parsing of an element occurrence for that index should be attempted.
Specifically designed to be used inside one of the SpecifiedLength parsers.
Specifically designed to be used inside one of the SpecifiedLength parsers.
This grabs a string as long as it can get, depending on the SpecifiedLength context to constrain how much it can get.
Specifically designed to be used inside one of the SpecifiedLength parsers.
Specifically designed to be used inside one of the SpecifiedLength parsers.
This grabs a string as long as it can get, depending on the SpecifiedLength context to constrain how much it can get.
Trait shared by both repeating sequence child parsers and unparsers
Parser which does "Nada" (Nothing in Spanish)
Parser which does "Nada" (Nothing in Spanish)
Used for optionality in some cases, but is usually recognized and optimized out.
Parser is for a non-scalar with a specific number of occurrences.
Parser is for a non-scalar with a specific number of occurrences.
There are no points-of-uncertainty (PoU).
Parser is for a non-scalar with a specific number of occurrences given by an occursCount expression.
Parser is for a non-scalar with a specific number of occurrences given by an occursCount expression.
There are no points-of-uncertainty (PoU).
Base class for parsers for terms which are parsed speculatively.
Base class for parsers for terms which are parsed speculatively.
These may respect min/maxOccurs, or may not depending on the occursCountKind. (e.g., parsed uses 0 for min, unbounded for max, implicit does use the min and max occurs values.)
Indicates that the parsing of an element occurrence for that index should be attempted, and that the index is for an optional occurrence.
Enables various sub-kinds of success/failure of a parse to be distinguished easily.
Enables various sub-kinds of success/failure of a parse to be distinguished easily. These are statuses of parsing of an occurrence of an array/optional element, or when implied, the entire array/optional that contains that occurrence. This applies to both specified and speculative number of occurrences.
Encapsulates lower-level parsing with a uniform interface
Encapsulates lower-level parsing with a uniform interface
A parser can have sub-parsers. See also PrimParser which is a parser with no sub-parsers, and CombinatorParser, which is a parser with sub parsers.
A PrimParser is a parser that contains no child parsers.
A PrimParser is a parser that contains no child parsers. Combinators are NOT PrimParser
A parser which is "primitive" no sub-parsers, but which doesn't parses any data.
A parser which is "primitive" no sub-parsers, but which doesn't parses any data. Evaluates expressions, binds variables, evaluates asserts, etc.
Base for SequenceChildParsers that are repeating.
Base for SequenceChildParsers that are repeating.
This mixes in the interface. Implementations of this enable the driver loop in OrderedSequenceParserBase to iterate over the occurrences with a common interation pattern.
An encapsulating parser for a term parser that is a child of a sequence.
An encapsulating parser for a term parser that is a child of a sequence.
This class provides support for the iteration of the sequence over the occurrences of the children, which must distinguish scalars from optional and array elements, and must distinguish situations with specified numbers of occurrences from those with points-of-uncertainty.
This is used when length is measured in characters, and couldn't be converted to a computation on length in bits because a character is encoded as a variable number of bytes, e.g., in utf-8 encoding where a character can be 1 to 4 bytes.
This is used when length is measured in characters, and couldn't be converted to a computation on length in bits because a character is encoded as a variable number of bytes, e.g., in utf-8 encoding where a character can be 1 to 4 bytes.
Alternatively, this is also used if the encoding is coming from an expression, so we don't know if it will come back as utf-8 (variable width) or ascii (fixed width)
This base is used for complex types where we need to know how long the "box" is, that all the complex content must fit within, where that box length is measured in characters. In the complex content case we do not need the string that is all the characters, as we're going to recursively descend and parse it into the complex structure.
Indicates that the parsing of an element occurence for that index should not be attempted.
Specifically designed to be used inside one of the SpecifiedLength parsers.
Specifically designed to be used inside one of the SpecifiedLength parsers. override This grabs a string as long as it can get, depending on the SpecifiedLength context to constrain how much it can get.
Mixed in as a marker for parsers that only operate on text.
Object to provide namespace for these constant values.
The purpose of this parser is to create/evaluate delimiter DFAs and push them to the delimiter stack (bring them in scope) for subsequent (internal/body) parse steps. Then on the way out pop the delimiter DFAs (bring them out of scope) after the internal/body parser has completed.