aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/source/lux/compiler/default/init.lux43
-rw-r--r--stdlib/source/lux/compiler/default/phase/statement.lux35
2 files changed, 40 insertions, 38 deletions
diff --git a/stdlib/source/lux/compiler/default/init.lux b/stdlib/source/lux/compiler/default/init.lux
index 3bfba340b..d768f5f7d 100644
--- a/stdlib/source/lux/compiler/default/init.lux
+++ b/stdlib/source/lux/compiler/default/init.lux
@@ -1,7 +1,20 @@
(.module:
lux
- [///
- ["." host]])
+ [//
+ [phase (#+ Eval)
+ [analysis
+ [".A" expression]]
+ ["." synthesis
+ [".S" expression]]
+ ["." translation (#+ Host)]
+ ["." statement]
+ ["." extension
+ [".E" analysis]
+ [".E" synthesis]
+ [".E" translation]
+ [".E" statement]]]
+ [//
+ ["." host]]])
(type: #export Version Text)
@@ -25,9 +38,9 @@
#.var-counter 0
#.var-bindings (list)})
-(`` (def: #export info
- Info
- {#.target (for {(~~ (static host.common-lisp)) host.common-lisp
+(def: #export info
+ Info
+ {#.target (`` (for {(~~ (static host.common-lisp)) host.common-lisp
(~~ (static host.js)) host.js
(~~ (static host.jvm)) host.jvm
(~~ (static host.lua)) host.lua
@@ -35,9 +48,9 @@
(~~ (static host.python)) host.python
(~~ (static host.r)) host.r
(~~ (static host.ruby)) host.ruby
- (~~ (static host.scheme)) host.scheme})
- #.version ..version
- #.mode #.Build}))
+ (~~ (static host.scheme)) host.scheme}))
+ #.version ..version
+ #.mode #.Build})
(def: #export (compiler host)
(-> Any Lux)
@@ -53,3 +66,17 @@
#.scope-type-vars (list)
#.extensions []
#.host host})
+
+(def: #export (state eval translate host)
+ (All [anchor expression statement]
+ (-> Eval
+ (translation.Phase anchor expression statement)
+ (Host expression statement)
+ (statement.State+ anchor expression statement)))
+ [statementE.bundle
+ {#statement.analysis {#statement.state [analysisE.bundle (..compiler [])]
+ #statement.phase (expressionA.analyser eval)}
+ #statement.synthesis {#statement.state [synthesisE.bundle synthesis.init]
+ #statement.phase expressionS.synthesize}
+ #statement.translation {#statement.state [translationE.bundle (translation.state host)]
+ #statement.phase translate}}])
diff --git a/stdlib/source/lux/compiler/default/phase/statement.lux b/stdlib/source/lux/compiler/default/phase/statement.lux
index 638f29b80..8b0876cdd 100644
--- a/stdlib/source/lux/compiler/default/phase/statement.lux
+++ b/stdlib/source/lux/compiler/default/phase/statement.lux
@@ -1,20 +1,10 @@
(.module:
[lux #*]
- [// (#+ Eval)
- ["." analysis
- [".A" expression]]
- ["." synthesis
- [".S" expression]]
- ["." translation (#+ Host)]
- ["." extension
- ["." bundle]
- [".E" analysis]
- [".E" synthesis]
- [".E" translation]
- ## [".E" statement]
- ]
- [//
- ["." init]]])
+ [//
+ ["." analysis]
+ ["." synthesis]
+ ["." translation]
+ ["." extension]])
(type: #export (Component state phase)
{#state state
@@ -38,18 +28,3 @@
[Handler extension.Handler]
[Bundle extension.Bundle]
)
-
-(def: #export (state eval translate host)
- (All [anchor expression statement]
- (-> Eval
- (translation.Phase anchor expression statement)
- (Host expression statement)
- (..State+ anchor expression statement)))
- [bundle.empty
- ## statementE.bundle
- {#analysis {#state [analysisE.bundle (init.compiler [])]
- #phase (expressionA.analyser eval)}
- #synthesis {#state [synthesisE.bundle synthesis.init]
- #phase expressionS.synthesize}
- #translation {#state [translationE.bundle (translation.state host)]
- #phase translate}}])