summaryrefslogtreecommitdiff
path: root/rust/src/ast.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/ast.rs')
-rw-r--r--rust/src/ast.rs4
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),
}
}
}