pub enum Atomic {
Show 17 variants
Length(LengthTok),
Float(FloatTok),
Int(IntTok),
Literal(LiteralTok),
True(KwTrue),
False(KwFalse),
Ctor(CtorTok),
Var(VarTok),
VarWithMod(VarWithModTok),
Command {
kw: CommandTok,
name: AnyHorzCmdTok,
},
Unit {
paren: UnitParen,
},
Paren {
paren: ParenGroup<()>,
inner: Box<ParenBody>,
},
Record {
rec: RecordGroup<()>,
body: RecordBody,
},
List {
list: ListGroup<()>,
items: Vec<ListItem>,
},
InlineText {
igrp: InlineGroup<()>,
elems: Vec<InlineElem>,
},
BlockText {
bgrp: BlockGroup<()>,
elems: Vec<BlockElem>,
},
MathText {
mgrp: MathGroup<()>,
elems: Vec<MathErasedV1>,
},
}Expand description
expr_bot-analogue: an atomic expression. Delta: Atomic::List
and Atomic::Record are now ,-separated
(optterm_list(COMMA, …), parser_v1.mly:935,942) rather than
0.0.6’s ;-separated forms — see ListItem/RecordField.
Parenthesized/tuple bodies were already ,-separated in 0.0.6 and
are unchanged (parser_v1.mly:914).
Variants§
Length(LengthTok)
Float(FloatTok)
Int(IntTok)
Literal(LiteralTok)
True(KwTrue)
False(KwFalse)
Ctor(CtorTok)
A bare constructor, e.g. None, or the head of Some 1.
Var(VarTok)
VarWithMod(VarWithModTok)
Mod.x — a module-qualified variable.
Command
command \cmd (upstream parser_v1.mly:906, L_PAREN COMMAND backslash_cmd R_PAREN — the parens arrive via Atomic::Paren
here, exactly like crate::cst::ast::Atomic::Command, which
this reproduces verbatim; the plus_cmd alternative at :908 is
deferred with the same rationale as the 0.0.6 comment). Needed by
the transliterated v01-mini.satyh’s (command \math).
Unit
()
Paren
( expr ) or ( expr, expr, … ) (the latter elaborates to a
tuple).
Record
(| label = expr, … |) or (| base with label = expr, … |)
(,-separated — see RecordBody).
List
[ expr, … ] (,-separated — see ListItem).
InlineText
{ inline text }
BlockText
'< block text >
MathText
${ math }. Parses the same math grammar as 0.0.6; the
math-text/math-boxes value split is a lowering/typing
concern, not a cst_v1 shape change.
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for Atomicwhere
__SyanMacro_Atom: Spanned + Clone,
LengthTok: Parse<__SyanMacro_Atom>,
FloatTok: Parse<__SyanMacro_Atom>,
IntTok: Parse<__SyanMacro_Atom>,
LiteralTok: Parse<__SyanMacro_Atom>,
KwTrue: Parse<__SyanMacro_Atom>,
KwFalse: Parse<__SyanMacro_Atom>,
CtorTok: Parse<__SyanMacro_Atom>,
VarTok: Parse<__SyanMacro_Atom>,
VarWithModTok: Parse<__SyanMacro_Atom>,
CommandTok: Parse<__SyanMacro_Atom>,
AnyHorzCmdTok: Parse<__SyanMacro_Atom>,
UnitParen: Parse<__SyanMacro_Atom>,
ParenGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_paren_Atomic_Paren_1383305089136131385: Parse<__SyanMacro_Atom>,
RecordGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_rec_Atomic_Record_1383305089136131385: Parse<__SyanMacro_Atom>,
ListGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_list_Atomic_List_1383305089136131385: Parse<__SyanMacro_Atom>,
InlineGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_igrp_Atomic_InlineText_1383305089136131385: Parse<__SyanMacro_Atom>,
BlockGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_bgrp_Atomic_BlockText_1383305089136131385: Parse<__SyanMacro_Atom>,
MathGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_mgrp_Atomic_MathText_1383305089136131385: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for Atomicwhere
__SyanMacro_Atom: Spanned + Clone,
LengthTok: Parse<__SyanMacro_Atom>,
FloatTok: Parse<__SyanMacro_Atom>,
IntTok: Parse<__SyanMacro_Atom>,
LiteralTok: Parse<__SyanMacro_Atom>,
KwTrue: Parse<__SyanMacro_Atom>,
KwFalse: Parse<__SyanMacro_Atom>,
CtorTok: Parse<__SyanMacro_Atom>,
VarTok: Parse<__SyanMacro_Atom>,
VarWithModTok: Parse<__SyanMacro_Atom>,
CommandTok: Parse<__SyanMacro_Atom>,
AnyHorzCmdTok: Parse<__SyanMacro_Atom>,
UnitParen: Parse<__SyanMacro_Atom>,
ParenGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_paren_Atomic_Paren_1383305089136131385: Parse<__SyanMacro_Atom>,
RecordGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_rec_Atomic_Record_1383305089136131385: Parse<__SyanMacro_Atom>,
ListGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_list_Atomic_List_1383305089136131385: Parse<__SyanMacro_Atom>,
InlineGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_igrp_Atomic_InlineText_1383305089136131385: Parse<__SyanMacro_Atom>,
BlockGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_bgrp_Atomic_BlockText_1383305089136131385: Parse<__SyanMacro_Atom>,
MathGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_mgrp_Atomic_MathText_1383305089136131385: 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.