aboutsummaryrefslogtreecommitdiff
path: root/src/cljcc/driver.clj
diff options
context:
space:
mode:
authorShagun Agrawal <agrawalshagun07@gmail.com>2024-08-16 23:26:10 +0530
committerShagun Agrawal <agrawalshagun07@gmail.com>2024-08-16 23:26:10 +0530
commit05611820413a6f691da269e631f4359185416155 (patch)
treea9dda185ad32cf192866a83befe6843856ae63ad /src/cljcc/driver.clj
parentca4892ea62cfaca99f9174f58500457ea4a87354 (diff)
Switch to hand made parser, refactor asts to adjust change
Switch to hand made recursive descent parser. Remove instaparse from dependencies.
Diffstat (limited to 'src/cljcc/driver.clj')
-rw-r--r--src/cljcc/driver.clj10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/cljcc/driver.clj b/src/cljcc/driver.clj
index 780bd8d..65bc96a 100644
--- a/src/cljcc/driver.clj
+++ b/src/cljcc/driver.clj
@@ -52,10 +52,10 @@
(defn parser-step [directory filename]
(let [preprocessed-file-path (make-file-name directory (remove-extension filename) "i")
file (io/file preprocessed-file-path)
- source (slurp file)]
- (if (p/parseable? (p/parse source))
- (log/info "Input file is succesfully parsed.")
- (throw (Exception. "Failed during parsing")))))
+ source (slurp file)
+ ast (p/parse (l/lex source))]
+ (log/info "Input file is succesfully parsed.")
+ (pp/pprint ast)))
(defn lexer-step [directory filename]
(let [preprocessed-file-path (make-file-name directory (remove-extension filename) "i")
@@ -69,7 +69,7 @@
(let [preprocessed-file-path (make-file-name directory (remove-extension filename) "i")
file (io/file preprocessed-file-path)
source (slurp file)
- output (t/tacky-generate (p/parse source))]
+ output (t/tacky-generate (p/parse (l/lex source)))]
(log/info (str
"Successfully generated Tacky IR.\n"
(with-out-str (pp/pprint output))))))