pub enum Expr<Atom, Operator> {
Atom(Atom),
UnExpr {
item: Box<Expr<Atom, Operator>>,
op: Operator,
},
BinExpr {
left: Box<Expr<Atom, Operator>>,
op: Operator,
right: Box<Expr<Atom, Operator>>,
},
TreExpr {
left: Box<Expr<Atom, Operator>>,
lop: Operator,
middle: Box<Expr<Atom, Operator>>,
rop: Operator,
right: Box<Expr<Atom, Operator>>,
},
}
Expand description
A parsed expression
Variants§
Atom(Atom)
An atom is whatever the return type of the atom parser returns
UnExpr
UnExpr is a unary expression for example -10
Fields
§
item: Box<Expr<Atom, Operator>>
Item is the sub expression that the operator applies to. It is not called lhs because it can be either postfix or prefix
§
op: Operator
Operator token
BinExpr
BinExpr is a binary expression for example 10 * 10
Fields
§
op: Operator
Operator token
TreExpr
TreExpr is a trenary expression such as true ? 2 : 3
Trait Implementations§
impl<Atom, Operator> StructuralPartialEq for Expr<Atom, Operator>
Auto Trait Implementations§
impl<Atom, Operator> Freeze for Expr<Atom, Operator>
impl<Atom, Operator> RefUnwindSafe for Expr<Atom, Operator>where
Atom: RefUnwindSafe,
Operator: RefUnwindSafe,
impl<Atom, Operator> Send for Expr<Atom, Operator>
impl<Atom, Operator> Sync for Expr<Atom, Operator>
impl<Atom, Operator> Unpin for Expr<Atom, Operator>
impl<Atom, Operator> UnwindSafe for Expr<Atom, Operator>where
Atom: UnwindSafe,
Operator: UnwindSafe,
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