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 11#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 )
33(require "ast.rkt " )
44(require "types.rkt " )
55(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 172172 (seq (Lea rax r)
173173 (Push rax)
174174 (compile-es es (cons #f c))
175+ ;; TODO: communicate argument count to called function
175176 (Jmp (symbol->label f))
176177 (Label r))))
177178
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