pub enum Argument {
Variable(String),
Marker(Marker),
Pronoun(Pronoun),
Description((Determiner, PredicateId)),
Name(String),
QuotedLiteral(String),
Unspecified,
Tagged((u8, ArgumentId)),
ModalTagged((ModalTag, ArgumentId)),
Restricted((ArgumentId, RelClause)),
Number(f64),
QuantifiedDescription((u32, Determiner, PredicateId)),
}Expand description
A argument (argument term) in the AST.
Variants§
Variable(String)
A $-sigiled logic variable, preserved VERBATIM (the sigil IS the
variable signal all the way through the IR — the interner and the
free-variable/scope passes key on the $-prefixed string, and proof
traces display it). INVARIANT: the payload starts with $;
validate_ast_buffer rejects a sigil-less payload as corrupt (a bare
name here would silently become a free, never-closed IR variable).
Marker(Marker)
A positional marker consumed by nibli-semantics (never a constant):
it (bound entity), slot (open place), ? (witness).
Pronoun(Pronoun)
A fixed pronoun constant (me, you, we, we_all, …, it_u); lowers to an
interned constant of its Pronoun::as_str spelling.
Description((Determiner, PredicateId))
Determiner description: some/the + predicate. Fields: (determiner, predicate-id).
Name(String)
Named entity: a capitalized rigid Name.
QuotedLiteral(String)
Quoted string literal: "any text".
Unspecified
Unspecified placeholder (_ or an omitted place).
Tagged((u8, ArgumentId))
Place-tagged argument: (zero-based place index 0..=4, inner-argument-id).
ModalTagged((ModalTag, ArgumentId))
Modal-tagged argument: (modal-tag, inner-argument-id).
Restricted((ArgumentId, RelClause))
Argument with a relative clause: (inner-argument-id, relative-clause).
Number(f64)
Numeric literal argument.
QuantifiedDescription((u32, Determiner, PredicateId))
Quantified description: exactly N + determiner + predicate.
Fields: (count, determiner, predicate-id).