summaryrefslogtreecommitdiff
path: root/t/parse.lisp
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-10 21:56:36 -0400
committerbd <bdunahu@operationnull.com>2025-04-10 21:56:36 -0400
commit42ae34d6f2ee0f0eb10e6ecc1e914c5d4753a184 (patch)
tree5c97c17528ee08641588800915805ff4aa80b332 /t/parse.lisp
parent0f0dd1012d6b1768eb91f1b35e8a7006d09414ab (diff)
Allow all integers to be negative
Diffstat (limited to 't/parse.lisp')
-rw-r--r--t/parse.lisp13
1 files changed, 11 insertions, 2 deletions
diff --git a/t/parse.lisp b/t/parse.lisp
index 8f636e5..f82c98c 100644
--- a/t/parse.lisp
+++ b/t/parse.lisp
@@ -113,6 +113,15 @@ JRL FOO~t~%PUSH $5~%")))))
(esrap:parse 'parse:str->ast (format nil "~%~t.DATA~t~%F 5 6 7 8~t~%G 4
H 3 5~%.TEXT~%")))))
+(test esrap-negative-ints
+ (is (equal
+ '(emit::p
+ (emit::d
+ -1)
+ (emit::x
+ (emit::i "LOADV" (emit::rr -8) (emit::rr -3) (emit::imm -3))))
+ (esrap:parse 'parse:str->ast (format nil ".DATA~%~tm -1~%.TEXT~%~tLOADV $-8 -3($-3)~%")))))
+
(test esrap-data-full
(is (equal
'(emit::p
@@ -122,11 +131,11 @@ H 3 5~%.TEXT~%")))))
(emit::i "LOAD" (emit::rr 5) (emit::rr 0) (emit::var "S"))
(emit::i "LOAD" (emit::rr 10) (emit::rr 0) (emit::var "ARR"))
(emit::i "LOAD" (emit::rr 6) (emit::rr 0) (emit::var "I"))
- (emit::j "JRL" (emit::rr 0) (emit::l "CMP" 19))
+ (emit::j "JRL" (emit::rr 0) (emit::l "CMP" 20))
(emit::r "ADD" (emit::rr 10) (emit::rr 6) (emit::rr 9))
(emit::i "ADDI" (emit::rr 6) (emit::rr 6) (emit::imm 1))
(emit::r "CMP" (emit::rr 6) (emit::rr 5) (emit::rr 0))
- (emit::j "BGT" (emit::rr 0) (emit::l "L" 23))))
+ (emit::j "BGT" (emit::rr 0) (emit::l "L" 24))))
(esrap:parse 'parse:str->ast (format nil "
.DATA
ARR 1 2 3 4