From 36303d6cb2ce3ab9e36d045b9516c997bd461862 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 24 Aug 2021 05:23:45 -0400 Subject: Outsourced the syntax for labelled type definitions to macros. --- stdlib/source/program/scriptum.lux | 156 ++++++++++++++++++------------------- 1 file changed, 78 insertions(+), 78 deletions(-) (limited to 'stdlib/source/program/scriptum.lux') diff --git a/stdlib/source/program/scriptum.lux b/stdlib/source/program/scriptum.lux index e99367e91..6841682df 100644 --- a/stdlib/source/program/scriptum.lux +++ b/stdlib/source/program/scriptum.lux @@ -51,7 +51,7 @@ (def: type_var_names (Sequence Text) - (|> 0 (sequence.iterations ++) (sequence\map parameter_type_name))) + (|> 0 (sequence.iterations ++) (sequence\each parameter_type_name))) (template [ ] [(def: ( id) @@ -88,13 +88,13 @@ (|> level -- (enum.range n.enum 0) - (list\map (|>> (n.+ (++ offset)) parameter_type_name))))) + (list\each (|>> (n.+ (++ offset)) parameter_type_name))))) (def: (prefix_lines prefix lines) (-> Text Text Text) (|> lines (text.all_split_by text.new_line) - (list\map (|>> (format prefix))) + (list\each (|>> (format prefix))) (text.interposed text.new_line))) (def: (pprint_type_definition level type_func_info tags module interface? recursive_type? type) @@ -113,7 +113,7 @@ (format "(primitive " (%.text name) ")") _ - (format "(primitive " (%.text name) " " (|> params (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")")) + (format "(primitive " (%.text name) " " (|> params (list\each (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")")) [_ (#.Sum _)] (let [members (type.flat_variant type)] @@ -121,40 +121,40 @@ #.End (format "(Or " (|> members - (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) + (list\each (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")") _ (|> members (list.zipped/2 tags) - (list\map (function (_ [[_ t_name] type]) - (case type - (#.Product _) - (let [types (type.flat_tuple type)] - (format "(#" t_name " " - (|> types - (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) - (text.interposed " ")) - ")")) - - _ - (format "(#" t_name " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type) ")")))) + (list\each (function (_ [[_ t_name] type]) + (case type + (#.Product _) + (let [types (type.flat_tuple type)] + (format "(#" t_name " " + (|> types + (list\each (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) + (text.interposed " ")) + ")")) + + _ + (format "(#" t_name " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type) ")")))) (text.interposed text.new_line)))) [_ (#.Product _)] (let [members (type.flat_tuple type)] (case tags #.End - (format "[" (|> members (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) "]") + (format "[" (|> members (list\each (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) "]") _ (let [member_docs (|> members (list.zipped/2 tags) - (list\map (function (_ [[_ t_name] type]) - (if interface? - (format "(: " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type) text.new_line " " t_name ")") - (format "#" t_name " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type))))) + (list\each (function (_ [[_ t_name] type]) + (if interface? + (format "(: " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type) text.new_line " " t_name ")") + (format "#" t_name " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type))))) (text.interposed (format text.new_line " ")))] (if interface? member_docs @@ -162,7 +162,7 @@ [_ (#.Function input output)] (let [[ins out] (type.flat_function type)] - (format "(-> " (|> ins (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) + (format "(-> " (|> ins (list\each (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? out) ")")) @@ -197,7 +197,7 @@ [_ (#.Apply param fun)] (let [[type_func type_arguments] (type.flat_application type)] - (format "(" (pprint_type_definition level type_func_info tags module interface? recursive_type? type_func) " " (|> type_arguments (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")")) + (format "(" (pprint_type_definition level type_func_info tags module interface? recursive_type? type_func) " " (|> type_arguments (list\each (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")")) [_ (#.Named [_module _name] type)] (if (text\= module _module) @@ -214,20 +214,20 @@ (format "(primitive " (%.text name) ")") _ - (format "(primitive " (%.text name) " " (|> params (list\map (pprint_type level type_func_name module)) (text.interposed " ")) ")")) + (format "(primitive " (%.text name) " " (|> params (list\each (pprint_type level type_func_name module)) (text.interposed " ")) ")")) (#.Sum _) (let [members (type.flat_variant type)] - (format "(Or " (|> members (list\map (pprint_type level type_func_name module)) (text.interposed " ")) ")")) + (format "(Or " (|> members (list\each (pprint_type level type_func_name module)) (text.interposed " ")) ")")) (#.Product _) (let [members (type.flat_tuple type)] - (format "[" (|> members (list\map (pprint_type level type_func_name module)) (text.interposed " ")) "]")) + (format "[" (|> members (list\each (pprint_type level type_func_name module)) (text.interposed " ")) "]")) (#.Function input output) (let [[ins out] (type.flat_function type)] (format "(-> " - (|> ins (list\map (pprint_type level type_func_name module)) (text.interposed " ")) + (|> ins (list\each (pprint_type level type_func_name module)) (text.interposed " ")) " " (pprint_type level type_func_name module out) ")")) @@ -254,7 +254,7 @@ (#.Apply param fun) (let [[type_func type_arguments] (type.flat_application type)] - (format "(" (pprint_type level type_func_name module type_func) " " (|> type_arguments (list\map (pprint_type level type_func_name module)) (text.interposed " ")) ")")) + (format "(" (pprint_type level type_func_name module type_func) " " (|> type_arguments (list\each (pprint_type level type_func_name module)) (text.interposed " ")) ")")) (#.Named [_module _name] type) (if (text\= module _module) @@ -373,7 +373,7 @@ (when> [(new> recursive_type? [])] [unrecurse_type]) (pprint_type_definition (-- nesting) [_name type_arguments] (maybe.else (list) tags) module interface? recursive_type?) (text.all_split_by text.new_line) - (list\map (|>> (format " "))) + (list\each (|>> (format " "))) (text.interposed text.new_line)) ")")))) @@ -383,22 +383,22 @@ (def: (document_types module types) (-> Text (List Value) (Meta (Markdown Block))) (do {! meta.monad} - [type_docs (monad.map ! - (: (-> Value (Meta (Markdown Block))) - (function (_ [name def_annotations type]) - (do meta.monad - [.let [?doc (annotation.documentation def_annotations)] - type_code (document_type module type def_annotations)] - (in ($_ md.then - (md.heading/3 name) - (case ?doc - (#.Some doc) - (md.paragraph (md.text doc)) - - _ - md.empty) - type_code))))) - types)] + [type_docs (monad.each ! + (: (-> Value (Meta (Markdown Block))) + (function (_ [name def_annotations type]) + (do meta.monad + [.let [?doc (annotation.documentation def_annotations)] + type_code (document_type module type def_annotations)] + (in ($_ md.then + (md.heading/3 name) + (case ?doc + (#.Some doc) + (md.paragraph (md.text doc)) + + _ + md.empty) + type_code))))) + types)] (in (list\mix (function.flipped md.then) (md.heading/2 "Types") type_docs)))) @@ -406,15 +406,15 @@ (def: (document_macros module_name names) (-> Text (List [Text Code]) (Markdown Block)) (|> names - (list\map (: (-> [Text Code] (Markdown Block)) - (function (_ [name def_annotations]) - ($_ md.then - (md.heading/3 name) - (<| (: (Markdown Block)) - (maybe.else md.empty) - (do maybe.monad - [documentation (annotation.documentation def_annotations)] - (in (md.code documentation)))))))) + (list\each (: (-> [Text Code] (Markdown Block)) + (function (_ [name def_annotations]) + ($_ md.then + (md.heading/3 name) + (<| (: (Markdown Block)) + (maybe.else md.empty) + (do maybe.monad + [documentation (annotation.documentation def_annotations)] + (in (md.code documentation)))))))) (list\mix (function.flipped md.then) (md.heading/2 "Macros")))) @@ -426,23 +426,23 @@ (def: ( module values) (-> Text (List Value) (Markdown Block)) (|> values - (list\map (function (_ [name def_annotations value_type]) - (let [?doc (annotation.documentation def_annotations) - usage (case (annotation.function_arguments def_annotations) - #.End - name - - args - (format "(" (text.interposed " " (list& name args)) ")"))] - ($_ md.then - (md.heading/3 usage) - (case ?doc - (#.Some doc) - (md.code doc) - - _ - md.empty) - ( module value_type))))) + (list\each (function (_ [name def_annotations value_type]) + (let [?doc (annotation.documentation def_annotations) + usage (case (annotation.function_arguments def_annotations) + #.End + name + + args + (format "(" (text.interposed " " (list& name args)) ")"))] + ($_ md.then + (md.heading/3 usage) + (case ?doc + (#.Some doc) + (md.code doc) + + _ + md.empty) + ( module value_type))))) (list\mix (function.flipped md.then) (md.heading/2
))))] @@ -454,7 +454,7 @@ (-> [Text Text] Text Text) (|> block (text.all_split_by text.new_line) - (list\map (text.enclosed pre+post)) + (list\each (text.enclosed pre+post)) (text.interposed text.new_line))) (def: (document_module [[module_name module] organization]) @@ -507,12 +507,12 @@ .let [lux_modules (|> all_modules (list.only (function.composite lux_module? product.left)) (list.sorted name_sort))] - lux_exports (monad.map ! (function.composite meta.exports product.left) - lux_modules) - module_documentation (|> (list\map organize_definitions lux_exports) + lux_exports (monad.each ! (function.composite meta.exports product.left) + lux_modules) + module_documentation (|> (list\each organize_definitions lux_exports) (list.zipped/2 lux_modules) - (monad.map ! document_module)) - .let [_ (io.run! (monad.map io.monad save_documentation! module_documentation))]] + (monad.each ! document_module)) + .let [_ (io.run! (monad.each io.monad save_documentation! module_documentation))]] (in (list)))) (gen_documentation!) -- cgit v1.2.3