@tikoci/centrs
    Preparing search index...

    Interface ExplainArgument

    One argument token, located in the text it was lexed from.

    The ordered list is the primary shape and the object view is derived from it (the phase-0 normal form: "an ordered token/argument list with spans, never a pre-reduced args object"). Order and multiplicity are observable here and are flattened by ArgumentReading.args, so a consumer that needs to know a name was given twice still can.

    interface ExplainArgument {
        kind: ExplainArgumentKind;
        name?: string;
        span: { end: number; start: number };
        text: string;
        undecided?: string;
        value?: string;
        valueSpan?: { end: number; start: number };
    }
    Index

    Properties

    name?: string

    Attribute name / query word. Absent on a positional.

    span: { end: number; start: number }

    The whole token, in the coordinate space of the text passed to the lexer.

    text: string

    The token verbatim, for a positional and for rendering.

    undecided?: string

    Why this token's value or shape was not decoded — tolerant reading only.

    Never set by lexArguments: the strict reading publishes no token it could not decide, so a consumer holding an ArgumentsRead never sees this field. lexArgumentTokens sets it on exactly the tokens the strict walk would have aborted at, carrying the same reason string the strict refusal would have carried. A token with undecided set has no value and must never be rendered into a runnable command.

    value?: string

    The token's LITERAL value, quotes removed — for an attribute the part after =, for a positional the whole token.

    Absent means there is no literal value, whatever the kind: the source spells a substitution, an expression, or an escape this phase does not decode. A consumer rendering a runnable command must read this field, not text, and must treat absence as "not renderable" — text is the source bytes, which are not the value the device would receive. A query is always absent: ? words are a grammar of their own and splitting them is not this lexer's claim to make.

    valueSpan?: { end: number; start: number }

    Where the value sits, quotes INCLUDED.

    In the strict lexArguments reading this is absent whenever value is. The tolerant lexArgumentTokens reading also publishes it for a value whose BYTES are located but whose literal is unknown (interface=$x), which is what lets a positional fill claim the name= run of a token no consumer may render. undecided is the field that says which of the two this is.