(.module: [lux #* [control [monad (#+ do)]] ["." io (#+ IO)] [data [error (#+ Error)]] [compiler [default ["." reference] ["." phase ["." synthesis (#+ Synthesis)] ["." translation] [extension ["." bundle]]]]]] [luxc [lang [host [jvm (#+ Inst State Operation Phase Bundle)]] [translation ["." jvm ["._jvm" runtime] ["._jvm" expression] [procedure ["._jvm" common]]] ## [js] ## (js ["._js" expression] ## ["._js" runtime]) ## [lua] ## (lua ["._lua" expression] ## ["._lua" runtime]) ## [ruby] ## (ruby ["._ruby" expression] ## ["._ruby" runtime]) ## [python] ## (python ["._python" expression] ## ["._python" runtime]) ## [r] ## (r ["._r" expression] ## ["._r" runtime]) ## [scheme] ## (scheme ["._scheme" expression] ## ["._scheme" runtime]) ## [common-lisp] ## (common-lisp ["._common-lisp" expression] ## ["._common-lisp" runtime]) ## [php] ## (php ["._php" expression] ## ["._php" runtime]) ]]]) (type: #export Runner (-> Synthesis (Error Any))) (type: #export Definer (-> Name Synthesis (Error Any))) (template [ ] [(def: #export (IO State) (:: io.Monad map translation.state ))] [init-jvm jvm.init] ## [init-js js.init] ## [init-lua lua.init] ## [init-ruby ruby.init] ## [init-python python.init] ## [init-r r.init] ## [init-scheme scheme.init] ## [init-common-lisp common-lisp.init] ## [init-php php.init] ) (def: (runner generate-runtime translate bundle state) (-> (Operation Any) Phase Bundle (IO State) Runner) (function (_ valueS) (|> (do phase.Monad [_ generate-runtime program (translate valueS)] (translation.evaluate! "runner" program)) translation.with-buffer (phase.run [bundle (io.run state)])))) (def: (definer generate-runtime translate bundle state) (-> (Operation Any) Phase Bundle (IO State) Definer) (function (_ lux-name valueS) (|> (do phase.Monad [_ generate-runtime valueH (translate valueS) [host-name host-value] (translation.define! lux-name valueH) _ (translation.learn lux-name host-name) program (translate (synthesis.constant lux-name))] (translation.evaluate! "definer" program)) translation.with-buffer (phase.run [bundle (io.run state)])))) (def: #export run-jvm (runner runtime_jvm.translate expression_jvm.translate common_jvm.bundle init-jvm)) (def: #export def-jvm (definer runtime_jvm.translate expression_jvm.translate common_jvm.bundle init-jvm)) ## (def: #export run-js (runner runtime_js.translate expression_js.translate bundle.empty init-js)) ## (def: #export def-js (definer runtime_js.translate expression_js.translate bundle.empty init-js)) ## (def: #export run-lua (runner runtime_lua.translate expression_lua.translate bundle.empty init-lua)) ## (def: #export def-lua (definer runtime_lua.translate expression_lua.translate bundle.empty init-lua)) ## (def: #export run-ruby (runner runtime_ruby.translate expression_ruby.translate bundle.empty init-ruby)) ## (def: #export def-ruby (definer runtime_ruby.translate expression_ruby.translate bundle.empty init-ruby)) ## (def: #export run-python (runner runtime_python.translate expression_python.translate bundle.empty init-python)) ## (def: #export def-python (definer runtime_python.translate expression_python.translate bundle.empty init-python)) ## (def: #export run-r (runner runtime_r.translate expression_r.translate bundle.empty init-r)) ## (def: #export def-r (definer runtime_r.translate expression_r.translate bundle.empty init-r)) ## (def: #export run-scheme (runner runtime_scheme.translate expression_scheme.translate bundle.empty init-scheme)) ## (def: #export def-scheme (definer runtime_scheme.translate expression_scheme.translate bundle.empty init-scheme)) ## (def: #export run-common-lisp (runner runtime_common-lisp.translate expression_common-lisp.translate bundle.empty init-common-lisp)) ## (def: #export def-common-lisp (definer runtime_common-lisp.translate expression_common-lisp.translate bundle.empty init-common-lisp)) ## (def: #export run-php (runner runtime_php.translate expression_php.translate bundle.empty init-php)) ## (def: #export def-php (definer runtime_php.translate expression_php.translate bundle.empty init-php))