aboutsummaryrefslogtreecommitdiff
path: root/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
diff options
context:
space:
mode:
authorEduardo Julian2021-08-24 05:23:45 -0400
committerEduardo Julian2021-08-24 05:23:45 -0400
commit36303d6cb2ce3ab9e36d045b9516c997bd461862 (patch)
treeb9d2f1495143054d61d9af129f36833624db9dac /lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
parentec1f31b5a1492d5e0ab260397291d4449483bbd9 (diff)
Outsourced the syntax for labelled type definitions to macros.
Diffstat (limited to 'lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux')
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux28
1 files changed, 14 insertions, 14 deletions
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux b/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
index eaee3b51e..96fdefe31 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
@@ -100,22 +100,22 @@
elseG (phase archive else)
conditionalsG+ (: (Operation (List [(List [Int Label])
Inst]))
- (monad.map @ (function (_ [chars branch])
- (do @
- [branchG (phase archive branch)]
- (in (<| _.with_label (function (_ @branch))
- [(list@map (function (_ char)
- [(.int char) @branch])
- chars)
- (|>> (_.label @branch)
- branchG
- (_.GOTO @end))]))))
- conditionals))
+ (monad.each @ (function (_ [chars branch])
+ (do @
+ [branchG (phase archive branch)]
+ (in (<| _.with_label (function (_ @branch))
+ [(list@each (function (_ char)
+ [(.int char) @branch])
+ chars)
+ (|>> (_.label @branch)
+ branchG
+ (_.GOTO @end))]))))
+ conditionals))
.let [table (|> conditionalsG+
- (list@map product.left)
- list@join)
+ (list@each product.left)
+ list@conjoint)
conditionalsG (|> conditionalsG+
- (list@map product.right)
+ (list@each product.right)
_.fuse)]]
(in (|>> inputG (_.unwrap type.long) _.L2I
(_.LOOKUPSWITCH @else table)