From 6eadb8ba7c8a5eb268cd7a8d13bd63dcaa5f449f Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 11 Feb 2019 00:28:08 -0400 Subject: Added the special # syntax for referring to the module's alias when opening structures. --- stdlib/source/lux.lux | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'stdlib/source/lux.lux') diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux index e0717c88c..9d3ca2032 100644 --- a/stdlib/source/lux.lux +++ b/stdlib/source/lux.lux @@ -4850,9 +4850,10 @@ _ (fail "Wrong syntax for refer"))) -(def: (refer-to-code module-name [r-defs r-opens]) - (-> Text Refer Code) - (let [localizations (: (List Code) +(def: (refer-to-code module-name module-alias' [r-defs r-opens]) + (-> Text (Maybe Text) Refer Code) + (let [module-alias (..default module-name module-alias') + localizations (: (List Code) (case r-defs #All (list (' #*)) @@ -4866,7 +4867,8 @@ #Nothing (list))) openings (list/map (function (_ [alias structs]) - (form$ (list& (text$ alias) (list/map local-identifier$ structs)))) + (form$ (list& (text$ (..replace-all "#" module-alias alias)) + (list/map local-identifier$ structs)))) r-opens)] (` (..refer (~ (text$ module-name)) (~+ localizations) @@ -4906,7 +4908,7 @@ imports) =refers (list/map (: (-> Importation Code) (function (_ [m-name m-alias =refer]) - (refer-to-code m-name =refer))) + (refer-to-code m-name m-alias =refer))) imports) =meta (process-def-meta (list& [(` #.imports) (` [(~+ =imports)])] _meta)) -- cgit v1.2.3