enum
Expr
pub enum Expr {
Null,
Bool(bool),
Num(f64),
Str(TextTemplate),
Path(Path),
List(Vec<Expr>),
Record(Vec<(String, Expr)>),
Unary(UnOp, Box<Expr>),
Binary(BinOp, Box<Expr>, Box<Expr>),
If(Box<Expr>, Box<Expr>, Box<Expr>),
Call(String, Vec<Expr>),
Pipe(Box<Expr>, Box<Expr>),
Lambda(Vec<String>, Box<Expr>),
Comprehension(Box<Expr>, Vec<Qualifier>),
Field(Box<Expr>, Vec<String>),
Update(Box<Expr>, Vec<(String, Expr)>),
}An expression.
Variants
Comprehension
Comprehension(Box<Expr>, Vec<Qualifier>)[t.title | t <- todos, !t.done]: a list built from generators and conditions, read left to right.
Update
Update(Box<Expr>, Vec<(String, Expr)>){ t | done: true }: a copy of a record with fields changed.
Methods
call_parts
pub fn call_parts(&self) -> Option<(&str, Vec<&Expr>)>The arguments a call gets: a pipe's left side first.
references
pub fn references(&self, bound: &mut Vec<String>, out: &mut BTreeSet<String>)Names the expression reads from its scope (lambda parameters excluded), added to out.