aboutsummaryrefslogtreecommitdiff
path: root/src/cljcc/driver.clj
diff options
context:
space:
mode:
authorShagun Agrawal <agrawalshagun07@gmail.com>2024-08-08 01:01:35 +0530
committerShagun Agrawal <agrawalshagun07@gmail.com>2024-08-08 01:01:35 +0530
commitb82a214687d0b0f95f98dbd5ba7fefd82012fb85 (patch)
treeeb6a604e6c983aa8b5d93b6ed822494e6ed4dad5 /src/cljcc/driver.clj
parent31afbc6b7393ea3a3682dd617cdd860ff28e9a0a (diff)
Add code emission, pass chapter 2 tests
Add generic code emitters Fix some minor bugs
Diffstat (limited to 'src/cljcc/driver.clj')
-rw-r--r--src/cljcc/driver.clj9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/cljcc/driver.clj b/src/cljcc/driver.clj
index 80e4096..b039ba4 100644
--- a/src/cljcc/driver.clj
+++ b/src/cljcc/driver.clj
@@ -3,6 +3,7 @@
[clojure.java.io :as io]
[cljcc.compiler :as c]
[cljcc.tacky :as t]
+ [cljcc.emit :as e]
[clojure.pprint :as pp]
[cljcc.log :as log]
[cljcc.util :refer [get-os handle-sh mac-aarch64? make-file-name]]
@@ -60,10 +61,12 @@
(let [preprocessed-file-path (make-file-name directory (remove-extension filename) "i")
file (io/file preprocessed-file-path)
source (slurp file)
- assembled-source (c/run-compile source)
+ assembly-ast (c/generate-assembly source)
+ assembly-output (e/emit assembly-ast)
out-file-path (make-file-name directory (remove-extension filename) "s")]
- (spit out-file-path assembled-source)
- (log/info (str "Succesfully generated assembly file.\n" assembled-source))))
+ (spit out-file-path assembly-output)
+ (log/info (str "Succesfully generated assembly ast.\n" assembly-ast))
+ (log/info (str "Succesfully generated assembly file.\n" assembly-output))))
(defn cleanup-step [directory filename]
(let [file-without-ext (remove-extension filename)]