From 9e2f13474246faebc0ab3126208b99acd715ec3c Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 11 Dec 2014 01:24:39 -0400 Subject: + Added an analysis phase. + Added a type-system. --- src/lang.clj | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src/lang.clj') diff --git a/src/lang.clj b/src/lang.clj index eb26b9cc8..1ca16a3d9 100644 --- a/src/lang.clj +++ b/src/lang.clj @@ -1,6 +1,8 @@ (ns lang (:require (lang [lexer :as &lexer] [parser :as &parser] + [type :as &type] + [analyser :as &analyser] [compiler :as &compiler]) :reload)) @@ -23,6 +25,31 @@ (&compiler/compile "test2") (write-file "test2.class")) + (->> (slurp "test2.lang") + &lexer/lex + &parser/parse + (&analyser/analyse "test2")) + + (let [source-code (slurp "test2.lang") + tokens (&lexer/lex source-code) + ;; _ (prn 'tokens tokens) + syntax (&parser/parse tokens) + ;; _ (prn 'syntax syntax) + ann-syntax (&analyser/analyse "test2" syntax) + _ (prn 'ann-syntax ann-syntax) + class-data (&compiler/compile "test2" syntax)] + (write-file "test2.class" class-data)) + + (let [source-code (slurp "test2.lang") + tokens (&lexer/lex source-code) + ;; _ (prn 'tokens tokens) + syntax (&parser/parse tokens) + ;; _ (prn 'syntax syntax) + ann-syntax (&analyser/analyse "test2" syntax) + _ (prn 'ann-syntax ann-syntax) + class-data (&compiler/compile "test2" ann-syntax)] + (write-file "test2.class" class-data)) + ;; TODO: Define functions as classes inheriting Function. ;; TODO: Add tuples. ;; TODO: Add let. @@ -33,9 +60,11 @@ ;; TODO: Add interpreter. ;; TODO: Add Java-interop. ;; TODO: Add signatures & structures. - ;; TODO: Add type-system. ;; TODO: Allow importing Java classes. ;; TODO: Allow using other modules. + ;; TODO: Add thunks. + ;; TODO: + ;; TODO: ;; TODO: ;; TODO: -- cgit v1.2.3