diff options
Diffstat (limited to 'stdlib/source/documentation/lux/data')
19 files changed, 1363 insertions, 0 deletions
diff --git a/stdlib/source/documentation/lux/data/format.lux b/stdlib/source/documentation/lux/data/format.lux new file mode 100644 index 000000000..9758699e5 --- /dev/null +++ b/stdlib/source/documentation/lux/data/format.lux @@ -0,0 +1,23 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]] + [collection + ["." list]]]]] + ["." / #_ + ["#." binary] + ["#." json] + ["#." tar] + ["#." xml]]) + +(.def: .public documentation + (.List $.Module) + (list.together + (list /binary.documentation + /json.documentation + /tar.documentation + /xml.documentation + ))) diff --git a/stdlib/source/documentation/lux/data/format/binary.lux b/stdlib/source/documentation/lux/data/format/binary.lux new file mode 100644 index 000000000..229f262b0 --- /dev/null +++ b/stdlib/source/documentation/lux/data/format/binary.lux @@ -0,0 +1,93 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.Mutation + "A mutation of binary data, tracking where in the data to transform.") + +(documentation: /.Specification + "A description of how to transform binary data.") + +(documentation: /.no_op + "A specification for empty binary data.") + +(documentation: /.instance + "Given a specification of how to construct binary data, yields a binary blob that matches it.") + +(documentation: /.Writer + "An operation that knows how to write information into a binary blob.") + +(documentation: /.result + "Yields a binary blob with all the information written to it." + [(result writer value)]) + +(documentation: /.or + "" + [(or left right)]) + +(documentation: /.and + "" + [(and pre post)]) + +(documentation: /.rec + "A combinator for recursive writers." + [(rec body)]) + +(documentation: /.segment + "Writes at most 'size' bytes of an input binary blob." + [(segment size)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..Mutation + ..Specification + ..no_op + ..instance + ..Writer + ..result + ..or + ..and + ..rec + ..segment + ($.default /.monoid) + ($.default /.bits/8) + ($.default /.bits/16) + ($.default /.bits/32) + ($.default /.bits/64) + ($.default /.any) + ($.default /.bit) + ($.default /.nat) + ($.default /.int) + ($.default /.rev) + ($.default /.frac) + ($.default /.binary/8) + ($.default /.binary/16) + ($.default /.binary/32) + ($.default /.binary/64) + ($.default /.utf8/8) + ($.default /.utf8/16) + ($.default /.utf8/32) + ($.default /.utf8/64) + ($.default /.text) + ($.default /.row/8) + ($.default /.row/16) + ($.default /.row/32) + ($.default /.row/64) + ($.default /.maybe) + ($.default /.list) + ($.default /.set) + ($.default /.name) + ($.default /.type) + ($.default /.location) + ($.default /.code)] + [])) diff --git a/stdlib/source/documentation/lux/data/format/json.lux b/stdlib/source/documentation/lux/data/format/json.lux new file mode 100644 index 000000000..5b55ad75d --- /dev/null +++ b/stdlib/source/documentation/lux/data/format/json.lux @@ -0,0 +1,75 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.json + "A simple way to produce JSON literals." + [(json #null)] + [(json #1)] + [(json +123.456)] + [(json "this is a string")] + [(json ["this" "is" "an" "array"])] + [(json {"this" "is" + "an" "object"})]) + +(documentation: /.fields + "Get all the fields in a JSON object." + [(fields json)]) + +(documentation: /.field + "A JSON object field getter." + [(field key json)]) + +(documentation: /.has + "A JSON object field setter." + [(has key value json)]) + +(template [<name> <desc>] + [(documentation: <name> + (format "A JSON object field getter for " <desc> ".") + [(<name> key json)])] + + [/.boolean_field "booleans"] + [/.number_field "numbers"] + [/.string_field "strings"] + [/.array_field "arrays"] + [/.object_field "objects"] + ) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + (format "Functionality for reading and writing values in the JSON format." + \n "For more information, please see: http://www.json.org/") + [..json + ..fields + ..field + ..has + + ..boolean_field + ..number_field + ..string_field + ..array_field + ..object_field + + ($.default /.Null) + ($.default /.Boolean) + ($.default /.Number) + ($.default /.String) + ($.default /.JSON) + ($.default /.Array) + ($.default /.Object) + ($.default /.null?) + ($.default /.object) + ($.default /.equivalence) + ($.default /.format) + ($.default /.codec)] + [])) diff --git a/stdlib/source/documentation/lux/data/format/tar.lux b/stdlib/source/documentation/lux/data/format/tar.lux new file mode 100644 index 000000000..85b658b59 --- /dev/null +++ b/stdlib/source/documentation/lux/data/format/tar.lux @@ -0,0 +1,89 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [($.default /.not_a_small_number) + ($.default /.small_limit) + ($.default /.Small) + ($.default /.small) + ($.default /.from_small) + + ($.default /.not_a_big_number) + ($.default /.big_limit) + ($.default /.Big) + ($.default /.big) + ($.default /.from_big) + + ($.default /.wrong_character) + ($.default /.not_ascii) + ($.default /.name_size) + ($.default /.path_size) + + ($.default /.Name) + ($.default /.name_is_too_long) + ($.default /.name) + ($.default /.from_name) + ($.default /.anonymous) + + ($.default /.Path) + ($.default /.path_is_too_long) + ($.default /.path) + ($.default /.from_path) + ($.default /.no_path) + + ($.default /.invalid_link_flag) + ($.default /.Mode) + ($.default /.mode) + ($.default /.and) + ($.default /.invalid_mode) + + ($.default /.none) + + ($.default /.execute_by_other) + ($.default /.write_by_other) + ($.default /.read_by_other) + + ($.default /.execute_by_group) + ($.default /.write_by_group) + ($.default /.read_by_group) + + ($.default /.execute_by_owner) + ($.default /.write_by_owner) + ($.default /.read_by_owner) + + ($.default /.save_text) + ($.default /.set_group_id_on_execution) + ($.default /.set_user_id_on_execution) + + ($.default /.Content) + ($.default /.content) + ($.default /.data) + ($.default /.ID) + ($.default /.no_id) + ($.default /.Owner) + ($.default /.Ownership) + ($.default /.File) + ($.default /.Normal) + ($.default /.Symbolic_Link) + ($.default /.Directory) + ($.default /.Contiguous) + ($.default /.Entry) + ($.default /.Tar) + ($.default /.writer) + ($.default /.wrong_checksum) + ($.default /.wrong_link_flag) + ($.default /.invalid_end_of_archive) + ($.default /.parser)] + [])) diff --git a/stdlib/source/documentation/lux/data/format/xml.lux b/stdlib/source/documentation/lux/data/format/xml.lux new file mode 100644 index 000000000..d02722170 --- /dev/null +++ b/stdlib/source/documentation/lux/data/format/xml.lux @@ -0,0 +1,36 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.attributes + "An empty set of XML attributes.") + +(documentation: /.tag + "The text format of a XML tag." + [(tag name)]) + +(documentation: /.attribute + "The text format of a XML attribute.") + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..attributes + ..tag + ..attribute + ($.default /.Tag) + ($.default /.Attribute) + ($.default /.Attrs) + ($.default /.XML) + ($.default /.codec) + ($.default /.equivalence)] + [])) diff --git a/stdlib/source/documentation/lux/data/identity.lux b/stdlib/source/documentation/lux/data/identity.lux new file mode 100644 index 000000000..b67f8470b --- /dev/null +++ b/stdlib/source/documentation/lux/data/identity.lux @@ -0,0 +1,25 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.Identity + "A value, as is, without any extra structure super-imposed on it.") + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..Identity + ($.default /.functor) + ($.default /.apply) + ($.default /.monad) + ($.default /.comonad)] + [])) diff --git a/stdlib/source/documentation/lux/data/name.lux b/stdlib/source/documentation/lux/data/name.lux new file mode 100644 index 000000000..1cf422bcf --- /dev/null +++ b/stdlib/source/documentation/lux/data/name.lux @@ -0,0 +1,29 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.module + "The module part of a name.") + +(documentation: /.short + "The short part of a name.") + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..module + ..short + ($.default /.hash) + ($.default /.equivalence) + ($.default /.order) + ($.default /.codec)] + [])) diff --git a/stdlib/source/documentation/lux/data/product.lux b/stdlib/source/documentation/lux/data/product.lux new file mode 100644 index 000000000..78d0d5aaa --- /dev/null +++ b/stdlib/source/documentation/lux/data/product.lux @@ -0,0 +1,52 @@ +(.module: + [library + [lux (#- nat int rev list type or and) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.left + "The left side of a pair.") + +(documentation: /.right + "The right side of a pair.") + +(documentation: /.curried + "Converts a 2-argument function into nested single-argument functions." + [(curried f)]) + +(documentation: /.uncurried + "Converts nested single-argument functions into a 2-argument function." + [(uncurried f)]) + +(documentation: /.swapped + "" + [(swapped [left right])]) + +(documentation: /.then + "Apply functions to both sides of a pair." + [(then f g)]) + +(documentation: /.forked + "Yields a pair by applying both functions to a single value." + [(forked f g)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..left + ..right + ..curried + ..uncurried + ..swapped + ..then + ..forked + ($.default /.equivalence) + ($.default /.hash)] + [])) diff --git a/stdlib/source/documentation/lux/data/sum.lux b/stdlib/source/documentation/lux/data/sum.lux new file mode 100644 index 000000000..5db8a4df3 --- /dev/null +++ b/stdlib/source/documentation/lux/data/sum.lux @@ -0,0 +1,40 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.left + "Lifts value to the left side of a 2-variant.") + +(documentation: /.right + "Lifts value to the right side of a 2-variant.") + +(documentation: /.either + "Applies a function to either side of a 2-variant." + [(either on_left on_right)]) + +(documentation: /.then + "Applies functions to both sides of a 2-variant." + [(then on_left on_right)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "Functionality for working with variants (particularly 2-variants)." + [..left + ..right + ..either + ..then + ($.default /.lefts) + ($.default /.rights) + ($.default /.partition) + ($.default /.equivalence) + ($.default /.hash)] + [])) diff --git a/stdlib/source/documentation/lux/data/text.lux b/stdlib/source/documentation/lux/data/text.lux new file mode 100644 index 000000000..51c28a5ef --- /dev/null +++ b/stdlib/source/documentation/lux/data/text.lux @@ -0,0 +1,27 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]] + [collection + ["." list]]]]] + ["." / #_ + ["#." buffer] + ["#." encoding] + ["#." escape] + ["#." format] + ["#." regex] + ["#." unicode]]) + +(.def: .public documentation + (.List $.Module) + (list.together + (list /buffer.documentation + /encoding.documentation + /escape.documentation + /format.documentation + /regex.documentation + /unicode.documentation + ))) diff --git a/stdlib/source/documentation/lux/data/text/buffer.lux b/stdlib/source/documentation/lux/data/text/buffer.lux new file mode 100644 index 000000000..b392992f1 --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/buffer.lux @@ -0,0 +1,25 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.Buffer + "Immutable text buffer for efficient text concatenation.") + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..Buffer + ($.default /.empty) + ($.default /.then) + ($.default /.size) + ($.default /.text)] + [])) diff --git a/stdlib/source/documentation/lux/data/text/encoding.lux b/stdlib/source/documentation/lux/data/text/encoding.lux new file mode 100644 index 000000000..b0cef359b --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/encoding.lux @@ -0,0 +1,318 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]] + ["." / #_ + ["#." utf8]]) + +(documentation: /.Encoding + "Encoding formats for text.") + +(template [<name>] + [(documentation: <name> + (format "'" (/.name <name>) "' text encoding. "))] + + [/.ascii] + + [/.ibm_037] + [/.ibm_273] + [/.ibm_277] + [/.ibm_278] + [/.ibm_280] + [/.ibm_284] + [/.ibm_285] + [/.ibm_290] + [/.ibm_297] + [/.ibm_300] + [/.ibm_420] + [/.ibm_424] + [/.ibm_437] + [/.ibm_500] + [/.ibm_737] + [/.ibm_775] + [/.ibm_833] + [/.ibm_834] + [/.ibm_838] + [/.ibm_850] + [/.ibm_852] + [/.ibm_855] + [/.ibm_856] + [/.ibm_857] + [/.ibm_858] + [/.ibm_860] + [/.ibm_861] + [/.ibm_862] + [/.ibm_863] + [/.ibm_864] + [/.ibm_865] + [/.ibm_866] + [/.ibm_868] + [/.ibm_869] + [/.ibm_870] + [/.ibm_871] + [/.ibm_874] + [/.ibm_875] + [/.ibm_918] + [/.ibm_921] + [/.ibm_922] + [/.ibm_930] + [/.ibm_933] + [/.ibm_935] + [/.ibm_937] + [/.ibm_939] + [/.ibm_942] + [/.ibm_942c] + [/.ibm_943] + [/.ibm_943c] + [/.ibm_948] + [/.ibm_949] + [/.ibm_949c] + [/.ibm_950] + [/.ibm_964] + [/.ibm_970] + [/.ibm_1006] + [/.ibm_1025] + [/.ibm_1026] + [/.ibm_1046] + [/.ibm_1047] + [/.ibm_1097] + [/.ibm_1098] + [/.ibm_1112] + [/.ibm_1122] + [/.ibm_1123] + [/.ibm_1124] + [/.ibm_1140] + [/.ibm_1141] + [/.ibm_1142] + [/.ibm_1143] + [/.ibm_1144] + [/.ibm_1145] + [/.ibm_1146] + [/.ibm_1147] + [/.ibm_1148] + [/.ibm_1149] + [/.ibm_1166] + [/.ibm_1364] + [/.ibm_1381] + [/.ibm_1383] + [/.ibm_33722] + + [/.iso_2022_cn] + [/.iso2022_cn_cns] + [/.iso2022_cn_gb] + [/.iso_2022_jp] + [/.iso_2022_jp_2] + [/.iso_2022_kr] + [/.iso_8859_1] + [/.iso_8859_2] + [/.iso_8859_3] + [/.iso_8859_4] + [/.iso_8859_5] + [/.iso_8859_6] + [/.iso_8859_7] + [/.iso_8859_8] + [/.iso_8859_9] + [/.iso_8859_11] + [/.iso_8859_13] + [/.iso_8859_15] + + [/.mac_arabic] + [/.mac_central_europe] + [/.mac_croatian] + [/.mac_cyrillic] + [/.mac_dingbat] + [/.mac_greek] + [/.mac_hebrew] + [/.mac_iceland] + [/.mac_roman] + [/.mac_romania] + [/.mac_symbol] + [/.mac_thai] + [/.mac_turkish] + [/.mac_ukraine] + + [/.utf_8] + [/.utf_16] + [/.utf_32] + + [/.windows_31j] + [/.windows_874] + [/.windows_949] + [/.windows_950] + [/.windows_1250] + [/.windows_1252] + [/.windows_1251] + [/.windows_1253] + [/.windows_1254] + [/.windows_1255] + [/.windows_1256] + [/.windows_1257] + [/.windows_1258] + [/.windows_iso2022jp] + [/.windows_50220] + [/.windows_50221] + + [/.cesu_8] + [/.koi8_r] + [/.koi8_u] + ) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..Encoding + + ..ascii + + ..ibm_037 + ..ibm_273 + ..ibm_277 + ..ibm_278 + ..ibm_280 + ..ibm_284 + ..ibm_285 + ..ibm_290 + ..ibm_297 + ..ibm_300 + ..ibm_420 + ..ibm_424 + ..ibm_437 + ..ibm_500 + ..ibm_737 + ..ibm_775 + ..ibm_833 + ..ibm_834 + ..ibm_838 + ..ibm_850 + ..ibm_852 + ..ibm_855 + ..ibm_856 + ..ibm_857 + ..ibm_858 + ..ibm_860 + ..ibm_861 + ..ibm_862 + ..ibm_863 + ..ibm_864 + ..ibm_865 + ..ibm_866 + ..ibm_868 + ..ibm_869 + ..ibm_870 + ..ibm_871 + ..ibm_874 + ..ibm_875 + ..ibm_918 + ..ibm_921 + ..ibm_922 + ..ibm_930 + ..ibm_933 + ..ibm_935 + ..ibm_937 + ..ibm_939 + ..ibm_942 + ..ibm_942c + ..ibm_943 + ..ibm_943c + ..ibm_948 + ..ibm_949 + ..ibm_949c + ..ibm_950 + ..ibm_964 + ..ibm_970 + ..ibm_1006 + ..ibm_1025 + ..ibm_1026 + ..ibm_1046 + ..ibm_1047 + ..ibm_1097 + ..ibm_1098 + ..ibm_1112 + ..ibm_1122 + ..ibm_1123 + ..ibm_1124 + ..ibm_1140 + ..ibm_1141 + ..ibm_1142 + ..ibm_1143 + ..ibm_1144 + ..ibm_1145 + ..ibm_1146 + ..ibm_1147 + ..ibm_1148 + ..ibm_1149 + ..ibm_1166 + ..ibm_1364 + ..ibm_1381 + ..ibm_1383 + ..ibm_33722 + + ..iso_2022_cn + ..iso2022_cn_cns + ..iso2022_cn_gb + ..iso_2022_jp + ..iso_2022_jp_2 + ..iso_2022_kr + ..iso_8859_1 + ..iso_8859_2 + ..iso_8859_3 + ..iso_8859_4 + ..iso_8859_5 + ..iso_8859_6 + ..iso_8859_7 + ..iso_8859_8 + ..iso_8859_9 + ..iso_8859_11 + ..iso_8859_13 + ..iso_8859_15 + + ..mac_arabic + ..mac_central_europe + ..mac_croatian + ..mac_cyrillic + ..mac_dingbat + ..mac_greek + ..mac_hebrew + ..mac_iceland + ..mac_roman + ..mac_romania + ..mac_symbol + ..mac_thai + ..mac_turkish + ..mac_ukraine + + ..utf_8 + ..utf_16 + ..utf_32 + + ..windows_31j + ..windows_874 + ..windows_949 + ..windows_950 + ..windows_1250 + ..windows_1252 + ..windows_1251 + ..windows_1253 + ..windows_1254 + ..windows_1255 + ..windows_1256 + ..windows_1257 + ..windows_1258 + ..windows_iso2022jp + ..windows_50220 + ..windows_50221 + + ..cesu_8 + ..koi8_r + ..koi8_u + + ($.default /.name)] + [/utf8.documentation])) diff --git a/stdlib/source/documentation/lux/data/text/encoding/utf8.lux b/stdlib/source/documentation/lux/data/text/encoding/utf8.lux new file mode 100644 index 000000000..cfe8aee01 --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/encoding/utf8.lux @@ -0,0 +1,18 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [($.default /.codec)] + [])) diff --git a/stdlib/source/documentation/lux/data/text/escape.lux b/stdlib/source/documentation/lux/data/text/escape.lux new file mode 100644 index 000000000..e9c8637fb --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/escape.lux @@ -0,0 +1,40 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.escaped + "Yields a escaped version of the text." + [(escaped text)]) + +(documentation: /.un_escaped + (format "Yields an un-escaped text." + \n "Fails if it was improperly escaped.") + [(un_escaped text)]) + +(documentation: /.literal + "If given a escaped text literal, expands to an un-escaped version." + [(/.literal "Line 1\nLine 2") + "=>" + (format "Line 1" \n + "Line 2")]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..escaped + ..un_escaped + ..literal + ($.default /.escapable?) + ($.default /.dangling_escape) + ($.default /.invalid_escape) + ($.default /.invalid_unicode_escape)] + [])) diff --git a/stdlib/source/documentation/lux/data/text/format.lux b/stdlib/source/documentation/lux/data/text/format.lux new file mode 100644 index 000000000..4f823901e --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/format.lux @@ -0,0 +1,68 @@ +(.module: + [library + [lux (#- nat int rev type list) + ["$" documentation (#+ documentation:)] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.Format + "A way to produce readable text from values.") + +(documentation: /.format + "Text interpolation." + [(format "Static part " (text static) " does not match URI: " uri)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..Format + ..format + ($.default /.functor) + + ($.default /.bit) + ($.default /.nat) + ($.default /.int) + ($.default /.rev) + ($.default /.frac) + ($.default /.text) + + ($.default /.ratio) + ($.default /.name) + ($.default /.location) + ($.default /.code) + ($.default /.type) + + ($.default /.instant) + ($.default /.duration) + ($.default /.date) + ($.default /.time) + ($.default /.day) + ($.default /.month) + + ($.default /.xml) + ($.default /.json) + + ($.default /.nat/2) + ($.default /.nat/8) + ($.default /.nat/10) + ($.default /.nat/16) + ($.default /.int/2) + ($.default /.int/8) + ($.default /.int/10) + ($.default /.int/16) + ($.default /.rev/2) + ($.default /.rev/8) + ($.default /.rev/10) + ($.default /.rev/16) + ($.default /.frac/2) + ($.default /.frac/8) + ($.default /.frac/10) + ($.default /.frac/16) + + ($.default /.mod) + ($.default /.list) + ($.default /.maybe)] + [])) diff --git a/stdlib/source/documentation/lux/data/text/regex.lux b/stdlib/source/documentation/lux/data/text/regex.lux new file mode 100644 index 000000000..2538af472 --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/regex.lux @@ -0,0 +1,79 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.regex + "Create lexers using regular-expression syntax." + ["Literals" + (regex "a")] + ["Wildcards" + (regex ".")] + ["Escaping" + (regex "\.")] + ["Character classes" + (regex "\d") + (regex "\p{Lower}") + (regex "[abc]") + (regex "[a-z]") + (regex "[a-zA-Z]") + (regex "[a-z&&[def]]")] + ["Negation" + (regex "[^abc]") + (regex "[^a-z]") + (regex "[^a-zA-Z]") + (regex "[a-z&&[^bc]]") + (regex "[a-z&&[^m-p]]")] + ["Combinations" + (regex "aa") + (regex "a?") + (regex "a*") + (regex "a+")] + ["Specific amounts" + (regex "a{2}")] + ["At least" + (regex "a{1,}")] + ["At most" + (regex "a{,1}")] + ["Between" + (regex "a{1,2}")] + ["Groups" + (regex "a(.)c") + (regex "a(b+)c") + (regex "(\d{3})-(\d{3})-(\d{4})") + (regex "(\d{3})-(?:\d{3})-(\d{4})") + (regex "(?<code>\d{3})-\k<code>-(\d{4})") + (regex "(?<code>\d{3})-\k<code>-(\d{4})-\0") + (regex "(\d{3})-((\d{3})-(\d{4}))")] + ["Alternation" + (regex "a|b") + (regex "a(.)(.)|b(.)(.)")]) + +(documentation: /.^regex + "Allows you to test text against regular expressions." + [(case some_text + (^regex "(\d{3})-(\d{3})-(\d{4})" + [_ country_code area_code place_code]) + do_some_thing_when_number + + (^regex "\w+") + do_some_thing_when_word + + _ + do_something_else)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..regex + ..^regex + ($.default /.incorrect_quantification)] + [])) diff --git a/stdlib/source/documentation/lux/data/text/unicode.lux b/stdlib/source/documentation/lux/data/text/unicode.lux new file mode 100644 index 000000000..b170ae516 --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/unicode.lux @@ -0,0 +1,19 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]] + [collection + ["." list]]]]] + ["." / #_ + ["#." block] + ["#." set]]) + +(.def: .public documentation + (.List $.Module) + (list.together + (list /block.documentation + /set.documentation + ))) diff --git a/stdlib/source/documentation/lux/data/text/unicode/block.lux b/stdlib/source/documentation/lux/data/text/unicode/block.lux new file mode 100644 index 000000000..703ac9f58 --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/unicode/block.lux @@ -0,0 +1,265 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + ["." text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]] + [math + [number + ["." nat ("#\." hex)]]]]] + [\\library + ["." /]]) + +(documentation: /.Block + "A block of valid unicode characters.") + +(documentation: /.block + "" + [(block start additional)]) + +(documentation: /.within? + "" + [(within? block char)]) + +(template [<name>] + [(documentation: <name> + (let [[_ name] (name_of <name>)] + (format (nat\encode (/.start <name>)) + "-" (nat\encode (/.end <name>)) + " | " (text.replaced "_" " " name))))] + + [/.basic_latin] + [/.latin_1_supplement] + [/.latin_extended_a] + [/.latin_extended_b] + [/.ipa_extensions] + [/.spacing_modifier_letters] + [/.combining_diacritical_marks] + [/.greek_and_coptic] + [/.cyrillic] + [/.cyrillic_supplementary] + [/.armenian] + [/.hebrew] + [/.arabic] + [/.syriac] + [/.thaana] + [/.devanagari] + [/.bengali] + [/.gurmukhi] + [/.gujarati] + [/.oriya] + [/.tamil] + [/.telugu] + [/.kannada] + [/.malayalam] + [/.sinhala] + [/.thai] + [/.lao] + [/.tibetan] + [/.myanmar] + [/.georgian] + [/.hangul_jamo] + [/.ethiopic] + [/.cherokee] + [/.unified_canadian_aboriginal_syllabics] + [/.ogham] + [/.runic] + [/.tagalog] + [/.hanunoo] + [/.buhid] + [/.tagbanwa] + [/.khmer] + [/.mongolian] + [/.limbu] + [/.tai_le] + [/.khmer_symbols] + [/.phonetic_extensions] + [/.latin_extended_additional] + [/.greek_extended] + [/.general_punctuation] + [/.superscripts_and_subscripts] + [/.currency_symbols] + [/.combining_diacritical_marks_for_symbols] + [/.letterlike_symbols] + [/.number_forms] + [/.arrows] + [/.mathematical_operators] + [/.miscellaneous_technical] + [/.control_pictures] + [/.optical_character_recognition] + [/.enclosed_alphanumerics] + [/.box_drawing] + [/.block_elements] + [/.geometric_shapes] + [/.miscellaneous_symbols] + [/.dingbats] + [/.miscellaneous_mathematical_symbols_a] + [/.supplemental_arrows_a] + [/.braille_patterns] + [/.supplemental_arrows_b] + [/.miscellaneous_mathematical_symbols_b] + [/.supplemental_mathematical_operators] + [/.miscellaneous_symbols_and_arrows] + [/.cjk_radicals_supplement] + [/.kangxi_radicals] + [/.ideographic_description_characters] + [/.cjk_symbols_and_punctuation] + [/.hiragana] + [/.katakana] + [/.bopomofo] + [/.hangul_compatibility_jamo] + [/.kanbun] + [/.bopomofo_extended] + [/.katakana_phonetic_extensions] + [/.enclosed_cjk_letters_and_months] + [/.cjk_compatibility] + [/.cjk_unified_ideographs_extension_a] + [/.yijing_hexagram_symbols] + [/.cjk_unified_ideographs] + [/.yi_syllables] + [/.yi_radicals] + [/.hangul_syllables] + [/.high_surrogates] + [/.high_private_use_surrogates] + [/.low_surrogates] + [/.private_use_area] + [/.cjk_compatibility_ideographs] + [/.alphabetic_presentation_forms] + [/.arabic_presentation_forms_a] + [/.variation_selectors] + [/.combining_half_marks] + [/.cjk_compatibility_forms] + [/.small_form_variants] + [/.arabic_presentation_forms_b] + [/.halfwidth_and_fullwidth_forms] + [/.specials] + [/.basic_latin/decimal] + [/.basic_latin/upper] + [/.basic_latin/lower] + ) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..Block + ..block + ..within? + ..basic_latin + ..latin_1_supplement + ..latin_extended_a + ..latin_extended_b + ..ipa_extensions + ..spacing_modifier_letters + ..combining_diacritical_marks + ..greek_and_coptic + ..cyrillic + ..cyrillic_supplementary + ..armenian + ..hebrew + ..arabic + ..syriac + ..thaana + ..devanagari + ..bengali + ..gurmukhi + ..gujarati + ..oriya + ..tamil + ..telugu + ..kannada + ..malayalam + ..sinhala + ..thai + ..lao + ..tibetan + ..myanmar + ..georgian + ..hangul_jamo + ..ethiopic + ..cherokee + ..unified_canadian_aboriginal_syllabics + ..ogham + ..runic + ..tagalog + ..hanunoo + ..buhid + ..tagbanwa + ..khmer + ..mongolian + ..limbu + ..tai_le + ..khmer_symbols + ..phonetic_extensions + ..latin_extended_additional + ..greek_extended + ..general_punctuation + ..superscripts_and_subscripts + ..currency_symbols + ..combining_diacritical_marks_for_symbols + ..letterlike_symbols + ..number_forms + ..arrows + ..mathematical_operators + ..miscellaneous_technical + ..control_pictures + ..optical_character_recognition + ..enclosed_alphanumerics + ..box_drawing + ..block_elements + ..geometric_shapes + ..miscellaneous_symbols + ..dingbats + ..miscellaneous_mathematical_symbols_a + ..supplemental_arrows_a + ..braille_patterns + ..supplemental_arrows_b + ..miscellaneous_mathematical_symbols_b + ..supplemental_mathematical_operators + ..miscellaneous_symbols_and_arrows + ..cjk_radicals_supplement + ..kangxi_radicals + ..ideographic_description_characters + ..cjk_symbols_and_punctuation + ..hiragana + ..katakana + ..bopomofo + ..hangul_compatibility_jamo + ..kanbun + ..bopomofo_extended + ..katakana_phonetic_extensions + ..enclosed_cjk_letters_and_months + ..cjk_compatibility + ..cjk_unified_ideographs_extension_a + ..yijing_hexagram_symbols + ..cjk_unified_ideographs + ..yi_syllables + ..yi_radicals + ..hangul_syllables + ..high_surrogates + ..high_private_use_surrogates + ..low_surrogates + ..private_use_area + ..cjk_compatibility_ideographs + ..alphabetic_presentation_forms + ..arabic_presentation_forms_a + ..variation_selectors + ..combining_half_marks + ..cjk_compatibility_forms + ..small_form_variants + ..arabic_presentation_forms_b + ..halfwidth_and_fullwidth_forms + ..specials + ..basic_latin/decimal + ..basic_latin/upper + ..basic_latin/lower + ($.default /.monoid) + ($.default /.start) + ($.default /.end) + ($.default /.size) + ($.default /.equivalence) + ($.default /.hash)] + [])) diff --git a/stdlib/source/documentation/lux/data/text/unicode/set.lux b/stdlib/source/documentation/lux/data/text/unicode/set.lux new file mode 100644 index 000000000..55a114882 --- /dev/null +++ b/stdlib/source/documentation/lux/data/text/unicode/set.lux @@ -0,0 +1,42 @@ +(.module: + [library + [lux #* + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.set + "" + [(set [head tail])]) + +(documentation: /.member? + "" + [(member? set character)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..set + ..member? + ($.default /.Set) + ($.default /.composite) + ($.default /.character) + ($.default /.non_character) + ($.default /.full) + ($.default /.start) + ($.default /.end) + ($.default /.equivalence) + + ($.default /.ascii) + ($.default /.ascii/alpha) + ($.default /.ascii/alpha_num) + ($.default /.ascii/numeric) + ($.default /.ascii/upper) + ($.default /.ascii/lower)] + [])) |