diff options
Diffstat (limited to 'lux-jvm/source/luxc/lang/translation/jvm/extension')
-rw-r--r-- | lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux index 482521e34..c25151bcf 100644 --- a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux +++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux @@ -11,7 +11,7 @@ ["<s>" synthesis (#+ Parser)]]] [data ["." product] - ["." maybe] + ["." maybe ("#@." functor)] ["." text ("#@." equivalence) ["%" format (#+ format)]] [number @@ -830,9 +830,22 @@ (^ (<tag> value)) path) ([#synthesis.Pop] - [#synthesis.Test] [#synthesis.Bind] - [#synthesis.Access])))) + [#synthesis.Access]) + + (#synthesis.Bit-Fork when then else) + (#synthesis.Bit-Fork when (recur then) (maybe@map recur else)) + + (^template [<tag>] + (<tag> [[test then] elses]) + (<tag> [[test (recur then)] + (list@map (function (_ [else-test else-then]) + [else-test (recur else-then)]) + elses)])) + ([#synthesis.I64-Fork] + [#synthesis.F64-Fork] + [#synthesis.Text-Fork]) + ))) (def: (normalize-method-body mapping) (-> (Dictionary Variable Variable) Synthesis Synthesis) |