X-Git-Url: http://git.lukelau.me/?p=scheme.git;a=blobdiff_plain;f=main.scm;h=df8e656978b66349472e5a3599c12f5eb809f7f4;hp=ce9241ac11537abaf0766e6876e138b24645efd3;hb=5ea42a37be529974bff32b719bd91e004d1dfcd8;hpb=685089345e07943eaab2eec10208ba513ca537b2 diff --git a/main.scm b/main.scm index ce9241a..df8e656 100644 --- a/main.scm +++ b/main.scm @@ -1,9 +1,10 @@ (load "codegen.scm") +(load "platform.scm") ; returns (os filename) (define (parse-args) (define (parse-os x) - (if (null? x) 'darwin ; todo: replace this with the os + (if (null? x) host-os ; todo: replace this with the os ; it was compiled with (if (or (equal? (car x) "-t") @@ -27,8 +28,13 @@ (define target (car (parse-args))) (define file (cadr (parse-args))) +(define (read-prog port) + (if (port-input-empty? port) + '() + (cons (read) (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)