diff options
author | bd <bdunaisky@umass.edu> | 2024-11-05 12:42:29 -0500 |
---|---|---|
committer | bd <bdunaisky@umass.edu> | 2024-11-05 12:42:29 -0500 |
commit | 11ecac1d0686d5ed75b73eee0c860d7d67f6d6f0 (patch) | |
tree | c3c7f91f49f85eab84275f98a49d5a7175a0bba9 /src/unit-tests/parser/parser-test.scm | |
parent | fdcf4be12c7c8913ccd26ebcab7cb05eb2abaa48 (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.scm | 25 |
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") |