aboutsummaryrefslogtreecommitdiff
path: root/src/parse/parsetree.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/parsetree.rs')
-rw-r--r--src/parse/parsetree.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/parse/parsetree.rs b/src/parse/parsetree.rs
index 46e636c..7f9d9dc 100644
--- a/src/parse/parsetree.rs
+++ b/src/parse/parsetree.rs
@@ -117,9 +117,12 @@ fn tokens_to_ast_inner(
Some(Sym(s)) if s == "print" => Ok(Atom(Print)),
Some(Sym(s)) if s == "let" => Ok(Atom(Let)),
Some(Sym(s)) if s == "fn" => Ok(Atom(Fun)),
+ Some(Sym(s)) if s == "case" => Ok(Atom(Case)),
Some(Sym(s)) if s == "->" => Ok(Atom(Arr)),
Some(Sym(s)) if s == "int" => Ok(Atom(Ty(Integer))),
Some(Sym(s)) if s == "bool" => Ok(Atom(Ty(Boolean))),
+ Some(Sym(s)) if s.starts_with("..") =>
+ Ok(Atom(RestPat(s.strip_prefix("..").unwrap().to_string()))),
Some(Sym(s)) => Ok(Atom(Var(s))),
Some(ParClose) => break,
Some(ParOpen) => {