summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-11 00:19:36 -0400
committerbd <bdunahu@operationnull.com>2025-04-11 00:19:36 -0400
commit57bf0a940b3d1fdbe13684f545f0ce8707cdcd35 (patch)
treee33f252030e580cc7e60df69f413aa5a19ee4b3e /t
parentc02164cfee4d8c3d3eca76fa8cc60b6ca60c2ca0 (diff)
Add comments to parsing
Diffstat (limited to 't')
-rw-r--r--t/parse.lisp18
1 files changed, 15 insertions, 3 deletions
diff --git a/t/parse.lisp b/t/parse.lisp
index bd5ee97..993447f 100644
--- a/t/parse.lisp
+++ b/t/parse.lisp
@@ -78,6 +78,18 @@
(esrap:parse 'parse:str->ast (format nil ".DATA~%~%.TEXT~t~%JMP 3($3)~t
JRL FOO~t~%PUSH $5~%")))))
+(test esrap-instr-type-comments
+ (is (equal
+ '(emit::p
+ (emit::d)
+ (emit::x
+ (emit::j "JMP" (emit::rr 3) (emit::imm 3))
+ (emit::j "JRL" (emit::rr 0) (emit::l "FOO" 17))
+ (emit::j "PUSH" (emit::rr 5) (emit::imm 0))))
+ (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT;; dot dot dot
+~tJMP 3($3) ;; this does things
+~tJRL FOO~%~tPUSH $5~%")))))
+
(test esrap-data-singleton
(is (equal
'(emit::p
@@ -86,7 +98,7 @@ JRL FOO~t~%PUSH $5~%")))))
(emit::x))
(esrap:parse 'parse:str->ast (format nil ".DATA~%~tA 1~%.TEXT~%")))))
-(test esrap-data-loadedp
+(test esrap-data-loaded
(is (equal
'(emit::p
(emit::d
@@ -131,11 +143,11 @@ H 3 5~%.TEXT~%")))))
(emit::i "ADDI" (emit::rr 0) (emit::rr 5) (emit::imm (emit::var "S")))
(emit::i "ADDI" (emit::rr 0) (emit::rr 10) (emit::imm (emit::var "ARR")))
(emit::i "ADDI" (emit::rr 0) (emit::rr 6) (emit::imm (emit::var "I")))
- (emit::j "JRL" (emit::rr 0) (emit::l "CMP" 20))
+ (emit::j "JRL" (emit::rr 0) (emit::l "CMP" 23))
(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" 24))))
+ (emit::j "BGT" (emit::rr 0) (emit::l "L" 27))))
(esrap:parse 'parse:str->ast (format nil "
.DATA
ARR 1 2 3 4