aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/documentation/lux/data
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/documentation/lux/data')
-rw-r--r--stdlib/source/documentation/lux/data/binary.lux108
-rw-r--r--stdlib/source/documentation/lux/data/bit.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/array.lux2
-rw-r--r--stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux5
-rw-r--r--stdlib/source/documentation/lux/data/collection/set.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/set/multi.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/set/ordered.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/stack.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/tree.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/tree/finger.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/tree/zipper.lux4
-rw-r--r--stdlib/source/documentation/lux/data/color.lux8
-rw-r--r--stdlib/source/documentation/lux/data/format/json.lux4
-rw-r--r--stdlib/source/documentation/lux/data/format/tar.lux4
-rw-r--r--stdlib/source/documentation/lux/data/format/xml.lux4
-rw-r--r--stdlib/source/documentation/lux/data/identity.lux4
-rw-r--r--stdlib/source/documentation/lux/data/product.lux4
-rw-r--r--stdlib/source/documentation/lux/data/sum.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/buffer.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/encoding.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/encoding/utf8.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/escape.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/regex.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/unicode/block.lux2
-rw-r--r--stdlib/source/documentation/lux/data/text/unicode/set.lux4
25 files changed, 131 insertions, 74 deletions
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 [<size> <name>]
+ [($.documentation <name>
+ (format "Parses a block of data prefixed with a size that is " (%.nat <size>) " bytes long."))]
+
+ [08 \\parser.binary_8]
+ [16 \\parser.binary_16]
+ [32 \\parser.binary_32]
+ [64 \\parser.binary_64]
+ ))
+
+ (,, (with_template [<size> <name>]
+ [($.documentation <name>
+ (format "Parses a block of (UTF-8 encoded) text prefixed with a size that is " (%.nat <size>) " bytes long."))]
+
+ [08 \\parser.utf8_8]
+ [16 \\parser.utf8_16]
+ [32 \\parser.utf8_32]
+ [64 \\parser.utf8_64]
+ ))
+
+ (,, (with_template [<size> <name>]
+ [($.documentation <name>
+ (format "Parses a sequence of values prefixed with a size that is " (%.nat <size>) " 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]" /]])