pub enum Expr {
Char(Loc<char>),
String(Loc<String>),
Name(Loc<String>),
Round(Round),
Function(Option<Loc<String>>, Loc<Round>, MaybeExpr, Option<Brace>),
Op(MaybeExpr, Loc<Op>, MaybeExpr),
Field(MaybeExpr, Loc<String>),
Call(MaybeExpr, Loc<Round>),
}Expand description
Represents a Welly expression.
Examples:
3"hello"p.x ** 2 + p.y ** 2object.method(arg1, arg2)
In Welly’s grammar it is impossible for two Exprs to be adjacent.
Therefore, we can make all Exprs optional without ambiguity.
We do this in the hope of reporting more helpful errors.
Variants§
Char(Loc<char>)
A literal character value.
String(Loc<String>)
A literal string value.
Name(Loc<String>)
An identifier or literal number value.
Round(Round)
Comma-separated Exprs in round brackets.
Function(Option<Loc<String>>, Loc<Round>, MaybeExpr, Option<Brace>)
A function or function type literal.
Op(MaybeExpr, Loc<Op>, MaybeExpr)
A keyword operator applied to zero, one or two operands.
Field(MaybeExpr, Loc<String>)
Field access.
Call(MaybeExpr, Loc<Round>)
Function or macro call.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Expr
impl !RefUnwindSafe for Expr
impl !Send for Expr
impl !Sync for Expr
impl Unpin for Expr
impl !UnwindSafe for Expr
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