diff options
author | bd <bdunahu@operationnull.com> | 2025-03-20 13:51:28 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-03-20 13:51:28 -0400 |
commit | 6e338215192c26dfb16236398ca8e3762a8d4d0e (patch) | |
tree | 823d7102f43ea5a4b377d5c2cb04a5ec02fb20b7 /t | |
parent | 19d13c8339ee990fba358417a54aa6f1c94c7bca (diff) |
Add logic to open file, lex single character symbols, tests
Diffstat (limited to 't')
-rw-r--r-- | t/lex.lisp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/t/lex.lisp b/t/lex.lisp new file mode 100644 index 0000000..e210ecb --- /dev/null +++ b/t/lex.lisp @@ -0,0 +1,45 @@ +(in-package #:rva-tests) + +(defmacro read-this (str &body body) + `(let ((*standard-input* (make-string-input-stream ,str))) + ,@body)) + +(def-suite lex-tests + :description "Test functions exported from the lexer." + :in all-tests) + +(in-suite lex-tests) + +(test read-token-reads-eof + (read-this "" + (is (not (lex:read-token))))) + +(test read-token-reads-left-paren + (read-this "(" + (is (eq (lex:read-token) 'lex::left-paren)))) + +(test read-token-reads-right-paren + (read-this ")" + (is (eq (lex:read-token) 'lex::right-paren)))) + +(test read-token-ignores-space + (read-this " (" + (is (eq (lex:read-token) 'lex::left-paren)))) + +(test read-token-ignores-tab + (read-this " (" + (is (eq (lex:read-token) 'lex::left-paren)))) + +(test read-token-ignores-newline + (read-this " +(" + (is (eq (lex:read-token) 'lex::left-paren)))) + +(test read-token-ignores-comment + (read-this "; this is a comment +(" + (is (eq (lex:read-token) 'lex::left-paren)))) + +(test read-token-ignores-comment-eof + (read-this ";" + (is (not (lex:read-token))))) |