File tree Expand file tree Collapse file tree 5 files changed +38
-1
lines changed Expand file tree Collapse file tree 5 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 1
1
#lang racket
2
- (provide compile-op0 compile-op1 compile-op2 compile-op3 pad-stack)
2
+ (provide compile-op0 compile-op1 compile-op2 compile-op3 pad-stack assert-cons )
3
3
(require "ast.rkt " )
4
4
(require "types.rkt " )
5
5
(require a86/ast)
Original file line number Diff line number Diff line change
1
+ #lang racket
2
+ (provide main)
3
+ (require "parse.rkt " )
4
+ (require "compile.rkt " )
5
+ (require "read-all.rkt " )
6
+ (require a86/printer)
7
+
8
+ ;; -> Void
9
+ ;; Compile contents of stdin,
10
+ ;; emit asm code on stdout
11
+ (define (main)
12
+ (read-line) ; ignore #lang racket line
13
+ (asm-display (compile (apply parse (read-all)))))
14
+
Original file line number Diff line number Diff line change 172
172
(seq (Lea rax r)
173
173
(Push rax)
174
174
(compile-es es (cons #f c))
175
+ ;; TODO: communicate argument count to called function
175
176
(Jmp (symbol->label f))
176
177
(Label r))))
177
178
Original file line number Diff line number Diff line change
1
+ #lang racket
2
+ (provide main)
3
+ (require "parse.rkt " )
4
+ (require "interp.rkt " )
5
+ (require "read-all.rkt " )
6
+
7
+ ;; -> Void
8
+ ;; Parse and interpret contents of stdin,
9
+ ;; print result on stdout
10
+ (define (main)
11
+ (read-line) ; ignore #lang racket line
12
+ (println (interp (apply parse (read-all)))))
13
+
Original file line number Diff line number Diff line change
1
+ #lang racket
2
+ (provide read-all)
3
+ ;; read all s-expression until eof
4
+ (define (read-all)
5
+ (let ((r (read)))
6
+ (if (eof-object? r)
7
+ '()
8
+ (cons r (read-all)))))
9
+
You can’t perform that action at this time.
0 commit comments