aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/reference.lux
diff options
context:
space:
mode:
authorEduardo Julian2020-03-19 21:18:58 -0400
committerEduardo Julian2020-03-19 21:18:58 -0400
commit6b8678f818a5f7399a50f4e2108d96783d22fd67 (patch)
treeade6d0a7b3c2dd7a826a90a56dc6e94600b59bbb /new-luxc/source/luxc/lang/translation/jvm/reference.lux
parent409deaa8f8a9727cf42762c8ac8ebe5b2766a04b (diff)
Got the new compiler to build again.
Diffstat (limited to '')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/reference.lux20
1 files changed, 12 insertions, 8 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/reference.lux b/new-luxc/source/luxc/lang/translation/jvm/reference.lux
index ba5cb33de..ff5d7a96c 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/reference.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/reference.lux
@@ -10,9 +10,10 @@
["." type]]]
[tool
[compiler
- ["." name]
["." reference (#+ Register Variable)]
["." phase ("operation@." monad)]
+ [meta
+ [archive (#+ Archive)]]
[language
[lux
["." generation]]]]]]
@@ -21,7 +22,8 @@
[host
[jvm (#+ Inst Operation)
["_" inst]]]]]
- ["." //])
+ ["." //
+ ["#." runtime]])
(template [<name> <prefix>]
[(def: #export <name>
@@ -35,9 +37,10 @@
(def: (foreign variable)
(-> Register (Operation Inst))
(do phase.monad
- [function-class generation.context]
+ [class-name (:: @ map //runtime.class-name
+ generation.context)]
(wrap (|>> (_.ALOAD 0)
- (_.GETFIELD (type.class function-class (list))
+ (_.GETFIELD (type.class class-name (list))
(|> variable .nat foreign-name)
//.$Value)))))
@@ -54,8 +57,9 @@
(#reference.Foreign variable)
(foreign variable)))
-(def: #export (constant name)
- (-> Name (Operation Inst))
+(def: #export (constant archive name)
+ (-> Archive Name (Operation Inst))
(do phase.monad
- [bytecode-name (generation.remember name)]
- (wrap (_.GETSTATIC (type.class bytecode-name (list)) //.value-field //.$Value))))
+ [class-name (:: @ map //runtime.class-name
+ (generation.remember archive name))]
+ (wrap (_.GETSTATIC (type.class class-name (list)) //.value-field //.$Value))))