aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
diff options
context:
space:
mode:
authorEduardo Julian2018-06-15 00:11:33 -0400
committerEduardo Julian2018-06-15 00:11:33 -0400
commitbcd3d9ee8f6797f758a2abea98d5cb6a74cc7df0 (patch)
treeb122b9ecf2d5333ba97cffbadfeee00eba2e1cf8 /new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
parent0190e084c6f44be32ea2bc5a89ef55b52bdc789b (diff)
- WIP: Adjustments to new-luxc based on recent changes to stdlib.
Diffstat (limited to 'new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux44
1 files changed, 20 insertions, 24 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
index 42b4f3358..a587d2e5b 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
@@ -6,12 +6,12 @@
(data ["e" error]
text/format)
[macro]
- (macro ["s" syntax]))
- (luxc ["&" lang]
- (lang [".L" variable #+ Variable Register]
- [".L" extension]
- (host ["$" jvm])
- ["ls" synthesis]))
+ (macro ["s" syntax])
+ ["//" lang]
+ (lang ["//." reference #+ Register]
+ ["//." synthesis #+ Synthesis]
+ ["//." extension]))
+ (luxc (lang (host ["$" jvm])))
(// [".T" common]
[".T" primitive]
[".T" structure]
@@ -30,23 +30,19 @@
)
(def: #export (translate synthesis)
- (-> ls.Synthesis (Meta $.Inst))
+ (-> Synthesis (Meta $.Inst))
(case synthesis
- (^code [])
- primitiveT.translate-unit
-
- (^code [(~ singleton)])
- (translate singleton)
-
- (^template [<tag> <generator>]
- [_ (<tag> value)]
- (<generator> value))
- ([#.Bool primitiveT.translate-bool]
- [#.Nat primitiveT.translate-nat]
- [#.Int primitiveT.translate-int]
- [#.Deg primitiveT.translate-deg]
- [#.Frac primitiveT.translate-frac]
- [#.Text primitiveT.translate-text])
+ (^ (//synthesis.bool value))
+ (primitiveT.translate-bool value)
+
+ (^ (//synthesis.i64 value))
+ (primitiveT.translate-i64 value)
+
+ (^ (//synthesis.f64 value))
+ (primitiveT.translate-f64 value)
+
+ (^ (//synthesis.text value))
+ (primitiveT.translate-text value)
(^code ((~ [_ (#.Nat tag)]) (~ [_ (#.Bool last?)]) (~ valueS)))
(structureT.translate-variant translate tag last? valueS)
@@ -74,7 +70,7 @@
(functionT.translate-function translate environment arity bodyS)
_
- (&.throw Invalid-Function-Syntax (%code synthesis)))
+ (//.throw Invalid-Function-Syntax (%code synthesis)))
(^code ("lux call" (~ functionS) (~+ argsS)))
(functionT.translate-call translate functionS argsS)
@@ -86,5 +82,5 @@
## (translation argsS))
_
- (&.throw Unrecognized-Synthesis (%code synthesis))
+ (//.throw Unrecognized-Synthesis (%code synthesis))
))