+#!/usr/bin/scheme --script
+
(load "codegen.scm")
(load "platform.scm")
(or (equal? (car x) "-t")
(equal? (car x) "--target"))
(case (cadr x)
- ("darwin" 'darwin)
- ("linux" 'linux)
+ (("darwin") 'darwin)
+ (("linux") 'linux)
(else (error #f "unknown os")))
(parse-os (cdr x)))))
(define (parse-file x)
(define target (car (parse-args)))
(define file (cadr (parse-args)))
+ ; reads in all datums until eof
+(define (read-prog port)
+ (let ([x (read port)])
+ (if (eof-object? x)
+ '()
+ (cons x (read-prog port)))))
+
(compile-to-binary
(if (eqv? file 'stdin)
- (read)
- (call-with-input-file file read))
+ (read-prog (current-input-port))
+ (call-with-input-file file read-prog))
"a.out" target)