From b82a214687d0b0f95f98dbd5ba7fefd82012fb85 Mon Sep 17 00:00:00 2001 From: Shagun Agrawal Date: Thu, 8 Aug 2024 01:01:35 +0530 Subject: Add code emission, pass chapter 2 tests Add generic code emitters Fix some minor bugs --- src/cljcc/driver.clj | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/cljcc/driver.clj') 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)] -- cgit v1.2.3