diff options
author | riton <riton@riton.home> | 2025-07-14 21:45:47 +0300 |
---|---|---|
committer | riton <riton@riton.home> | 2025-07-14 21:45:47 +0300 |
commit | 1c90d9ae3b84f62168337f3c8b1c3854f6198330 (patch) | |
tree | 7dcc1dc41c2cfce5548876d53d8e83835b56b624 /test/lexer-test.lisp | |
parent | 44efb492349025a195a3b402ec580623ad61723f (diff) |
More refactoring of tests and packages
Squashed commit of the following:
commit c4659d8be4d664ba7fd4b59d613536f2368cff0e
Author: riton <riton@riton.home>
Date: Mon Jul 14 21:44:48 2025 +0300
fix package name typo
commit ec802339b838d059f4bc9e4da7cc370ab4d91a46
Author: riton <riton@riton.home>
Date: Mon Jul 14 21:43:42 2025 +0300
seperate deftest from test instances
commit 92d20e0b8405a4a51f01ff65f8bd81f4d25c1e21
Author: riton <riton@riton.home>
Date: Mon Jul 14 21:29:47 2025 +0300
make a test system definition
commit 125e5fe1e8c07230f32e762273c5c0dd259209e6
Author: riton <riton@riton.home>
Date: Mon Jul 14 00:39:09 2025 +0300
compiler macro of as-token
commit 0e39c32097783aa39e3fed479bb85b412065f597
Author: riton <riton@riton.home>
Date: Mon Jul 14 00:21:46 2025 +0300
define new packages
Diffstat (limited to 'test/lexer-test.lisp')
-rw-r--r-- | test/lexer-test.lisp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/lexer-test.lisp b/test/lexer-test.lisp new file mode 100644 index 0000000..bb7a1bd --- /dev/null +++ b/test/lexer-test.lisp @@ -0,0 +1,53 @@ +(in-package :monkey/test) + +(deftest (:lexer test-1) + "=+(){},;" + (:t/= :t/+ :t/lparen :t/rparen + :t/lbrace :t/rbrace :t/comma :t/semicolon :t/eof)) + +(deftest (:lexer test-2) + "let five = 5; +let ten = 10; + +let add = fn(x, y) { + x + y; +}; + +let result = add(five, ten); +!-/*; +5 < 10 > 5; + +if (5 < 10) { + return true; +} else { + return false; +} +10 == 10; +10 != 9; +" + (:t/let "five" :t/= 5 #\; + :t/let "ten" :t/= 10 #\; + :t/let "add" :t/= :t/function #\( "x" :t/comma "y" #\) #\{ + "x" :t/+ "y" #\; + #\} #\; + :t/let "result" :t/= "add" #\( "five" :t/comma "ten" #\) #\; + :t/! :t/- :t// :t/* #\; + 5 :t/< 10 :t/> 5 #\; + :t/if #\( 5 :t/< 10 #\) #\{ + :t/return :t/true #\; + #\} :t/else #\{ + :t/return :t/false #\; + #\} + 10 :t/== 10 #\; + 10 :t/!= 9 #\; + :t/eof)) + +(eval-when () + (deftest (:lexer test-fail) + "abc gf 5 fn =+(){},;" + (:t/= :t/+ :t/lparen :t/rparen + :t/lbrace :t/rbrace :t/comma :t/semicolon :t/eof)) + + (deftest (:lexer test-fail-2) + "let abc x + 5;" + (:t/let "abc" :t/= "x" :t/+ 5 :t/eof))) |