From 9e7ddacf853efd7a18c1911d2f287d483b083229 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 3 Jul 2022 00:35:32 -0400 Subject: Added a new custom type for pattern-matching macros. --- stdlib/source/documentation/lux.lux | 14 +-- .../documentation/lux/control/concatenative.lux | 7 +- .../lux/control/concurrency/actor.lux | 4 +- .../lux/control/concurrency/async.lux | 4 +- .../documentation/lux/control/concurrency/atom.lux | 4 +- .../documentation/lux/control/concurrency/frp.lux | 4 +- .../lux/control/concurrency/semaphore.lux | 4 +- .../documentation/lux/control/concurrency/stm.lux | 4 +- .../lux/control/concurrency/thread.lux | 4 +- .../documentation/lux/control/continuation.lux | 4 +- .../source/documentation/lux/control/exception.lux | 4 +- .../source/documentation/lux/control/function.lux | 4 +- .../lux/control/function/contract.lux | 4 +- .../documentation/lux/control/function/memo.lux | 4 +- .../documentation/lux/control/function/mixin.lux | 4 +- .../documentation/lux/control/function/mutual.lux | 4 +- stdlib/source/documentation/lux/control/io.lux | 4 +- stdlib/source/documentation/lux/control/lazy.lux | 4 +- stdlib/source/documentation/lux/control/maybe.lux | 4 +- stdlib/source/documentation/lux/control/parser.lux | 12 +- .../documentation/lux/control/parser/analysis.lux | 71 ----------- .../documentation/lux/control/parser/binary.lux | 139 --------------------- .../documentation/lux/control/parser/cli.lux | 4 +- .../documentation/lux/control/parser/code.lux | 5 +- .../lux/control/parser/environment.lux | 4 +- .../documentation/lux/control/parser/json.lux | 5 +- .../documentation/lux/control/parser/synthesis.lux | 83 ------------ .../documentation/lux/control/parser/text.lux | 5 +- .../documentation/lux/control/parser/tree.lux | 4 +- .../documentation/lux/control/parser/type.lux | 5 +- .../documentation/lux/control/parser/xml.lux | 4 +- stdlib/source/documentation/lux/control/pipe.lux | 4 +- stdlib/source/documentation/lux/control/reader.lux | 4 +- stdlib/source/documentation/lux/control/region.lux | 4 +- .../source/documentation/lux/control/remember.lux | 4 +- .../lux/control/security/capability.lux | 4 +- .../documentation/lux/control/security/policy.lux | 4 +- stdlib/source/documentation/lux/control/state.lux | 4 +- stdlib/source/documentation/lux/control/thread.lux | 4 +- stdlib/source/documentation/lux/control/try.lux | 4 +- stdlib/source/documentation/lux/control/writer.lux | 4 +- stdlib/source/documentation/lux/data/binary.lux | 108 +++++++++++++++- stdlib/source/documentation/lux/data/bit.lux | 4 +- .../documentation/lux/data/collection/array.lux | 2 - .../lux/data/collection/dictionary/ordered.lux | 5 +- .../documentation/lux/data/collection/set.lux | 4 +- .../lux/data/collection/set/multi.lux | 4 +- .../lux/data/collection/set/ordered.lux | 4 +- .../documentation/lux/data/collection/stack.lux | 4 +- .../documentation/lux/data/collection/tree.lux | 4 +- .../lux/data/collection/tree/finger.lux | 4 +- .../lux/data/collection/tree/zipper.lux | 4 +- stdlib/source/documentation/lux/data/color.lux | 8 +- .../source/documentation/lux/data/format/json.lux | 4 +- .../source/documentation/lux/data/format/tar.lux | 4 +- .../source/documentation/lux/data/format/xml.lux | 4 +- stdlib/source/documentation/lux/data/identity.lux | 4 +- stdlib/source/documentation/lux/data/product.lux | 4 +- stdlib/source/documentation/lux/data/sum.lux | 4 +- .../source/documentation/lux/data/text/buffer.lux | 4 +- .../documentation/lux/data/text/encoding.lux | 4 +- .../documentation/lux/data/text/encoding/utf8.lux | 4 +- .../source/documentation/lux/data/text/escape.lux | 4 +- .../source/documentation/lux/data/text/regex.lux | 4 +- .../documentation/lux/data/text/unicode/block.lux | 2 - .../documentation/lux/data/text/unicode/set.lux | 4 +- stdlib/source/documentation/lux/debug.lux | 4 +- stdlib/source/documentation/lux/documentation.lux | 4 +- stdlib/source/documentation/lux/extension.lux | 6 +- stdlib/source/documentation/lux/ffi.js.lux | 4 +- stdlib/source/documentation/lux/ffi.jvm.lux | 5 +- stdlib/source/documentation/lux/ffi.lua.lux | 4 +- stdlib/source/documentation/lux/ffi.old.lux | 4 +- stdlib/source/documentation/lux/ffi.py.lux | 4 +- stdlib/source/documentation/lux/ffi.rb.lux | 4 +- stdlib/source/documentation/lux/math/infix.lux | 4 +- .../documentation/lux/math/logic/continuous.lux | 4 +- .../source/documentation/lux/math/logic/fuzzy.lux | 4 +- stdlib/source/documentation/lux/math/modular.lux | 4 +- stdlib/source/documentation/lux/math/modulus.lux | 4 +- stdlib/source/documentation/lux/math/number.lux | 4 +- .../documentation/lux/math/number/complex.lux | 4 +- .../source/documentation/lux/math/number/frac.lux | 4 +- .../source/documentation/lux/math/number/i16.lux | 4 +- .../source/documentation/lux/math/number/i32.lux | 4 +- .../source/documentation/lux/math/number/i64.lux | 4 +- stdlib/source/documentation/lux/math/number/i8.lux | 4 +- .../source/documentation/lux/math/number/int.lux | 4 +- .../source/documentation/lux/math/number/nat.lux | 4 +- .../source/documentation/lux/math/number/ratio.lux | 4 +- .../source/documentation/lux/math/number/rev.lux | 4 +- stdlib/source/documentation/lux/math/random.lux | 4 +- stdlib/source/documentation/lux/meta.lux | 10 +- stdlib/source/documentation/lux/meta/location.lux | 4 +- stdlib/source/documentation/lux/meta/symbol.lux | 4 +- stdlib/source/documentation/lux/meta/type.lux | 4 +- .../source/documentation/lux/meta/type/check.lux | 4 +- .../source/documentation/lux/meta/type/dynamic.lux | 4 +- .../documentation/lux/meta/type/implicit.lux | 4 +- stdlib/source/documentation/lux/meta/type/poly.lux | 4 +- .../documentation/lux/meta/type/primitive.lux | 4 +- .../documentation/lux/meta/type/quotient.lux | 4 +- .../documentation/lux/meta/type/refinement.lux | 4 +- .../documentation/lux/meta/type/resource.lux | 4 +- stdlib/source/documentation/lux/meta/type/unit.lux | 7 +- .../documentation/lux/meta/type/variance.lux | 5 +- stdlib/source/documentation/lux/program.lux | 4 +- stdlib/source/documentation/lux/test.lux | 4 +- stdlib/source/documentation/lux/time.lux | 4 +- stdlib/source/documentation/lux/time/date.lux | 4 +- stdlib/source/documentation/lux/time/day.lux | 4 +- stdlib/source/documentation/lux/time/duration.lux | 4 +- stdlib/source/documentation/lux/time/instant.lux | 4 +- stdlib/source/documentation/lux/time/month.lux | 4 +- stdlib/source/documentation/lux/time/year.lux | 4 +- .../lux/tool/compiler/language/lux/analysis.lux | 53 +++++++- .../lux/tool/compiler/language/lux/synthesis.lux | 63 +++++++++- stdlib/source/documentation/lux/world/console.lux | 4 +- .../source/documentation/lux/world/environment.lux | 4 +- stdlib/source/documentation/lux/world/file.lux | 4 +- .../source/documentation/lux/world/file/watch.lux | 4 +- .../documentation/lux/world/input/keyboard.lux | 4 +- .../documentation/lux/world/net/http/client.lux | 5 +- .../documentation/lux/world/net/http/status.lux | 5 +- .../lux/world/output/video/resolution.lux | 5 +- stdlib/source/documentation/lux/world/shell.lux | 4 +- 126 files changed, 374 insertions(+), 665 deletions(-) delete mode 100644 stdlib/source/documentation/lux/control/parser/analysis.lux delete mode 100644 stdlib/source/documentation/lux/control/parser/binary.lux delete mode 100644 stdlib/source/documentation/lux/control/parser/synthesis.lux (limited to 'stdlib/source/documentation') diff --git a/stdlib/source/documentation/lux.lux b/stdlib/source/documentation/lux.lux index 7be9e1622..1819cb426 100644 --- a/stdlib/source/documentation/lux.lux +++ b/stdlib/source/documentation/lux.lux @@ -11,9 +11,7 @@ ["%" \\format (.only format)]] [collection ["[0]" list] - ["[0]" set]]] - [macro - ["[0]" template]]]] + ["[0]" set]]]]] [\\library ["[0]" /]] ["[0]" / @@ -25,7 +23,6 @@ ["[1][0]" extension] ["[1][0]" ffi] ["[1][0]" locale] - ["[1][0]" macro] ["[1][0]" math] ["[1][0]" meta] ["[1][0]" program] @@ -357,7 +354,7 @@ \n "It's a special macro meant to be used with 'case'.") [(case (is (List Int) (list +1 +2 +3)) - (pattern (list x y z)) + (list x y z) {#Some (all * x y z)} _ @@ -428,7 +425,7 @@ (macro (_ tokens) (case tokens (^with_template [] - [(pattern (list [_ { [module name]}])) + [(list [_ { [module name]}]) (in (list (` [(, (text$ module)) (, (text$ name))])))]) ([#Symbol]) @@ -712,13 +709,13 @@ [(def my_nat 123) (def my_text "456") (and (case [my_nat my_text] - (pattern (static [..my_nat ..my_text])) + (static [..my_nat ..my_text]) true _ false) (case [my_nat my_text] - (pattern [(static ..my_nat) (static ..my_text)]) + [(static ..my_nat) (static ..my_text)] true _ @@ -898,7 +895,6 @@ /extension.documentation /ffi.documentation /locale.documentation - /macro.documentation /math.documentation /meta.documentation /program.documentation diff --git a/stdlib/source/documentation/lux/control/concatenative.lux b/stdlib/source/documentation/lux/control/concatenative.lux index d300fd7fd..0d5a85f5a 100644 --- a/stdlib/source/documentation/lux/control/concatenative.lux +++ b/stdlib/source/documentation/lux/control/concatenative.lux @@ -5,14 +5,15 @@ [data [text ["%" \\format (.only format)]]] - [macro - ["[0]" template]] [math [number ["n" nat] ["i" int] ["r" rev] - ["f" frac]]]]] + ["f" frac]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/actor.lux b/stdlib/source/documentation/lux/control/concurrency/actor.lux index fd52ab040..16e529ca9 100644 --- a/stdlib/source/documentation/lux/control/concurrency/actor.lux +++ b/stdlib/source/documentation/lux/control/concurrency/actor.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/async.lux b/stdlib/source/documentation/lux/control/concurrency/async.lux index 6f43db6f6..655307522 100644 --- a/stdlib/source/documentation/lux/control/concurrency/async.lux +++ b/stdlib/source/documentation/lux/control/concurrency/async.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/atom.lux b/stdlib/source/documentation/lux/control/concurrency/atom.lux index 5c39f27d5..77dcba913 100644 --- a/stdlib/source/documentation/lux/control/concurrency/atom.lux +++ b/stdlib/source/documentation/lux/control/concurrency/atom.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/frp.lux b/stdlib/source/documentation/lux/control/concurrency/frp.lux index ad35eba37..2f89cf7bd 100644 --- a/stdlib/source/documentation/lux/control/concurrency/frp.lux +++ b/stdlib/source/documentation/lux/control/concurrency/frp.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/semaphore.lux b/stdlib/source/documentation/lux/control/concurrency/semaphore.lux index 91397cb83..77d05a40b 100644 --- a/stdlib/source/documentation/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/documentation/lux/control/concurrency/semaphore.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/stm.lux b/stdlib/source/documentation/lux/control/concurrency/stm.lux index d3e03d8fd..bd702f964 100644 --- a/stdlib/source/documentation/lux/control/concurrency/stm.lux +++ b/stdlib/source/documentation/lux/control/concurrency/stm.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/concurrency/thread.lux b/stdlib/source/documentation/lux/control/concurrency/thread.lux index b0206bc6c..89e899081 100644 --- a/stdlib/source/documentation/lux/control/concurrency/thread.lux +++ b/stdlib/source/documentation/lux/control/concurrency/thread.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/continuation.lux b/stdlib/source/documentation/lux/control/continuation.lux index 4cadaecc7..ee926dc02 100644 --- a/stdlib/source/documentation/lux/control/continuation.lux +++ b/stdlib/source/documentation/lux/control/continuation.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/exception.lux b/stdlib/source/documentation/lux/control/exception.lux index b74a152fe..01cecf3ea 100644 --- a/stdlib/source/documentation/lux/control/exception.lux +++ b/stdlib/source/documentation/lux/control/exception.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/function.lux b/stdlib/source/documentation/lux/control/function.lux index ed276e3f4..1447b66d1 100644 --- a/stdlib/source/documentation/lux/control/function.lux +++ b/stdlib/source/documentation/lux/control/function.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/control/function/contract.lux b/stdlib/source/documentation/lux/control/function/contract.lux index d1a24154f..90494e7f0 100644 --- a/stdlib/source/documentation/lux/control/function/contract.lux +++ b/stdlib/source/documentation/lux/control/function/contract.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/function/memo.lux b/stdlib/source/documentation/lux/control/function/memo.lux index 6b78db63e..9fd53f36e 100644 --- a/stdlib/source/documentation/lux/control/function/memo.lux +++ b/stdlib/source/documentation/lux/control/function/memo.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/function/mixin.lux b/stdlib/source/documentation/lux/control/function/mixin.lux index 7f05a4502..7f5399ee0 100644 --- a/stdlib/source/documentation/lux/control/function/mixin.lux +++ b/stdlib/source/documentation/lux/control/function/mixin.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/function/mutual.lux b/stdlib/source/documentation/lux/control/function/mutual.lux index 96208e936..e8ea1d7e2 100644 --- a/stdlib/source/documentation/lux/control/function/mutual.lux +++ b/stdlib/source/documentation/lux/control/function/mutual.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/io.lux b/stdlib/source/documentation/lux/control/io.lux index 495f57023..ceb754ed1 100644 --- a/stdlib/source/documentation/lux/control/io.lux +++ b/stdlib/source/documentation/lux/control/io.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/lazy.lux b/stdlib/source/documentation/lux/control/lazy.lux index ddf543f5d..df45b6cd5 100644 --- a/stdlib/source/documentation/lux/control/lazy.lux +++ b/stdlib/source/documentation/lux/control/lazy.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/maybe.lux b/stdlib/source/documentation/lux/control/maybe.lux index 0c0ff167e..2157e92ba 100644 --- a/stdlib/source/documentation/lux/control/maybe.lux +++ b/stdlib/source/documentation/lux/control/maybe.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser.lux b/stdlib/source/documentation/lux/control/parser.lux index 426854632..ac253916e 100644 --- a/stdlib/source/documentation/lux/control/parser.lux +++ b/stdlib/source/documentation/lux/control/parser.lux @@ -4,19 +4,14 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / - ["[1][0]" analysis] - ["[1][0]" binary] ["[1][0]" cli] ["[1][0]" code] ["[1][0]" environment] ["[1][0]" json] - ["[1][0]" synthesis] ["[1][0]" text] ["[1][0]" tree] ["[1][0]" type] @@ -138,13 +133,10 @@ ($.documentation /.codec "Decode the output of a parser using a codec." [(codec codec parser)])] - [/analysis.documentation - /binary.documentation - /cli.documentation + [/cli.documentation /code.documentation /environment.documentation /json.documentation - /synthesis.documentation /text.documentation /tree.documentation /type.documentation diff --git a/stdlib/source/documentation/lux/control/parser/analysis.lux b/stdlib/source/documentation/lux/control/parser/analysis.lux deleted file mode 100644 index 14ff24f04..000000000 --- a/stdlib/source/documentation/lux/control/parser/analysis.lux +++ /dev/null @@ -1,71 +0,0 @@ -(.require - [library - [lux (.except nat int rev local) - ["$" documentation (.only documentation:)] - [data - [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] - [\\library - ["[0]" /]]) - -(documentation: (/.Parser it) - "A parser for Lux code analysis nodes.") - -(documentation: /.result - "Executes a parser and makes sure no inputs go unconsumed." - [(result parser input)]) - -(documentation: /.any - "Matches any value, without discrimination.") - -(documentation: /.end - "Ensures there are no more inputs.") - -(documentation: /.end? - "Checks whether there are no more inputs.") - -(with_template [ ] - [(`` (these (`` (documentation: - (format "Queries for a " (,, (template.text [])) " value."))) - (`` (documentation: - (format "Assert a specific " (,, (template.text [])) " value.")))))] - - [/.bit /.this_bit] - [/.nat /.this_nat] - [/.int /.this_int] - [/.rev /.this_rev] - [/.frac /.this_frac] - [/.text /.this_text] - [/.local /.this_local] - [/.foreign /.this_foreign] - [/.constant /.this_constant] - ) - -(documentation: /.tuple - "Parses only within the context of a tuple's contents." - [(tuple parser)]) - -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [..Parser - ..result - ..any - ..end - ..end? - ..bit ..this_bit - ..nat ..this_nat - ..int ..this_int - ..rev ..this_rev - ..frac ..this_frac - ..text ..this_text - ..local ..this_local - ..foreign ..this_foreign - ..constant ..this_constant - ..tuple - ($.default /.cannot_parse) - ($.default /.unconsumed_input)] - [])) diff --git a/stdlib/source/documentation/lux/control/parser/binary.lux b/stdlib/source/documentation/lux/control/parser/binary.lux deleted file mode 100644 index 00156613d..000000000 --- a/stdlib/source/documentation/lux/control/parser/binary.lux +++ /dev/null @@ -1,139 +0,0 @@ -(.require - [library - [lux (.except list) - ["$" documentation (.only documentation:)] - [data - [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] - [\\library - ["[0]" /]]) - -(documentation: /.Offset - "An offset for reading within binary data.") - -(documentation: (/.Parser it) - "A parser for raw binary data.") - -(documentation: /.result - "Runs a parser and checks that all the binary data was read by it." - [(result parser input)]) - -(documentation: /.end? - "Checks whether there is no more data to read.") - -(documentation: /.offset - "The current offset (i.e. how much data has been read).") - -(documentation: /.remaining - "How much of the data remains to be read.") - -(documentation: /.Size - "The size of a chunk of data within a binary array.") - -(documentation: /.rec - "Tie the knot for a recursive parser.") - -(documentation: /.any - "Does no parsing, and just returns a dummy value.") - -(documentation: /.segment - "Parses a chunk of data of a given size." - [(segment size)]) - -(with_template [ ] - [(documentation: - (format "Parses a block of data prefixed with a size that is " (%.nat ) " bytes long."))] - - [08 /.binary_8] - [16 /.binary_16] - [32 /.binary_32] - [64 /.binary_64] - ) - -(with_template [ ] - [(documentation: - (format "Parses a block of (UTF-8 encoded) text prefixed with a size that is " (%.nat ) " bytes long."))] - - [08 /.utf8_8] - [16 /.utf8_16] - [32 /.utf8_32] - [64 /.utf8_64] - ) - -(with_template [ ] - [(documentation: - (format "Parses a sequence of values prefixed with a size that is " (%.nat ) " bytes long."))] - - [08 /.sequence_8] - [16 /.sequence_16] - [32 /.sequence_32] - [64 /.sequence_64] - ) - -(documentation: /.list - "Parses an arbitrarily long list of values." - [(list value)]) - -(documentation: /.set - "" - [(set hash value)]) - -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [..Offset - ..Parser - ..result - ..end? - ..offset - ..remaining - ..Size - ..rec - ..any - ..segment - - ..binary_8 - ..binary_16 - ..binary_32 - ..binary_64 - - ..utf8_8 - ..utf8_16 - ..utf8_32 - ..utf8_64 - - ..sequence_8 - ..sequence_16 - ..sequence_32 - ..sequence_64 - - ..list - ..set - ($.default /.binary_was_not_fully_read) - ($.default /.size_8) - ($.default /.size_16) - ($.default /.size_32) - ($.default /.size_64) - ($.default /.bits_8) - ($.default /.bits_16) - ($.default /.bits_32) - ($.default /.bits_64) - ($.default /.nat) - ($.default /.int) - ($.default /.rev) - ($.default /.frac) - ($.default /.invalid_tag) - ($.default /.or) - ($.default /.not_a_bit) - ($.default /.bit) - ($.default /.text) - ($.default /.maybe) - ($.default /.set_elements_are_not_unique) - ($.default /.symbol) - ($.default /.type) - ($.default /.location) - ($.default /.code)] - [])) diff --git a/stdlib/source/documentation/lux/control/parser/cli.lux b/stdlib/source/documentation/lux/control/parser/cli.lux index 27104cf2e..f76bb6e1a 100644 --- a/stdlib/source/documentation/lux/control/parser/cli.lux +++ b/stdlib/source/documentation/lux/control/parser/cli.lux @@ -4,9 +4,7 @@ ["$" documentation (.only documentation:)] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/code.lux b/stdlib/source/documentation/lux/control/parser/code.lux index 0840fd16d..9347075dd 100644 --- a/stdlib/source/documentation/lux/control/parser/code.lux +++ b/stdlib/source/documentation/lux/control/parser/code.lux @@ -5,8 +5,9 @@ [data [text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/environment.lux b/stdlib/source/documentation/lux/control/parser/environment.lux index 4888b4367..345d4aaa3 100644 --- a/stdlib/source/documentation/lux/control/parser/environment.lux +++ b/stdlib/source/documentation/lux/control/parser/environment.lux @@ -4,9 +4,7 @@ ["$" documentation (.only documentation:)] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/json.lux b/stdlib/source/documentation/lux/control/parser/json.lux index ed4068800..89ab7f9f1 100644 --- a/stdlib/source/documentation/lux/control/parser/json.lux +++ b/stdlib/source/documentation/lux/control/parser/json.lux @@ -5,8 +5,9 @@ [data [text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/synthesis.lux b/stdlib/source/documentation/lux/control/parser/synthesis.lux deleted file mode 100644 index b55bb6061..000000000 --- a/stdlib/source/documentation/lux/control/parser/synthesis.lux +++ /dev/null @@ -1,83 +0,0 @@ -(.require - [library - [lux (.except i64 local function loop) - ["$" documentation (.only documentation:)] - [data - [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] - [\\library - ["[0]" /]]) - -(documentation: (/.Parser it) - "A parser for the Lux compiler's synthesis nodes using during optimization.") - -(documentation: /.result - (format "Executes the parser against the inputs." - \n "Ensures all inputs are consumed by the parser.") - [(result parser input)]) - -(documentation: /.any - "Yields a synthesis node without subjecting it to any analysis.") - -(documentation: /.end - "Ensures there are no more inputs.") - -(documentation: /.end? - "Checks whether there are no more inputs.") - -(with_template [ ] - [(`` (documentation: - (format "Queries for a " (,, (template.text [])) " synthesis node."))) - (`` (documentation: - (format "Checks for a specific " (,, (template.text [])) " synthesis node.")))] - - [/.bit /.this_bit] - [/.i64 /.this_i64] - [/.f64 /.this_f64] - [/.text /.this_text] - [/.local /.this_local] - [/.foreign /.this_foreign] - [/.constant /.this_constant] - ) - -(documentation: /.tuple - "Parses the contents of a tuple." - [(tuple parser)]) - -(documentation: /.function - "Parses the body of a function with the 'expected' arity." - [(function expected parser)]) - -(documentation: /.loop - "Parses the initial values and the body of a loop." - [(loop init_parsers iteration_parser)]) - -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [..Parser - ..result - ..any - ..end - ..end? - - ..bit ..this_bit - ..i64 ..this_i64 - ..f64 ..this_f64 - ..text ..this_text - ..local ..this_local - ..foreign ..this_foreign - ..constant ..this_constant - - ..tuple - ..function - ..loop - ($.default /.cannot_parse) - ($.default /.unconsumed_input) - ($.default /.expected_empty_input) - ($.default /.wrong_arity) - ($.default /.empty_input)] - [])) diff --git a/stdlib/source/documentation/lux/control/parser/text.lux b/stdlib/source/documentation/lux/control/parser/text.lux index 4b35bc626..aa0641d5b 100644 --- a/stdlib/source/documentation/lux/control/parser/text.lux +++ b/stdlib/source/documentation/lux/control/parser/text.lux @@ -5,8 +5,9 @@ [data [text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/tree.lux b/stdlib/source/documentation/lux/control/parser/tree.lux index e6e13b2b5..e9c4cd289 100644 --- a/stdlib/source/documentation/lux/control/parser/tree.lux +++ b/stdlib/source/documentation/lux/control/parser/tree.lux @@ -4,9 +4,7 @@ ["$" documentation (.only documentation:)] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/type.lux b/stdlib/source/documentation/lux/control/parser/type.lux index 171db7456..2ecedfe39 100644 --- a/stdlib/source/documentation/lux/control/parser/type.lux +++ b/stdlib/source/documentation/lux/control/parser/type.lux @@ -5,8 +5,9 @@ [data [text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/parser/xml.lux b/stdlib/source/documentation/lux/control/parser/xml.lux index 620b97dc6..c5ca5af74 100644 --- a/stdlib/source/documentation/lux/control/parser/xml.lux +++ b/stdlib/source/documentation/lux/control/parser/xml.lux @@ -4,9 +4,7 @@ ["$" documentation (.only documentation:)] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/pipe.lux b/stdlib/source/documentation/lux/control/pipe.lux index 614e8f5c4..0f2fd01ce 100644 --- a/stdlib/source/documentation/lux/control/pipe.lux +++ b/stdlib/source/documentation/lux/control/pipe.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/reader.lux b/stdlib/source/documentation/lux/control/reader.lux index c411c6f32..eaac93dc5 100644 --- a/stdlib/source/documentation/lux/control/reader.lux +++ b/stdlib/source/documentation/lux/control/reader.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/region.lux b/stdlib/source/documentation/lux/control/region.lux index c0da27237..5432ab07f 100644 --- a/stdlib/source/documentation/lux/control/region.lux +++ b/stdlib/source/documentation/lux/control/region.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/remember.lux b/stdlib/source/documentation/lux/control/remember.lux index 3d40127a4..5c6b1bc2a 100644 --- a/stdlib/source/documentation/lux/control/remember.lux +++ b/stdlib/source/documentation/lux/control/remember.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/security/capability.lux b/stdlib/source/documentation/lux/control/security/capability.lux index 920f9c439..de8b33889 100644 --- a/stdlib/source/documentation/lux/control/security/capability.lux +++ b/stdlib/source/documentation/lux/control/security/capability.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/security/policy.lux b/stdlib/source/documentation/lux/control/security/policy.lux index d693c8c50..07d0ebc8d 100644 --- a/stdlib/source/documentation/lux/control/security/policy.lux +++ b/stdlib/source/documentation/lux/control/security/policy.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/state.lux b/stdlib/source/documentation/lux/control/state.lux index fa5a0ee5f..9f975818e 100644 --- a/stdlib/source/documentation/lux/control/state.lux +++ b/stdlib/source/documentation/lux/control/state.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/thread.lux b/stdlib/source/documentation/lux/control/thread.lux index 587c165a8..85945fb00 100644 --- a/stdlib/source/documentation/lux/control/thread.lux +++ b/stdlib/source/documentation/lux/control/thread.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/try.lux b/stdlib/source/documentation/lux/control/try.lux index 0283736a3..9ff894fa0 100644 --- a/stdlib/source/documentation/lux/control/try.lux +++ b/stdlib/source/documentation/lux/control/try.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/control/writer.lux b/stdlib/source/documentation/lux/control/writer.lux index b824174ec..58650b8f0 100644 --- a/stdlib/source/documentation/lux/control/writer.lux +++ b/stdlib/source/documentation/lux/control/writer.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/binary.lux b/stdlib/source/documentation/lux/data/binary.lux index 61395234c..09f2b8b87 100644 --- a/stdlib/source/documentation/lux/data/binary.lux +++ b/stdlib/source/documentation/lux/data/binary.lux @@ -4,13 +4,112 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] ["[0]" \\format] + ["[0]" \\parser] [\\library ["[0]" /]]) +(`` (.def \\parser + (.List $.Module) + ($.module \\parser._ + "" + [($.default \\parser.binary_was_not_fully_read) + ($.default \\parser.size_8) + ($.default \\parser.size_16) + ($.default \\parser.size_32) + ($.default \\parser.size_64) + ($.default \\parser.bits_8) + ($.default \\parser.bits_16) + ($.default \\parser.bits_32) + ($.default \\parser.bits_64) + ($.default \\parser.nat) + ($.default \\parser.int) + ($.default \\parser.rev) + ($.default \\parser.frac) + ($.default \\parser.invalid_tag) + ($.default \\parser.or) + ($.default \\parser.not_a_bit) + ($.default \\parser.bit) + ($.default \\parser.text) + ($.default \\parser.maybe) + ($.default \\parser.set_elements_are_not_unique) + ($.default \\parser.symbol) + ($.default \\parser.type) + ($.default \\parser.location) + ($.default \\parser.code) + + ($.documentation \\parser.Offset + "An offset for reading within binary data.") + + ($.documentation (\\parser.Parser it) + "A parser for raw binary data.") + + ($.documentation \\parser.result + "Runs a parser and checks that all the binary data was read by it." + [(result parser input)]) + + ($.documentation \\parser.end? + "Checks whether there is no more data to read.") + + ($.documentation \\parser.offset + "The current offset (i.e. how much data has been read).") + + ($.documentation \\parser.remaining + "How much of the data remains to be read.") + + ($.documentation \\parser.Size + "The size of a chunk of data within a binary array.") + + ($.documentation \\parser.rec + "Tie the knot for a recursive parser.") + + ($.documentation \\parser.any + "Does no parsing, and just returns a dummy value.") + + ($.documentation \\parser.segment + "Parses a chunk of data of a given size." + [(segment size)]) + + (,, (with_template [ ] + [($.documentation + (format "Parses a block of data prefixed with a size that is " (%.nat ) " bytes long."))] + + [08 \\parser.binary_8] + [16 \\parser.binary_16] + [32 \\parser.binary_32] + [64 \\parser.binary_64] + )) + + (,, (with_template [ ] + [($.documentation + (format "Parses a block of (UTF-8 encoded) text prefixed with a size that is " (%.nat ) " bytes long."))] + + [08 \\parser.utf8_8] + [16 \\parser.utf8_16] + [32 \\parser.utf8_32] + [64 \\parser.utf8_64] + )) + + (,, (with_template [ ] + [($.documentation + (format "Parses a sequence of values prefixed with a size that is " (%.nat ) " bytes long."))] + + [08 \\parser.sequence_8] + [16 \\parser.sequence_16] + [32 \\parser.sequence_32] + [64 \\parser.sequence_64] + )) + + ($.documentation \\parser.list + "Parses an arbitrarily long list of values." + [(list value)]) + + ($.documentation \\parser.set + "" + [(set hash value)])] + []))) + (.def \\format (.List $.Module) ($.module \\format._ @@ -147,4 +246,5 @@ ($.documentation /.after "Yields a binary BLOB with at most the specified number of bytes removed." [(after bytes binary)])] - [..\\format])) + [..\\format + ..\\parser])) diff --git a/stdlib/source/documentation/lux/data/bit.lux b/stdlib/source/documentation/lux/data/bit.lux index 43d64ae46..25b1262d2 100644 --- a/stdlib/source/documentation/lux/data/bit.lux +++ b/stdlib/source/documentation/lux/data/bit.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/collection/array.lux b/stdlib/source/documentation/lux/data/collection/array.lux index 29416d649..c4ce92a7a 100644 --- a/stdlib/source/documentation/lux/data/collection/array.lux +++ b/stdlib/source/documentation/lux/data/collection/array.lux @@ -5,8 +5,6 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]] [meta ["[0]" code]]]] [\\library diff --git a/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux b/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux index 74381c580..64f18f260 100644 --- a/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux +++ b/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux @@ -5,8 +5,9 @@ [data [text ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/collection/set.lux b/stdlib/source/documentation/lux/data/collection/set.lux index b3a16c70c..37024e63b 100644 --- a/stdlib/source/documentation/lux/data/collection/set.lux +++ b/stdlib/source/documentation/lux/data/collection/set.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/data/collection/set/multi.lux b/stdlib/source/documentation/lux/data/collection/set/multi.lux index 8c494a583..d6d0947dc 100644 --- a/stdlib/source/documentation/lux/data/collection/set/multi.lux +++ b/stdlib/source/documentation/lux/data/collection/set/multi.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/collection/set/ordered.lux b/stdlib/source/documentation/lux/data/collection/set/ordered.lux index ac34d2f5d..0b8dba28e 100644 --- a/stdlib/source/documentation/lux/data/collection/set/ordered.lux +++ b/stdlib/source/documentation/lux/data/collection/set/ordered.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/collection/stack.lux b/stdlib/source/documentation/lux/data/collection/stack.lux index e05e774c2..defa3f836 100644 --- a/stdlib/source/documentation/lux/data/collection/stack.lux +++ b/stdlib/source/documentation/lux/data/collection/stack.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/collection/tree.lux b/stdlib/source/documentation/lux/data/collection/tree.lux index 91324bbcf..f0d165a5b 100644 --- a/stdlib/source/documentation/lux/data/collection/tree.lux +++ b/stdlib/source/documentation/lux/data/collection/tree.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/data/collection/tree/finger.lux b/stdlib/source/documentation/lux/data/collection/tree/finger.lux index 7386f313e..fe0488db4 100644 --- a/stdlib/source/documentation/lux/data/collection/tree/finger.lux +++ b/stdlib/source/documentation/lux/data/collection/tree/finger.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/collection/tree/zipper.lux b/stdlib/source/documentation/lux/data/collection/tree/zipper.lux index 76fb1602c..317fd95ac 100644 --- a/stdlib/source/documentation/lux/data/collection/tree/zipper.lux +++ b/stdlib/source/documentation/lux/data/collection/tree/zipper.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/color.lux b/stdlib/source/documentation/lux/data/color.lux index c76cf4c45..20ef0c572 100644 --- a/stdlib/source/documentation/lux/data/color.lux +++ b/stdlib/source/documentation/lux/data/color.lux @@ -5,12 +5,12 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - [syntax (.only syntax)] - ["[0]" template]] [meta ["[0]" code (.only) - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]] + [macro + [syntax (.only syntax)] + ["[0]" template]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/data/format/json.lux b/stdlib/source/documentation/lux/data/format/json.lux index ccf18365e..25026ef6f 100644 --- a/stdlib/source/documentation/lux/data/format/json.lux +++ b/stdlib/source/documentation/lux/data/format/json.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/format/tar.lux b/stdlib/source/documentation/lux/data/format/tar.lux index 353d83876..f31c3dc68 100644 --- a/stdlib/source/documentation/lux/data/format/tar.lux +++ b/stdlib/source/documentation/lux/data/format/tar.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/format/xml.lux b/stdlib/source/documentation/lux/data/format/xml.lux index 002f24eff..d49299af6 100644 --- a/stdlib/source/documentation/lux/data/format/xml.lux +++ b/stdlib/source/documentation/lux/data/format/xml.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/identity.lux b/stdlib/source/documentation/lux/data/identity.lux index efb6520f5..e1d42389e 100644 --- a/stdlib/source/documentation/lux/data/identity.lux +++ b/stdlib/source/documentation/lux/data/identity.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/product.lux b/stdlib/source/documentation/lux/data/product.lux index 6a2921eab..7275ad4ee 100644 --- a/stdlib/source/documentation/lux/data/product.lux +++ b/stdlib/source/documentation/lux/data/product.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/sum.lux b/stdlib/source/documentation/lux/data/sum.lux index cf4df8be5..2bd740509 100644 --- a/stdlib/source/documentation/lux/data/sum.lux +++ b/stdlib/source/documentation/lux/data/sum.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/text/buffer.lux b/stdlib/source/documentation/lux/data/text/buffer.lux index a510bebab..9f64dd787 100644 --- a/stdlib/source/documentation/lux/data/text/buffer.lux +++ b/stdlib/source/documentation/lux/data/text/buffer.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/text/encoding.lux b/stdlib/source/documentation/lux/data/text/encoding.lux index 42b3ff87e..471b5970e 100644 --- a/stdlib/source/documentation/lux/data/text/encoding.lux +++ b/stdlib/source/documentation/lux/data/text/encoding.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/data/text/encoding/utf8.lux b/stdlib/source/documentation/lux/data/text/encoding/utf8.lux index 0ad760263..eaa712caf 100644 --- a/stdlib/source/documentation/lux/data/text/encoding/utf8.lux +++ b/stdlib/source/documentation/lux/data/text/encoding/utf8.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/text/escape.lux b/stdlib/source/documentation/lux/data/text/escape.lux index 3a62c1349..aa0ec4015 100644 --- a/stdlib/source/documentation/lux/data/text/escape.lux +++ b/stdlib/source/documentation/lux/data/text/escape.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/text/regex.lux b/stdlib/source/documentation/lux/data/text/regex.lux index 540acb1fe..fef504012 100644 --- a/stdlib/source/documentation/lux/data/text/regex.lux +++ b/stdlib/source/documentation/lux/data/text/regex.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/data/text/unicode/block.lux b/stdlib/source/documentation/lux/data/text/unicode/block.lux index 2021ce0d1..d23c6815d 100644 --- a/stdlib/source/documentation/lux/data/text/unicode/block.lux +++ b/stdlib/source/documentation/lux/data/text/unicode/block.lux @@ -5,8 +5,6 @@ [data ["[0]" text (.only) ["%" \\format (.only format)]]] - [macro - ["[0]" template]] [math [number ["[0]" nat (.use "hex#[0]" hex)]]]]] diff --git a/stdlib/source/documentation/lux/data/text/unicode/set.lux b/stdlib/source/documentation/lux/data/text/unicode/set.lux index 80f96be50..1e637cf5e 100644 --- a/stdlib/source/documentation/lux/data/text/unicode/set.lux +++ b/stdlib/source/documentation/lux/data/text/unicode/set.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/debug.lux b/stdlib/source/documentation/lux/debug.lux index b560b35fe..33cb48573 100644 --- a/stdlib/source/documentation/lux/debug.lux +++ b/stdlib/source/documentation/lux/debug.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/documentation.lux b/stdlib/source/documentation/lux/documentation.lux index bdebfab7e..a7ab8bd82 100644 --- a/stdlib/source/documentation/lux/documentation.lux +++ b/stdlib/source/documentation/lux/documentation.lux @@ -3,9 +3,7 @@ [lux (.except) [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/extension.lux b/stdlib/source/documentation/lux/extension.lux index 35b5fbd72..1ca48bc21 100644 --- a/stdlib/source/documentation/lux/extension.lux +++ b/stdlib/source/documentation/lux/extension.lux @@ -8,11 +8,11 @@ ["%" \\format (.only format)]] [collection ["[0]" sequence]]] - [macro - ["[0]" template]] [meta ["[0]" code - ["<[1]>" \\parser]]] + ["<[1]>" \\parser]] + [macro + ["[0]" template]]] [tool [compiler ["[0]" phase] diff --git a/stdlib/source/documentation/lux/ffi.js.lux b/stdlib/source/documentation/lux/ffi.js.lux index 71bf8062d..07c5e5759 100644 --- a/stdlib/source/documentation/lux/ffi.js.lux +++ b/stdlib/source/documentation/lux/ffi.js.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/ffi.jvm.lux b/stdlib/source/documentation/lux/ffi.jvm.lux index 760a625f0..bc804020f 100644 --- a/stdlib/source/documentation/lux/ffi.jvm.lux +++ b/stdlib/source/documentation/lux/ffi.jvm.lux @@ -5,8 +5,9 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/ffi.lua.lux b/stdlib/source/documentation/lux/ffi.lua.lux index 4b5e478de..db5e78eb1 100644 --- a/stdlib/source/documentation/lux/ffi.lua.lux +++ b/stdlib/source/documentation/lux/ffi.lua.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/ffi.old.lux b/stdlib/source/documentation/lux/ffi.old.lux index ce7eb423e..5bc8cd6cc 100644 --- a/stdlib/source/documentation/lux/ffi.old.lux +++ b/stdlib/source/documentation/lux/ffi.old.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/ffi.py.lux b/stdlib/source/documentation/lux/ffi.py.lux index 0d5a5771f..734e6c0ab 100644 --- a/stdlib/source/documentation/lux/ffi.py.lux +++ b/stdlib/source/documentation/lux/ffi.py.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/ffi.rb.lux b/stdlib/source/documentation/lux/ffi.rb.lux index 3ea02446e..3eec0ed72 100644 --- a/stdlib/source/documentation/lux/ffi.rb.lux +++ b/stdlib/source/documentation/lux/ffi.rb.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/infix.lux b/stdlib/source/documentation/lux/math/infix.lux index 2e7b35559..f9b284e44 100644 --- a/stdlib/source/documentation/lux/math/infix.lux +++ b/stdlib/source/documentation/lux/math/infix.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/logic/continuous.lux b/stdlib/source/documentation/lux/math/logic/continuous.lux index b97474b28..d526d2414 100644 --- a/stdlib/source/documentation/lux/math/logic/continuous.lux +++ b/stdlib/source/documentation/lux/math/logic/continuous.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/logic/fuzzy.lux b/stdlib/source/documentation/lux/math/logic/fuzzy.lux index 47b5c235d..9e3cb5df1 100644 --- a/stdlib/source/documentation/lux/math/logic/fuzzy.lux +++ b/stdlib/source/documentation/lux/math/logic/fuzzy.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/modular.lux b/stdlib/source/documentation/lux/math/modular.lux index fe39e1b40..76c93b01b 100644 --- a/stdlib/source/documentation/lux/math/modular.lux +++ b/stdlib/source/documentation/lux/math/modular.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/modulus.lux b/stdlib/source/documentation/lux/math/modulus.lux index 4f0d17564..bc0fb952d 100644 --- a/stdlib/source/documentation/lux/math/modulus.lux +++ b/stdlib/source/documentation/lux/math/modulus.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number.lux b/stdlib/source/documentation/lux/math/number.lux index 2420d347a..7fd74e5a0 100644 --- a/stdlib/source/documentation/lux/math/number.lux +++ b/stdlib/source/documentation/lux/math/number.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/math/number/complex.lux b/stdlib/source/documentation/lux/math/number/complex.lux index cf5f3b33f..c615842f2 100644 --- a/stdlib/source/documentation/lux/math/number/complex.lux +++ b/stdlib/source/documentation/lux/math/number/complex.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/frac.lux b/stdlib/source/documentation/lux/math/number/frac.lux index 8ae35ef2e..0b27d0b0f 100644 --- a/stdlib/source/documentation/lux/math/number/frac.lux +++ b/stdlib/source/documentation/lux/math/number/frac.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/i16.lux b/stdlib/source/documentation/lux/math/number/i16.lux index 20c6ac061..8f0caf9b7 100644 --- a/stdlib/source/documentation/lux/math/number/i16.lux +++ b/stdlib/source/documentation/lux/math/number/i16.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/i32.lux b/stdlib/source/documentation/lux/math/number/i32.lux index f092d9aa9..726301ba6 100644 --- a/stdlib/source/documentation/lux/math/number/i32.lux +++ b/stdlib/source/documentation/lux/math/number/i32.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/i64.lux b/stdlib/source/documentation/lux/math/number/i64.lux index 0a6cef889..1481ef25b 100644 --- a/stdlib/source/documentation/lux/math/number/i64.lux +++ b/stdlib/source/documentation/lux/math/number/i64.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/i8.lux b/stdlib/source/documentation/lux/math/number/i8.lux index f7893d393..5e8e3c870 100644 --- a/stdlib/source/documentation/lux/math/number/i8.lux +++ b/stdlib/source/documentation/lux/math/number/i8.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/int.lux b/stdlib/source/documentation/lux/math/number/int.lux index 70cec4be4..e1494b9ba 100644 --- a/stdlib/source/documentation/lux/math/number/int.lux +++ b/stdlib/source/documentation/lux/math/number/int.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/nat.lux b/stdlib/source/documentation/lux/math/number/nat.lux index 62c72b8b8..ac7c6aa10 100644 --- a/stdlib/source/documentation/lux/math/number/nat.lux +++ b/stdlib/source/documentation/lux/math/number/nat.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/ratio.lux b/stdlib/source/documentation/lux/math/number/ratio.lux index 3bd835a57..7cc00373b 100644 --- a/stdlib/source/documentation/lux/math/number/ratio.lux +++ b/stdlib/source/documentation/lux/math/number/ratio.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/number/rev.lux b/stdlib/source/documentation/lux/math/number/rev.lux index d93c8e3c5..1d4c746d6 100644 --- a/stdlib/source/documentation/lux/math/number/rev.lux +++ b/stdlib/source/documentation/lux/math/number/rev.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/math/random.lux b/stdlib/source/documentation/lux/math/random.lux index 0e0d88ec9..5f1a41f7d 100644 --- a/stdlib/source/documentation/lux/math/random.lux +++ b/stdlib/source/documentation/lux/math/random.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta.lux b/stdlib/source/documentation/lux/meta.lux index 72315f3d2..7a0ab78d6 100644 --- a/stdlib/source/documentation/lux/meta.lux +++ b/stdlib/source/documentation/lux/meta.lux @@ -4,16 +4,15 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / ["[1][0]" code] ["[1][0]" location] ["[1][0]" symbol] - ["[1][0]" type]]) + ["[1][0]" type] + ["[1][0]" macro]]) (.def .public documentation (.List $.Module) @@ -167,4 +166,5 @@ [/code.documentation /location.documentation /symbol.documentation - /type.documentation])) + /type.documentation + /macro.documentation])) diff --git a/stdlib/source/documentation/lux/meta/location.lux b/stdlib/source/documentation/lux/meta/location.lux index 0d3bcaf84..44e7af75b 100644 --- a/stdlib/source/documentation/lux/meta/location.lux +++ b/stdlib/source/documentation/lux/meta/location.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/symbol.lux b/stdlib/source/documentation/lux/meta/symbol.lux index 8189cdf71..2011a508c 100644 --- a/stdlib/source/documentation/lux/meta/symbol.lux +++ b/stdlib/source/documentation/lux/meta/symbol.lux @@ -4,9 +4,7 @@ ["$" documentation] [data [text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type.lux b/stdlib/source/documentation/lux/meta/type.lux index e4b93f034..541e3978c 100644 --- a/stdlib/source/documentation/lux/meta/type.lux +++ b/stdlib/source/documentation/lux/meta/type.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format]]] - [macro - ["[0]" template]]]] + ["%" \\format]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/meta/type/check.lux b/stdlib/source/documentation/lux/meta/type/check.lux index e5a7130cf..f9d19f78b 100644 --- a/stdlib/source/documentation/lux/meta/type/check.lux +++ b/stdlib/source/documentation/lux/meta/type/check.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/dynamic.lux b/stdlib/source/documentation/lux/meta/type/dynamic.lux index 861d7143f..8340126cd 100644 --- a/stdlib/source/documentation/lux/meta/type/dynamic.lux +++ b/stdlib/source/documentation/lux/meta/type/dynamic.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/implicit.lux b/stdlib/source/documentation/lux/meta/type/implicit.lux index 9490d4aee..d3ee56899 100644 --- a/stdlib/source/documentation/lux/meta/type/implicit.lux +++ b/stdlib/source/documentation/lux/meta/type/implicit.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/poly.lux b/stdlib/source/documentation/lux/meta/type/poly.lux index 979ae2899..e5317320a 100644 --- a/stdlib/source/documentation/lux/meta/type/poly.lux +++ b/stdlib/source/documentation/lux/meta/type/poly.lux @@ -8,9 +8,7 @@ ["$[0]" codec]]] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/primitive.lux b/stdlib/source/documentation/lux/meta/type/primitive.lux index d531ffb98..9e1cf4f4f 100644 --- a/stdlib/source/documentation/lux/meta/type/primitive.lux +++ b/stdlib/source/documentation/lux/meta/type/primitive.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/quotient.lux b/stdlib/source/documentation/lux/meta/type/quotient.lux index 1451674e6..c68949188 100644 --- a/stdlib/source/documentation/lux/meta/type/quotient.lux +++ b/stdlib/source/documentation/lux/meta/type/quotient.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/refinement.lux b/stdlib/source/documentation/lux/meta/type/refinement.lux index 304b4b266..cc9019d71 100644 --- a/stdlib/source/documentation/lux/meta/type/refinement.lux +++ b/stdlib/source/documentation/lux/meta/type/refinement.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/resource.lux b/stdlib/source/documentation/lux/meta/type/resource.lux index b4dcfdd6f..da7f24173 100644 --- a/stdlib/source/documentation/lux/meta/type/resource.lux +++ b/stdlib/source/documentation/lux/meta/type/resource.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/unit.lux b/stdlib/source/documentation/lux/meta/type/unit.lux index 1f2f6918e..79e2ce918 100644 --- a/stdlib/source/documentation/lux/meta/type/unit.lux +++ b/stdlib/source/documentation/lux/meta/type/unit.lux @@ -5,11 +5,12 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]] [math [number - ["[0]" ratio]]]]] + ["[0]" ratio]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/meta/type/variance.lux b/stdlib/source/documentation/lux/meta/type/variance.lux index e3b377fea..5d0845693 100644 --- a/stdlib/source/documentation/lux/meta/type/variance.lux +++ b/stdlib/source/documentation/lux/meta/type/variance.lux @@ -5,8 +5,9 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/program.lux b/stdlib/source/documentation/lux/program.lux index fc830b881..87e9b607a 100644 --- a/stdlib/source/documentation/lux/program.lux +++ b/stdlib/source/documentation/lux/program.lux @@ -6,9 +6,7 @@ ["[0]" io]] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/test.lux b/stdlib/source/documentation/lux/test.lux index f15eacf9d..4c76f2278 100644 --- a/stdlib/source/documentation/lux/test.lux +++ b/stdlib/source/documentation/lux/test.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/time.lux b/stdlib/source/documentation/lux/time.lux index 59f609b05..f327e942a 100644 --- a/stdlib/source/documentation/lux/time.lux +++ b/stdlib/source/documentation/lux/time.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/time/date.lux b/stdlib/source/documentation/lux/time/date.lux index 15bfdafbb..17fd0143b 100644 --- a/stdlib/source/documentation/lux/time/date.lux +++ b/stdlib/source/documentation/lux/time/date.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/time/day.lux b/stdlib/source/documentation/lux/time/day.lux index 29db3b570..e7923dfe0 100644 --- a/stdlib/source/documentation/lux/time/day.lux +++ b/stdlib/source/documentation/lux/time/day.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/time/duration.lux b/stdlib/source/documentation/lux/time/duration.lux index 1340f3460..0b9ddaa0b 100644 --- a/stdlib/source/documentation/lux/time/duration.lux +++ b/stdlib/source/documentation/lux/time/duration.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/time/instant.lux b/stdlib/source/documentation/lux/time/instant.lux index b40489b5c..c5fbe2b01 100644 --- a/stdlib/source/documentation/lux/time/instant.lux +++ b/stdlib/source/documentation/lux/time/instant.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/time/month.lux b/stdlib/source/documentation/lux/time/month.lux index 05103ec1f..9e9d4dc28 100644 --- a/stdlib/source/documentation/lux/time/month.lux +++ b/stdlib/source/documentation/lux/time/month.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/time/year.lux b/stdlib/source/documentation/lux/time/year.lux index 85341eb24..1ac6a11ca 100644 --- a/stdlib/source/documentation/lux/time/year.lux +++ b/stdlib/source/documentation/lux/time/year.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/tool/compiler/language/lux/analysis.lux b/stdlib/source/documentation/lux/tool/compiler/language/lux/analysis.lux index 83a47a0b1..7daade0e8 100644 --- a/stdlib/source/documentation/lux/tool/compiler/language/lux/analysis.lux +++ b/stdlib/source/documentation/lux/tool/compiler/language/lux/analysis.lux @@ -6,10 +6,59 @@ [text (.only \n) ["%" \\format (.only format)]] [collection - ["[0]" list]]]]] + ["[0]" list]]] + [meta + [macro + ["[0]" template]]]]] + ["[0]" \\parser] [\\library ["[0]" /]]) +(`` (.def \\parser + (.List $.Module) + ($.module \\parser._ + "" + [($.default \\parser.cannot_parse) + ($.default \\parser.unconsumed_input) + + ($.documentation (\\parser.Parser it) + "A parser for Lux code analysis nodes.") + + ($.documentation \\parser.result + "Executes a parser and makes sure no inputs go unconsumed." + [(result parser input)]) + + ($.documentation \\parser.any + "Matches any value, without discrimination.") + + ($.documentation \\parser.end + "Ensures there are no more inputs.") + + ($.documentation \\parser.end? + "Checks whether there are no more inputs.") + + (,, (with_template [ ] + [($.documentation + (format "Queries for a " (template.text []) " value.")) + ($.documentation + (format "Assert a specific " (template.text []) " value."))] + + [\\parser.bit \\parser.this_bit] + [\\parser.nat \\parser.this_nat] + [\\parser.int \\parser.this_int] + [\\parser.rev \\parser.this_rev] + [\\parser.frac \\parser.this_frac] + [\\parser.text \\parser.this_text] + [\\parser.local \\parser.this_local] + [\\parser.foreign \\parser.this_foreign] + [\\parser.constant \\parser.this_constant] + )) + + ($.documentation \\parser.tuple + "Parses only within the context of a tuple's contents." + [(tuple parser)])] + []))) + (.def .public documentation (.List $.Module) ($.module /._ @@ -57,4 +106,4 @@ ($.default /.source) ($.default /.info) ($.default /.state)] - [])) + [..\\parser])) diff --git a/stdlib/source/documentation/lux/tool/compiler/language/lux/synthesis.lux b/stdlib/source/documentation/lux/tool/compiler/language/lux/synthesis.lux index ed0a4e27b..dcfe3ce0a 100644 --- a/stdlib/source/documentation/lux/tool/compiler/language/lux/synthesis.lux +++ b/stdlib/source/documentation/lux/tool/compiler/language/lux/synthesis.lux @@ -6,10 +6,69 @@ [text (.only \n) ["%" \\format (.only format)]] [collection - ["[0]" list]]]]] + ["[0]" list]]] + [meta + [macro + ["[0]" template]]]]] + ["[0]" \\parser] [\\library ["[0]" /]]) +(`` (.def \\parser + (.List $.Module) + ($.module \\parser._ + "" + [($.default \\parser.cannot_parse) + ($.default \\parser.unconsumed_input) + ($.default \\parser.expected_empty_input) + ($.default \\parser.wrong_arity) + ($.default \\parser.empty_input) + + ($.documentation (\\parser.Parser it) + "A parser for the Lux compiler's synthesis nodes using during optimization.") + + ($.documentation \\parser.result + (format "Executes the parser against the inputs." + \n "Ensures all inputs are consumed by the parser.") + [(result parser input)]) + + ($.documentation \\parser.any + "Yields a synthesis node without subjecting it to any analysis.") + + ($.documentation \\parser.end + "Ensures there are no more inputs.") + + ($.documentation \\parser.end? + "Checks whether there are no more inputs.") + + (,, (with_template [ ] + [($.documentation + (format "Queries for a " (template.text []) " synthesis node.")) + ($.documentation + (format "Checks for a specific " (template.text []) " synthesis node."))] + + [\\parser.bit \\parser.this_bit] + [\\parser.i64 \\parser.this_i64] + [\\parser.f64 \\parser.this_f64] + [\\parser.text \\parser.this_text] + [\\parser.local \\parser.this_local] + [\\parser.foreign \\parser.this_foreign] + [\\parser.constant \\parser.this_constant] + )) + + ($.documentation \\parser.tuple + "Parses the contents of a tuple." + [(tuple parser)]) + + ($.documentation \\parser.function + "Parses the body of a function with the 'expected' arity." + [(function expected parser)]) + + ($.documentation \\parser.loop + "Parses the initial values and the body of a loop." + [(loop init_parsers iteration_parser)])] + []))) + (.def .public documentation (.List $.Module) ($.module /._ @@ -80,4 +139,4 @@ ($.default /.!multi_pop) ($.default /.simple_left_side) ($.default /.simple_right_side)] - [])) + [..\\parser])) diff --git a/stdlib/source/documentation/lux/world/console.lux b/stdlib/source/documentation/lux/world/console.lux index f20cac8ef..ecda5918d 100644 --- a/stdlib/source/documentation/lux/world/console.lux +++ b/stdlib/source/documentation/lux/world/console.lux @@ -5,9 +5,7 @@ ["@" target] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/environment.lux b/stdlib/source/documentation/lux/world/environment.lux index b8663936b..6f842b4b9 100644 --- a/stdlib/source/documentation/lux/world/environment.lux +++ b/stdlib/source/documentation/lux/world/environment.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/file.lux b/stdlib/source/documentation/lux/world/file.lux index 1e99499e9..61ed8c379 100644 --- a/stdlib/source/documentation/lux/world/file.lux +++ b/stdlib/source/documentation/lux/world/file.lux @@ -5,9 +5,7 @@ ["@" target] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/documentation/lux/world/file/watch.lux b/stdlib/source/documentation/lux/world/file/watch.lux index cc7dbdea9..5f7e7d311 100644 --- a/stdlib/source/documentation/lux/world/file/watch.lux +++ b/stdlib/source/documentation/lux/world/file/watch.lux @@ -5,9 +5,7 @@ ["@" target] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/input/keyboard.lux b/stdlib/source/documentation/lux/world/input/keyboard.lux index 33e98ac17..148cb708b 100644 --- a/stdlib/source/documentation/lux/world/input/keyboard.lux +++ b/stdlib/source/documentation/lux/world/input/keyboard.lux @@ -4,9 +4,7 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/net/http/client.lux b/stdlib/source/documentation/lux/world/net/http/client.lux index fb6e83727..3a98dd668 100644 --- a/stdlib/source/documentation/lux/world/net/http/client.lux +++ b/stdlib/source/documentation/lux/world/net/http/client.lux @@ -6,8 +6,9 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/net/http/status.lux b/stdlib/source/documentation/lux/world/net/http/status.lux index 81003a4b0..0e38a3e54 100644 --- a/stdlib/source/documentation/lux/world/net/http/status.lux +++ b/stdlib/source/documentation/lux/world/net/http/status.lux @@ -5,8 +5,9 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/output/video/resolution.lux b/stdlib/source/documentation/lux/world/output/video/resolution.lux index a0b2e9aaa..1a3652c74 100644 --- a/stdlib/source/documentation/lux/world/output/video/resolution.lux +++ b/stdlib/source/documentation/lux/world/output/video/resolution.lux @@ -5,8 +5,9 @@ [data ["[0]" text (.only \n) ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + [meta + [macro + ["[0]" template]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/documentation/lux/world/shell.lux b/stdlib/source/documentation/lux/world/shell.lux index 4ff4e37c0..851d4009e 100644 --- a/stdlib/source/documentation/lux/world/shell.lux +++ b/stdlib/source/documentation/lux/world/shell.lux @@ -5,9 +5,7 @@ ["@" target] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] - [macro - ["[0]" template]]]] + ["%" \\format (.only format)]]]]] [\\library ["[0]" /]]) -- cgit v1.2.3