aboutsummaryrefslogtreecommitdiff
path: root/new-luxc
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc')
-rw-r--r--new-luxc/source/luxc/io.jvm.lux3
-rw-r--r--new-luxc/source/luxc/lang.lux (renamed from new-luxc/source/luxc/base.lux)0
-rw-r--r--new-luxc/source/luxc/lang/analysis/case.lux8
-rw-r--r--new-luxc/source/luxc/lang/analysis/case/coverage.lux2
-rw-r--r--new-luxc/source/luxc/lang/analysis/common.lux2
-rw-r--r--new-luxc/source/luxc/lang/analysis/expression.lux12
-rw-r--r--new-luxc/source/luxc/lang/analysis/function.lux8
-rw-r--r--new-luxc/source/luxc/lang/analysis/inference.lux2
-rw-r--r--new-luxc/source/luxc/lang/analysis/primitive.lux2
-rw-r--r--new-luxc/source/luxc/lang/analysis/procedure.lux2
-rw-r--r--new-luxc/source/luxc/lang/analysis/procedure/common.lux2
-rw-r--r--new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux6
-rw-r--r--new-luxc/source/luxc/lang/analysis/reference.lux8
-rw-r--r--new-luxc/source/luxc/lang/analysis/structure.lux12
-rw-r--r--new-luxc/source/luxc/lang/analysis/type.lux2
-rw-r--r--new-luxc/source/luxc/lang/eval.lux (renamed from new-luxc/source/luxc/eval.lux)10
-rw-r--r--new-luxc/source/luxc/lang/host.jvm.lux (renamed from new-luxc/source/luxc/host.jvm.lux)2
-rw-r--r--new-luxc/source/luxc/lang/host/jvm.lux (renamed from new-luxc/source/luxc/host/jvm.lux)0
-rw-r--r--new-luxc/source/luxc/lang/host/jvm/def.lux (renamed from new-luxc/source/luxc/host/jvm/def.lux)0
-rw-r--r--new-luxc/source/luxc/lang/host/jvm/inst.lux (renamed from new-luxc/source/luxc/host/jvm/inst.lux)0
-rw-r--r--new-luxc/source/luxc/lang/host/jvm/type.lux (renamed from new-luxc/source/luxc/host/jvm/type.lux)0
-rw-r--r--new-luxc/source/luxc/lang/host/macro.lux (renamed from new-luxc/source/luxc/host/macro.lux)6
-rw-r--r--new-luxc/source/luxc/lang/module.lux (renamed from new-luxc/source/luxc/module.lux)4
-rw-r--r--new-luxc/source/luxc/lang/scope.lux (renamed from new-luxc/source/luxc/scope.lux)2
-rw-r--r--new-luxc/source/luxc/lang/synthesis/expression.lux3
-rw-r--r--new-luxc/source/luxc/lang/translation.lux42
-rw-r--r--new-luxc/source/luxc/lang/translation/case.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/common.jvm.lux10
-rw-r--r--new-luxc/source/luxc/lang/translation/eval.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/expression.jvm.lux10
-rw-r--r--new-luxc/source/luxc/lang/translation/function.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/loop.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/primitive.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/procedure.jvm.lux6
-rw-r--r--new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/reference.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/runtime.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/statement.jvm.lux16
-rw-r--r--new-luxc/source/luxc/lang/translation/structure.jvm.lux14
40 files changed, 154 insertions, 160 deletions
diff --git a/new-luxc/source/luxc/io.jvm.lux b/new-luxc/source/luxc/io.jvm.lux
index 599fde359..a4049de3a 100644
--- a/new-luxc/source/luxc/io.jvm.lux
+++ b/new-luxc/source/luxc/io.jvm.lux
@@ -11,8 +11,7 @@
[meta]
[host]
(world [file #+ File]
- [blob #+ Blob]))
- (luxc ["&" base]))
+ [blob #+ Blob])))
(host;import java.lang.String
(new [(Array byte)]))
diff --git a/new-luxc/source/luxc/base.lux b/new-luxc/source/luxc/lang.lux
index 373c6b12b..373c6b12b 100644
--- a/new-luxc/source/luxc/base.lux
+++ b/new-luxc/source/luxc/lang.lux
diff --git a/new-luxc/source/luxc/lang/analysis/case.lux b/new-luxc/source/luxc/lang/analysis/case.lux
index ee4d4fcfa..ff328b9de 100644
--- a/new-luxc/source/luxc/lang/analysis/case.lux
+++ b/new-luxc/source/luxc/lang/analysis/case.lux
@@ -15,12 +15,12 @@
(meta [code]
[type]
(type ["tc" check])))
- (luxc ["&" base]
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang ["&;" scope]
+ ["la" analysis]
(analysis [";A" common]
[";A" structure]
- (case [";A" coverage])))
- ["&;" scope]))
+ (case [";A" coverage])))))
(exception: #export Cannot-Match-Type-With-Pattern)
(exception: #export Sum-Type-Has-No-Case)
diff --git a/new-luxc/source/luxc/lang/analysis/case/coverage.lux b/new-luxc/source/luxc/lang/analysis/case/coverage.lux
index 554aea1a8..c41cfb2a4 100644
--- a/new-luxc/source/luxc/lang/analysis/case/coverage.lux
+++ b/new-luxc/source/luxc/lang/analysis/case/coverage.lux
@@ -10,7 +10,7 @@
(coll [list "list/" Fold<List>]
[dict #+ Dict]))
[meta "meta/" Monad<Meta>])
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang ["la" analysis])))
## The coverage of a pattern-matching expression summarizes how well
diff --git a/new-luxc/source/luxc/lang/analysis/common.lux b/new-luxc/source/luxc/lang/analysis/common.lux
index 968ebd2ea..5e618d64c 100644
--- a/new-luxc/source/luxc/lang/analysis/common.lux
+++ b/new-luxc/source/luxc/lang/analysis/common.lux
@@ -7,7 +7,7 @@
[meta]
(meta [type]
(type ["tc" check])))
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang analysis)))
(def: #export (with-unknown-type action)
diff --git a/new-luxc/source/luxc/lang/analysis/expression.lux b/new-luxc/source/luxc/lang/analysis/expression.lux
index 248248010..afc347248 100644
--- a/new-luxc/source/luxc/lang/analysis/expression.lux
+++ b/new-luxc/source/luxc/lang/analysis/expression.lux
@@ -9,12 +9,12 @@
(meta [type]
(type ["tc" check]))
[host])
- (luxc ["&" base]
- [";L" host]
- (host [";H" macro])
- (lang ["la" analysis]
- (translation [";T" common]))
- ["&;" module])
+ (luxc ["&" lang]
+ (lang ["&;" module]
+ [";L" host]
+ (host [";H" macro])
+ ["la" analysis]
+ (translation [";T" common])))
(.. [";A" common]
[";A" function]
[";A" primitive]
diff --git a/new-luxc/source/luxc/lang/analysis/function.lux b/new-luxc/source/luxc/lang/analysis/function.lux
index 6a4a33e48..5403026cb 100644
--- a/new-luxc/source/luxc/lang/analysis/function.lux
+++ b/new-luxc/source/luxc/lang/analysis/function.lux
@@ -10,12 +10,12 @@
(meta [code]
[type]
(type ["tc" check])))
- (luxc ["&" base]
- (lang ["la" analysis #+ Analysis]
+ (luxc ["&" lang]
+ (lang ["&;" scope]
+ ["la" analysis #+ Analysis]
(analysis ["&;" common]
["&;" inference])
- [";L" variable #+ Variable])
- ["&;" scope]))
+ [";L" variable #+ Variable])))
(exception: #export Invalid-Function-Type)
(exception: #export Cannot-Apply-Function)
diff --git a/new-luxc/source/luxc/lang/analysis/inference.lux b/new-luxc/source/luxc/lang/analysis/inference.lux
index 8b04ac2b7..080a6c620 100644
--- a/new-luxc/source/luxc/lang/analysis/inference.lux
+++ b/new-luxc/source/luxc/lang/analysis/inference.lux
@@ -9,7 +9,7 @@
[meta "meta/" Monad<Meta>]
(meta [type]
(type ["tc" check])))
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang ["la" analysis #+ Analysis]
(analysis ["&;" common]))))
diff --git a/new-luxc/source/luxc/lang/analysis/primitive.lux b/new-luxc/source/luxc/lang/analysis/primitive.lux
index bb1762f46..792d607c3 100644
--- a/new-luxc/source/luxc/lang/analysis/primitive.lux
+++ b/new-luxc/source/luxc/lang/analysis/primitive.lux
@@ -4,7 +4,7 @@
[meta]
(meta [code]
(type ["tc" check])))
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang ["la" analysis #+ Analysis])))
## [Analysers]
diff --git a/new-luxc/source/luxc/lang/analysis/procedure.lux b/new-luxc/source/luxc/lang/analysis/procedure.lux
index 8ab868036..23e1a102d 100644
--- a/new-luxc/source/luxc/lang/analysis/procedure.lux
+++ b/new-luxc/source/luxc/lang/analysis/procedure.lux
@@ -6,7 +6,7 @@
[text]
text/format
(coll [dict])))
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang ["la" analysis]))
(. ["./;" common]
["./;" host]))
diff --git a/new-luxc/source/luxc/lang/analysis/procedure/common.lux b/new-luxc/source/luxc/lang/analysis/procedure/common.lux
index f5756f35b..be77e643c 100644
--- a/new-luxc/source/luxc/lang/analysis/procedure/common.lux
+++ b/new-luxc/source/luxc/lang/analysis/procedure/common.lux
@@ -12,7 +12,7 @@
(meta [code]
(type ["tc" check]))
[io])
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang ["la" analysis]
(analysis ["&;" common]
[";A" function]
diff --git a/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux b/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux
index cd5fdc7bb..c6a456441 100644
--- a/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux
+++ b/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux
@@ -20,9 +20,9 @@
[type]
(type ["tc" check]))
[host])
- (luxc ["&" base]
- ["&;" host]
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang ["&;" host]
+ ["la" analysis]
(analysis ["&;" common]
[";A" inference])))
["@" ../common]
diff --git a/new-luxc/source/luxc/lang/analysis/reference.lux b/new-luxc/source/luxc/lang/analysis/reference.lux
index ef02919f4..6ba0325df 100644
--- a/new-luxc/source/luxc/lang/analysis/reference.lux
+++ b/new-luxc/source/luxc/lang/analysis/reference.lux
@@ -4,10 +4,10 @@
[meta]
(meta [code]
(type ["tc" check])))
- (luxc ["&" base]
- (lang ["la" analysis #+ Analysis]
- [";L" variable #+ Variable])
- ["&;" scope]))
+ (luxc ["&" lang]
+ (lang ["&;" scope]
+ ["la" analysis #+ Analysis]
+ [";L" variable #+ Variable])))
## [Analysers]
(def: (analyse-definition def-name)
diff --git a/new-luxc/source/luxc/lang/analysis/structure.lux b/new-luxc/source/luxc/lang/analysis/structure.lux
index d2107c640..3048d4a4e 100644
--- a/new-luxc/source/luxc/lang/analysis/structure.lux
+++ b/new-luxc/source/luxc/lang/analysis/structure.lux
@@ -13,12 +13,12 @@
(meta [code]
[type]
(type ["tc" check])))
- (luxc ["&" base]
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang ["&;" scope]
+ ["&;" module]
+ ["la" analysis]
(analysis ["&;" common]
- ["&;" inference]))
- ["&;" module]
- ["&;" scope]))
+ ["&;" inference]))))
(exception: #export Not-Variant-Type)
(exception: #export Not-Tuple-Type)
@@ -156,7 +156,7 @@
(do @
[g!tail (meta;gensym "tail")]
(&;with-expected-type tailT
- (analyse (` ((~' _lux_case) [(~@ tailC)]
+ (analyse (` ("lux case" [(~@ tailC)]
(~ g!tail)
(~ g!tail))))))
))))
diff --git a/new-luxc/source/luxc/lang/analysis/type.lux b/new-luxc/source/luxc/lang/analysis/type.lux
index 89b25334f..4184dd0c0 100644
--- a/new-luxc/source/luxc/lang/analysis/type.lux
+++ b/new-luxc/source/luxc/lang/analysis/type.lux
@@ -3,7 +3,7 @@
(lux (control monad)
[meta]
(meta (type ["tc" check])))
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang ["la" analysis #+ Analysis])))
## These 2 analysers are somewhat special, since they require the
diff --git a/new-luxc/source/luxc/eval.lux b/new-luxc/source/luxc/lang/eval.lux
index 6431b59d6..20c3acaeb 100644
--- a/new-luxc/source/luxc/eval.lux
+++ b/new-luxc/source/luxc/lang/eval.lux
@@ -2,16 +2,16 @@
lux
(lux (control [monad #+ do])
[meta])
- (luxc (lang (analysis [";A" expression])
+ (luxc ["&" lang]
+ (lang (analysis [";A" expression])
(synthesis [";S" expression])
(translation [";T" expression]
- [";T" eval])))
- [../base])
+ [";T" eval]))))
(def: #export (eval type exprC)
- ../base;Eval
+ &;Eval
(do meta;Monad<Meta>
- [exprA (../base;with-expected-type type
+ [exprA (&;with-expected-type type
(expressionA;analyser eval exprC))
#let [exprS (expressionS;synthesize exprA)]
exprI (expressionT;translate exprS)]
diff --git a/new-luxc/source/luxc/host.jvm.lux b/new-luxc/source/luxc/lang/host.jvm.lux
index e8dc4e17a..ae1d29387 100644
--- a/new-luxc/source/luxc/host.jvm.lux
+++ b/new-luxc/source/luxc/lang/host.jvm.lux
@@ -12,7 +12,7 @@
[meta #+ Monad<Meta>]
[host #+ do-to object]
[io])
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang [";L" variable #+ Register]
(translation [";T" common]))))
diff --git a/new-luxc/source/luxc/host/jvm.lux b/new-luxc/source/luxc/lang/host/jvm.lux
index 24d4a9ea9..24d4a9ea9 100644
--- a/new-luxc/source/luxc/host/jvm.lux
+++ b/new-luxc/source/luxc/lang/host/jvm.lux
diff --git a/new-luxc/source/luxc/host/jvm/def.lux b/new-luxc/source/luxc/lang/host/jvm/def.lux
index 60009fb5c..60009fb5c 100644
--- a/new-luxc/source/luxc/host/jvm/def.lux
+++ b/new-luxc/source/luxc/lang/host/jvm/def.lux
diff --git a/new-luxc/source/luxc/host/jvm/inst.lux b/new-luxc/source/luxc/lang/host/jvm/inst.lux
index 37ab75020..37ab75020 100644
--- a/new-luxc/source/luxc/host/jvm/inst.lux
+++ b/new-luxc/source/luxc/lang/host/jvm/inst.lux
diff --git a/new-luxc/source/luxc/host/jvm/type.lux b/new-luxc/source/luxc/lang/host/jvm/type.lux
index 3825d443b..3825d443b 100644
--- a/new-luxc/source/luxc/host/jvm/type.lux
+++ b/new-luxc/source/luxc/lang/host/jvm/type.lux
diff --git a/new-luxc/source/luxc/host/macro.lux b/new-luxc/source/luxc/lang/host/macro.lux
index 1a3152222..01f8c3bdb 100644
--- a/new-luxc/source/luxc/host/macro.lux
+++ b/new-luxc/source/luxc/lang/host/macro.lux
@@ -4,8 +4,8 @@
(data ["e" error])
[meta]
[host])
- (luxc [";L" host]
- (lang (translation [";T" common]))))
+ (luxc (lang (translation [";T" common])))
+ [..])
(for {"JVM" (as-is (host;import java.lang.reflect.Method
(invoke [Object (Array Object)] #try Object))
@@ -23,7 +23,7 @@
(def: #export (expand macro inputs)
(-> Macro (List Code) (Meta (List Code)))
(do meta;Monad<Meta>
- [class (commonT;load-class hostL;function-class)]
+ [class (commonT;load-class ..;function-class)]
(function [compiler]
(do e;Monad<Error>
[apply-method (Class.getMethod ["apply" _apply-args] class)
diff --git a/new-luxc/source/luxc/module.lux b/new-luxc/source/luxc/lang/module.lux
index 7b60af8f2..fba337cc3 100644
--- a/new-luxc/source/luxc/module.lux
+++ b/new-luxc/source/luxc/lang/module.lux
@@ -8,8 +8,8 @@
(coll [list "list/" Fold<List> Functor<List>]))
[meta]
(meta [code]))
- (luxc ["&" base]
- ["&;" scope]))
+ (luxc ["&" lang]
+ (lang ["&;" scope])))
(exception: #export Unknown-Module)
(exception: #export Cannot-Declare-Tag-Twice)
diff --git a/new-luxc/source/luxc/scope.lux b/new-luxc/source/luxc/lang/scope.lux
index 165399c8f..435b8ef61 100644
--- a/new-luxc/source/luxc/scope.lux
+++ b/new-luxc/source/luxc/lang/scope.lux
@@ -8,7 +8,7 @@
["e" error]
(coll [list "list/" Functor<List> Fold<List> Monoid<List>]))
[meta])
- (luxc ["&" base]
+ (luxc ["&" lang]
(lang [";L" variable #+ Variable])))
(type: Locals (Bindings Text [Type Nat]))
diff --git a/new-luxc/source/luxc/lang/synthesis/expression.lux b/new-luxc/source/luxc/lang/synthesis/expression.lux
index 30704a2d2..4571a8875 100644
--- a/new-luxc/source/luxc/lang/synthesis/expression.lux
+++ b/new-luxc/source/luxc/lang/synthesis/expression.lux
@@ -10,8 +10,7 @@
[dict #+ Dict]))
(meta [code]
["s" syntax]))
- (luxc ["&" base]
- (lang ["la" analysis]
+ (luxc (lang ["la" analysis]
["ls" synthesis]
(synthesis [";S" case]
[";S" function]
diff --git a/new-luxc/source/luxc/lang/translation.lux b/new-luxc/source/luxc/lang/translation.lux
index 5b11a8e39..85eed9ba1 100644
--- a/new-luxc/source/luxc/lang/translation.lux
+++ b/new-luxc/source/luxc/lang/translation.lux
@@ -12,14 +12,13 @@
[host]
[io]
(world [file #+ File]))
- (luxc ["&" base]
- [";L" host]
- (host [";H" macro]
- ["$" jvm])
+ (luxc ["&" lang]
["&;" io]
- ["&;" module]
- ["&;" eval]
- (lang ["&;" syntax]
+ (lang [";L" module]
+ [";L" host]
+ (host [";H" macro]
+ ["$" jvm])
+ ["&;" syntax]
(analysis [";A" expression]
[";A" common])
(synthesis [";S" expression])
@@ -27,7 +26,8 @@
[";T" statement]
[";T" common]
[";T" expression]
- [";T" eval]))
+ [";T" eval])
+ ["&;" eval])
))
(def: analyse
@@ -160,7 +160,7 @@
[#let [init-cursor [file-name +1 +0]]
output (&;with-source-code [init-cursor +0 source-code]
action)
- _ (&module;flag-compiled! module-name)]
+ _ (moduleL;flag-compiled! module-name)]
(wrap output)))
(def: (parse current-module)
@@ -174,15 +174,15 @@
(#e;Success [(set@ #;source source' compiler)
output]))))
-(def: (translate-module source-dirs module-name target-dir compiler)
- (-> (List File) Text File Compiler (T;Task Compiler))
+(def: (translate-module source-dirs target-dir module-name compiler)
+ (-> (List File) File Text Compiler (T;Task Compiler))
(do T;Monad<Task>
[_ (&io;prepare-module target-dir module-name)
[file-name file-content] (&io;read-module source-dirs module-name)
#let [module-hash (text/hash file-content)]]
(case (meta;run' compiler
(do meta;Monad<Meta>
- [[_ artifacts _] (&module;with-module module-hash module-name
+ [[_ artifacts _] (moduleL;with-module module-hash module-name
(commonT;with-artifacts
(with-active-compilation [module-name
file-name
@@ -193,14 +193,10 @@
#let [[cursor _] code]]
(&;with-cursor cursor
(translate code)))))))]
- (wrap artifacts)
- ## (&module;translate-descriptor module-name)
- ))
- (#e;Success [compiler artifacts ## module-descriptor
- ])
+ (wrap artifacts)))
+ (#e;Success [compiler artifacts])
(do @
- [## _ (&io;write-module module-name module-descriptor)
- _ (monad;map @ (function [[class-name class-bytecode]]
+ [_ (monad;map @ (function [[class-name class-bytecode]]
(&io;write-file target-dir class-name class-bytecode))
(dict;entries artifacts))]
(wrap compiler))
@@ -236,8 +232,8 @@
#;scope-type-vars (list)
#;host (:! Void host)})
-(def: #export (translate-program program target sources)
- (-> Text File (List File) (T;Task Unit))
+(def: #export (translate-program sources target program)
+ (-> (List File) File Text (T;Task Unit))
(do T;Monad<Task>
[compiler (|> (case (runtimeT;translate (init-compiler (io;run hostL;init-host)))
(#e;Error error)
@@ -250,7 +246,7 @@
_ (&io;write-file target hostL;function-class function-bc)]
(wrap compiler)))
(: (T;Task Compiler))
- (:: @ map (translate-module sources prelude target)) (:: @ join)
- (:: @ map (translate-module sources program target)) (:: @ join))
+ (:: @ map (translate-module sources target prelude)) (:: @ join)
+ (:: @ map (translate-module sources target program)) (:: @ join))
#let [_ (log! "Compilation complete!")]]
(wrap [])))
diff --git a/new-luxc/source/luxc/lang/translation/case.jvm.lux b/new-luxc/source/luxc/lang/translation/case.jvm.lux
index cb0aa2198..e3052c77d 100644
--- a/new-luxc/source/luxc/lang/translation/case.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/case.jvm.lux
@@ -4,12 +4,12 @@
["ex" exception #+ exception:])
(data text/format)
[meta "meta/" Monad<Meta>])
- (luxc ["_" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$i" inst]))
- (lang ["ls" synthesis]))
+ (luxc ["_" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$i" inst]))
+ ["ls" synthesis]))
[../runtime])
(def: $Object $;Type ($t;class "java.lang.Object" (list)))
diff --git a/new-luxc/source/luxc/lang/translation/common.jvm.lux b/new-luxc/source/luxc/lang/translation/common.jvm.lux
index 4ec487d86..49e135709 100644
--- a/new-luxc/source/luxc/lang/translation/common.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/common.jvm.lux
@@ -10,11 +10,11 @@
[host]
(world [blob #+ Blob]
[file #+ File]))
- (luxc (lang [";L" variable #+ Register])
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))))
+ (luxc (lang [";L" variable #+ Register]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst])))))
(host;import org.objectweb.asm.Opcodes
(#static V1_6 int))
diff --git a/new-luxc/source/luxc/lang/translation/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/eval.jvm.lux
index 9514741f8..3c4eea048 100644
--- a/new-luxc/source/luxc/lang/translation/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/eval.jvm.lux
@@ -4,12 +4,12 @@
(data text/format)
[meta]
[host #+ do-to])
- (luxc ["&" base]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" common]))
))
diff --git a/new-luxc/source/luxc/lang/translation/expression.jvm.lux b/new-luxc/source/luxc/lang/translation/expression.jvm.lux
index fa5f54647..d592c5001 100644
--- a/new-luxc/source/luxc/lang/translation/expression.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/expression.jvm.lux
@@ -7,9 +7,10 @@
text/format)
[meta]
(meta ["s" syntax]))
- (luxc ["&" base]
- (host ["$" jvm])
- (lang ["ls" synthesis]
+ (luxc ["&" lang]
+ (lang [";L" variable #+ Variable Register]
+ (host ["$" jvm])
+ ["ls" synthesis]
(translation [";T" common]
[";T" primitive]
[";T" structure]
@@ -17,8 +18,7 @@
[";T" procedure]
[";T" function]
[";T" reference]
- [";T" case])
- [";L" variable #+ Variable Register])))
+ [";T" case]))))
(exception: #export Unrecognized-Synthesis)
diff --git a/new-luxc/source/luxc/lang/translation/function.jvm.lux b/new-luxc/source/luxc/lang/translation/function.jvm.lux
index 0247b3d7f..d12eca16e 100644
--- a/new-luxc/source/luxc/lang/translation/function.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/function.jvm.lux
@@ -5,13 +5,13 @@
text/format
(coll [list "list/" Functor<List> Monoid<List>]))
[meta])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" common]
[";T" runtime]
diff --git a/new-luxc/source/luxc/lang/translation/loop.jvm.lux b/new-luxc/source/luxc/lang/translation/loop.jvm.lux
index 6e51d7eed..b5497236f 100644
--- a/new-luxc/source/luxc/lang/translation/loop.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/loop.jvm.lux
@@ -5,13 +5,13 @@
text/format
(coll [list "list/" Functor<List> Monoid<List>]))
[meta])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" common]
[";T" runtime]
diff --git a/new-luxc/source/luxc/lang/translation/primitive.jvm.lux b/new-luxc/source/luxc/lang/translation/primitive.jvm.lux
index f795a2980..f059aa8da 100644
--- a/new-luxc/source/luxc/lang/translation/primitive.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/primitive.jvm.lux
@@ -3,12 +3,12 @@
(lux (control monad)
(data text/format)
[meta "meta/" Monad<Meta>])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$i" inst]
- ["$t" type]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$i" inst]
+ ["$t" type]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" common])))
[../runtime])
diff --git a/new-luxc/source/luxc/lang/translation/procedure.jvm.lux b/new-luxc/source/luxc/lang/translation/procedure.jvm.lux
index 733f630d5..917edd78d 100644
--- a/new-luxc/source/luxc/lang/translation/procedure.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/procedure.jvm.lux
@@ -5,9 +5,9 @@
(data [maybe]
text/format
(coll [dict])))
- (luxc ["&" base]
- (host ["$" jvm])
- (lang ["ls" synthesis]))
+ (luxc ["&" lang]
+ (lang (host ["$" jvm])
+ ["ls" synthesis]))
(. ["./;" common]
["./;" host]))
diff --git a/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux
index 9a01622ae..3cab88e48 100644
--- a/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux
@@ -12,13 +12,13 @@
(meta [code]
["s" syntax #+ syntax:])
[host])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" runtime]
[";T" case]
diff --git a/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux b/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux
index e45c0b911..8a28e3cf7 100644
--- a/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux
@@ -14,13 +14,13 @@
(meta [code]
["s" syntax #+ syntax:])
[host])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
(analysis (procedure ["&;" host]))
["ls" synthesis]))
["@" ../common])
diff --git a/new-luxc/source/luxc/lang/translation/reference.jvm.lux b/new-luxc/source/luxc/lang/translation/reference.jvm.lux
index e9c445dd4..b714558b8 100644
--- a/new-luxc/source/luxc/lang/translation/reference.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/reference.jvm.lux
@@ -4,12 +4,12 @@
(data [text "text/" Hash<Text>]
text/format)
[meta "meta/" Monad<Meta>])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$i" inst]))
- (lang ["ls" synthesis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$i" inst]))
+ ["ls" synthesis]
[";L" variable #+ Variable]
(translation [";T" common]))))
diff --git a/new-luxc/source/luxc/lang/translation/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
index 70450be91..fa6d6dcad 100644
--- a/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
@@ -6,13 +6,13 @@
[math]
[meta]
[host])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" common]))))
diff --git a/new-luxc/source/luxc/lang/translation/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/statement.jvm.lux
index 718175df1..232519d8b 100644
--- a/new-luxc/source/luxc/lang/translation/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/statement.jvm.lux
@@ -9,15 +9,15 @@
(coll [list "list/" Functor<List> Fold<List>]))
[meta]
[host])
- (luxc ["&" base]
- ["&;" scope]
- ["&;" module]
+ (luxc ["&" lang]
["&;" io]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang (translation [";T" eval]
+ (lang (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["&;" scope]
+ ["&;" module]
+ (translation [";T" eval]
[";T" common]))))
(exception: #export Invalid-Definition-Value)
diff --git a/new-luxc/source/luxc/lang/translation/structure.jvm.lux b/new-luxc/source/luxc/lang/translation/structure.jvm.lux
index 68219b87c..2c04eaa0c 100644
--- a/new-luxc/source/luxc/lang/translation/structure.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/structure.jvm.lux
@@ -6,13 +6,13 @@
(coll [list]))
[meta]
[host #+ do-to])
- (luxc ["&" base]
- [";L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- (lang ["la" analysis]
+ (luxc ["&" lang]
+ (lang [";L" host]
+ (host ["$" jvm]
+ (jvm ["$t" type]
+ ["$d" def]
+ ["$i" inst]))
+ ["la" analysis]
["ls" synthesis]
(translation [";T" common])))
[../runtime])