diff options
Diffstat (limited to 'stdlib/source/lux/macro/template.lux')
-rw-r--r-- | stdlib/source/lux/macro/template.lux | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/stdlib/source/lux/macro/template.lux b/stdlib/source/lux/macro/template.lux index 6271b7cd4..b970cae05 100644 --- a/stdlib/source/lux/macro/template.lux +++ b/stdlib/source/lux/macro/template.lux @@ -1,5 +1,5 @@ (.module: - [lux #* + [lux (#- let) ["." meta] [abstract ["." monad (#+ do)]] @@ -55,8 +55,8 @@ (def: (snippet module_side?) (-> Bit (Parser Text)) - (let [full_identifier (..name_side module_side? <code>.identifier) - full_tag (..name_side module_side? <code>.tag)] + (.let [full_identifier (..name_side module_side? <code>.identifier) + full_tag (..name_side module_side? <code>.tag)] ($_ <>.either <code>.text (if module_side? @@ -140,12 +140,12 @@ (-> Local Macro) ("lux macro" (function (_ inputs compiler) - (let [parameters_count (list.size parameters) - inputs_count (list.size inputs)] + (.let [parameters_count (list.size parameters) + inputs_count (list.size inputs)] (if (nat.= parameters_count inputs_count) - (let [environment (: Environment - (|> (list.zip/2 parameters inputs) - (dictionary.from_list text.hash)))] + (.let [environment (: Environment + (|> (list.zip/2 parameters inputs) + (dictionary.from_list text.hash)))] (#.Right [compiler (list\map (..apply environment) template)])) (exception.throw ..irregular_arguments [parameters_count inputs_count])))))) @@ -159,7 +159,7 @@ #parameters parameters #template template}))) -(syntax: #export (with {locals (<code>.tuple (<>.some ..local))} +(syntax: #export (let {locals (<code>.tuple (<>.some ..local))} body) (do meta.monad [here_name meta.current_module_name @@ -177,7 +177,7 @@ locals))] (if expression? (//.with_gensyms [g!body] - (wrap (list (` (let [(~ g!body) (~ body)] + (wrap (list (` (.let [(~ g!body) (~ body)] (exec (~ g!pop) (~ g!body))))))) (wrap (list body |