diff options
author | Eduardo Julian | 2018-07-19 20:29:36 -0400 |
---|---|---|
committer | Eduardo Julian | 2018-07-19 20:29:36 -0400 |
commit | 9740c0a197dc41f816b6ac72d379ed12ed0d4f01 (patch) | |
tree | 27429a119bd82a023281ed4b378cad88b9e11d9e /new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux | |
parent | 15ba10ff986fa4fa5df8432ab47a8103b0200d30 (diff) |
WIP: Fix new-luxc's JVM back-end. [Part 2]
Diffstat (limited to '')
-rw-r--r-- | new-luxc/source/luxc/lang/translation/jvm/expression.jvm.lux | 30 |
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))) |