aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux30
1 files changed, 16 insertions, 14 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 ed2023476..df126628c 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux
@@ -2,21 +2,20 @@
[lux #*
[language
[compiler
- [synthesis (#+ Synthesis)]
- [extension]]]]
+ ["." synthesis]
+ ["." extension]]]]
[luxc
[lang
[host
- ["_" jvm (#+ Compiler)]]]]
+ [jvm (#+ Compiler)]]]]
[//
["." common]
["." primitive]
["." structure]
["." reference]
["." case]
- ## ["." function]
- ## ["." procedure]
- ])
+ ["." loop]
+ ["." function]])
(def: #export (translate synthesis)
Compiler
@@ -54,14 +53,17 @@
(^ (synthesis.branch/case [input path]))
(case.case translate input path)
- ## (^code ("lux function" (~ [_ (#.Nat arity)]) [(~+ environment)] (~ bodyS)))
- ## (function.translate-function translate environment arity bodyS)
+ (^ (synthesis.loop/recur data))
+ (loop.recur translate data)
- ## (^code ("lux call" (~ functionS) (~+ argsS)))
- ## (function.translate-call translate functionS argsS)
+ (^ (synthesis.loop/scope data))
+ (loop.scope translate data)
- ## (^code ((~ [_ (#.Text extension)]) (~+ args)))
- ## (extension.apply [extension args])
+ (^ (synthesis.function/apply apply))
+ (function.call translate apply)
- _
- (undefined)))
+ (^ (synthesis.function/abstraction abstraction))
+ (function.function translate abstraction)
+
+ (#synthesis.Extension extension)
+ (extension.apply translate extension)))