;; -*- compile-command: "guile -L ./src/modules ./src/unit-tests/parser/parser.test.scm"; -*- (use-modules (srfi srfi-64) (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")