diff options
Diffstat (limited to 'rust/src/ast.rs')
| -rw-r--r-- | rust/src/ast.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/rust/src/ast.rs b/rust/src/ast.rs index 0493f59..722e9e0 100644 --- a/rust/src/ast.rs +++ b/rust/src/ast.rs @@ -1,11 +1,12 @@ use std::fmt::{self, Display}; -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Clone)] pub enum Value { Num(i32), Bool(bool), Sym(String), App(Box<Value>, Box<Value>), + Lam(String, Box<Value>), } impl Display for Value { @@ -15,6 +16,7 @@ impl Display for Value { Value::Bool(b) => write!(f, "{}", b), Value::Sym(s) => write!(f, "{}", s), Value::App(l, r) => write!(f, "({} {})", l, r), + Value::Lam(var, body) => write!(f, "(lam {} {})", var, body), } } } |
