summaryrefslogtreecommitdiff
path: root/src/gscc
diff options
context:
space:
mode:
Diffstat (limited to 'src/gscc')
-rwxr-xr-xsrc/gscc33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/gscc b/src/gscc
index 3a5c2ba..d00b116 100755
--- a/src/gscc
+++ b/src/gscc
@@ -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."