pub enum CmdTail {
Semi(EndActiveTok),
Args {
first: AppArgErased,
rest: Vec<AppArgErased>,
semi: Option<EndActiveTok>,
},
}Expand description
A command’s arguments (narg* sargs in parser.mly, upstream’s own
dedicated grammar — not a reuse of the general application chain
like AppExpr). Either a bare ; (no arguments) or a flat,
non-empty sequence of AppArgs: each is ?: value (a supplied
optional narg), ?* (an omitted optional narg), or a plain
(possibly !/#access-decorated) atomic value — (expr),
(|record|), [list], {inline}, <block>, a bare ctor, etc. —
covering both narg’s mandatory forms and sargs’s group forms
uniformly (this port’s usual simplification: AppArg::Atom’s
Atomic already spans every shape upstream splits across narg/
sargs). Optional/omitted nargs may lead (\ref?:(x){text},
\ref?*{text}) since every element is independently one AppArg —
an Expr-based encoding could not, its head being a plain atom.
Variants§
Semi(EndActiveTok)
; — no arguments.
Args
The argument chain: at least one AppArg, via super::AppArgErased.
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for CmdTailwhere
__SyanMacro_Atom: Spanned + Clone,
EndActiveTok: Parse<__SyanMacro_Atom>,
AppArgErased: Parse<__SyanMacro_Atom>,
Vec<AppArgErased>: Parse<__SyanMacro_Atom>,
Option<EndActiveTok>: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for CmdTailwhere
__SyanMacro_Atom: Spanned + Clone,
EndActiveTok: Parse<__SyanMacro_Atom>,
AppArgErased: Parse<__SyanMacro_Atom>,
Vec<AppArgErased>: Parse<__SyanMacro_Atom>,
Option<EndActiveTok>: Parse<__SyanMacro_Atom>,
Source§type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
<FieldTy as Parse<Atom>>::Error: Into<…> predicate re-creates a projection cycle on a
recursive field (E0275), which decycle’s bound-peeling does not break.