pub enum MathBot {
Cmd {
name: AnyMathCmdTok,
args: Vec<MathArg>,
},
Chars(MathCharTok),
Embed(VarInMathTok),
Sep(SepTok),
Group {
mgrp: MathGroup<()>,
elems: Vec<MathErasedV1>,
},
}Expand description
mathbot — identical shape to crate::cst::ast::MathBot (no 0.1
delta; name accepts a module-qualified \Mod.cmd math command
too, AnyMathCmdTok::Mod — the lexer already emits
Token::MathCmdWithMod for one, lexer.rs’s \\ arm in Mode:: Math, since ${\Math.paren{…}}-shaped
qualified references need it to parse at all).
Variants§
Cmd
\cmd matharg*, sigil-only or module-qualified (\Mod.cmd matharg*).
Chars(MathCharTok)
Embed(VarInMathTok)
#var (math mode never trails this with ;).
Sep(SepTok)
A | separator marker (flat; elaborator regroups).
Group
{ … } — re-enters the math grammar.
Trait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for MathBotwhere
__SyanMacro_Atom: Spanned + Clone,
AnyMathCmdTok: Parse<__SyanMacro_Atom>,
Vec<MathArg>: Parse<__SyanMacro_Atom>,
MathCharTok: Parse<__SyanMacro_Atom>,
VarInMathTok: Parse<__SyanMacro_Atom>,
SepTok: Parse<__SyanMacro_Atom>,
MathGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_mgrp_MathBot_Group_1383305089136131385: Parse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for MathBotwhere
__SyanMacro_Atom: Spanned + Clone,
AnyMathCmdTok: Parse<__SyanMacro_Atom>,
Vec<MathArg>: Parse<__SyanMacro_Atom>,
MathCharTok: Parse<__SyanMacro_Atom>,
VarInMathTok: Parse<__SyanMacro_Atom>,
SepTok: Parse<__SyanMacro_Atom>,
MathGroup<()>: GroupShape<__SyanMacro_Atom>,
__SyanSubstructOfOwn_mgrp_MathBot_Group_1383305089136131385: Parse<__SyanMacro_Atom>,
Source§type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
Every error must be convertible to the universal one, so a field’s failure can become the
enclosing type’s failure with no per-field where-predicate. Stating it HERE rather than at
each derived impl is what keeps it out of the obligation graph: a per-field
<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.Source§fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>(
__syan_stream: &mut __SyanMacro_S,
) -> Result<Self, Self::Error>
fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>( __syan_stream: &mut __SyanMacro_S, ) -> Result<Self, Self::Error>
Parse from a reborrowable stream. Read more
impl StructuralPartialEq for MathBot
Source§impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for MathBotwhere
AnyMathCmdTok: Unparse<__SyanMacro_Atom>,
Vec<MathArg>: Unparse<__SyanMacro_Atom>,
MathCharTok: Unparse<__SyanMacro_Atom>,
VarInMathTok: Unparse<__SyanMacro_Atom>,
SepTok: Unparse<__SyanMacro_Atom>,
MathGroup<()>: GroupUnparse<__SyanMacro_Atom>,
for<'syan_substruct_ref> __SyanSubstructOfRef_mgrp_MathBot_Group_1383305089136131385<'syan_substruct_ref>: Unparse<__SyanMacro_Atom>,
impl<__SyanMacro_Atom> Unparse<__SyanMacro_Atom> for MathBotwhere
AnyMathCmdTok: Unparse<__SyanMacro_Atom>,
Vec<MathArg>: Unparse<__SyanMacro_Atom>,
MathCharTok: Unparse<__SyanMacro_Atom>,
VarInMathTok: Unparse<__SyanMacro_Atom>,
SepTok: Unparse<__SyanMacro_Atom>,
MathGroup<()>: GroupUnparse<__SyanMacro_Atom>,
for<'syan_substruct_ref> __SyanSubstructOfRef_mgrp_MathBot_Group_1383305089136131385<'syan_substruct_ref>: Unparse<__SyanMacro_Atom>,
Auto Trait Implementations§
impl Freeze for MathBot
impl RefUnwindSafe for MathBot
impl Send for MathBot
impl Sync for MathBot
impl Unpin for MathBot
impl UnsafeUnpin for MathBot
impl UnwindSafe for MathBot
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more