aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/generator/statement.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/generator/statement.jvm.lux')
-rw-r--r--new-luxc/source/luxc/generator/statement.jvm.lux25
1 files changed, 25 insertions, 0 deletions
diff --git a/new-luxc/source/luxc/generator/statement.jvm.lux b/new-luxc/source/luxc/generator/statement.jvm.lux
new file mode 100644
index 000000000..96263181f
--- /dev/null
+++ b/new-luxc/source/luxc/generator/statement.jvm.lux
@@ -0,0 +1,25 @@
+(;module:
+ lux
+ (lux (control monad)
+ [io #- run]
+ (data [text "T/" Eq<Text>]
+ text/format)
+ [macro #+ Monad<Lux>])
+ (luxc ["&" base]
+ ["&;" module]
+ ["&;" env]
+ (compiler ["&;" expr])))
+
+(def: #export (compile-def def-name def-value def-meta)
+ (-> Text Code Code (Lux Unit))
+ (do Monad<Lux>
+ [=def-value (&expr;compile def-value)
+ =def-meta (&expr;compile def-meta)]
+ (undefined)))
+
+(def: #export (compile-program prog-args prog-body)
+ (-> Text Code (Lux Unit))
+ (do Monad<Lux>
+ [=prog-body (&env;with-local [prog-args (type (List Text))]
+ (&expr;compile prog-body))]
+ (undefined)))