aboutsummaryrefslogtreecommitdiff
path: root/grammars
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2021-07-19 19:40:43 -0700
committerBruce Hill <bruce@bruce-hill.com>2021-07-19 19:40:43 -0700
commit711fe47a7f651f38e090c9a20ecef11feba6f705 (patch)
tree98a3283e7c630919a08f8bd95326ceeb1a93da9e /grammars
parent62e7d654bd70db89cb38e5d9efeb9a9b0e9cf202 (diff)
Overhaul of word boundaries/edges. Now they use \b, which is implemented
in C, and the C code understands UTF8 id chars.
Diffstat (limited to 'grammars')
-rw-r--r--grammars/bp.bp11
-rw-r--r--grammars/builtins.bp18
-rw-r--r--grammars/c++.bp4
-rw-r--r--grammars/c.bp4
-rw-r--r--grammars/go.bp4
-rw-r--r--grammars/javascript.bp4
-rw-r--r--grammars/lisp.bp2
-rw-r--r--grammars/lua.bp11
-rw-r--r--grammars/python.bp6
-rw-r--r--grammars/rust.bp4
-rw-r--r--grammars/utf8-id.bp737
11 files changed, 32 insertions, 773 deletions
diff --git a/grammars/bp.bp b/grammars/bp.bp
index 228f7d0..37fa83f 100644
--- a/grammars/bp.bp
+++ b/grammars/bp.bp
@@ -12,10 +12,11 @@ Def: @name=id __ `: __ (
/ (!)(..%\n>(`;/id_`:/$) => "Invalid definition: @0"))
# This is used for command line arguments:
-String-pattern: ..%(\n / Nodent / Escape / `\ pat [`;])$$
+ String-pattern: ..%(\n / Nodent / Identifier-char / Identifier-start / Escape / `\ pat [`;])$$
pat: simple-pat !(__("!~"/"~")) / suffixed-pat
-simple-pat: Upto-and / Dot / String / Chars / Nodent / Escape-range
+simple-pat: Upto-and / Dot / Word-boundary/ String / Chars / Nodent
+ / Identifier-char / Identifier-start / Escape-range
/ Escape / Repeat / Optional / No / After / Before / Capture / Error / Empty-replacement
/ Start-of-File / Start-of-Line / End-of-File / End-of-Line / Ref / parens
@@ -31,7 +32,6 @@ Dot: `. !`.
String: (
`" @s=.. (`" / $ (!)=>"Expected closing quote here")
/ `' @s=.. (`' / $ (!)=>"Expected closing quote here")
- / `{ @s=.. (`} / $ (!)=>"Expected closing brace here")
)
Chars: `` @+(Char-range/Char) % `,
Char-range: @low=. `- (@high=. / (!)=>"Expected a second character to form a character range")
@@ -47,7 +47,10 @@ escape-sequence: (
/ `x 2 `0-9,a-f,A-F
)
No: `! (__@pat / (!)=>"Expected a pattern after the exclamation mark")
-Nodent: `\ `N
+Nodent: "\N"
+Word-boundary: "\b"
+Identifier-char: "\i"
+Identifier-start: "\I"
Upto-and: ".." [__`%__@second=simple-pat] [__@first=simple-pat]
Repeat: (
@min=(=>'0') (`*=>"-") @max=(=>'∞')
diff --git a/grammars/builtins.bp b/grammars/builtins.bp
index 98e198d..437265c 100644
--- a/grammars/builtins.bp
+++ b/grammars/builtins.bp
@@ -3,12 +3,6 @@
nodent: \N !(\t/` )
indent: \N (` /\t)
dedent: $ !(nodent/indent)
-utf8-codepoint: (
- \x00-x7f
- / \xc0-xdf 1\x80-xbf
- / \xe0-xef 2\x80-xbf
- / \xf0-xf7 3\x80-xbf
-)
crlf: \r\n
cr: \r
anglebraces: `< ..%(\n/anglebraces/string) `>
@@ -17,16 +11,10 @@ braces: `{ ..%(\n/braces/string) `}
parens: `( ..%(\n/parens/string) `)
string: `" ..%string-escape `" / `' ..%string-escape `'
string-escape: `\ (`x 2 Hex / 1-3 `0-7 / `u 1-4 Hex / .)
-left-id-edge: !<id-char
-right-id-edge: !id-char
-id: left-id-edge !`0-9 !(keyword !id-char) +id-char
-id-char: `a-z,A-Z,_,0-9
-var: id
+id: \I *\i
+var: \I *\i
keyword: !"" # No keywords defined by default
-left-word-edge: !<word-char
-right-word-edge: !word-char
-word-char: `a-z,A-Z,_,0-9
-word: left-word-edge +word-char
+word: \b +\i
HEX: `0-9,A-F
Hex: `0-9,a-f,A-F
hex: `0-9,a-f
diff --git a/grammars/c++.bp b/grammars/c++.bp
index 1553bb3..30f47aa 100644
--- a/grammars/c++.bp
+++ b/grammars/c++.bp
@@ -24,5 +24,5 @@ keyword:
"unsigned" / "using" / "virtual" / "void" / "volatile" / "wchar_t" / "while" / "xor" / "xor_eq"
function-def: ^_ 2+(id / keyword / anglebraces / `*) % __ parens (__`; / >(__`{))
function: function-def __ braces
-macro: ^{#define} ..$ *(<`\ \n..$)
-import: ^({#include}/{#import}) __ (string / `<..`>)
+macro: ^"#define"} ..$ *(<`\ \n..$)
+import: ^("#include"}/"#import"}) __ (string / `<..`>)
diff --git a/grammars/c.bp b/grammars/c.bp
index 9940ffe..36f580b 100644
--- a/grammars/c.bp
+++ b/grammars/c.bp
@@ -17,5 +17,5 @@ keyword:
"volatile" / "while"
function-def: ^_ 2+(id / keyword / `*) % __ parens (__`; / >(__`{))
function: function-def __ braces
-macro: ^{#define} ..$ *(<`\ \n..$)
-import: ^{#include} __ (string / `<..`>)
+macro: ^"#define"} ..$ *(<`\ \n..$)
+import: ^"#include"} __ (string / `<..`>)
diff --git a/grammars/go.bp b/grammars/go.bp
index 71114cf..f86f2eb 100644
--- a/grammars/go.bp
+++ b/grammars/go.bp
@@ -12,6 +12,6 @@ keyword:
"break" / "default" / "func" / "interface" / "select" / "case" / "defer" / "go" /
"map" / "struct" / "chan" / "else" / "goto" / "package" / "switch" / "const" /
"fallthrough" / "if" / "range" / "type" / "continue" / "for" / "import" / "return" / "var"
-function-def: {func} __ id __ parens __ [id / parens] >(__`{)
+function-def: \b"func"\b __ id __ parens __ [id / parens] >(__`{)
function: function-def __ braces
-import: {import} __ (parens / string)
+import: \b"import"\b __ (parens / string)
diff --git a/grammars/javascript.bp b/grammars/javascript.bp
index 76fa586..b59742c 100644
--- a/grammars/javascript.bp
+++ b/grammars/javascript.bp
@@ -18,6 +18,6 @@ keyword:
"public" / "return" / "short" / "static" / "super" / "switch" / "synchronized" /
"this" / "throw" / "throws" / "transient" / "true" / "try" / "typeof" / "var" /
"void" / "volatile" / "while" / "with" / "yield"
-function-def: {function} __ [id__] parens / (id / parens) __ "=>"
+function-def: \b"function"\b __ [id__] parens / (id / parens) __ "=>"
function: function-def __ braces
-import: {import} ..%braces (`; / $)
+import: \b"import"\b ..%braces (`; / $)
diff --git a/grammars/lisp.bp b/grammars/lisp.bp
index b7b89ed..f6f9796 100644
--- a/grammars/lisp.bp
+++ b/grammars/lisp.bp
@@ -9,7 +9,7 @@
comment: ";" ..$
string: `" ..%string-escape `"
list: parens
-function-def: `(__{defun}__id
+function-def: `(__"defun"\b__id
function: function-def ..%parens `)
id-char: `A-Z,a-z,0-9,!,$,%,&,*,+,-,.,/,:,<,=,>,?,@,^,_,~
id: !<`A-Z,a-z,0-9,!,$,%,&,*,+,-,.,/,:,<,=,>,?,@,^,_,~ +`A-Z,a-z,0-9,!,$,%,&,*,+,-,.,/,:,<,=,>,?,@,^,_,~
diff --git a/grammars/lua.bp b/grammars/lua.bp
index 562b44a..f75880e 100644
--- a/grammars/lua.bp
+++ b/grammars/lua.bp
@@ -13,6 +13,11 @@ keyword:
"and" / "break" / "do" / "else" / "elseif" / "end" / "false" / "for" /
"function" / "goto" / "if" / "in" / "local" / "nil" / "not" / "or" /
"repeat" / "return" / "then" / "true" / "until" / "while"
-function-def: {function}[_id (*(`.id)[`:id])]_ parens
-block: function / ({do}/{then}) ..%(comment/string/block/\n) {end}
-function: function-def ..%(comment/string/block/\n) {end}
+function-def: \b"function"\b[_id (*(`.id)[`:id])]_ parens
+block: function / if-block / while-block / for-block / repeat-block / do-block
+repeat-block: \b"repeat"\b ..%(comment/string/\n) (\b"until"\b)
+do-block: \b"do"\b ..%(comment/string/block/\n) (\b"end"\b)
+for-block: \b"for"\b ..%\n >(\b"do"\b) do-block
+while-block: \b"while"\b ..%\n >(\b"do"\b) do-block
+if-block: \b"if"\b ..%\n \b"then"\b ..%(comment/string/\n) (\b"end"\b)
+function: function-def ..%(comment/string/block/\n) (\b"end"\b)
diff --git a/grammars/python.bp b/grammars/python.bp
index cb5d047..aab9a42 100644
--- a/grammars/python.bp
+++ b/grammars/python.bp
@@ -14,7 +14,7 @@ keyword: "and" / "as" / "assert" / "break" / "class" / "continue" / "def" /
"not" / "or" / "pass" / "raise" / "return" / "try" / "while" /
"with" / "yield"
class: class-def +(\N ..$)
-class-def: ^_{class}_id[_parens]_`:
+class-def: ^_"class"\b_id[_parens]_`:
function: function-def +(\N ..$)
-function-def: ^_{def}_id parens `:
-import: ^_[{from} ..%parens >{import}] {import} ..%parens $
+function-def: ^_"def"\b_id parens `:
+import: ^_["from"\b ..%parens >(\b"import"\b)] \b"import"\b ..%parens $
diff --git a/grammars/rust.bp b/grammars/rust.bp
index 108b41a..a96062d 100644
--- a/grammars/rust.bp
+++ b/grammars/rust.bp
@@ -13,6 +13,6 @@ keyword:
"false" / "fn" / "for" / "if" / "impl" / "in" / "let" / "loop" / "match" /
"mod" / "move" / "mut" / "pub" / "ref" / "return" / "self" / "Self" / "static" /
"struct" / "super" / "trait" / "true" / "type" / "unsafe" / "use" / "where" / "while"
-function-def: {fn} __ id __ parens __ ["->"__(id / parens)] >(__`{)
+function-def: \b"fn"\b __ id __ parens __ ["->"__(id / parens)] >(__`{)
function: function-def __ braces
-import: {use} _ *(id / braces) % "::" _ `;
+import: \b"use"\b _ *(id / braces) % "::" _ `;
diff --git a/grammars/utf8-id.bp b/grammars/utf8-id.bp
deleted file mode 100644
index fecfba1..0000000
--- a/grammars/utf8-id.bp
+++ /dev/null
@@ -1,737 +0,0 @@
-# Definitions of UTF8-compliant identifiers
-id: left-word-edge (utf8-id-start *utf8-id-cont)!~(^keyword$)
-id-char: utf8-id-cont / utf8-id-start
-word-char: utf8-id-cont / utf8-id-start
-
-utf8-id-start: `A-Z / `a-z / !\x00-x7F (
- \xc2 (\xaa / \xb5 / \xba)
-/ \xc3 (\x80-x96 / \x98-xb6 / \xb8-xbf)
-/ \xc4-xca\x80-xbf
-/ \xcb (\x80-x81 / \x86-x91 / \xa0-xa4 / \xac / \xae)
-/ \xcd (\xb0-xb4 / \xb6-xb7 / \xba-xbd / \xbf)
-/ \xce (\x86 / \x88-x8a / \x8c / \x8e-xa1 / \xa3-xbf)
-/ \xcf (\x80-xb5 / \xb7-xbf)
-/ \xd0-xd2\x80-xbf
-/ \xd2 (\x80-x81 / \x8a-xbf)
-/ \xd3\x80-xbf
-/ \xd4 (\x80-xaf / \xb1-xbf)
-/ \xd5 (\x80-x96 / \x99 / \xa0-xbf)
-/ \xd6\x80-x88
-/ \xd7 (\x90-xaa / \xaf-xb2)
-/ \xd8\xa0-xbf
-/ \xd9 (\x80-x8a / \xae-xaf / \xb1-xbf)
-/ \xda\x80-xbf
-/ \xdb (\x80-x93 / \x95 / \xa5-xa6 / \xae-xaf / \xba-xbc / \xbf)
-/ \xdc (\x90 / \x92-xaf)
-/ \xdd\x8d-xbf
-/ \xde (\x80-xa5 / \xb1)
-/ \xdf (\x8a-xaa / \xb4-xb5 / \xba)
-/ \xe0 (
- \xa0 (\x80-x95 / \x9a / \xa4 / \xa8)
- / \xa1 (\x80-x98 / \xa0-xaa)
- / \xa2 (\xa0-xb4 / \xb6-xbd)
- / \xa4 (\x84-xb9 / \xbd)
- / \xa5 (\x90 / \x98-xa1 / \xb1-xbf)
- / \xa6 (\x80 / \x85-x8c / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2 / \xb6-xb9 / \xbd)
- / \xa7 (\x8e / \x9c-x9d / \x9f-xa1 / \xb0-xb1 / \xbc)
- / \xa8 (\x85-x8a / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb6 / \xb8-xb9)
- / \xa9 (\x99-x9c / \x9e / \xb2-xb4)
- / \xaa (\x85-x8d / \x8f-x91 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb9 / \xbd)
- / \xab (\x90 / \xa0-xa1 / \xb9)
- / \xac (\x85-x8c / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb9 / \xbd)
- / \xad (\x9c-x9d / \x9f-xa1 / \xb1)
- / \xae (\x83 / \x85-x8a / \x8e-x90 / \x92-x95 / \x99-x9a / \x9c / \x9e-x9f / \xa3-xa4 / \xa8-xaa / \xae-xb9) / \xaf\x90
- / \xb0 (\x85-x8c / \x8e-x90 / \x92-xa8 / \xaa-xb9 / \xbd)
- / \xb1 (\x98-x9a / \xa0-xa1)
- / \xb2 (\x80 / \x85-x8c / \x8e-x90 / \x92-xa8 / \xaa-xb3 / \xb5-xb9 / \xbd)
- / \xb3 (\x9e / \xa0-xa1 / \xb1-xb2)
- / \xb4 (\x85-x8c / \x8e-x90 / \x92-xba / \xbd)
- / \xb5 (\x8e / \x94-x96 / \x9f-xa1 / \xba-xbf)
- / \xb6 (\x85-x96 / \x9a-xb1 / \xb3-xbb / \xbd)
- / \xb7\x80-x86
- / \xb8 (\x81-xb0 / \xb2-xb3)
- / \xb9 (\x80-x85 / \x86)
- / \xba (\x81-x82 / \x84 / \x86-x8a / \x8c-xa3 / \xa5 / \xa7-xb0 / \xb2-xb3 / \xbd)
- / \xbb (\x80-x84 / \x86 / \x9c-x9f)
- / \xbc\x80
- / \xbd (\x80-x87 / \x89-xac)
- / \xbe\x88-x8c
-)
-/ \xe1 (
- \x80 (\x80-xaa / \xbf)
- / \x81 (\x90-x95 / \x9a-x9d / \xa1 / \xa5-xa6 / \xae-xb0 / \xb5-xbf)
- / \x82 (\x80-x81 / \x8e / \xa0-xbf)
- / \x83 (\x80-x85 / \x87 / \x8d / \x90-xba / \xbc / \xbd-xbf)
- / \x84-x88\x80-xbf
- / \x89 (\x80-x88 / \x8a-x8d / \x90-x96 / \x98 / \x9a-x9d / \xa0-xbf)
- / \x8a (\x80-x88 / \x8a-x8d / \x90-xb0 / \xb2-xb5 / \xb8-xbe)
- / \x8b (\x80 / \x82-x85 / \x88-x96 / \x98-xbf)
- / \x8c (\x80-x90 / \x92-x95 / \x98-xbf)
- / \x8d\x80-x9a
- / \x8e (\x80-x8f / \xa0-xbf)
- / \x8f (\x80-xb5 / \xb8-xbd)
- / \x90\x81-xbf
- / \x91-x98\x80-xbf
- / \x99 (\x80-xac / \xaf-xbf)
- / \x9a (\x81-x9a / \xa0-xbf)
- / \x9b (\x80-xaa / \xae-xb0 / \xb1-xb8)
- / \x9c (\x80-x8c / \x8e-x91 / \xa0-xb1)
- / \x9d (\x80-x91 / \xa0-xac / \xae-xb0)
- / \x9e\x80-xb3
- / \x9f (\x97 / \x9c)
- / \xa0\xa0-xbf
- / \xa1\x80-xb8
- / \xa2 (\x80-xa8 / \xaa / \xb0-xbf)
- / \xa3\x80-xb5
- / \xa4\x80-x9e
- / \xa5 (\x90-xad / \xb0-xb4)
- / \xa6 (\x80-xab / \xb0-xbf)
- / \xa7\x80-x89
- / \xa8 (\x80-x96 / \xa0-xbf)
- / \xa9\x80-x94
- / \xaa\xa7
- / \xac\x85-xb3
- / \xad\x85-x8b
- / \xae (\x83-xa0 / \xae-xaf / \xba-xbf)
- / \xaf\x80-xa5
- / \xb0\x80-xa3
- / \xb1 (\x8d-x8f / \x9a-xbd)
- / \xb2 (\x80-x88 / \x90-xba / \xbd-xbf)
- / \xb3 (\xa9-xac / \xae-xb3 / \xb5-xb6 / \xba)
- / \xb4 (\x80-xab / \xac-xbf)
- / \xb5-xbb\x80-xbf
- / \xbc (\x80-x95 / \x98-x9d / \xa0-xbf)
- / \xbd (\x80-x85 / \x88-x8d / \x90-x97 / \x99 / \x9b / \x9d / \x9f-xbd)
- / \xbe (\x80-xb4 / \xb6-xbc / \xbe)
- / \xbf (\x82-x84 / \x86-x8c / \x90-x93 / \x96-x9b / \xa0-xac / \xb2-xb4 / \xb6-xbc)
-)
-/ \xe2 (
- \x81 (\xb1 / \xbf)
- / \x82\x90-x9c
- / \x84 (\x82 / \x87 / \x8a-x93 / \x95 / \x98-x9d / \xa4 / \xa6 / \xa8 / \xaa-xb9 / \xbc-xbf)
- / \x85 (\x85-x89 / \x8e / \xa0-xbf)
- / \x86\x80-x88
- / \xb0 (\x80-xae / \xb0-xbf)
- / \xb1 (\x80-x9e / \xa0-xbf)
- / \xb2\x80-xbf
- / \xb3 (\x80-xa4 / \xab-xae / \xb2-xb3)
- / \xb4 (\x80-xa5 / \xa7 / \xad / \xb0-xbf)
- / \xb5 (\x80-xa7 / \xaf)
- / \xb6 (\x80-x96 / \xa0-xa6 / \xa8-xae / \xb0-xb6 / \xb8-xbe)
- / \xb7 (\x80-x86 / \x88-x8e / \x90-x96 / \x98-x9e)
-)
-/ \xe3 (
- \x80 (\x85-x87 / \xa1-xa9 / \xb1-xb5 / \xb8-xba / \xbb-xbc)
- / \x81\x81-xbf
- / \x82 (\x80-x96 / \x9b-x9f / \xa1-xbf)
- / \x83 (\x80-xba / \xbc-xbe / \xbf)
- / \x84 (\x85-xaf / \xb1-xbf)
- / \x85\x80-xbf
- / \x86 (\x80-x8e / \xa0-xba)
- / \x87\xb0-xbf
- / \x90-xbf\x80-xbf
-)
-/ \xe4 (\x80-xb5\x80-xbf / \xb6\x80-xb5 / \xb8-xbf\x80-xbf)
-/ \xe5-xe8\x80-xbf\x80-xbf
-/ \xe9 (\x80-xbe\x80-xbf / \xbf\x80-xaf)
-/ \xea (
- \x80-x91\x80-xbf
- / \x92\x80-x8c
- / \x93\x90-xbd
- / \x94-x97\x80-xbf
- / \x98 (\x80-x8c / \x90-x9f / \xaa-xab)
- / \x99 (\x80-xae / \xbf)
- / \x9a (\x80-x9d / \xa0-xbf)
- / \x9b\x80-xaf
- / \x9c (\x97-x9f / \xa2-xbf)
- / \x9d\x80-xbf
- / \x9e (\x80-x88 / \x8b-xbf)
- / \x9f (\x82-x86 / \xb7-xbf)
- / \xa0 (\x80-x81 / \x83-x85 / \x87-x8a / \x8c-xa2)
- / \xa1\x80-xb3
- / \xa2\x82-xb3
- / \xa3 (\xb2-xb7 / \xbb / \xbd-xbe)
- / \xa4 (\x8a-xa5 / \xb0-xbf)
- / \xa5 (\x80-x86 / \xa0-xbc)
- / \xa6\x84-xb2
- / \xa7 (\x8f / \xa0-xa4 / \xa6 / \xa7-xaf / \xba-xbe)
- / \xa8\x80-xa8
- / \xa9 (\x80-x82 / \x84-x8b / \xa0-xb6 / \xba / \xbe-xbf)
- / \xaa (\x80-xaf / \xb1 / \xb5-xb6 / \xb9-xbd)
- / \xab (\x80 / \x82 / \x9b-x9d / \xa0-xaa / \xb2-xb4)
- / \xac (\x81-x86 / \x89-x8e / \x91-x96 / \xa0-xa6 / \xa8-xae / \xb0-xbf)
- / \xad (\x80-x9a / \x9c-x9f / \xa0-xa7 / \xb0-xbf)
- / \xae\x80-xbf
- / \xaf\x80-xa2
- / \xb0-xbf\x80-xbf
-)
-/ \xeb-xec\x80-xbf\x80-xbf
-/ \xed (
- \x80-x9d\x80-xbf
- / \x9e (\x80-xa3 / \xb0-xbf)
- / \x9f (\x80-x86 / \x8b-xbb)
-)
-/ \xef (
- \xa4-xa8\x80-xbf
- / \xa9 (\x80-xad / \xb0-xbf)
- / \xaa\x80-xbf
- / \xab\x80-x99
- / \xac (\x80-x86 / \x93-x97 / \x9d / \x9f-xa8 / \xaa-xb6 / \xb8-xbc / \xbe)
- / \xad (\x80-x81 / \x83-x84 / \x86-xbf)
- / \xae\x80-xb1
- / \xaf\x93-xbf
- / \xb0-xb3\x80-xbf
- / \xb4\x80-xbd
- / \xb5\x90-xbf
- / \xb6 (\x80-x8f / \x92-xbf)
- / \xb7 (\x80-x87 / \xb0-xbb)
- / \xb9 (\xb0-xb4 / \xb6-xbf)
- / \xba\x80-xbf
- / \xbb\x80-xbc
- / \xbc\xa1-xba
- / \xbd (\x81-x9a / \xa6-xaf / \xb0-xbf)
- / \xbe\x80-xbe
- / \xbf (\x82-x87 / \x8a-x8f / \x92-x97 / \x9a-x9c)
-)
-/ \xf0 (
- \x90 (
- \x80 (\x80-x8b / \x8d-xa6 / \xa8-xba / \xbc-xbd / \xbf)
- / \x81 (\x80-x8d / \x90-x9d)
- / \x82\x80-xbf
- / \x83\x80-xba
- / \x85\x80-xb4
- / \x8a (\x80-x9c / \xa0-xbf)
- / \x8b\x80-x90
- / \x8c (\x80-x9f / \xad-xbf)
- / \x8d (\x80-x8a / \x90-xb5)
- / \x8e (\x80-x9d / \xa0-xbf)
- / \x8f (\x80-x83 / \x88-x8f / \x91-x95)
- / \x90-x91\x80-xbf
- / \x92 (\x80-x9d / \xb0-xbf)
- / \x93 (\x80-x93 / \x98-xbb)
- / \x94 (\x80-xa7 / \xb0-xbf)
- / \x95\x80-xa3
- / \x98-x9b\x80-xbf
- / \x9c\x80-xb6
- / \x9d (\x80-x95 / \xa0-xa7)
- / \xa0 (\x80-x85 / \x88 / \x8a-xb5 / \xb7-xb8 / \xbc / \xbf)
- / \xa1 (\x80-x95 / \xa0-xb6)
- / \xa2\x80-x9e
- / \xa3 (\xa0-xb2 / \xb4-xb5)
- / \xa4 (\x80-x95 / \xa0-xb9)
- / \xa6 (\x80-xb7 / \xbe-xbf)
- / \xa8 (\x80 / \x90-x93 / \x95-x97 / \x99-xb5)
- / \xa9\xa0-xbc
- / \xaa\x80-x9c
- / \xab (\x80-x87 / \x89-xa4)
- / \xac\x80-xb5
- / \xad (\x80-x95 / \xa0-xb2)
- / \xae\x80-x91
- / \xb0\x80-xbf
- / \xb1\x80-x88
- / \xb2-xb3\x80-xb2
- / \xb4\x80-xa3
- / \xbc (\x80-x9c / \xa7 / \xb0-xbf)
- / \xbd\x80-x85
- / \xbf\xa0-xb6
- )
- / \x91 (
- \x80\x83-xb7
- / \x82\x83-xaf
- / \x83\x90-xa8
- / \x84\x83-xa6
- / \x85 (\x84 / \x90-xb2 / \xb6)
- / \x86\x83-xb2
- / \x87 (\x81-x84 / \x9a / \x9c)
- / \x88 (\x80-x91 / \x93-xab)
- / \x8a (\x80-x86 / \x88 / \x8a-x8d / \x8f-x9d / \x9f-xa8 / \xb0-xbf)
- / \x8b\x80-x9e
- / \x8c (\x85-x8c / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb9 / \xbd)
- / \x8d (\x90 / \x9d-xa1)
- / \x90\x80-xb4
- / \x91 (\x87-x8a / \x9f)
- / \x92\x80-xaf
- / \x93 (\x84-x85 / \x87)
- / \x96\x80-xae
- / \x97\x98-x9b
- / \x98\x80-xaf
- / \x99\x84
- / \x9a (\x80-xaa / \xb8)
- / \x9c\x80-x9a
- / \xa0\x80-xab
- / \xa2\xa0-xbf
- / \xa3 (\x80-x9f / \xbf)
- / \xa6 (\xa0-xa7 / \xaa-xbf)
- / \xa7 (\x80-x90 / \xa1 / \xa3)
- / \xa8 (\x80 / \x8b-xb2 / \xba)
- / \xa9 (\x90 / \x9c-xbf)
- / \xaa (\x80-x89 / \x9d)
- / \xab\x80-xb8
- / \xb0 (\x80-x88 / \x8a-xae)
- / \xb1 (\x80 / \xb2-xbf)
- / \xb2\x80-x8f
- / \xb4 (\x80-x86 / \x88-x89 / \x8b-xb0)
- / \xb5 (\x86 / \xa0-xa5 / \xa7-xa8 / \xaa-xbf)
- / \xb6 (\x80-x89 / \x98)
- / \xbb\xa0-xb2
- )
- / \x92 (\x80-x8d\x80-xbf / \x8e\x80-x99 / \x90\x80-xbf / \x91\x80-xae / \x92-x94\x80-xbf / \x95\x80-x83)
- / \x93 (\x80-x8f\x80-xbf / \x90\x80-xae)
- / \x94 (\x90-x98\x80-xbf / \x99\x80-x86)
- / \x96 (
- \xa0-xa7\x80-xbf
- / \xa8\x80-xb8
- / \xa9\x80-x9e
- / \xab\x90-xad
- / \xac\x80-xaf
- / \xad (\x80-x83 / \xa3-xb7 / \xbd-xbf)
- / \xae\x80-x8f
- / \xb9-xbc\x80-xbf
- / \xbd (\x80-x8a / \x90)
- / \xbe\x93-x9f
- / \xbf (\xa0-xa1 / \xa3)
- )
- / \x97\x80-xbf\x80-xbf
- / \x98 (\x80-x9e\x80-xbf / \x9f\x80-xb7 / \xa0-xaa\x80-xbf / \xab\x80-xb2)
- / \x9b (
- \x80-x83\x80-xbf
- / \x84\x80-x9e
- / \x85 (\x90-x92 / \xa4-xa7 / \xb0-xbf)
- / \x86-x8a\x80-xbf
- / \x8b\x80-xbb
- / \xb0\x80-xbf
- / \xb1 (\x80-xaa / \xb0-xbc)
- / \xb2 (\x80-x88 / \x90-x99)
- )
- / \x9d (
- \x90\x80-xbf
- / \x91 (\x80-x94 / \x96-xbf)
- / \x92 (\x80-x9c / \x9e-x9f / \xa2 / \xa5-xa6 / \xa9-xac / \xae-xb9 / \xbb / \xbd-xbf)
- / \x93 (\x80-x83 / \x85-xbf)
- / \x94 (\x80-x85 / \x87-x8a / \x8d-x94 / \x96-x9c / \x9e-xb9 / \xbb-xbe)
- / \x95 (\x80-x84 / \x86 / \x8a-x90 / \x92-xbf)
- / \x96-x99\x80-xbf
- / \x9a (\x80-xa5 / \xa8-xbf)
- / \x9b (\x80 / \x82-x9a / \x9c-xba / \xbc-xbf)
- / \x9c (\x80-x94 / \x96-xb4 / \xb6-xbf)
- / \x9d (\x80-x8e / \x90-xae / \xb0-xbf)
- / \x9e (\x80-x88 / \x8a-xa8 / \xaa-xbf)
- / \x9f (\x80-x82 / \x84-x8b)
- )
- / \x9e (
- \x84 (\x80-xac / \xb7-xbd)
- / \x85\x8e
- / \x8b\x80-xab
- / \xa0-xa2\x80-xbf
- / \xa3\x80-x84
- / \xa4\x80-xbf
- / \xa5 (\x80-x83 / \x8b)
- / \xb8 (\x80-x83 / \x85-x9f / \xa1-xa2 / \xa4 / \xa7 / \xa9-xb2 / \xb4-xb7 / \xb9 / \xbb)
- / \xb9 (\x82 / \x87 / \x89 / \x8b / \x8d-x8f / \x91-x92 / \x94 / \x97 / \x99 / \x9b / \x9d / \x9f / \xa1-xa2 / \xa4 / \xa7-xaa / \xac-xb2 / \xb4-xb7 / \xb9-xbc / \xbe)
- / \xba (\x80-x89 / \x8b-x9b / \xa1-xa3 / \xa5-xa9 / \xab-xbb)
- )
- / \xa0-xa9\x80-xbf\x80-xbf
- / \xaa (\x80-x9a\x80-xbf / \x9b\x80-x96 / \x9c-xbf\x80-xbf)
- / \xab (
- \x80-x9b\x80-xbf
- / \x9c\x80-xb4
- / \x9d-x9f\x80-xbf
- / \xa0 (\x80-x9d / \xa0-xbf)
- / \xa1-xbf\x80-xbf
- )
- / \xac (
- \x80-xb9\x80-xbf
- / \xba (\x80-xa1 / \xb0-xbf)
- / \xbb-xbf\x80-xbf
- )
- / \xad\x80-xbf\x80-xbf
- / \xae (\x80-xae\x80-xbf / \xaf\x80-xa0)
- / \xaf (\xa0-xa7\x80-xbf / \xa8\x80-x9d)
-)
-)
-
-utf8-id-cont: `0-9 / `A-Z / `_ / `a-z / !\x00-x7F (
- \xc2 (\xaa / \xb5 / \xb7 / \xba)
-/ \xc3 (\x80-x96 / \x98-xb6 / \xb8-xbf)
-/ \xc4-xca\x80-xbf
-/ \xcb (\x80-x81 / \x86-x91 / \xa0-xa4 / \xac / \xae)
-/ \xcc\x80-xbf
-/ \xcd (\x80-xb4 / \xb6-xb7 / \xba-xbd / \xbf)
-/ \xce (\x86-x8a / \x8c / \x8e-xa1 / \xa3-xbf)
-/ \xcf (\x80-xb5 / \xb7-xbf)
-/ \xd0-xd1\x80-xbf
-/ \xd2 (\x80-x81 / \x83-x87 / \x8a-xbf)
-/ \xd3\x80-xbf
-/ \xd4 (\x80-xaf / \xb1-xbf)
-/ \xd5 (\x80-x96 / \x99 / \xa0-xbf)
-/ \xd6 (\x80-x88 / \x91-xbd / \xbf)
-/ \xd7 (\x81-x82 / \x84-x85 / \x87 / \x90-xaa / \xaf-xb2)
-/ \xd8 (\x90-x9a / \xa0-xbf)
-/ \xd9 (\x80-xa9 / \xae-xbf)
-/ \xda\x80-xbf
-/ \xdb (\x80-x93 / \x95-x9c / \x9f-xa8 / \xaa-xbc / \xbf)
-/ \xdc\x90-xbf
-/ \xdd (\x80-x8a / \x8d-xbf)
-/ \xde\x80-xb1
-/ \xdf (\x80-xb5 / \xba / \xbd)
-/ \xe0 (
- \xa0\x80-xad
- / \xa1 (\x80-x9b / \xa0-xaa)
- / \xa2 (\xa0-xb4 / \xb6-xbd)
- / \xa3 (\x93-xa1 / \xa3-xbf)
- / \xa4\x80-xbf
- / \xa5 (\x80-xa3 / \xa6-xaf / \xb1-xbf)
- / \xa6 (\x80-x83 / \x85-x8c / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2 / \xb6-xb9 / \xbc-xbf)
- / \xa7 (\x80-x84 / \x87-x88 / \x8b-x8e / \x97 / \x9c-x9d / \x9f-xa3 / \xa6-xb1 / \xbc / \xbe)
- / \xa8 (\x81-x83 / \x85-x8a / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb6 / \xb8-xb9 / \xbc / \xbe-xbf)
- / \xa9 (\x80-x82 / \x87-x88 / \x8b-x8d / \x91 / \x99-x9c / \x9e / \xa6-xb5)
- / \xaa (\x81-x83 / \x85-x8d / \x8f-x91 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb9 / \xbc-xbf)
- / \xab (\x80-x85 / \x87-x89 / \x8b-x8d / \x90 / \xa0-xa3 / \xa6-xaf / \xb9-xbf)
- / \xac (\x81-x83 / \x85-x8c / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb9 / \xbc-xbf)
- / \xad (\x80-x84 / \x87-x88 / \x8b-x8d / \x96-x97 / \x9c-x9d / \x9f-xa3 / \xa6-xaf / \xb1)
- / \xae (\x82-x83 / \x85-x8a / \x8e-x90 / \x92-x95 / \x99-x9a / \x9c / \x9e-x9f / \xa3-xa4 / \xa8-xaa / \xae-xb9 / \xbe-xbf)
- / \xaf (\x80-x82 / \x86-x88 / \x8a-x8d / \x90 / \x97 / \xa6-xaf)
- / \xb0 (\x80-x8c / \x8e-x90 / \x92-xa8 / \xaa-xb9 / \xbd-xbf)
- / \xb1 (\x80-x84 / \x86-x88 / \x8a-x8d / \x95-x96 / \x98-x9a / \xa0-xa3 / \xa6-xaf)
- / \xb2 (\x80-x83 / \x85-x8c / \x8e-x90 / \x92-xa8 / \xaa-xb3 / \xb5-xb9 / \xbc-xbf)
- / \xb3 (\x80-x84 / \x86-x88 / \x8a-x8d / \x95-x96 / \x9e / \xa0-xa3 / \xa6-xaf / \xb1-xb2)
- / \xb4 (\x80-x83 / \x85-x8c / \x8e-x90 / \x92-xbf)
- / \xb5 (\x80-x84 / \x86-x88 / \x8a-x8e / \x94-x97 / \x9f-xa3 / \xa6-xaf / \xba-xbf)
- / \xb6 (\x82-x83 / \x85-x96 / \x9a-xb1 / \xb3-xbb / \xbd)
- / \xb7 (\x80-x86 / \x8a / \x8f-x94 / \x96 / \x98-x9f / \xa6-xaf / \xb2-xb3)
- / \xb8\x81-xba
- / \xb9 (\x80-x8e / \x90-x99)
- / \xba (\x81-x82 / \x84 / \x86-x8a / \x8c-xa3 / \xa5 / \xa7-xbd)
- / \xbb (\x80-x84 / \x86 / \x88-x8d / \x90-x99 / \x9c-x9f)
- / \xbc (\x80 / \x98-x99 / \xa0-xa9 / \xb5 / \xb7 / \xb9 / \xbe-xbf)
- / \xbd (\x80-x87 / \x89-xac / \xb1-xbf)
- / \xbe (\x80-x84 / \x86-x97 / \x99-xbc)
- / \xbf\x86
-)
-/ \xe1 (
- \x80\x80-xbf
- / \x81 (\x80-x89 / \x90-xbf)
- / \x82 (\x80-x9d / \xa0-xbf)
- / \x83 (\x80-x85 / \x87 / \x8d / \x90-xba / \xbc-xbf)
- / \x84-x88\x80-xbf
- / \x89 (\x80-x88 / \x8a-x8d / \x90-x96 / \x98 / \x9a-x9d / \xa0-xbf)
- / \x8a (
- \x80-x88
- / \x8a-x8d
- / \x90-xb0
- / \xb2-xb5
- / \xb8-xbe
- )
- / \x8b (\x80 / \x82-x85 / \x88-x96 / \x98-xbf)
- / \x8c (\x80-x90 / \x92-x95 / \x98-xbf)
- / \x8d (\x80-x9a / \x9d-x9f / \xa9-xb1)
- / \x8e (\x80-x8f / \xa0-xbf)
- / \x8f (\x80-xb5 / \xb8-xbd)
- / \x90\x81-xbf
- / \x91\x80-xbf
- / \x99 (\x80-xac / \xaf-xbf)
- / \x9a (\x81-x9a / \xa0-xbf)
- / \x9b (\x80-xaa / \xae-xb8)
- / \x9c (\x80-x8c / \x8e-x94 / \xa0-xb4)
- / \x9d (\x80-x93 / \xa0-xac / \xae-xb0 / \xb2-xb3)
- / \x9e\x80-xbf
- / \x9f (\x80-x93 / \x97 / \x9c-x9d / \xa0-xa9)
- / \xa0 (\x8b-x8d / \x90-x99 / \xa0-xbf)
- / \xa1\x80-xb8
- / \xa2 (\x80-xaa / \xb0-xbf)
- / \xa3\x80-xb5
- / \xa4 (\x80-x9e / \xa0-xab / \xb0-xbb)
- / \xa5 (\x86-xad / \xb0-xb4)
- / \xa6 (\x80-xab / \xb0-xbf)
- / \xa7 (\x80-x89 / \x90-x9a)
- / \xa8 (\x80-x9b / \xa0-xbf)
- / \xa9 (\x80-x9e / \xa0-xbc / \xbf)
- / \xaa (\x80-x89 / \x90-x99 / \xa7 / \xb0-xbd)
- / \xac\x80-xbf
- / \xad (\x80-x8b / \x90-x99 / \xab-xb3)
- / \xae\x80-xbf
- / \xaf\x80-xb3
- / \xb0\x80-xb7
- / \xb1 (\x80-x89 / \x8d-xbd)
- / \xb2 (\x80-x88 / \x90-xba / \xbd-xbf)
- / \xb3 (\x90-x92 / \x94-xba)
- / \xb4-xb6\x80-xbf
- / \xb7 (\x80-xb9 / \xbb-xbf)
- / \xb8-xbb\x80-xbf
- / \xbc (\x80-x95 / \x98-x9d / \xa0-xbf)
- / \xbd (\x80-x85 / \x88-x8d / \x90-x97 / \x99 / \x9b / \x9d / \x9f-xbd)
- / \xbe (\x80-xb4 / \xb6-xbc / \xbe)
- / \xbf (\x82-x84 / \x86-x8c / \x90-x93 / \x96-x9b / \xa0-xac / \xb2-xb4 / \xb6-xbc)
-)
-/ \xe2 (
- \x80\xbf
- / \x81 (\x80 / \x94 / \xb1 / \xbf)
- / \x82\x90-x9c
- / \x83 (\x90-x9c / \xa1 / \xa5-xb0)
- / \x84 (\x82 / \x87 / \x8a-x93 / \x95 / \x98-x9d / \xa4 / \xa6 / \xa8 / \xaa-xb9 / \xbc-xbf)
- / \x85 (\x85-x89 / \x8e / \xa0-xbf)
- / \x86\x80-x88
- / \xb0 (\x80-xae / \xb0-xbf)
- / \xb1 (\x80-x9e / \xa0-xbf)
- / \xb2\x80-xbf
- / \xb3 (\x80-xa4 / \xab-xb3)
- / \xb4 (\x80-xa5 / \xa7 / \xad / \xb0-xbf)
- / \xb5 (\x80-xa7 / \xaf / \xbf)
- / \xb6 (\x80-x96 / \xa0-xa6 / \xa8-xae / \xb0-xb6 / \xb8-xbe)
- / \xb7 (\x80-x86 / \x88-x8e / \x90-x96 / \x98-x9e / \xa0-xbf)
-)
-/ \xe3 (
- \x80 (\x85-x87 / \xa1-xaf / \xb1-xb5 / \xb8-xbc)
- / \x81\x81-xbf
- / \x82 (\x80-x96 / \x99-x9f / \xa1-xbf)
- / \x83 (\x80-xba / \xbc-xbf)
- / \x84 (\x85-xaf / \xb1-xbf)
- / \x85\x80-xbf
- / \x86 (\x80-x8e / \xa0-xba)
- / \x87\xb0-xbf
- / \x90-xbf\x80-xbf
-)
-/ \xe4 (\x80-xb5\x80-xbf / \xb6\x80-xb5 / \xb8-xbf\x80-xbf)
-/ \xe5-xe8\x80-xbf\x80-xbf
-/ \xe9 (\x80-xbe\x80-xbf / \xbf\x80-xaf)
-/ \xea (
- \x80-x91\x80-xbf
- / \x92\x80-x8c
- / \x93\x90-xbd
- / \x94-x97\x80-xbf
- / \x98 (\x80-x8c / \x90-xab)
- / \x99 (\x80-xaf / \xb4-xbd / \xbf)
- / \x9a\x80-xbf
- / \x9b\x80-xb1
- / \x9c (\x97-x9f / \xa2-xbf)
- / \x9d\x80-xbf
- / \x9e (\x80-x88 / \x8b-xbf)
- / \x9f (\x82-x86 / \xb7-xbf)
- / \xa0\x80-xa7
- / \xa1\x80-xb3
- / \xa2\x80-xbf
- / \xa3 (\x80-x85 / \x90-x99 / \xa0-xb7 / \xbb / \xbd-xbf)
- / \xa4 (\x80-xad / \xb0-xbf)
- / \xa5 (\x80-x93 / \xa0-xbc)
- / \xa6\x80-xbf
- / \xa7 (\x80 / \x8f-x99 / \xa0-xbe)
- / \xa8\x80-xb6
- / \xa9 (\x80-x8d / \x90-x99 / \xa0-xb6 / \xba-xbf)
- / \xaa\x80-xbf
- / \xab (\x80-x82 / \x9b-x9d / \xa0-xaf / \xb2-xb6)
- / \xac (\x81-x86 / \x89-x8e / \x91-x96 / \xa0-xa6 / \xa8-xae / \xb0-xbf)
- / \xad (\x80-x9a / \x9c-xa7 / \xb0-xbf)
- / \xae\x80-xbf
- / \xaf (\x80-xaa / \xac-xad / \xb0-xb9)
- / \xb0-xbf\x80-xbf
-)
-/ \xeb\x80-xbf\x80-xbf
-/ \xec\x80-xbf\x80-xbf
-/ \xed (
- \x80-x9d\x80-xbf
- / \x9e (\x80-xa3 / \xb0-xbf)
- / \x9f (\x80-x86 / \x8b-xbb)
-)
-/ \xef (
- \xa4-xa8\x80-xbf
- / \xa9 (\x80-xad / \xb0-xbf)
- / \xaa\x80-xbf
- / \xab\x80-x99
- / \xac (\x80-x86 / \x93-x97 / \x9d-xa8 / \xaa-xb6 / \xb8-xbc / \xbe)
- / \xad (\x80-x81 / \x83-x84 / \x86-xbf)
- / \xae\x80-xb1
- / \xaf\x93-xbf
- / \xb0\x80-xbf
- / \xb1 (\x80-x9d / \x80-xbf / \xa4-xbf)
- / \xb2-xb3\x80-xbf
- / \xb4\x80-xbd
- / \xb5\x90-xbf
- / \xb6 (\x80-x8f / \x92-xbf)
- / \xb7 (\x80-x87 / \xb0-xb9 / \xb0-xbb)
- / \xb8 (\x80-x8f / \xa0-xaf / \xb3-xb4)
- / \xb9 (\x8d-x8f / \xb0-xb4 / \xb1 / \xb3 / \xb6-xbf / \xb7 / \xb9 / \xbb / \xbd / \xbf)
- / \xba\x80-xbf
- / \xbb\x80-xbc
- / \xbc (\x90-x99 / \xa1-xba / \xbf)
- / \xbd (\x81-x9a / \xa6-xbf)
- / \xbe\x80-xbe
- / \xbf (\x82-x87 / \x8a-x8f / \x92-x97 / \x9a-x9c)
-)
-/ \xf0 (
- \x90 (
- \x80 (\x80-x8b / \x8d-xa6 / \xa8-xba / \xbc-xbd / \xbf)
- / \x81 (\x80-x8d / \x90-x9d)
- / \x82\x80-xbf
- / \x83\x80-xba
- / \x85\x80-xb4
- / \x87\xbd
- / \x8a (\x80-x9c / \xa0-xbf)
- / \x8b (\x80-x90 / \xa0)
- / \x8c (\x80-x9f / \xad-xbf)
- / \x8d (\x80-x8a / \x90-xba)
- / \x8e (\x80-x9d / \xa0-xbf)
- / \x8f (\x80-x83 / \x88-x8f / \x91-x95)
- / \x90-x91\x80-xbf
- / \x92 (\x80-x9d / \xa0-xa9 / \xb0-xbf)
- / \x93 (\x80-x93 / \x98-xbb)
- / \x94 (\x80-xa7 / \xb0-xbf)
- / \x95\x80-xa3
- / \x98-x9b\x80-xbf
- / \x9c\x80-xb6
- / \x9d (\x80-x95 / \xa0-xa7)
- / \xa0 (\x80-x85 / \x88 / \x8a-xb5 / \xb7-xb8 / \xbc / \xbf)
- / \xa1 (\x80-x95 / \xa0-xb6)
- / \xa2\x80-x9e
- / \xa3 (\xa0-xb2 / \xb4-xb5)
- / \xa4 (\x80-x95 / \xa0-xb9)
- / \xa6 (\x80-xb7 / \xbe-xbf)
- / \xa8 (\x80-x83 / \x85-x86 / \x8c-x93 / \x95-x97 / \x99-xb5 / \xb8-xba / \xbf)
- / \xa9\xa0-xbc
- / \xaa\x80-x9c
- / \xab (\x80-x87 / \x89-xa6)
- / \xac\x80-xb5
- / \xad (\x80-x95 / \xa0-xb2)
- / \xae\x80-x91
- / \xb0\x80-xbf
- / \xb1\x80-x88
- / \xb2\x80-xb2
- / \xb3\x80-xb2
- / \xb4 (\x80-xa7 / \xb0-xb9)
- / \xbc (\x80-x9c / \xa7 / \xb0-xbf)
- / \xbd\x80-x90
- / \xbf\xa0-xb6
- )
- / \x91 (
- \x80\x80-xbf
- / \x81 (\x80-x86 / \xa6-xaf / \xbf)
- / \x82\x80-xba
- / \x83 (\x90-xa8 / \xb0-xb9)
- / \x84 (\x80-xb4 / \xb6-xbf)
- / \x85 (\x84-x86 / \x90-xb3 / \xb6)
- / \x86\x80-xbf
- / \x87 (\x80-x84 / \x89-x8c / \x90-x9a / \x9c)
- / \x88 (\x80-x91 / \x93-xb7 / \xbe)
- / \x8a (\x80-x86 / \x88 / \x8a-x8d / \x8f-x9d / \x9f-xa8 / \xb0-xbf)
- / \x8b (\x80-xaa / \xb0-xb9)
- / \x8c (\x80-x83 / \x85-x8c / \x8f-x90 / \x93-xa8 / \xaa-xb0 / \xb2-xb3 / \xb5-xb9 / \xbb-xbf)
- / \x8d (\x80-x84 / \x87-x88 / \x8b-x8d / \x90 / \x97 / \x9d-xa3 / \xa6-xac / \xb0-xb4)
- / \x90\x80-xbf
- / \x91 (\x80-x8a / \x90-x99 / \x9e-x9f)
- / \x92\x80-xbf
- / \x93 (\x80-x85 / \x87 / \x90-x99)
- / \x96 (\x80-xb5 / \xb8-xbf)
- / \x97 (\x80 / \x98-x9d)
- / \x98\x80-xbf
- / \x99 (\x80 / \x84 / \x90-x99)
- / \x9a\x80-xb8
- / \x9b\x80-x89
- / \x9c (\x80-x9a / \x9d-xab / \xb0-xb9)
- / \xa0\x80-xba
- / \xa2\xa0-xbf
- / \xa3 (\x80-xa9 / \xbf)
- / \xa6 (\xa0-xa7 / \xaa-xbf)
- / \xa7 (\x80-x97 / \x9a-xa1 / \xa3-xa4)
- / \xa8\x80-xbe
- / \xa9 (\x87 / \x90-xbf)
- / \xaa (\x80-x99 / \x9d)
- / \xab\x80-xb8
- / \xb0 (\x80-x88 / \x8a-xb6 / \xb8-xbf)
- / \xb1 (\x80 / \x90-x99 / \xb2-xbf)
- / \xb2 (\x80-x8f / \x92-xa7 / \xa9-xb6)
- / \xb4 (\x80-x86 / \x88-x89 / \x8b-xb6 / \xba / \xbc-xbd / \xbf)
- / \xb5 (\x80-x87 / \x90-x99 / \xa0-xa5 / \xa7-xa8 / \xaa-xbf)
- / \xb6 (\x80-x8e / \x90-x91 / \x93-x98 / \xa0-xa9)
- / \xbb\xa0-xb6
- )
- / \x92 (\x80-x8d\x80-xbf / \x8e\x80-x99 / \x90\x80-xbf / \x91\x80-xae / \x92-x94\x80-xbf / \x95\x80-x83)
- / \x93 (\x80-x8f\x80-xbf / \x90\x80-xae)
- / \x94 (\x90-x98\x80-xbf / \x99\x80-x86)
- / \x96 (
- \xa0-xa7\x80-xbf
- / \xa8\x80-xb8
- / \xa9 (\x80-x9e / \xa0-xa9)
- / \xab (\x90-xad / \xb0-xb4)
- / \xac\x80-xb6
- / \xad (\x80-x83 / \x90-x99 / \xa3-xb7 / \xbd-xbf)
- / \xae\x80-x8f
- / \xb9\x80-xbf
- / \xbc\x80-xbf
- / \xbd (\x80-x8a / \x8f-xbf)
- / \xbe (\x80-x87 / \x8f-x9f)
- / \xbf (\xa0-xa1 / \xa3)
- )
- / \x97\x80-xbf\x80-xbf
- / \x98 (\x80-x9e\x80-xbf / \x9f\x80-xb7 / \xa0-xaa\x80-xbf / \xab\x80-xb2)
- / \x9b (
- \x80-x83\x80-xbf
- / \x84\x80-x9e
- / \x85 (\x90-x92 / \xa4-xa7 / \xb0-xbf)
- / \x86-x8a\x80-xbf
- / \x8b\x80-xbb
- / \xb0\x80-xbf
- / \xb1 (\x80-xaa / \xb0-xbc)
- / \xb2 (\x80-x88 / \x90-x99 / \x9d-x9e)
- )
- / \x9d (
- \x85 (\xa5-xa9 / \xad-xb2 / \xbb-xbf)
- / \x86 (\x80-x82 / \x85-x8b / \xaa-xad)
- / \x89\x82-x84
- / \x90\x80-xbf
- / \x91 (\x80-x94 / \x96-xbf)
- / \x92 (\x80-x9c / \x9e-x9f / \xa2 / \xa5-xa6 / \xa9-xac / \xae-xb9 / \xbb / \xbd-xbf)
- / \x93 (\x80-x83 / \x85-xbf)
- / \x94 (\x80-x85 / \x87-x8a / \x8d-x94 / \x96-x9c / \x9e-xb9 / \xbb-xbe)
- / \x95 (\x80-x84 / \x86 / \x8a-x90 / \x92-xbf)
- / \x96-x99\x80-xbf
- / \x9a (\x80-xa5 / \xa8-xbf)
- / \x9b (\x80 / \x82-x9a / \x9c-xba / \xbc-xbf)
- / \x9c (\x80-x94 / \x96-xb4 / \xb6-xbf)
- / \x9d (\x80-x8e / \x90-xae / \xb0-xbf)
- / \x9e (\x80-x88 / \x8a-xa8 / \xaa-xbf)
- / \x9f (\x80-x82 / \x84-x8b / \x8e-xbf)
- / \xa8 (\x80-xb6 / \xbb-xbf)
- / \xa9 (\x80-xac / \xb5)
- / \xaa (\x84 / \x9b-x9f / \xa1-xaf)
- )
- / \x9e (
- \x80 (\x80-x86 / \x88-x98 / \x9b-xa1 / \xa3-xa4 / \xa6-xaa)
- / \x84 (\x80-xac / \xb0-xbd)
- / \x85 (\x80-x89 / \x8e)
- / \x8b\x80-xb9
- / \xa0-xa2\x80-xbf
- / \xa3 (\x80-x84 / \x90-x96)
- / \xa4\x80-xbf
- / \xa5 (\x80-x8b / \x90-x99)
- / \xb8 (\x80-x83 / \x85-x9f / \xa1-xa2 / \xa4 / \xa7 / \xa9-xb2 / \xb4-xb7 / \xb9 / \xbb)
- / \xb9 (\x82 / \x87 / \x89 / \x8b / \x8d-x8f / \x91-x92 / \x94 / \x97 / \x99 / \x9b / \x9d / \x9f / \xa1-xa2 / \xa4 / \xa7-xaa / \xac-xb2 / \xb4-xb7 / \xb9-xbc / \xbe)
- / \xba (\x80-x89 / \x8b-x9b / \xa1-xa3 / \xa5-xa9 / \xab-xbb)
- )
- / \xa0\x80-xbf\x80-xbf
- / \xa1\x80-xbf\x80-xbf
- / \xa2\x80-xbf\x80-xbf
- / \xa3\x80-xbf\x80-xbf
- / \xa4\x80-xbf\x80-xbf
- / \xa5\x80-xbf\x80-xbf
- / \xa6\x80-xbf\x80-xbf
- / \xa7\x80-xbf\x80-xbf
- / \xa8\x80-xbf\x80-xbf
- / \xa9\x80-xbf\x80-xbf
- / \xaa (\x80-x9a\x80-xbf / \x9b\x80-x96 / \x9c-xbf\x80-xbf)
- / \xab (
- \x80-x9b\x80-xbf
- / \x9c\x80-xb4
- / \x9d-x9f\x80-xbf
- / \xa0 (\x80-x9d / \xa0-xbf)
- / \xa1-xbf\x80-xbf
- )
- / \xac (
- \x80-xb9\x80-xbf
- / \xba (\x80-xa1 / \xb0-xbf)
- / \xbb-xbf\x80-xbf
- )
- / \xad\x80-xbf\x80-xbf
- / \xae (\x80-xae\x80-xbf / \xaf\x80-xa0)
- / \xaf (\xa0-xa7\x80-xbf / \xa8\x80-x9d)
-)
-/ \xf3\xa0 (\x84-x86\x80-xbf / \x87\x80-xaf)
-)