summaryrefslogtreecommitdiff
path: root/t/parse.lisp
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-09 20:25:57 -0400
committerbd <bdunahu@operationnull.com>2025-04-09 20:25:57 -0400
commitce80845b5cb5b473327e4e561342490576d83a90 (patch)
tree90f7189982384c2e4de2f58a3f2daac4adf80514 /t/parse.lisp
parent6ba1871c3825e17d33b96ffd3051239dfe18d61a (diff)
Successfully parse every instruction type
Diffstat (limited to 't/parse.lisp')
-rw-r--r--t/parse.lisp24
1 files changed, 14 insertions, 10 deletions
diff --git a/t/parse.lisp b/t/parse.lisp
index 77db380..a9de6db 100644
--- a/t/parse.lisp
+++ b/t/parse.lisp
@@ -37,22 +37,26 @@
(is (equal '(parse::r "CMP" (parse::rr 1) (parse::rr 5) (parse::rr 0))
(esrap:parse 'parse:instr "CMP $1 $5"))))
-;; (test esrap-i-type-1
-;; (is (equal (list 'parse::i "LOAD" (list 'parse::rr 8) (list 'parse::rr 9) (list 'parse::r 1))
-;; (esrap:parse 'parse:instr "LOAD $8 1($9)"))))
+(test esrap-i-type-1
+ (is (equal '(parse::i "LOAD" (parse::rr 8) (parse::rr 9) (parse::imm 1))
+ (esrap:parse 'parse:instr "LOAD $8 1($9)"))))
-;; (test esrap-i-type-2
-;; (is (equal (list 'parse::i "STORE" (list 'parse::rr 3) (list 'parse::rr 5) (list 'parse::rr 3))
-;; (esrap:parse 'parse:instr "STORE $5 3($3)"))))
+(test esrap-i-type-2
+ (is (equal '(parse::i "STORE" (parse::rr 3) (parse::rr 5) (parse::imm 3))
+ (esrap:parse 'parse:instr "STORE $5 3($3)"))))
-;; (test esrap-i-type-3
-;; (is (equal (list 'parse::i "ORI" (list 'parse::rr 5) (list 'parse::rr 4) (list 'parse::r 2))
-;; (esrap:parse 'parse:instr "ORI $5 $4 2"))))
+(test esrap-i-type-3
+ (is (equal '(parse::i "ORI" (parse::rr 5) (parse::rr 4) (parse::imm 2))
+ (esrap:parse 'parse:instr "ORI $5 $4 2"))))
+
+(test esrap-j-type-1
+ (is (equal '(parse::j "JMP" (parse::rr 3) (parse::imm 3))
+ (esrap:parse 'parse:instr "JMP 3($3)"))))
(test esrap-j-type-2
(is (equal '(parse::j "JRL" (parse::rr 0) (parse::l "FOO"))
(esrap:parse 'parse:instr "JRL FOO"))))
(test esrap-j-type-3
- (is (equal '(parse::j "PUSH" (parse::rr 1) 0)
+ (is (equal '(parse::j "PUSH" (parse::rr 1) (parse::imm 0))
(esrap:parse 'parse:instr "PUSH $1"))))