diff options
author | bd <bdunahu@operationnull.com> | 2025-04-10 21:56:36 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-04-10 21:56:36 -0400 |
commit | 42ae34d6f2ee0f0eb10e6ecc1e914c5d4753a184 (patch) | |
tree | 5c97c17528ee08641588800915805ff4aa80b332 /t/parse.lisp | |
parent | 0f0dd1012d6b1768eb91f1b35e8a7006d09414ab (diff) |
Allow all integers to be negative
Diffstat (limited to 't/parse.lisp')
-rw-r--r-- | t/parse.lisp | 13 |
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 |