diff options
-rw-r--r-- | new-luxc/source/program.lux | 3 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/analysis/macro.lux (renamed from stdlib/source/lux/tool/compiler/phase/macro.lux) | 7 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/default/evaluation.lux | 10 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/default/init.lux | 4 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/default/platform.lux | 4 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/phase/analysis.lux | 6 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/phase/directive.lux | 6 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/phase/extension/directive/lux.lux | 4 | ||||
-rw-r--r-- | stdlib/source/program/compositor.lux | 4 |
9 files changed, 25 insertions, 23 deletions
diff --git a/new-luxc/source/program.lux b/new-luxc/source/program.lux index 507073ead..1eb7fe2fc 100644 --- a/new-luxc/source/program.lux +++ b/new-luxc/source/program.lux @@ -24,8 +24,9 @@ [bytecode (#+ Bytecode)]]] [tool [compiler + [analysis + ["." macro (#+ Expander)]] [phase - ["." macro (#+ Expander)] [extension (#+ Phase Bundle Operation Handler Extender) ["." analysis #_ ["#" jvm]] diff --git a/stdlib/source/lux/tool/compiler/phase/macro.lux b/stdlib/source/lux/tool/compiler/analysis/macro.lux index db384c727..9e191e514 100644 --- a/stdlib/source/lux/tool/compiler/phase/macro.lux +++ b/stdlib/source/lux/tool/compiler/analysis/macro.lux @@ -12,7 +12,8 @@ [array (#+ Array)] ["." list ("#@." functor)]]] ["." macro]] - ["." //]) + [/// + ["." phase]]) (exception: #export (expansion-failed {macro Name} {inputs (List Code)} {error Text}) (exception.report @@ -39,7 +40,7 @@ (#try.Success output) (#try.Failure error) - ((//.throw expansion-failed [name inputs error]) state))))) + ((phase.throw ..expansion-failed [name inputs error]) state))))) (def: #export (expand-one expander name macro inputs) (-> Expander Name Macro (List Code) (Meta Code)) @@ -50,4 +51,4 @@ (wrap single) _ - (//.throw must-have-single-expansion [name inputs expansion])))) + (phase.throw ..must-have-single-expansion [name inputs expansion])))) diff --git a/stdlib/source/lux/tool/compiler/default/evaluation.lux b/stdlib/source/lux/tool/compiler/default/evaluation.lux index b6bc6b46b..2d7f32d85 100644 --- a/stdlib/source/lux/tool/compiler/default/evaluation.lux +++ b/stdlib/source/lux/tool/compiler/default/evaluation.lux @@ -9,24 +9,24 @@ ["%" format (#+ format)]]]] [/// ["." phase - [macro (#+ Expander)] [".P" analysis ["." type]] [".P" synthesis] ["." generation] [// - [analysis (#+ Operation)] + [analysis (#+ Operation) + [macro (#+ Expander)]] ["." synthesis]]]]) (type: #export Eval (-> Nat Type Code (Operation Any))) (def: #export (evaluator expander synthesis-state generation-state generate) - (All [anchor expression directive] + (All [anchor expression artifact] (-> Expander synthesis.State+ - (generation.State+ anchor expression directive) - (generation.Phase anchor expression directive) + (generation.State+ anchor expression artifact) + (generation.Phase anchor expression artifact) Eval)) (let [analyze (analysisP.phase expander)] (function (eval count type exprC) diff --git a/stdlib/source/lux/tool/compiler/default/init.lux b/stdlib/source/lux/tool/compiler/default/init.lux index c053445f2..4220659b9 100644 --- a/stdlib/source/lux/tool/compiler/default/init.lux +++ b/stdlib/source/lux/tool/compiler/default/init.lux @@ -19,11 +19,11 @@ ["#." syntax (#+ Aliases)] ["#." evaluation] ["/#" // (#+ Instancer) - ["#." analysis] + ["#." analysis + [macro (#+ Expander)]] ["#." synthesis] ["#." directive (#+ Requirements)] ["#." phase - [macro (#+ Expander)] [".P" analysis ["." module]] [".P" synthesis] diff --git a/stdlib/source/lux/tool/compiler/default/platform.lux b/stdlib/source/lux/tool/compiler/default/platform.lux index 753ab8f5c..23b1c5b6c 100644 --- a/stdlib/source/lux/tool/compiler/default/platform.lux +++ b/stdlib/source/lux/tool/compiler/default/platform.lux @@ -20,10 +20,10 @@ ["#." init] ["#." syntax] ["/#" // - ["#." analysis] + ["#." analysis + [macro (#+ Expander)]] ["#." directive] ["#." phase - [macro (#+ Expander)] ## TODO: Get rid of this import ASAP ["." extension (#+ Extender)] ["." generation (#+ Buffer)] diff --git a/stdlib/source/lux/tool/compiler/phase/analysis.lux b/stdlib/source/lux/tool/compiler/phase/analysis.lux index fbdb18f16..5a03a40c3 100644 --- a/stdlib/source/lux/tool/compiler/phase/analysis.lux +++ b/stdlib/source/lux/tool/compiler/phase/analysis.lux @@ -16,11 +16,11 @@ ["#." case] ["#." function] ["#/" // - ["#." macro (#+ Expander)] ["#." extension] ["#/" // #_ ["#." reference] - ["/" analysis (#+ Analysis Operation Phase)]]]]) + ["/" analysis (#+ Analysis Operation Phase) + ["#." macro (#+ Expander)]]]]]) (exception: #export (unrecognized-syntax {code Code}) (ex.report ["Code" (%.code code)])) @@ -108,7 +108,7 @@ (case ?macro (#.Some macro) (do @ - [expansion (//extension.lift (//macro.expand-one expander def-name macro argsC+))] + [expansion (//extension.lift (/macro.expand-one expander def-name macro argsC+))] (compile expansion)) _ diff --git a/stdlib/source/lux/tool/compiler/phase/directive.lux b/stdlib/source/lux/tool/compiler/phase/directive.lux index dc4115610..0144c877c 100644 --- a/stdlib/source/lux/tool/compiler/phase/directive.lux +++ b/stdlib/source/lux/tool/compiler/phase/directive.lux @@ -11,13 +11,13 @@ ["." list ("#;." fold monoid)]]] ["." macro]] ["." // - ["#." macro (#+ Expander)] ["#." extension] [".P" analysis ["." type]] ["#/" // #_ [reference (#+)] - ["#." analysis] + ["#." analysis + ["#/." macro (#+ Expander)]] ["/" directive (#+ Phase)]]]) (exception: #export (not-a-directive {code Code}) @@ -57,7 +57,7 @@ #.None (//.throw ..macro-was-not-found macro-name))] - (//extension.lift (//macro.expand expander macro-name macro inputs))) + (//extension.lift (///analysis/macro.expand expander macro-name macro inputs))) _ (//.throw ..invalid-macro-call code))))] diff --git a/stdlib/source/lux/tool/compiler/phase/extension/directive/lux.lux b/stdlib/source/lux/tool/compiler/phase/extension/directive/lux.lux index 856648097..cc00bfa5f 100644 --- a/stdlib/source/lux/tool/compiler/phase/extension/directive/lux.lux +++ b/stdlib/source/lux/tool/compiler/phase/extension/directive/lux.lux @@ -23,15 +23,15 @@ ["#." bundle] ["#." analysis] ["#/" // - ["#." macro (#+ Expander)] ["#." generation] [analysis ["." module] [".A" type]] ["#/" // #_ - ["#." analysis] ["#." synthesis (#+ Synthesis)] ["#." directive (#+ Import Requirements Phase Operation Handler Bundle)] + ["#." analysis + [macro (#+ Expander)]] [default ["#." evaluation]]]]]) diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux index 53598f8b5..117e90ac2 100644 --- a/stdlib/source/program/compositor.lux +++ b/stdlib/source/program/compositor.lux @@ -28,10 +28,10 @@ ["." console]] [tool [compiler - ["." analysis] + ["." analysis + [macro (#+ Expander)]] ["." directive] ["." phase - [macro (#+ Expander)] [extension (#+ Extender)] ["." generation]] [default |