pub enum CmdTail {
Semi(EndActiveTok),
Args {
lead_opts: Option<OptArgsV1>,
args: ExprErasedV1,
semi: Option<EndActiveTok>,
},
}Expand description
A command’s arguments — identical shape to
crate::cst::ast::CmdTail — 0.1 delta: an optional LEADING
?(l = e, …) bundle. A command
applied with an optional on its FIRST argument (\cmd ?(l = e){arg},
+sec ?(label = t){title}<body> — the ONLY shape the capstone census
finds) can’t ride inside args (an expr_app application chain whose
head must be a bare Atomic, never a ?-headed bundle — the head
slot has no place for a leading bundle), so it is peeled off here as
lead_opts and re-attached to the first argument at lowering
(v1::lower::lower_cmd_tail). A bundle on a LATER argument
(\cmd{a} ?(l = e){b}) still rides inside args as an ordinary
AppArg::Bundled. ?(-headed, token-disjoint from every
args head shape, so a bundle-less tail parses lead_opts: None.
Variants§
Semi(EndActiveTok)
; — no arguments.
Args
The argument chain, optionally prefixed by a leading ?(l = e, …)
bundle on the first argument.
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for CmdTailwhere
__SyanMacro_Atom: Spanned + Clone,
EndActiveTok: Parse<__SyanMacro_Atom>,
Option<OptArgsV1>: Parse<__SyanMacro_Atom>,
ExprErasedV1: Parse<__SyanMacro_Atom>,
Option<EndActiveTok>: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for CmdTailwhere
__SyanMacro_Atom: Spanned + Clone,
EndActiveTok: Parse<__SyanMacro_Atom>,
Option<OptArgsV1>: Parse<__SyanMacro_Atom>,
ExprErasedV1: 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.