From 4433c9bcd6c6cac44c018aad2e21a5b4d7cc4896 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 29 Nov 2017 22:49:56 -0400 Subject: - Adapted main codebase to the latest syntatic changes. --- new-luxc/source/luxc/lang/module.lux | 188 +++++++++++++++++------------------ 1 file changed, 94 insertions(+), 94 deletions(-) (limited to 'new-luxc/source/luxc/lang/module.lux') diff --git a/new-luxc/source/luxc/lang/module.lux b/new-luxc/source/luxc/lang/module.lux index f6cffa9c6..62e20fa9a 100644 --- a/new-luxc/source/luxc/lang/module.lux +++ b/new-luxc/source/luxc/lang/module.lux @@ -1,4 +1,4 @@ -(;module: +(.module: lux (lux (control [monad #+ do] ["ex" exception #+ exception:] @@ -10,7 +10,7 @@ [macro] (macro [code])) (luxc ["&" lang] - (lang ["&;" scope]))) + (lang ["&." scope]))) (exception: #export Unknown-Module) (exception: #export Cannot-Declare-Tag-Twice) @@ -22,198 +22,198 @@ (def: (new-module hash) (-> Nat Module) - {#;module-hash hash - #;module-aliases (list) - #;defs (list) - #;imports (list) - #;tags (list) - #;types (list) - #;module-annotations (' {}) - #;module-state #;Active}) + {#.module-hash hash + #.module-aliases (list) + #.defs (list) + #.imports (list) + #.tags (list) + #.types (list) + #.module-annotations (' {}) + #.module-state #.Active}) (def: #export (set-annotations annotations) (-> Code (Meta Unit)) - (do macro;Monad - [self macro;current-module-name] + (do macro.Monad + [self macro.current-module-name] (function [compiler] - (#e;Success [(update@ #;modules - (&;pl-update self (set@ #;module-annotations annotations)) + (#e.Success [(update@ #.modules + (&.pl-update self (set@ #.module-annotations annotations)) compiler) []])))) (def: #export (import module) (-> Text (Meta Unit)) - (do macro;Monad - [self macro;current-module-name] + (do macro.Monad + [self macro.current-module-name] (function [compiler] - (#e;Success [(update@ #;modules - (&;pl-update self (update@ #;imports (|>. (#;Cons module)))) + (#e.Success [(update@ #.modules + (&.pl-update self (update@ #.imports (|>> (#.Cons module)))) compiler) []])))) (def: #export (alias alias module) (-> Text Text (Meta Unit)) - (do macro;Monad - [self macro;current-module-name] + (do macro.Monad + [self macro.current-module-name] (function [compiler] - (#e;Success [(update@ #;modules - (&;pl-update self (update@ #;module-aliases (: (-> (List [Text Text]) (List [Text Text])) - (|>. (#;Cons [alias module]))))) + (#e.Success [(update@ #.modules + (&.pl-update self (update@ #.module-aliases (: (-> (List [Text Text]) (List [Text Text])) + (|>> (#.Cons [alias module]))))) compiler) []])))) (def: #export (exists? module) (-> Text (Meta Bool)) (function [compiler] - (|> (get@ #;modules compiler) - (&;pl-get module) - (case> (#;Some _) true #;None false) - [compiler] #e;Success))) + (|> (get@ #.modules compiler) + (&.pl-get module) + (case> (#.Some _) true #.None false) + [compiler] #e.Success))) (def: #export (define (^@ full-name [module-name def-name]) definition) (-> Ident Def (Meta Unit)) (function [compiler] - (case (&;pl-get module-name (get@ #;modules compiler)) - (#;Some module) - (case (&;pl-get def-name (get@ #;defs module)) - #;None - (#e;Success [(update@ #;modules - (&;pl-put module-name - (update@ #;defs + (case (&.pl-get module-name (get@ #.modules compiler)) + (#.Some module) + (case (&.pl-get def-name (get@ #.defs module)) + #.None + (#e.Success [(update@ #.modules + (&.pl-put module-name + (update@ #.defs (: (-> (List [Text Def]) (List [Text Def])) - (|>. (#;Cons [def-name definition]))) + (|>> (#.Cons [def-name definition]))) module)) compiler) []]) - (#;Some already-existing) - ((&;throw Cannot-Define-More-Than-Once (%ident full-name)) compiler)) + (#.Some already-existing) + ((&.throw Cannot-Define-More-Than-Once (%ident full-name)) compiler)) - #;None - ((&;throw Cannot-Define-In-Unknown-Module (%ident full-name)) compiler)))) + #.None + ((&.throw Cannot-Define-In-Unknown-Module (%ident full-name)) compiler)))) (def: #export (create hash name) (-> Nat Text (Meta Module)) (function [compiler] (let [module (new-module hash)] - (#e;Success [(update@ #;modules - (&;pl-put name module) + (#e.Success [(update@ #.modules + (&.pl-put name module) compiler) module])))) (def: #export (with-module hash name action) (All [a] (-> Nat Text (Meta a) (Meta [Module a]))) - (do macro;Monad + (do macro.Monad [_ (create hash name) - output (&;with-current-module name + output (&.with-current-module name action) - module (macro;find-module name)] + module (macro.find-module name)] (wrap [module output]))) (do-template [ ] [(def: #export ( module-name) (-> Text (Meta Unit)) (function [compiler] - (case (|> compiler (get@ #;modules) (&;pl-get module-name)) - (#;Some module) - (let [active? (case (get@ #;module-state module) - #;Active true + (case (|> compiler (get@ #.modules) (&.pl-get module-name)) + (#.Some module) + (let [active? (case (get@ #.module-state module) + #.Active true _ false)] (if active? - (#e;Success [(update@ #;modules - (&;pl-put module-name (set@ #;module-state module)) + (#e.Success [(update@ #.modules + (&.pl-put module-name (set@ #.module-state module)) compiler) []]) - ((&;throw Can-Only-Change-State-Of-Active-Module + ((&.throw Can-Only-Change-State-Of-Active-Module (format " Module: " module-name "\n" "Desired state: " )) compiler))) - #;None - ((&;throw Unknown-Module module-name) compiler)))) + #.None + ((&.throw Unknown-Module module-name) compiler)))) (def: #export ( module-name) (-> Text (Meta Bool)) (function [compiler] - (case (|> compiler (get@ #;modules) (&;pl-get module-name)) - (#;Some module) - (#e;Success [compiler - (case (get@ #;module-state module) + (case (|> compiler (get@ #.modules) (&.pl-get module-name)) + (#.Some module) + (#e.Success [compiler + (case (get@ #.module-state module) true _ false)]) - #;None - ((&;throw Unknown-Module module-name) compiler)) + #.None + ((&.throw Unknown-Module module-name) compiler)) ))] - [flag-active! active? #;Active "Active"] - [flag-compiled! compiled? #;Compiled "Compiled"] - [flag-cached! cached? #;Cached "Cached"] + [flag-active! active? #.Active "Active"] + [flag-compiled! compiled? #.Compiled "Compiled"] + [flag-cached! cached? #.Cached "Cached"] ) (do-template [ ] [(def: ( module-name) (-> Text (Meta )) (function [compiler] - (case (|> compiler (get@ #;modules) (&;pl-get module-name)) - (#;Some module) - (#e;Success [compiler (get@ module)]) + (case (|> compiler (get@ #.modules) (&.pl-get module-name)) + (#.Some module) + (#e.Success [compiler (get@ module)]) - #;None - ((&;throw Unknown-Module module-name) compiler)) + #.None + ((&.throw Unknown-Module module-name) compiler)) ))] - [tags-by-module #;tags (List [Text [Nat (List Ident) Bool Type]])] - [types-by-module #;types (List [Text [(List Ident) Bool Type]])] - [module-hash #;module-hash Nat] + [tags-by-module #.tags (List [Text [Nat (List Ident) Bool Type]])] + [types-by-module #.types (List [Text [(List Ident) Bool Type]])] + [module-hash #.module-hash Nat] ) (def: (ensure-undeclared-tags module-name tags) (-> Text (List Text) (Meta Unit)) - (do macro;Monad + (do macro.Monad [bindings (tags-by-module module-name) - _ (monad;map @ + _ (monad.map @ (function [tag] - (case (&;pl-get tag bindings) - #;None + (case (&.pl-get tag bindings) + #.None (wrap []) - (#;Some _) - (&;throw Cannot-Declare-Tag-Twice (format "Module: " module-name "\n" + (#.Some _) + (&.throw Cannot-Declare-Tag-Twice (format "Module: " module-name "\n" " Tag: " tag)))) tags)] (wrap []))) (def: #export (declare-tags tags exported? type) (-> (List Text) Bool Type (Meta Unit)) - (do macro;Monad - [current-module macro;current-module-name + (do macro.Monad + [current-module macro.current-module-name [type-module type-name] (case type - (#;Named type-ident _) + (#.Named type-ident _) (wrap type-ident) _ - (&;throw Cannot-Declare-Tags-For-Unnamed-Type - (format "Tags: " (|> tags (list/map code;text) code;tuple %code) "\n" + (&.throw Cannot-Declare-Tags-For-Unnamed-Type + (format "Tags: " (|> tags (list/map code.text) code.tuple %code) "\n" "Type: " (%type type)))) _ (ensure-undeclared-tags current-module tags) - _ (&;assert Cannot-Declare-Tags-For-Foreign-Type - (format "Tags: " (|> tags (list/map code;text) code;tuple %code) "\n" + _ (&.assert Cannot-Declare-Tags-For-Foreign-Type + (format "Tags: " (|> tags (list/map code.text) code.tuple %code) "\n" "Type: " (%type type)) (text/= current-module type-module))] (function [compiler] - (case (|> compiler (get@ #;modules) (&;pl-get current-module)) - (#;Some module) - (let [namespaced-tags (list/map (|>. [current-module]) tags)] - (#e;Success [(update@ #;modules - (&;pl-update current-module - (|>. (update@ #;tags (function [tag-bindings] + (case (|> compiler (get@ #.modules) (&.pl-get current-module)) + (#.Some module) + (let [namespaced-tags (list/map (|>> [current-module]) tags)] + (#e.Success [(update@ #.modules + (&.pl-update current-module + (|>> (update@ #.tags (function [tag-bindings] (list/fold (function [[idx tag] table] - (&;pl-put tag [idx namespaced-tags exported? type] table)) + (&.pl-put tag [idx namespaced-tags exported? type] table)) tag-bindings - (list;enumerate tags)))) - (update@ #;types (&;pl-put type-name [namespaced-tags exported? type])))) + (list.enumerate tags)))) + (update@ #.types (&.pl-put type-name [namespaced-tags exported? type])))) compiler) []])) - #;None - ((&;throw Unknown-Module current-module) compiler))))) + #.None + ((&.throw Unknown-Module current-module) compiler))))) -- cgit v1.2.3