summaryrefslogtreecommitdiffstats
path: root/maps/SYNTAX
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2025-02-23 15:48:02 +0100
committerMattias Andrée <m@maandree.se>2025-02-23 15:48:02 +0100
commit120d0259be2e9796757572ea5b7e43ef5715402e (patch)
tree80a8c2af9e01c5702d6a6c3ed747bbad16467104 /maps/SYNTAX
parentFirst commit (diff)
downloadlibcharsets-120d0259be2e9796757572ea5b7e43ef5715402e.tar.gz
libcharsets-120d0259be2e9796757572ea5b7e43ef5715402e.tar.bz2
libcharsets-120d0259be2e9796757572ea5b7e43ef5715402e.tar.xz
Add some encodingsHEADmaster
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'maps/SYNTAX')
-rw-r--r--maps/SYNTAX52
1 files changed, 52 insertions, 0 deletions
diff --git a/maps/SYNTAX b/maps/SYNTAX
new file mode 100644
index 0000000..a3ad110
--- /dev/null
+++ b/maps/SYNTAX
@@ -0,0 +1,52 @@
+"include" <file>
+ Include the contents of <file>.
+
+"unmap" <sequence range>
+ Remove mapping for byte sequence range.
+
+"remap" <sequence range> "to" "U+"<code point> ["using" <endian>]
+ Like "map", except assume all sequence is already defined
+ and redefine them instead.
+
+["readonly"] "map" <sequence range> "to" "U+"<code point> ["using" <endian>]
+ Map a byte sequence range to a code point range.
+ If a sequence is already defined, fail.
+ <code point> (hexadecimal) shall be the code point for the
+ lowest valued sequence in <sequence range>
+ If multiple byte sequences, <endian> may be "big-endian" or "little-endian"
+ to specify the significance of the bytes in the sequence, alternative
+ value calculations can be specified in <sequence range>
+ If "readonly" is present, the mapping should only be used when decoding,
+ not when encoding. For each mapped code point, there must exist exactly
+ on mapping that is not "readonly".
+
+<sequence range>
+ <byte>
+ Single byte range.
+ <byte> [<value calculation>] (", " <byte> [<value calculation>]) ...
+ A sequence of bytes, in storage order.
+ <value calculation> shall appear on all or no <byte>, and
+ shall appear if and only if <endian> was not used but at
+ least two <byte>s are valued (have multiple legal values).
+
+<byte>
+ <value>
+ Single byte, not valued.
+ <value>(["-"|"+"]<value>)...
+ The <value>s should be ordered by mapping value.
+ The first <value> is the lowest values byte in domain (valued 0).
+ "-" creates a range from the previous <value> upto and include
+ the <value> behind it
+ "+" creates a domain disjunction, skipping over the values
+ between, but excluding, the values between the <value>s
+ on either side of it
+
+<value calculation>
+ "<<<" <positive decimal>
+ set the relative significance of the byte, 0 is least significant.
+
+<value>
+ <positive decimal>
+ 0x<positive hexadecimal>
+
+\ may be used on the end of a line to replace the <newline> with a space.