File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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)
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)]
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
You can’t perform that action at this time.
0 commit comments