aboutsummaryrefslogtreecommitdiff
path: root/src/lux/compiler.clj
diff options
context:
space:
mode:
authorEduardo Julian2015-05-01 19:01:20 -0400
committerEduardo Julian2015-05-01 19:01:20 -0400
commita31500f27a29c34877e94188fad1abac3fefb576 (patch)
treec3f1a983b2764747de4ca1d1db36ac8b486de369 /src/lux/compiler.clj
parentf3cc638b9dd31d06b9cf3e51dff8fb6352f22c7c (diff)
- Added the lux;seed slot to the compiler state.
- Macro declarations are now handled at the compiler-phase instead of the analyser phase to avoid the posibility of trying to declare a yet-uncompiled macro (due to the macro-expansion of defmacro). - Added a makeshift implementation of existential types on top of BoundT (must migrate to a more permanent implementation).
Diffstat (limited to '')
-rw-r--r--src/lux/compiler.clj3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lux/compiler.clj b/src/lux/compiler.clj
index 6a9cc58c6..e6879f4da 100644
--- a/src/lux/compiler.clj
+++ b/src/lux/compiler.clj
@@ -317,6 +317,9 @@
(matchv ::M/objects [?form]
[["def" [?name ?body ?def-data]]]
(&&lux/compile-def compile-expression ?name ?body ?def-data)
+
+ [["declare-macro" [?module ?name]]]
+ (&&lux/compile-declare-macro compile-expression ?module ?name)
[["jvm-interface" [?package ?name ?methods]]]
(&&host/compile-jvm-interface compile-expression ?package ?name ?methods)