aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/compiler/expr.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/compiler/expr.jvm.lux')
-rw-r--r--new-luxc/source/luxc/compiler/expr.jvm.lux27
1 files changed, 27 insertions, 0 deletions
diff --git a/new-luxc/source/luxc/compiler/expr.jvm.lux b/new-luxc/source/luxc/compiler/expr.jvm.lux
new file mode 100644
index 000000000..6655abd5f
--- /dev/null
+++ b/new-luxc/source/luxc/compiler/expr.jvm.lux
@@ -0,0 +1,27 @@
+(;module:
+ lux
+ (lux (control monad)
+ (data text/format)
+ [macro #+ Monad<Lux>])
+ (luxc ["&" base]
+ ["&;" module]
+ ["&;" env]
+ ["&;" analyser]
+ ["&;" synthesizer #+ Synthesis]))
+
+(type: #export JVM-Bytecode
+ Void)
+
+(type: Compiled
+ JVM-Bytecode)
+
+(def: (compile-synthesis synthesis)
+ (-> Synthesis Compiled)
+ (undefined))
+
+(def: #export (compile input)
+ (-> AST (Lux Compiled))
+ (|> input
+ &analyser;analyse
+ (Lux/map &synthesizer;synthesize)
+ (Lux/map compile-synthesis)))