aboutsummaryrefslogtreecommitdiff
path: root/src/lux/analyser/host.clj
diff options
context:
space:
mode:
authorEduardo Julian2015-03-22 00:59:50 -0400
committerEduardo Julian2015-03-22 00:59:50 -0400
commita2cb7fba2b90cac1d40b409484ad8a0e8d189fd3 (patch)
tree3e1c17f443b2ea1b16db73e33e40e2fc09c3fee4 /src/lux/analyser/host.clj
parent6c5c857412c55aa1e015625afa6cdf163dea159b (diff)
- Added code-cursors (file-name, line-number, column-number) as metadata on lexer nodes & parser nodes.
Diffstat (limited to 'src/lux/analyser/host.clj')
-rw-r--r--src/lux/analyser/host.clj20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/lux/analyser/host.clj b/src/lux/analyser/host.clj
index 999c5df8a..b8963f73f 100644
--- a/src/lux/analyser/host.clj
+++ b/src/lux/analyser/host.clj
@@ -12,7 +12,7 @@
;; [Utils]
(defn ^:private extract-ident [ident]
(matchv ::M/objects [ident]
- [["lux;Symbol" [_ ?ident]]]
+ [["lux;Meta" [_ ["lux;Symbol" [_ ?ident]]]]]
(return ?ident)
[_]
@@ -155,7 +155,9 @@
(defn analyse-jvm-class [analyse ?name ?super-class ?fields]
(exec [?fields (&/map% (fn [?field]
(matchv ::M/objects [?field]
- [["lux;Tuple" ["lux;Cons" [["lux;Symbol" ?class] ["lux;Cons" [["lux;Symbol" ?field-name] ["lux;Nil" _]]]]]]]
+ [["lux;Meta" [_ ["lux;Tuple" ["lux;Cons" [["lux;Meta" [_ ["lux;Symbol" ?class]]]
+ ["lux;Cons" [["lux;Meta" [_ ["lux;Symbol" ?field-name]]]
+ ["lux;Nil" _]]]]]]]]]
(return [?class ?field-name])
[_]
@@ -172,13 +174,13 @@
(exec [=members (&/map% (fn [member]
;; (prn 'analyse-jvm-interface (&/show-ast member))
(matchv ::M/objects [member]
- [["lux;Form" ["lux;Cons" [["lux;Symbol" [_ ":"]]
- ["lux;Cons" [["lux;Symbol" [_ ?member-name]]
- ["lux;Cons" [["lux;Form" ["lux;Cons" [["lux;Symbol" [_ "->"]]
- ["lux;Cons" [["lux;Tuple" ?inputs]
- ["lux;Cons" [["lux;Symbol" [_ ?output]]
- ["lux;Nil" _]]]]]]]]
- ["lux;Nil" _]]]]]]]]]
+ [["lux;Meta" [_ ["lux;Form" ["lux;Cons" [["lux;Meta" [_ ["lux;Symbol" [_ ":"]]]]
+ ["lux;Cons" [["lux;Meta" [_ ["lux;Symbol" [_ ?member-name]]]]
+ ["lux;Cons" [["lux;Meta" [_ ["lux;Form" ["lux;Cons" [["lux;Meta" [_ ["lux;Symbol" [_ "->"]]]]
+ ["lux;Cons" [["lux;Meta" [_ ["lux;Tuple" ?inputs]]]
+ ["lux;Cons" [["lux;Meta" [_ ["lux;Symbol" [_ ?output]]]]
+ ["lux;Nil" _]]]]]]]]]]
+ ["lux;Nil" _]]]]]]]]]]]
(do ;; (prn 'analyse-jvm-interface ?member-name ?inputs ?output)
(exec [?inputs (&/map% extract-ident ?inputs)]
(return [?member-name [?inputs ?output]])))