From eb660323ad8232978f98740634699e1363ca57bf Mon Sep 17 00:00:00 2001 From: bd Date: Mon, 4 Nov 2024 22:38:15 -0500 Subject: setup parser, clean up lexer tests --- src/modules/parser/parser.scm | 1 + src/unit-tests/lexer/lexer-test.scm | 94 ++++++++++++----------------------- src/unit-tests/parser/parser-test.scm | 11 ++++ 3 files changed, 44 insertions(+), 62 deletions(-) create mode 100644 src/modules/parser/parser.scm create mode 100644 src/unit-tests/parser/parser-test.scm diff --git a/src/modules/parser/parser.scm b/src/modules/parser/parser.scm new file mode 100644 index 0000000..b2ca12f --- /dev/null +++ b/src/modules/parser/parser.scm @@ -0,0 +1 @@ +(define-module (modules parser parser)) diff --git a/src/unit-tests/lexer/lexer-test.scm b/src/unit-tests/lexer/lexer-test.scm index 6596a1f..eb41b83 100644 --- a/src/unit-tests/lexer/lexer-test.scm +++ b/src/unit-tests/lexer/lexer-test.scm @@ -4,100 +4,70 @@ (define (read-this str) (set-current-input-port - (open-input-string str))) + (open-input-string str)) + str) (test-begin "lexer-harness") -(test-equal "empty string" +(test-equal (read-this "") '() - (begin - (read-this "") - (read-tokens))) + (read-tokens)) -(test-equal "(" +(test-equal (read-this "(") '(left-paren) - (begin - (read-this "(") - (read-tokens))) + (read-tokens)) -(test-equal "((" +(test-equal (read-this "((") '(left-paren left-paren) - (begin - (read-this "((") - (read-tokens))) + (read-tokens)) -(test-equal "( )" +(test-equal (read-this "( )") '(left-paren right-paren) - (begin - (read-this "( )") - (read-tokens))) + (read-tokens)) -(test-equal "( {;} {((};})" +(test-equal (read-this "( {;} {((};})") '(left-paren open-brace semi-colon close-brace open-brace left-paren left-paren close-brace semi-colon close-brace right-paren) - (begin - (read-this "( {;} {((};})") - (read-tokens))) + (read-tokens)) -(test-equal "1" +(test-equal (read-this "1") '(1) - (begin - (read-this "1") - (read-tokens))) + (read-tokens)) -(test-equal "0" +(test-equal (read-this "0") '(0) - (begin - (read-this "0") - (read-tokens))) + (read-tokens)) -(test-equal "0011001" +(test-equal (read-this "0011001") '(11001) - (begin - (read-this "0011001") - (read-tokens))) + (read-tokens)) -(test-equal "12 {34" +(test-equal (read-this "12 {34") '(12 open-brace 34) - (begin - (read-this "12 {34") - (read-tokens))) + (read-tokens)) -(test-equal "34;" +(test-equal (read-this "34;") '(34 semi-colon) - (begin - (read-this "34;") - (read-tokens))) + (read-tokens)) +(test-error (read-this "3.4") + (read-tokens)) -(test-error "3.4" - (begin - (read-this "3.4") - (read-tokens))) - -(test-equal "a" +(test-equal (read-this "a") '("a") - (begin - (read-this "a") - (read-tokens))) + (read-tokens)) -(test-equal "a_2" +(test-equal (read-this "a_2") '("a_2") - (begin - (read-this "a_2") - (read-tokens))) + (read-tokens)) -(test-error "1foo" - (begin - (read-this "1foo") - (read-tokens))) +(test-error (read-this "1foo") + (read-tokens)) -(test-equal "int main(void) {return 2;}" +(test-equal (read-this "int main(void) {return 2;}") '("int" "main" left-paren "void" right-paren open-brace "return" 2 semi-colon close-brace) - (begin - (read-this "int main(void) {return 2;}") - (read-tokens))) + (read-tokens)) (test-end "lexer-harness") diff --git a/src/unit-tests/parser/parser-test.scm b/src/unit-tests/parser/parser-test.scm new file mode 100644 index 0000000..d099329 --- /dev/null +++ b/src/unit-tests/parser/parser-test.scm @@ -0,0 +1,11 @@ +;; -*- compile-command: "guile -L ./src ./src/unit-tests/parser/parser-test.scm"; -*- +(use-modules (srfi srfi-64) + (modules parser parser)) + + +(test-begin "lexer-harness") + +(test-equal "hi" + "hi") + +(test-end "lexer-harness") -- cgit v1.2.3