diff options
| author | Shagun Agrawal <agrawalshagun07@gmail.com> | 2024-08-08 01:01:35 +0530 |
|---|---|---|
| committer | Shagun Agrawal <agrawalshagun07@gmail.com> | 2024-08-08 01:01:35 +0530 |
| commit | b82a214687d0b0f95f98dbd5ba7fefd82012fb85 (patch) | |
| tree | eb6a604e6c983aa8b5d93b6ed822494e6ed4dad5 /src/cljcc/driver.clj | |
| parent | 31afbc6b7393ea3a3682dd617cdd860ff28e9a0a (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.clj | 9 |
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)] |
