From 30801bcf8fbb1be7ae8f193edfa71e6c4909a4c3 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 18 Mar 2020 21:38:34 -0400 Subject: No passing the archive as a parameter to all phases. --- new-luxc/source/luxc/lang/translation/jvm/structure.lux | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'new-luxc/source/luxc/lang/translation/jvm/structure.lux') 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))) -- cgit v1.2.3