From bf47bd7b3d4f70bc3a481761b8e9ff074313fb44 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 3 May 2017 18:17:00 -0400 Subject: - WIP: Implemented more functionality. - Lots of refactorings. --- new-luxc/source/luxc/compiler/expr.jvm.lux | 15 +++++++++------ new-luxc/source/luxc/compiler/runtime.jvm.lux | 7 ++++++- new-luxc/source/luxc/compiler/statement.jvm.lux | 6 +++--- 3 files changed, 18 insertions(+), 10 deletions(-) (limited to 'new-luxc/source/luxc/compiler') diff --git a/new-luxc/source/luxc/compiler/expr.jvm.lux b/new-luxc/source/luxc/compiler/expr.jvm.lux index 6655abd5f..138d0d540 100644 --- a/new-luxc/source/luxc/compiler/expr.jvm.lux +++ b/new-luxc/source/luxc/compiler/expr.jvm.lux @@ -2,26 +2,29 @@ lux (lux (control monad) (data text/format) - [macro #+ Monad]) + [macro #+ Monad "Lux/" Monad]) (luxc ["&" base] - ["&;" module] - ["&;" env] + lang ["&;" analyser] - ["&;" synthesizer #+ Synthesis])) + ["&;" synthesizer])) (type: #export JVM-Bytecode Void) -(type: Compiled +(type: #export Compiled JVM-Bytecode) (def: (compile-synthesis synthesis) (-> Synthesis Compiled) (undefined)) +(def: (eval type code) + Eval + (undefined)) + (def: #export (compile input) (-> AST (Lux Compiled)) (|> input - &analyser;analyse + (&analyser;analyse eval) (Lux/map &synthesizer;synthesize) (Lux/map compile-synthesis))) diff --git a/new-luxc/source/luxc/compiler/runtime.jvm.lux b/new-luxc/source/luxc/compiler/runtime.jvm.lux index 2d48b3617..b6cebb193 100644 --- a/new-luxc/source/luxc/compiler/runtime.jvm.lux +++ b/new-luxc/source/luxc/compiler/runtime.jvm.lux @@ -1,6 +1,11 @@ (;module: lux (lux (control monad) - (data text/format)) + (concurrency ["P" promise "P/" Monad]) + (data text/format + ["E" error])) (luxc ["&" base])) +(def: #export (compile-runtime _) + (-> Top (P;Promise (E;Error Unit))) + (P/wrap (#E;Success []))) diff --git a/new-luxc/source/luxc/compiler/statement.jvm.lux b/new-luxc/source/luxc/compiler/statement.jvm.lux index c4c23746e..0e53ba37d 100644 --- a/new-luxc/source/luxc/compiler/statement.jvm.lux +++ b/new-luxc/source/luxc/compiler/statement.jvm.lux @@ -11,16 +11,16 @@ ["&;" env] (compiler ["&;" expr]))) -(def: (compile-def def-name def-value def-meta) +(def: #export (compile-def def-name def-value def-meta) (-> Text AST AST (Lux Unit)) (do Monad [=def-value (&expr;compile def-value) =def-meta (&expr;compile def-meta)] (undefined))) -(def: (compile-program prog-args prog-body) +(def: #export (compile-program prog-args prog-body) (-> Text AST (Lux Unit)) (do Monad [=prog-body (&env;with-local [prog-args (type (List Text))] - (&expr;compile prog-body))] + (&expr;compile prog-body))] (undefined))) -- cgit v1.2.3