(.module: [lux #* [cli (#+ program:)] [control [monad (#+ do)]] ["." io (#+ IO)] [world ["." file]] [host ["." js]] [tool [compiler ["." cli] ["/" program] [phase ["." macro] ["." translation [".T" js [".JS" runtime] [".JS" expression] [".JS" extension]]] ["." statement]] [default ["." platform (#+ Platform)]]]]] [luxc [lang [host ["." jvm]] [translation [".T" jvm [".JVM" runtime] [".JVM" expression] [procedure [".JVM" common]]]]]] ) (def: jvm (IO (Platform IO jvm.Anchor jvm.Inst jvm.Definition)) (do io.monad [host jvmT.host] (wrap {#platform.&monad io.monad #platform.&file-system file.system #platform.host host #platform.phase expressionJVM.translate #platform.runtime runtimeJVM.translate}))) (def: js (IO (Platform IO js.Var js.Expression js.Statement)) (do io.monad [host jsT.host] (wrap {#platform.&monad io.monad #platform.&file-system file.system #platform.host host #platform.phase expressionJS.translate #platform.runtime runtimeJS.translate}))) (program: [{service cli.service}] ## (/.compiler macro.jvm ..jvm commonJVM.bundle service) (/.compiler jsT.expander ..js extensionJS.bundle service))