summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-03 03:17:45 -0400
committerbd <bdunahu@operationnull.com>2025-04-03 03:17:45 -0400
commit14d6dd6f18ef8a94da7def84b4c8eb39a37e309c (patch)
tree7d206e82418e5221872a099f46263a02e785e33a /t
parent4d8ffb6a29285f12d9ebd788727d633550510d7f (diff)
Allow lexing of immediates in different bases
Diffstat (limited to 't')
-rw-r--r--t/lex.lisp19
1 files changed, 19 insertions, 0 deletions
diff --git a/t/lex.lisp b/t/lex.lisp
index 40698f9..ab0ed99 100644
--- a/t/lex.lisp
+++ b/t/lex.lisp
@@ -52,12 +52,31 @@
(read-this "123456789"
(is (= (lex:read-token) 123456789))))
+(test read-token-immediate-binary
+ (read-this "0b00101010"
+ (is (= (lex:read-token) 42))))
+
+(test read-token-immediate-octal
+ (read-this "0o052"
+ (is (= (lex:read-token) 42))))
+
+(test read-token-immediate-hexadecimal
+ (read-this "0x200"
+ (is (= (lex:read-token) 512))))
+
(test read-token-immediate-invalid-immediate
(handler-case
(progn (read-this "0v0" (lex:read-token))
(fail))
(lex:invalid-immediate-or-keyword ())))
+;; do we want a custom error for this too?
+(test read-token-immediate-radix
+ (handler-case
+ (progn (read-this "0x" (lex:read-token))
+ (fail))
+ (sb-int:simple-parse-error ())))
+
(test read-token-keyword-single
(read-this "a"
(is (string= (lex:read-token) "a"))))