diff options
Diffstat (limited to 'src/gscc')
-rwxr-xr-x | src/gscc | 33 |
1 files changed, 18 insertions, 15 deletions
@@ -6,11 +6,11 @@ (use-modules (ice-9 getopt-long) (ice-9 popen) (ice-9 pretty-print) - (modules lexer lexer) - (modules parser parser) - (modules generator generator) - (modules tuple-generator tuple-generator) - (modules emitter emitter)) + (modules lexer driver) + (modules parser driver) + (modules tacky driver) + (modules generator driver) + (modules emitter driver)) (define version "v0.1.1") @@ -40,22 +40,25 @@ Options: (read-tokens)))) (close-input-port port) (when parse? - (let ((c-ast (p-program tokens))) + (let ((c-ast (tokens->ast tokens))) + (pretty-print c-ast) (when tack? - (let ((tacky-ast (t-program c-ast))) + (let ((tacky-ast (ast->tacky c-ast))) + (pretty-print tacky-ast) (when generate? - (let ((assembly-ast (g-program tacky-ast))) - (display tacky-ast) + (let ((assembly-ast (tacky->assembly tacky-ast))) + (pretty-print assembly-ast) (when write? - (let ((program (e-program assembly-ast)) + (let ((program (assembly->string assembly-ast)) (a-file (string-append dest ".s"))) (when (file-exists? a-file) (delete-file a-file)) - (let ((port (open-output-file a-file))) - (display program port) - (close-port port)) - (when (postprocess a-file dest) - (display (string-concatenate `("Postprocess reported success (wrote " ,dest ").\n")))))))))))))) + ;; (let ((port (open-output-file a-file))) + ;; (display program port) + ;; (close-port port)) + ;; (when (postprocess a-file dest) + ;; (display (string-concatenate `("Postprocess reported success (wrote " ,dest ").\n")))) + )))))))))) (define (preprocess file) "Returns an input port containing FILE processed with gcc." |