diff options
author | Eduardo Julian | 2015-03-22 00:59:50 -0400 |
---|---|---|
committer | Eduardo Julian | 2015-03-22 00:59:50 -0400 |
commit | a2cb7fba2b90cac1d40b409484ad8a0e8d189fd3 (patch) | |
tree | 3e1c17f443b2ea1b16db73e33e40e2fc09c3fee4 /src/lux/analyser/host.clj | |
parent | 6c5c857412c55aa1e015625afa6cdf163dea159b (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.clj | 20 |
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]]))) |