summaryrefslogtreecommitdiff
path: root/src/unit-tests/parser/parser-test.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/unit-tests/parser/parser-test.scm')
-rw-r--r--src/unit-tests/parser/parser-test.scm25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/unit-tests/parser/parser-test.scm b/src/unit-tests/parser/parser-test.scm
index d099329..8baedda 100644
--- a/src/unit-tests/parser/parser-test.scm
+++ b/src/unit-tests/parser/parser-test.scm
@@ -3,9 +3,26 @@
(modules parser parser))
-(test-begin "lexer-harness")
+(test-begin "parser-harness")
-(test-equal "hi"
- "hi")
-(test-end "lexer-harness")
+
+(test-equal "trivial function main 2"
+ '(program (function (identifier "main") (return (constant 2))))
+ (p-program '(int "main" left-paren void right-paren open-brace return 2 semi-colon close-brace)))
+
+(test-equal "trivial function foo 4"
+ '(program (function (identifier "foo") (return (constant 4))))
+ (p-program '(int "foo" left-paren void right-paren open-brace return 4 semi-colon close-brace)))
+
+(test-error "trivial function bad double return"
+ (p-program '(int "foo" left-paren void right-paren open-brace return return 4 semi-colon close-brace)))
+
+(test-error "trivial function bad parens"
+ (p-program '(int "foo" right-paren void left-paren open-brace return return 4 semi-colon close-brace)))
+
+(test-error "trivial function bad int parameter"
+ (p-program '(int "foo" right-paren int left-paren open-brace return return 4 semi-colon close-brace)))
+
+
+(test-end "parser-harness")