summaryrefslogtreecommitdiff
path: root/src/unit-tests/parser/parser-test.scm
diff options
context:
space:
mode:
authorbd <bdunaisky@umass.edu>2024-11-05 12:42:29 -0500
committerbd <bdunaisky@umass.edu>2024-11-05 12:42:29 -0500
commit11ecac1d0686d5ed75b73eee0c860d7d67f6d6f0 (patch)
treec3c7f91f49f85eab84275f98a49d5a7175a0bba9 /src/unit-tests/parser/parser-test.scm
parentfdcf4be12c7c8913ccd26ebcab7cb05eb2abaa48 (diff)
Add parser and ast generation for trivial programs
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")