aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/structure.jvm.lux
diff options
context:
space:
mode:
authorEduardo Julian2018-01-08 21:40:06 -0400
committerEduardo Julian2018-01-08 21:40:06 -0400
commit9eaaaf953ba7ce1eeb805603f4e113aa15f5178f (patch)
treeef134eecc8a5767a997fce0637cd64e0ebcee6b1 /new-luxc/source/luxc/lang/translation/structure.jvm.lux
parentf523bc14d43286348aeb200bd0554812dc6ef28d (diff)
- Moved all translation code under the JVM path (in preparation for porting the JS back-end).
Diffstat (limited to 'new-luxc/source/luxc/lang/translation/structure.jvm.lux')
-rw-r--r--new-luxc/source/luxc/lang/translation/structure.jvm.lux61
1 files changed, 0 insertions, 61 deletions
diff --git a/new-luxc/source/luxc/lang/translation/structure.jvm.lux b/new-luxc/source/luxc/lang/translation/structure.jvm.lux
deleted file mode 100644
index f7cdb524f..000000000
--- a/new-luxc/source/luxc/lang/translation/structure.jvm.lux
+++ /dev/null
@@ -1,61 +0,0 @@
-(.module:
- lux
- (lux (control [monad #+ do]
- ["ex" exception #+ exception:])
- (data text/format
- (coll [list]))
- [macro]
- [host #+ do-to])
- (luxc ["&" lang]
- (lang [".L" host]
- (host ["$" jvm]
- (jvm ["$t" type]
- ["$d" def]
- ["$i" inst]))
- ["la" analysis]
- ["ls" synthesis]
- (translation [".T" common]))))
-
-(exception: #export Not-A-Tuple)
-
-(def: $Object $.Type ($t.class "java.lang.Object" (list)))
-
-(def: #export (translate-tuple translate members)
- (-> (-> ls.Synthesis (Meta $.Inst)) (List ls.Synthesis) (Meta $.Inst))
- (do macro.Monad<Meta>
- [#let [size (list.size members)]
- _ (&.assert Not-A-Tuple (%code (` [(~+ members)]))
- (n/>= +2 size))
- membersI (|> members
- list.enumerate
- (monad.map @ (function [[idx member]]
- (do @
- [memberI (translate member)]
- (wrap (|>> $i.DUP
- ($i.int (nat-to-int idx))
- memberI
- $i.AASTORE)))))
- (:: @ map $i.fuse))]
- (wrap (|>> ($i.int (nat-to-int size))
- ($i.array $Object)
- membersI))))
-
-(def: (flagI tail?)
- (-> Bool $.Inst)
- (if tail?
- ($i.string "")
- $i.NULL))
-
-(def: #export (translate-variant translate tag tail? member)
- (-> (-> ls.Synthesis (Meta $.Inst)) Nat Bool ls.Synthesis (Meta $.Inst))
- (do macro.Monad<Meta>
- [memberI (translate member)]
- (wrap (|>> ($i.int (nat-to-int tag))
- (flagI tail?)
- memberI
- ($i.INVOKESTATIC hostL.runtime-class
- "variant_make"
- ($t.method (list $t.int $Object $Object)
- (#.Some ($t.array +1 $Object))
- (list))
- false)))))