From 000b28c88bbfd1fde94b5e01ce2766230077e013 Mon Sep 17 00:00:00 2001 From: bd Date: Sun, 12 Jan 2025 15:10:23 -0700 Subject: Expansion of complex expressions into set of instructions --- src/unit-tests/parser/parser.test.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/unit-tests/parser/parser.test.scm (limited to 'src/unit-tests/parser/parser.test.scm') diff --git a/src/unit-tests/parser/parser.test.scm b/src/unit-tests/parser/parser.test.scm new file mode 100644 index 0000000..b3573d0 --- /dev/null +++ b/src/unit-tests/parser/parser.test.scm @@ -0,0 +1,30 @@ +;; -*- compile-command: "guile -L ./src ./src/unit-tests/parser/parser.test.scm"; -*- +(use-modules (srfi srfi-64) + (modules parser parser)) + + +(test-begin "parser-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 4 semi-colon close-brace))) + +(test-error "trivial function bad int parameter" + (p-program '(int "foo" left-paren int right-paren open-brace return 4 semi-colon close-brace))) + +(test-error "trivial function incomplete function" + (p-program '(int "foo" left-paren void right-paren open-brace return))) + + +(test-end "parser-harness") -- cgit v1.2.3