Skip to content

Commit 75d723b

Browse files
committed
Fix up representation in refactored Fraud compiler.
1 parent b525eca commit 75d723b

1 file changed

Lines changed: 6 additions & 8 deletions

File tree

www/notes/fraud/compile-refactor.rkt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33

44
;; type CEnv = [Listof Variable]
55

6-
(define imm-shift 3)
6+
(define imm-shift 1)
77
(define imm-type-mask (sub1 (arithmetic-shift 1 imm-shift)))
8-
(define imm-type-int #b000)
9-
(define imm-type-true #b001)
10-
(define imm-type-false #b010)
11-
(define imm-type-empty #b011)
12-
(define imm-type-char #b100)
8+
(define imm-type-int #b0)
9+
(define imm-type-true #b11)
10+
(define imm-type-false #b01)
1311

1412
;; Expr -> Asm
1513
(define (compile e)
@@ -26,7 +24,7 @@
2624
(match e
2725
[(? integer? i) (compile-integer i)]
2826
[(? boolean? b) (compile-boolean b)]
29-
[(? symbol? x) (compile-variable x c)]
27+
[(? symbol? x) (compile-variable x c)]
3028
[`(add1 ,e0) (compile-add1 e0 c)]
3129
[`(sub1 ,e0) (compile-sub1 e0 c)]
3230
[`(zero? ,e0) (compile-zero? e0 c)]
@@ -102,7 +100,7 @@
102100
(match cenv
103101
['() (error "undefined variable:" x)]
104102
[(cons y cenv)
105-
(match (symbol=? x y)
103+
(match (eq? x y)
106104
[#t (length cenv)]
107105
[#f (lookup x cenv)])]))
108106

0 commit comments

Comments
 (0)