aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/structure.lux
diff options
context:
space:
mode:
authorEduardo Julian2020-03-18 21:38:34 -0400
committerEduardo Julian2020-03-18 21:38:34 -0400
commit30801bcf8fbb1be7ae8f193edfa71e6c4909a4c3 (patch)
treed6f4f9335664f4d25c6c037e848d0743d211ff74 /new-luxc/source/luxc/lang/translation/jvm/structure.lux
parent71c99d63a313d497c3881ab06752f05e3af33350 (diff)
No passing the archive as a parameter to all phases.
Diffstat (limited to 'new-luxc/source/luxc/lang/translation/jvm/structure.lux')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/structure.lux16
1 files changed, 9 insertions, 7 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/structure.lux b/new-luxc/source/luxc/lang/translation/jvm/structure.lux
index 9ce90085c..7cf9f4da0 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/structure.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/structure.lux
@@ -20,13 +20,15 @@
[tool
[compiler
["." phase]
+ [meta
+ [archive (#+ Archive)]]
[language
[lux
[synthesis (#+ Synthesis)]]]]]]
[luxc
[lang
[host
- [jvm (#+ Inst Operation Phase)
+ [jvm (#+ Inst Operation Phase Generator)
["_" inst]]]]]
["." //
["#." runtime]])
@@ -35,8 +37,8 @@
(ex.report ["Expected size" ">= 2"]
["Actual size" (%.nat size)]))
-(def: #export (tuple generate members)
- (-> Phase (List Synthesis) (Operation Inst))
+(def: #export (tuple generate archive members)
+ (Generator (List Synthesis))
(do phase.monad
[#let [size (list.size members)]
_ (phase.assert not-a-tuple size
@@ -45,7 +47,7 @@
list.enumerate
(monad.map @ (function (_ [idx member])
(do @
- [memberI (generate member)]
+ [memberI (generate archive member)]
(wrap (|>> _.DUP
(_.int (.int idx))
memberI
@@ -61,10 +63,10 @@
(_.string "")
_.NULL))
-(def: #export (variant generate lefts right? member)
- (-> Phase Nat Bit Synthesis (Operation Inst))
+(def: #export (variant generate archive [lefts right? member])
+ (Generator [Nat Bit Synthesis])
(do phase.monad
- [memberI (generate member)]
+ [memberI (generate archive member)]
(wrap (|>> (_.int (.int (if right?
(.inc lefts)
lefts)))