diff options
Diffstat (limited to 'stdlib/source/test/lux/macro/local.lux')
-rw-r--r-- | stdlib/source/test/lux/macro/local.lux | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/stdlib/source/test/lux/macro/local.lux b/stdlib/source/test/lux/macro/local.lux index a38dc8be7..de1073f55 100644 --- a/stdlib/source/test/lux/macro/local.lux +++ b/stdlib/source/test/lux/macro/local.lux @@ -18,7 +18,7 @@ [dictionary ["[0]" plist]]]] ["[0]" macro (.only) - [syntax (.only syntax:)] + [syntax (.only syntax)] ["[0]" code]] [math ["[0]" random (.only Random)] @@ -27,14 +27,15 @@ [\\library ["[0]" /]]) -(syntax: (macro_error [macro <code>.any]) - (function (_ compiler) - (case ((macro.expansion macro) compiler) - {try.#Failure error} - {try.#Success [compiler (list (code.text error))]} - - {try.#Success _} - {try.#Failure "OOPS!"}))) +(def: macro_error + (syntax (_ [macro <code>.any]) + (function (_ compiler) + (case ((macro.expansion macro) compiler) + {try.#Failure error} + {try.#Success [compiler (list (code.text error))]} + + {try.#Success _} + {try.#Failure "OOPS!"})))) (def: (constant output) (-> Code Macro) @@ -42,27 +43,28 @@ (function (_ inputs lux) {try.#Success [lux (list output)]}))) -(syntax: (with [name (<code>.tuple (<>.and <code>.text <code>.text)) - constant <code>.any - pre_remove <code>.bit - body <code>.any]) - (macro.with_symbols [g!output] - (do meta.monad - [pop! (/.push (list [name (..constant constant)])) - [module short] (meta.normal name) - _ (if pre_remove - (let [remove_macro! (is (-> .Module .Module) - (revised .#definitions (plist.lacks short)))] - (function (_ lux) - {try.#Success [(revised .#modules (plist.revised module remove_macro!) lux) - []]})) - (in []))] - (let [pre_expansion (` (let [(~ g!output) (~ body)] - (exec (~ pop!) - (~ g!output))))] - (if pre_remove - (macro.full_expansion pre_expansion) - (in (list pre_expansion))))))) +(def: with + (syntax (_ [name (<code>.tuple (<>.and <code>.text <code>.text)) + constant <code>.any + pre_remove <code>.bit + body <code>.any]) + (macro.with_symbols [g!output] + (do meta.monad + [pop! (/.push (list [name (..constant constant)])) + [module short] (meta.normal name) + _ (if pre_remove + (let [remove_macro! (is (-> .Module .Module) + (revised .#definitions (plist.lacks short)))] + (function (_ lux) + {try.#Success [(revised .#modules (plist.revised module remove_macro!) lux) + []]})) + (in []))] + (let [pre_expansion (` (let [(~ g!output) (~ body)] + (exec (~ pop!) + (~ g!output))))] + (if pre_remove + (macro.full_expansion pre_expansion) + (in (list pre_expansion)))))))) (def: .public test Test |