diff options
Diffstat (limited to 'new-luxc/source/luxc/generator/expr.jvm.lux')
-rw-r--r-- | new-luxc/source/luxc/generator/expr.jvm.lux | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/new-luxc/source/luxc/generator/expr.jvm.lux b/new-luxc/source/luxc/generator/expr.jvm.lux index 0bdebe555..6b6c68fde 100644 --- a/new-luxc/source/luxc/generator/expr.jvm.lux +++ b/new-luxc/source/luxc/generator/expr.jvm.lux @@ -1,16 +1,20 @@ (;module: lux (lux (control monad) + (data text/format) [macro #+ Monad<Lux> "Lux/" Monad<Lux>]) (luxc ["&" base] (lang ["ls" synthesis]) ["&;" analyser] ["&;" synthesizer] + (synthesizer [";S" function]) (generator ["&;" common] ["&;" primitive] ["&;" structure] ["&;" eval] ["&;" procedure] + ["&;" function] + ["&;" reference] (host ["$" jvm])))) (def: #export (generate synthesis) @@ -35,6 +39,17 @@ (#ls;Tuple members) (&structure;generate-tuple generate members) + (#ls;Variable var) + (if (functionS;captured? var) + (&reference;generate-captured var) + (&reference;generate-variable var)) + + (#ls;Function arity env body) + (&function;generate-function generate env arity body) + + (#ls;Call args function) + (&function;generate-call generate function args) + (#ls;Procedure name args) (&procedure;generate-procedure generate name args) |