diff options
Diffstat (limited to 'src/parse/parsetree.rs')
-rw-r--r-- | src/parse/parsetree.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/parse/parsetree.rs b/src/parse/parsetree.rs index 0a5782d..86da0f0 100644 --- a/src/parse/parsetree.rs +++ b/src/parse/parsetree.rs @@ -198,9 +198,13 @@ fn parse_type(s: &str) -> IResult<&str, Type> { .map(|s: &str| VarType(s.to_string())); alt(( - tag("Int").map(|_| Integer), - tag("Bool").map(|_| Boolean), - tag("Nil").map(|_| NilType), + tag("Int") .map(|_| Integer), + tag("Bool") .map(|_| Boolean), + tag("Quote") .map(|_| QuoteTy), + tag("Vector").map(|_| VecType), + tag("Let") .map(|_| LetType), + tag("Type") .map(|_| TypeLit), + tag("Nil") .map(|_| NilType), arrp, vecp, listp, @@ -217,7 +221,11 @@ mod private_parsing_tests { fn test_parse_type() { assert_eq!(parse_type("Int"), Ok(("", Integer))); assert_eq!(parse_type("Bool"), Ok(("", Boolean))); - assert_eq!(parse_type("Nil"), Ok(("", NilType))); + assert_eq!(parse_type("Quote"), Ok(("", QuoteTy))); + assert_eq!(parse_type("Vector"), Ok(("", VecType))); + assert_eq!(parse_type("Let"), Ok(("", LetType))); + assert_eq!(parse_type("Type"), Ok(("", TypeLit))); + assert_eq!(parse_type("Nil"), Ok(("", NilType))); assert_eq!(parse_type("(Int -> Bool)"), Ok(("", arr(Integer, Boolean)))); assert_eq!( parse_type("((Int -> Int) -> (Bool -> Bool))"), |