Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9682dcd2b2 | ||
|
|
745a042652 | ||
|
|
b1720e831c | ||
|
|
1022a1cb0f | ||
|
|
e485c5d572 | ||
|
|
957bc5359b | ||
|
|
c117b7d1c9 | ||
|
|
bda3544af9 | ||
|
|
dcc7411099 | ||
|
|
9baaabbf4a | ||
|
|
f1a46ca73a | ||
|
|
fccdffc979 | ||
|
|
ae610e4ecf | ||
|
|
86137ce914 | ||
|
|
c028cdd42b | ||
|
|
8a44906f5c | ||
|
|
3122b9a415 | ||
|
|
2ab394e9d5 | ||
|
|
e63ad223f5 | ||
|
|
3e3b91d75a | ||
|
|
7059b54eb9 | ||
|
|
c88a723fc4 | ||
|
|
44d56c2804 | ||
|
|
4685c639cd | ||
|
|
6a71463d6d | ||
|
|
79596e186d | ||
|
|
94d1ceb2e9 | ||
|
|
e4ba9a90b2 | ||
|
|
fce0e9cbd1 | ||
|
|
8fcbced4e4 | ||
|
|
92a98bcf1e | ||
|
|
a76b9f592c | ||
|
|
c30687f0f1 | ||
|
|
dd05aab240 | ||
|
|
5b0e960177 | ||
|
|
04e7048069 | ||
|
|
a92dad12d8 | ||
|
|
0011cab9f9 | ||
|
|
f1694c513f | ||
|
|
55802e3b40 | ||
|
|
18fc5091b9 | ||
|
|
febeb97793 | ||
|
|
04f1424210 | ||
|
|
1f8d826558 | ||
|
|
1dc02f7b70 | ||
|
|
37350f906c |
No files matched your search
@@ -33,18 +33,20 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6
|
||||
uses: actions/setup-python@v7
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v5
|
||||
uses: actions/setup-java@v6
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '24'
|
||||
# One of the distributions that packages OpenJDK, see
|
||||
# https://github.com/marketplace/actions/setup-java-jdk#supported-distributions
|
||||
distribution: 'oracle-openjdk'
|
||||
java-version: '26'
|
||||
|
||||
- name: Setup Common Prerequisites
|
||||
run: |
|
||||
|
||||
@@ -36,11 +36,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Setup apt cache (Linux)
|
||||
if: startsWith(runner.os, 'Linux')
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: /var/cache/apt
|
||||
key: ${{ runner.os }}-apt-cache-${{ matrix.os }}-${{ github.sha }}
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
esac
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6
|
||||
uses: actions/setup-python@v7
|
||||
with:
|
||||
python-version: 3.x
|
||||
architecture: x64
|
||||
@@ -155,7 +155,7 @@ jobs:
|
||||
- name: Archive test artifacts
|
||||
# Run this step only if tests failed (otherwise there is nothing to upload).
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
# To ensure that jobs don't overwrite existing artifacts,
|
||||
# use a different name per job.
|
||||
|
||||
@@ -62,11 +62,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Setup chocolatey Cache (Windows)
|
||||
if: startsWith(runner.os, 'Windows')
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
|
||||
key: ${{ runner.os }}-chocolatey-${{ matrix.os }}-${{ github.sha }}
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
|
||||
- name: Setup apt cache (Linux)
|
||||
if: startsWith(runner.os, 'Linux')
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: /var/cache/apt
|
||||
key: ${{ runner.os }}-apt-cache-${{ matrix.os }}-${{ github.sha }}
|
||||
@@ -105,7 +105,7 @@ jobs:
|
||||
esac
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6
|
||||
uses: actions/setup-python@v7
|
||||
with:
|
||||
python-version: 3.x
|
||||
architecture: x64
|
||||
@@ -165,7 +165,7 @@ jobs:
|
||||
- name: Archive test artifacts
|
||||
# Run this step only if tests failed (otherwise there is nothing to upload).
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
# To ensure that jobs don't overwrite existing artifacts,
|
||||
# use a different name per job.
|
||||
|
||||
@@ -2,6 +2,44 @@ Changelog
|
||||
=========
|
||||
|
||||
|
||||
4.6 (2026-08-29)
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- Added support for Zig labeled continue optimization.
|
||||
(`#580 <https://github.com/skvadrik/re2c/pull/580>`_).
|
||||
|
||||
- Updated C/C++ examples to use re2c features available in version 4.0 or higher.
|
||||
|
||||
|
||||
4.5.1 (2026-03-27)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Added missing include files to the distribution
|
||||
(`#573 <https://github.com/skvadrik/re2c/issues/573>`_).
|
||||
|
||||
- Updated the documentation to mention the new include files.
|
||||
|
||||
|
||||
4.5 (2026-03-23)
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- Migrated include files to Unicode 17.0.0 standard.
|
||||
|
||||
- Added Unicode include files:
|
||||
|
||||
+ `include/unicode_blocks.re <https://github.com/skvadrik/re2c/blob/master/include/unicode_blocks.re>`_
|
||||
+ `include/unicode_properties.re <https://github.com/skvadrik/re2c/blob/master/include/unicode_properties.re>`_
|
||||
|
||||
- Implemented Unicode case mapping for case-insensitive string literals
|
||||
(`#235 <https://github.com/skvadrik/re2c/issues/235>`_).
|
||||
|
||||
- Fixed `#571 <https://github.com/skvadrik/re2c/issues/571>`_
|
||||
(segmentation fault on erroneous input during determinization).
|
||||
|
||||
- Updated paper `A closer look at TDFA <https://arxiv.org/abs/2206.01398>`_
|
||||
(applied corrections by Lisa Felidae).
|
||||
|
||||
|
||||
4.4 (2025-12-20)
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
+5
-1
@@ -1,5 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(re2c VERSION 4.4 HOMEPAGE_URL "https://re2c.org/")
|
||||
project(re2c VERSION 4.6 HOMEPAGE_URL "https://re2c.org/")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
@@ -230,6 +230,7 @@ set(re2c_sources
|
||||
src/encoding/ebcdic.cc
|
||||
src/encoding/enc.cc
|
||||
src/encoding/range_suffix.cc
|
||||
src/encoding/unicode_casemap.cc
|
||||
src/encoding/utf8.cc
|
||||
src/encoding/utf16.cc
|
||||
src/msg/msg.cc
|
||||
@@ -470,7 +471,9 @@ if(RE2C_IS_ROOT_PROJECT)
|
||||
include/syntax/swift
|
||||
include/syntax/v
|
||||
include/syntax/zig
|
||||
include/unicode_blocks.re
|
||||
include/unicode_categories.re
|
||||
include/unicode_properties.re
|
||||
DESTINATION "${RE2C_STDLIB_DIR}")
|
||||
|
||||
# rebuild all re2c sources using newly built re2c
|
||||
@@ -598,6 +601,7 @@ if (RE2C_BUILD_LIBS)
|
||||
src/nfa/re_to_nfa.cc
|
||||
src/encoding/enc.cc
|
||||
src/encoding/range_suffix.cc
|
||||
src/encoding/unicode_casemap.cc
|
||||
src/encoding/ebcdic.cc
|
||||
src/encoding/utf16.cc
|
||||
src/encoding/utf8.cc
|
||||
|
||||
+1
-1
@@ -308,7 +308,7 @@
|
||||
{
|
||||
"name": "windows-config-base",
|
||||
"hidden": true,
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"generator": "Visual Studio 18 2026",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
|
||||
+4
-1
@@ -104,6 +104,7 @@ re2c_SRC = \
|
||||
src/encoding/ebcdic.cc \
|
||||
src/encoding/enc.cc \
|
||||
src/encoding/range_suffix.cc \
|
||||
src/encoding/unicode_casemap.cc \
|
||||
src/encoding/utf8.cc \
|
||||
src/encoding/utf16.cc \
|
||||
src/msg/msg.cc \
|
||||
@@ -628,7 +629,9 @@ dist_stdlib_DATA = \
|
||||
include/syntax/swift \
|
||||
include/syntax/v \
|
||||
include/syntax/zig \
|
||||
include/unicode_categories.re
|
||||
include/unicode_blocks.re \
|
||||
include/unicode_categories.re \
|
||||
include/unicode_properties.re
|
||||
|
||||
BAZELFILES := \
|
||||
BUILD.bazel \
|
||||
|
||||
@@ -99,6 +99,7 @@ libre2c_la_SRC = \
|
||||
src/nfa/re_to_nfa.cc \
|
||||
src/encoding/enc.cc \
|
||||
src/encoding/range_suffix.cc \
|
||||
src/encoding/unicode_casemap.cc \
|
||||
src/encoding/ebcdic.cc \
|
||||
src/encoding/utf16.cc \
|
||||
src/encoding/utf8.cc \
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ def _re2c_impl(ctx):
|
||||
tools = [ctx.executable._re2c_tool],
|
||||
inputs = ctx.files.srcs + ctx.files.data,
|
||||
command = """
|
||||
"{re2c}" "{src}" -o "{out}" {re2c_args} {includes}
|
||||
"{re2c}" --no-generation-date "{src}" -o "{out}" {re2c_args} {includes}
|
||||
""".format(
|
||||
re2c = ctx.executable._re2c_tool.path,
|
||||
src = srcs[0].path,
|
||||
|
||||
+68
-54
@@ -59,7 +59,7 @@ decimal number:
|
||||
int lex(const char* YYCURSOR) {
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
|
||||
[1\-9][0\-9]* { return 0; }
|
||||
* { return 1; }
|
||||
@@ -1405,6 +1405,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1742,7 +1748,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -2006,12 +2012,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2319,6 +2328,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -2479,7 +2492,7 @@ static int lex(const char *YYCURSOR) {
|
||||
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
* { return \-1; }
|
||||
@@ -2535,7 +2548,7 @@ static int lex(const char *str, unsigned int len) {
|
||||
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:eof = 0;
|
||||
|
||||
@@ -2607,8 +2620,8 @@ static int lex(const char *str, unsigned int len) {
|
||||
loop:
|
||||
/*!re2c
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYFILL = \(dqgoto fail;\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYFILL = \(dqgoto fail;\(dq;
|
||||
|
||||
str = [\(aq] ([^\(aq\e\e] | [\e\e][^])* [\(aq];
|
||||
|
||||
@@ -2673,11 +2686,11 @@ static int lex(const char *str, unsigned int len) {
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:api = custom;
|
||||
re2c:api = generic;
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYPEEK = \(dqcur < lim ? *cur : 0\(dq; // fake null
|
||||
re2c:define:YYSKIP = \(dq++cur;\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYPEEK = \(dqcur < lim ? *cur : 0\(dq; // fake null
|
||||
re2c:YYSKIP = \(dq++cur;\(dq;
|
||||
|
||||
* { count = \-1; break; }
|
||||
[\ex00] { break;; }
|
||||
@@ -2832,11 +2845,11 @@ loop:
|
||||
in\->tok = in\->cur;
|
||||
/*!re2c
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYCURSOR = in\->cur;
|
||||
re2c:define:YYMARKER = in\->mar;
|
||||
re2c:define:YYLIMIT = in\->lim;
|
||||
re2c:define:YYFILL = \(dqfill(in) == 0\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCURSOR = in\->cur;
|
||||
re2c:YYMARKER = in\->mar;
|
||||
re2c:YYLIMIT = in\->lim;
|
||||
re2c:YYFILL = \(dqfill(in) == 0\(dq;
|
||||
re2c:eof = 0;
|
||||
|
||||
str = [\(aq] ([^\(aq\e\e] | [\e\e][^])* [\(aq];
|
||||
@@ -2979,10 +2992,10 @@ loop:
|
||||
in\->tok = in\->cur;
|
||||
/*!re2c
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYCURSOR = in\->cur;
|
||||
re2c:define:YYLIMIT = in\->lim;
|
||||
re2c:define:YYFILL = \(dqif (fill(in, @@) != 0) return \-1;\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCURSOR = in\->cur;
|
||||
re2c:YYLIMIT = in\->lim;
|
||||
re2c:YYFILL = \(dqif (fill(in, @@) != 0) return \-1;\(dq;
|
||||
|
||||
str = [\(aq] ([^\(aq\e\e] | [\e\e][^])* [\(aq];
|
||||
|
||||
@@ -3070,7 +3083,7 @@ static uint64_t parse_u32(const char *s) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
|
||||
end = \(dq\ex00\(dq;
|
||||
|
||||
@@ -3232,9 +3245,9 @@ static uint64_t parse_u32(const char *s) {
|
||||
|
||||
/*!re2c
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYGETCONDITION = \(dqc\(dq;
|
||||
re2c:define:YYSETCONDITION = \(dqc = @@;\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYGETCOND = \(dqc\(dq;
|
||||
re2c:YYSETCOND = \(dqc = @@;\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
<*> * { return ERROR; }
|
||||
@@ -3372,13 +3385,13 @@ static Status lex(State *st, unsigned int *recv) {
|
||||
st\->tok = st\->cur;
|
||||
/*!re2c
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYCURSOR = \(dqst\->cur\(dq;
|
||||
re2c:define:YYMARKER = \(dqst\->mar\(dq;
|
||||
re2c:define:YYLIMIT = \(dqst\->lim\(dq;
|
||||
re2c:define:YYGETSTATE = \(dqst\->state\(dq;
|
||||
re2c:define:YYSETSTATE = \(dqst\->state = @@;\(dq;
|
||||
re2c:define:YYFILL = \(dqreturn WAITING;\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCURSOR = \(dqst\->cur\(dq;
|
||||
re2c:YYMARKER = \(dqst\->mar\(dq;
|
||||
re2c:YYLIMIT = \(dqst\->lim\(dq;
|
||||
re2c:YYGETSTATE = \(dqst\->state\(dq;
|
||||
re2c:YYSETSTATE = \(dqst\->state = @@;\(dq;
|
||||
re2c:YYFILL = \(dqreturn WAITING;\(dq;
|
||||
re2c:eof = 0;
|
||||
|
||||
packet = [a\-z]+[;];
|
||||
@@ -3527,7 +3540,7 @@ static What lex(const char *s) {
|
||||
const char *YYCURSOR = s, *YYMARKER;
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
|
||||
!use:fish;
|
||||
!use:colors;
|
||||
@@ -3568,7 +3581,7 @@ int main() {
|
||||
static int lex_utf8(const uint8_t *s) {
|
||||
const uint8_t *YYCURSOR = s, *YYMARKER;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = uint8_t;
|
||||
re2c:YYCTYPE = uint8_t;
|
||||
re2c:encoding:utf8 = 1;
|
||||
*/
|
||||
}
|
||||
@@ -3576,7 +3589,7 @@ static int lex_utf8(const uint8_t *s) {
|
||||
static int lex_utf32(const uint32_t *s) {
|
||||
const uint32_t *YYCURSOR = s, *YYMARKER;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = uint32_t;
|
||||
re2c:YYCTYPE = uint32_t;
|
||||
re2c:encoding:utf32 = 1;
|
||||
*/
|
||||
}
|
||||
@@ -3721,7 +3734,7 @@ static int lex(const char *str, SemVer *ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:tags = 1;
|
||||
|
||||
num = [0\-9]+;
|
||||
@@ -3828,11 +3841,11 @@ static bool lex(Input &in, std::vector<SemVer> &vers) {
|
||||
/*!re2c
|
||||
re2c:eof = 0;
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYCURSOR = in.cur;
|
||||
re2c:define:YYMARKER = in.mar;
|
||||
re2c:define:YYLIMIT = in.lim;
|
||||
re2c:define:YYFILL = \(dqfill(in) == 0\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCURSOR = in.cur;
|
||||
re2c:YYMARKER = in.mar;
|
||||
re2c:YYLIMIT = in.lim;
|
||||
re2c:YYFILL = \(dqfill(in) == 0\(dq;
|
||||
re2c:tags:expression = \(dqin.@@\(dq;
|
||||
|
||||
num = [0\-9]+;
|
||||
@@ -3915,7 +3928,7 @@ static int lex(const char *str, SemVer *ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:captvars = 1;
|
||||
|
||||
num = [0\-9]+;
|
||||
@@ -4018,11 +4031,11 @@ static bool parse(const char *str, Ver &ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:api:style = free\-form;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYSTAGP = \(dq@@ = YYCURSOR;\(dq;
|
||||
re2c:define:YYSTAGN = \(dq@@ = NULL;\(dq;
|
||||
re2c:define:YYMTAGP = \(dqadd_mtag(mt, @@, YYCURSOR);\(dq;
|
||||
re2c:define:YYMTAGN = \(dqadd_mtag(mt, @@, NULL);\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYSTAGP = \(dq@@ = YYCURSOR;\(dq;
|
||||
re2c:YYSTAGN = \(dq@@ = NULL;\(dq;
|
||||
re2c:YYMTAGP = \(dqadd_mtag(mt, @@, YYCURSOR);\(dq;
|
||||
re2c:YYMTAGN = \(dqadd_mtag(mt, @@, NULL);\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:tags = 1;
|
||||
|
||||
@@ -4094,8 +4107,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2c definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2c definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
@@ -4119,7 +4133,7 @@ Below is an example of a lexer for UTF8 encoded Unicode identifiers.
|
||||
static int lex(const char *s) {
|
||||
const char *YYCURSOR = s, *YYMARKER;
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
// Simplified \(dqUnicode Identifier and Pattern Syntax\(dq
|
||||
@@ -4203,7 +4217,7 @@ float { return OK; }
|
||||
Result lex(const char *s) {
|
||||
const char *YYCURSOR = s, *YYMARKER;
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
* { return FAIL; }
|
||||
@@ -4261,8 +4275,8 @@ long lex(LexerState* st) {
|
||||
/*!re2c
|
||||
re2c:header = \(dqlexer/state.h\(dq;
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:define:YYCURSOR = \(dqst\->cur\(dq;
|
||||
re2c:YYCTYPE = \(dqunsigned char\(dq;
|
||||
re2c:YYCURSOR = \(dqst\->cur\(dq;
|
||||
re2c:tags = 1;
|
||||
re2c:tags:expression = \(dqst\->@@\(dq;
|
||||
|
||||
|
||||
+20
-6
@@ -1323,6 +1323,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1660,7 +1666,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1924,12 +1930,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2237,6 +2246,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -3984,8 +3997,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2d definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2d definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1405,6 +1405,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1742,7 +1748,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -2006,12 +2012,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2319,6 +2328,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4137,8 +4150,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2go definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2go definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1343,6 +1343,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1680,7 +1686,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1944,12 +1950,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2257,6 +2266,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4038,8 +4051,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2hs definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2hs definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1365,6 +1365,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1702,7 +1708,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1966,12 +1972,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2279,6 +2288,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4067,8 +4080,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2java definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2java definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1357,6 +1357,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1694,7 +1700,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1958,12 +1964,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2271,6 +2280,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -3868,8 +3881,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2js definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2js definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
@@ -1330,6 +1330,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1667,7 +1673,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1931,12 +1937,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2244,6 +2253,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4001,8 +4014,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2ocaml definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2ocaml definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1330,6 +1330,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1667,7 +1673,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1931,12 +1937,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2244,6 +2253,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -3879,8 +3892,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2py definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2py definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1375,6 +1375,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1712,7 +1718,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1976,12 +1982,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2289,6 +2298,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4119,8 +4132,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2rust definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2rust definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
@@ -1359,6 +1359,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1696,7 +1702,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1960,12 +1966,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2273,6 +2282,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4104,8 +4117,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2swift definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2swift definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1322,6 +1322,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1659,7 +1665,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1923,12 +1929,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2236,6 +2245,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4021,8 +4034,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2v definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2v definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+20
-6
@@ -1345,6 +1345,12 @@ variable \fByystate\fP\&. Transitions between states update \fByystate\fP to the
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
.TP
|
||||
.B \fB\-\-computed\-continue\fP
|
||||
This option requires the \fB\-\-loop\-switch\fP code model. It uses computed
|
||||
\fBcontinue\fP statements to select the next switch case directly, enabling
|
||||
jump\-table optimization similar to \fB\-\-computed\-gotos\fP in the goto/label
|
||||
code model.
|
||||
.TP
|
||||
.B \fB\-\-nested\-ifs \-s\fP
|
||||
Use nested \fBif\fP statements instead of \fBswitch\fP statements in conditional
|
||||
jumps. This usually results in more efficient code with non\-optimizing
|
||||
@@ -1682,7 +1688,7 @@ A list of supported codegen targets with possible elements \fBcode\fP,
|
||||
.B \fBsupported_features\fP
|
||||
A list of supported features with possible elements \fBnested\-ifs\fP,
|
||||
\fBbitmaps\fP, \fBcomputed\-gotos\fP, \fBcase\-ranges\fP, \fBmonadic\fP, \fBunsafe\fP,
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP\&.
|
||||
\fBtags\fP, \fBcaptures\fP, \fBcaptvars\fP, \fBcomputed\-continue\fP\&.
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -1946,12 +1952,15 @@ Default switch case.
|
||||
.TP
|
||||
.B \fBcode:loop\fP
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBstmt\fP (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: \fBlabel\fP (loop label), \fBval\fP (initial state),
|
||||
\fBvar\fP (state variable), \fBstate\fP (a list variable that expands to all
|
||||
state names) and \fBstmt\fP (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
.TP
|
||||
.B \fBcode:continue\fP
|
||||
Continue statement. Supported variables: \fBlabel\fP (label from which to
|
||||
continue execution).
|
||||
continue execution), \fBval\fP (value passed to a labeled switch) and \fBvar\fP
|
||||
(state variable).
|
||||
.TP
|
||||
.B \fBcode:goto\fP
|
||||
Goto statement. Supported variables: \fBlabel\fP (label of the jump
|
||||
@@ -2259,6 +2268,10 @@ True if case ranges feature is enabled (\fB\-\-case\-ranges\fP or
|
||||
True if the relative form of computed \fBgoto\fP is used
|
||||
(\fB\-\-computed\-gotos\-relative\fP or \fBre2c:cgoto:relative = 1\fP).
|
||||
.TP
|
||||
.B \fB\&.computed_continue\fP
|
||||
True if loop/switch model uses labeled\-switch transitions
|
||||
(\fB\-\-computed\-continue\fP).
|
||||
.TP
|
||||
.B \fB\&.code_model.goto_label\fP
|
||||
True if code model based on goto/label is used (\fB\-\-goto\-label\fP).
|
||||
.TP
|
||||
@@ -4069,8 +4082,9 @@ fixed\-length Unicode encoding with code space \fB[0\-0x10FFFF]\fP and 4\-byte c
|
||||
points and code units.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Include file \fBinclude/unicode_categories.re\fP provides re2zig definitions for the
|
||||
standard Unicode categories.
|
||||
Include files \fBinclude/unicode_blocks.re\fP, \fBinclude/unicode_categories.re\fP
|
||||
and \fBinclude/unicode_properties.re\fP provide re2zig definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
.sp
|
||||
Option \fB\-\-input\-encoding\fP specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 4.4 */
|
||||
/* Generated by re2c 4.6 */
|
||||
#line 1 "../lib/lex.re"
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 4.4 */
|
||||
/* Generated by re2c 4.6 */
|
||||
#line 1 "../lib/test_helper.re"
|
||||
#include "lib/test_helper.h"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ static constexpr const char* DEFAULT_SYNTAX_ZIG =
|
||||
"supported_code_models = [\"loop-switch\", \"recursive-functions\"];\n"
|
||||
"supported_targets = [\"code\", \"dot\"];\n"
|
||||
"supported_features = [\"nested-ifs\", \"bitmaps\", \"case-ranges\",\n"
|
||||
" \"tags\", \"captures\", \"captvars\"];\n"
|
||||
" \"tags\", \"captures\", \"captvars\", \"computed-continue\"];\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"// language-specific options ---------------------------------------------------\n"
|
||||
@@ -221,12 +221,21 @@ static constexpr const char* DEFAULT_SYNTAX_ZIG =
|
||||
"\n"
|
||||
"code:switch_case_default = \"else\";\n"
|
||||
"\n"
|
||||
"code:loop =\n"
|
||||
" topindent (.loop_label ? label \": \") \"while (true) {\" nl\n"
|
||||
"code:loop = (.computed_continue\n"
|
||||
" ? topindent var \": switch (@as(enum {\" nl\n"
|
||||
" indent [state: topindent state \",\" nl] dedent\n"
|
||||
" topindent \"}, .\" val \")) {\" nl\n"
|
||||
" indent [state:\n"
|
||||
" topindent \".\" state \" => {\" nl\n"
|
||||
" indent [stmt: stmt] dedent\n"
|
||||
" topindent \"},\" nl] dedent\n"
|
||||
" topindent \"}\" nl\n"
|
||||
" : topindent (.loop_label ? label \": \") \"while (true) {\" nl\n"
|
||||
" indent [stmt: stmt] dedent\n"
|
||||
" topindent \"}\" nl;\n"
|
||||
" topindent \"}\" nl);\n"
|
||||
"\n"
|
||||
"code:continue = topindent \"continue\" (.loop_label ? \" :\" label) \";\" nl;\n"
|
||||
"code:continue = topindent \"continue\"\n"
|
||||
" (.computed_continue ? \" :\" var \" .\" val : (.loop_label ? \" :\" label)) \";\" nl;\n"
|
||||
"\n"
|
||||
"code:goto = topindent \"goto \" label \";\" nl;\n"
|
||||
"\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -177,6 +177,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -178,6 +178,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -177,6 +177,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -178,6 +178,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -176,6 +176,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -177,6 +177,13 @@ const char* help =
|
||||
" to the case label of the destination state and continue execution to\n"
|
||||
" the head of the loop.\n"
|
||||
"\n"
|
||||
" --computed-continue\n"
|
||||
"\n"
|
||||
" This option requires the --loop-switch code model. It uses computed\n"
|
||||
" continue statements to select the next switch case directly, enabling\n"
|
||||
" jump-table optimization similar to --computed-gotos in the goto/label\n"
|
||||
" code model.\n"
|
||||
"\n"
|
||||
" --nested-ifs -s\n"
|
||||
"\n"
|
||||
" Use nested if statements instead of switch statements in conditional\n"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 4.4 */
|
||||
/* Generated by re2c 4.6 */
|
||||
#line 1 "../src/msg/ver_to_vernum.re"
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
+1400
-1362
File diff suppressed because it is too large.
Load diff
+3287
-3220
File diff suppressed because it is too large.
Load diff
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 4.4 */
|
||||
/* Generated by re2c 4.6 */
|
||||
#line 1 "../src/parse/lexer.re"
|
||||
#include <ctype.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 4.4 */
|
||||
/* Generated by re2c 4.6 */
|
||||
|
||||
#ifndef _RE2C_PARSE_LEX_
|
||||
#define _RE2C_PARSE_LEX_
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
AC_INIT([re2c],[4.4],[re2c-general@lists.sourceforge.net])
|
||||
AC_INIT([re2c],[4.6],[re2c-general@lists.sourceforge.net])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects dist-xz dist-lzip no-dist-gzip])
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
@@ -141,6 +141,12 @@
|
||||
case label of the destination state and continue execution to the head of
|
||||
the loop.
|
||||
|
||||
``--computed-continue``
|
||||
This option requires the ``--loop-switch`` code model. It uses computed
|
||||
``continue`` statements to select the next switch case directly, enabling
|
||||
jump-table optimization similar to ``--computed-gotos`` in the goto/label
|
||||
code model.
|
||||
|
||||
``--nested-ifs -s``
|
||||
Use nested ``if`` statements instead of ``switch`` statements in conditional
|
||||
jumps. This usually results in more efficient code with non-optimizing
|
||||
|
||||
@@ -37,7 +37,7 @@ language configurations, inplace configurations and code templates.
|
||||
``supported_features``
|
||||
A list of supported features with possible elements ``nested-ifs``,
|
||||
``bitmaps``, ``computed-gotos``, ``case-ranges``, ``monadic``, ``unsafe``,
|
||||
``tags``, ``captures``, ``captvars``.
|
||||
``tags``, ``captures``, ``captvars``, ``computed-continue``.
|
||||
|
||||
**Language configurations**
|
||||
|
||||
@@ -270,12 +270,15 @@ language configurations, inplace configurations and code templates.
|
||||
|
||||
``code:loop``
|
||||
A loop that runs forever (unless interrupted from the loop body).
|
||||
Supported variables: ``label`` (loop label), ``stmt`` (a list variable
|
||||
that expands to all statements in the loop body).
|
||||
Supported variables: ``label`` (loop label), ``val`` (initial state),
|
||||
``var`` (state variable), ``state`` (a list variable that expands to all
|
||||
state names) and ``stmt`` (a list variable that expands to all statements
|
||||
in the loop body or the current state).
|
||||
|
||||
``code:continue``
|
||||
Continue statement. Supported variables: ``label`` (label from which to
|
||||
continue execution).
|
||||
continue execution), ``val`` (value passed to a labeled switch) and ``var``
|
||||
(state variable).
|
||||
|
||||
``code:goto``
|
||||
Goto statement. Supported variables: ``label`` (label of the jump
|
||||
@@ -579,6 +582,10 @@ language configurations, inplace configurations and code templates.
|
||||
True if the relative form of computed ``goto`` is used
|
||||
(``--computed-gotos-relative`` or ``re2c:cgoto:relative = 1``).
|
||||
|
||||
``.computed_continue``
|
||||
True if loop/switch model uses labeled-switch transitions
|
||||
(``--computed-continue``).
|
||||
|
||||
``.code_model.goto_label``
|
||||
True if code model based on goto/label is used (``--goto-label``).
|
||||
|
||||
@@ -619,4 +626,3 @@ language configurations, inplace configurations and code templates.
|
||||
|
||||
``.yyfn.throw``
|
||||
True if ``re2c:yyfn:throw`` configuration is defined to a nonempty string.
|
||||
|
||||
@@ -38,8 +38,9 @@ The following encodings are supported:
|
||||
fixed-length Unicode encoding with code space ``[0-0x10FFFF]`` and 4-byte code
|
||||
points and code units.
|
||||
|
||||
Include file ``include/unicode_categories.re`` provides |re2c| definitions for the
|
||||
standard Unicode categories.
|
||||
Include files ``include/unicode_blocks.re``, ``include/unicode_categories.re``
|
||||
and ``include/unicode_properties.re`` provide |re2c| definitions for blocks,
|
||||
categories and properties described in the Unicode standard.
|
||||
|
||||
Option ``--input-encoding`` specifies source file encoding, which can be used to
|
||||
enable Unicode literals in regular expressions. For example
|
||||
|
||||
+17
-16
@@ -466,7 +466,7 @@ Figure \ref{fig:tdfa} in section \ref{section_tdfa} shows an example of TNFA sim
|
||||
\ElseIf {$e = e_1 \mid e_2$} {
|
||||
$(\Sigma, T_2, Q_2, q_2, q_f, \Delta_2) = \retonfa (e_2, q_f)$ \;
|
||||
$(\Sigma, T_2, Q'_2, q'_2, q_f, \Delta'_2) = \ntag (T_2, q_f)$ \;
|
||||
$(\Sigma, T_1, Q_1, q_1, q'_2, \Delta_1) = \retonfa (e_2, q'_2)$ \;
|
||||
$(\Sigma, T_1, Q_1, q_1, q'_2, \Delta_1) = \retonfa (e_1, q'_2)$ \;
|
||||
$(\Sigma, T_1, Q'_1, q'_1, q_2, \Delta'_1) = \ntag (T_1, q_2)$ \;
|
||||
$Q = Q_1 \cup Q'_1 \cup Q_2 \cup Q'_2 \cup \{q_0\}$ \;
|
||||
$\Delta = \Delta_1 \cup \Delta'_1 \cup \Delta_2 \cup \Delta'_2 \cup \{ (q_0,1,\epsilon,q_1), (q_0,2,\epsilon,q'_1) \}$ \;
|
||||
@@ -722,7 +722,6 @@ and $l$ is the new sequence constructed by the $\epsilon$-closure.
|
||||
|
||||
\nonl\Fn {$\underline{step \Xund on \Xund symbol \big( (X, P), a \big)} \smallskip$} {
|
||||
$B:$ empty sequence of configurations \;
|
||||
\BlankLine
|
||||
\For {$(q, r, l) \in X$ ordered by $q$ in the order of $P$} {
|
||||
\If {$\exists (q, a, p) \in \Delta \mid a \in \Sigma$} {
|
||||
append $(p, r, l, \epsilon)$ to $B$
|
||||
@@ -758,45 +757,44 @@ and $l$ is the new sequence constructed by the $\epsilon$-closure.
|
||||
|
||||
\nonl\Fn {$\underline{transition \Xund regops \big( C, R, V \big)} \smallskip$} {
|
||||
$O:$ empty list of operations \;
|
||||
\BlankLine
|
||||
\For {each $(q, r, h, l) \in C$} {
|
||||
\For {each tag $t \in T$} {
|
||||
\If {$h_t = history(h, t) \neq \epsilon$} {
|
||||
\If {$h_t = history(h, t) \neq \epsilon$ and \;
|
||||
\quad\quad $(history(l, t) = \epsilon$ or $t$ is a multi-tag$)$} {
|
||||
$v = regop \Xund rhs(r, h_t, t)$ \;
|
||||
\BlankLine
|
||||
\If {$V[t][v]$ is undefined } {
|
||||
$i = max \{R\} + 1$ \;
|
||||
$i = V[t][v]$ \;
|
||||
\If {$i$ is undefined } {
|
||||
$V[t][v] = i = max \{R\} + 1$ \;
|
||||
$R = R \cup \{i\}$ \;
|
||||
$V[t][v] = i$ \;
|
||||
}
|
||||
\If {operation $i \leftarrow v$ is not in $O$} {
|
||||
append operation $i \leftarrow v$ to $O$ \;
|
||||
}
|
||||
\BlankLine
|
||||
$r[t] = V[t][v]$ \;
|
||||
$r[t] = i$ \;
|
||||
}
|
||||
}
|
||||
}
|
||||
\BlankLine
|
||||
\Return $O$ \;
|
||||
}
|
||||
\vspace{2em}
|
||||
|
||||
\nonl\Fn {$\underline{final \Xund regops \big( R_f, r, l \big)} \smallskip$} {
|
||||
$O:$ empty list of operations \;
|
||||
\BlankLine
|
||||
\For {each tag $t \in T$} {
|
||||
\If {$l_t = history(l, t) \neq \epsilon$} {
|
||||
append $R_f[t] \leftarrow regop \Xund rhs(r, l_t, t)$ to $O$ \;
|
||||
} \Else {
|
||||
append $R_f[t] \leftarrow r[t]$ to $O$ \;
|
||||
}
|
||||
}
|
||||
\BlankLine
|
||||
\Return $O$ \;
|
||||
}
|
||||
\vspace{2em}
|
||||
|
||||
\nonl\Fn {$\underline{regop \Xund rhs \big( r, h_t, t \big)} \smallskip$} {
|
||||
\If {$t$ is a multi-valued tag} {
|
||||
\lIf {$t$ is a multi-tag} {
|
||||
\Return $r[t] \cdot h_t$
|
||||
} \Else {
|
||||
} \lElse {
|
||||
\Return the last element of $h_t$
|
||||
}
|
||||
}
|
||||
@@ -1380,7 +1378,7 @@ RE2C uses the following optimization passes for the number of repetitions $N=2$
|
||||
\For {each operation in $b$} {
|
||||
\If {copy or append $i \leftarrow j ...$ and $i \neq j$} {
|
||||
$x = B[i], \; y = B[j]$ \;
|
||||
\If {$x = -1$ and $y = -1$} {
|
||||
\If {$x = -1$ and $y = -1$ and $\neg I[i][j]$} {
|
||||
$B[i] = B[j] = i$ \;
|
||||
$S[i] = \{i, j\}$ \;
|
||||
} \ElseIf {$x \neq -1$ and $y = -1$} {
|
||||
@@ -1412,6 +1410,9 @@ RE2C uses the following optimization passes for the number of repetitions $N=2$
|
||||
\If {$\exists j$ in $G: B[j] = j$ and $\forall k \in S[j]: \neg I[i][k]$} {
|
||||
$B[i] = j$ \;
|
||||
$S[j] = S[j] \cup \{i\}$ \;
|
||||
} \Else {
|
||||
$B[i] = i$ \;
|
||||
$S[i] = \{i\}$ \;
|
||||
}
|
||||
}
|
||||
\BlankLine
|
||||
|
||||
@@ -268,17 +268,17 @@
|
||||
\multicolumn{12}{c}{Interference} \\[0.3em]
|
||||
& $r_1$ & $r_2$ & $r_3$ & $r_4$ & $r_5$ & $r_6$ & $r_7$ & $r_8$ & $r_9$ & $\!r_{10}\!$ & $\!r_{11}\!$ \\
|
||||
\hline
|
||||
$r_1$ & $.$ & $*$ & $*$ & $*$ & $*$ & $.$ & $.$ & $.$ & $.$ & $.$ & $.$ \\
|
||||
$r_2$ & $*$ & $.$ & $*$ & $*$ & $*$ & $.$ & $*$ & $.$ & $.$ & $.$ & $.$ \\
|
||||
$r_3$ & $*$ & $*$ & $.$ & $*$ & $*$ & $.$ & $*$ & $*$ & $.$ & $.$ & $.$ \\
|
||||
$r_4$ & $*$ & $*$ & $*$ & $.$ & $*$ & $.$ & $*$ & $*$ & $*$ & $.$ & $.$ \\
|
||||
$r_5$ & $*$ & $*$ & $*$ & $*$ & $.$ & $.$ & $*$ & $*$ & $*$ & $*$ & $.$ \\
|
||||
$r_1$ & $.$ & $*$ & $*$ & $*$ & $*$ & $.$ & $.$ & $*$ & $*$ & $*$ & $*$ \\
|
||||
$r_2$ & $*$ & $.$ & $*$ & $*$ & $*$ & $.$ & $.$ & $.$ & $*$ & $*$ & $*$ \\
|
||||
$r_3$ & $*$ & $*$ & $.$ & $*$ & $*$ & $.$ & $.$ & $.$ & $.$ & $*$ & $*$ \\
|
||||
$r_4$ & $*$ & $*$ & $*$ & $.$ & $*$ & $.$ & $.$ & $.$ & $.$ & $.$ & $*$ \\
|
||||
$r_5$ & $*$ & $*$ & $*$ & $*$ & $.$ & $.$ & $.$ & $.$ & $.$ & $.$ & $.$ \\
|
||||
$r_6$ & $.$ & $.$ & $.$ & $.$ & $.$ & $.$ & $*$ & $*$ & $.$ & $.$ & $.$ \\
|
||||
$r_7$ & $.$ & $*$ & $*$ & $*$ & $*$ & $*$ & $.$ & $*$ & $*$ & $*$ & $*$ \\
|
||||
$r_8$ & $.$ & $.$ & $*$ & $*$ & $*$ & $*$ & $*$ & $.$ & $*$ & $*$ & $*$ \\
|
||||
$r_9$ & $.$ & $.$ & $.$ & $*$ & $*$ & $.$ & $*$ & $*$ & $.$ & $.$ & $*$ \\
|
||||
$r_{10}$ & $.$ & $.$ & $.$ & $.$ & $*$ & $.$ & $*$ & $*$ & $.$ & $.$ & $*$ \\
|
||||
$r_{11}$ & $.$ & $.$ & $.$ & $.$ & $.$ & $.$ & $*$ & $*$ & $*$ & $*$ & $.$ \\
|
||||
$r_7$ & $.$ & $.$ & $.$ & $.$ & $.$ & $*$ & $.$ & $*$ & $*$ & $*$ & $*$ \\
|
||||
$r_8$ & $*$ & $.$ & $.$ & $.$ & $.$ & $*$ & $*$ & $.$ & $*$ & $*$ & $*$ \\
|
||||
$r_9$ & $*$ & $*$ & $.$ & $.$ & $.$ & $.$ & $*$ & $*$ & $.$ & $.$ & $*$ \\
|
||||
$r_{10}$ & $*$ & $*$ & $*$ & $.$ & $.$ & $.$ & $*$ & $*$ & $.$ & $.$ & $*$ \\
|
||||
$r_{11}$ & $*$ & $*$ & $*$ & $*$ & $.$ & $.$ & $*$ & $*$ & $*$ & $*$ & $.$ \\
|
||||
\end{tabular}
|
||||
$};
|
||||
\end{scope}
|
||||
@@ -307,8 +307,8 @@
|
||||
\begin{aligned}
|
||||
& \underline{live\!: r_1\, r_2\, r_3} \\[-0.5em]
|
||||
& r_{1} \leftarrow r_{3} \\[-0.6em]
|
||||
& r_{1} \leftarrow \pos \\[-0.6em]
|
||||
& r_{2} \leftarrow \pos
|
||||
& r_{2} \leftarrow \pos \\[-0.6em]
|
||||
& r_{3} \leftarrow \pos
|
||||
\end{aligned}
|
||||
$};
|
||||
\draw [rounded corners=0.5em] (x3.north west) rectangle (x3.south east);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
int lex(const char* YYCURSOR) {
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
|
||||
[1-9][0-9]* { return 0; }
|
||||
* { return 1; }
|
||||
|
||||
@@ -13,7 +13,7 @@ static uint64_t parse_u32(const char *s) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
|
||||
end = "\x00";
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ static uint64_t parse_u32(const char *s) {
|
||||
|
||||
/*!re2c
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYGETCONDITION = "c";
|
||||
re2c:define:YYSETCONDITION = "c = @@;";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYGETCOND = "c";
|
||||
re2c:YYSETCOND = "c = @@;";
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
<*> * { return ERROR; }
|
||||
|
||||
+2025
-1485
File diff suppressed because it is too large.
Load diff
@@ -7,7 +7,7 @@
|
||||
static int lex(const char *s) {
|
||||
const char *YYCURSOR = s, *YYMARKER;
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
// Simplified "Unicode Identifier and Pattern Syntax"
|
||||
|
||||
@@ -7,7 +7,7 @@ static int lex(const char *YYCURSOR) {
|
||||
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
* { return -1; }
|
||||
|
||||
@@ -17,8 +17,8 @@ static int lex(const char *str, unsigned int len) {
|
||||
loop:
|
||||
/*!re2c
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYFILL = "goto fail;";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYFILL = "goto fail;";
|
||||
|
||||
str = ['] ([^'\\] | [\\][^])* ['];
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ static int lex(const char *str, unsigned int len) {
|
||||
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:eof = 0;
|
||||
|
||||
|
||||
@@ -14,11 +14,11 @@ static int lex(const char *str, unsigned int len) {
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:api = custom;
|
||||
re2c:api = generic;
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYPEEK = "cur < lim ? *cur : 0"; // fake null
|
||||
re2c:define:YYSKIP = "++cur;";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYPEEK = "cur < lim ? *cur : 0"; // fake null
|
||||
re2c:YYSKIP = "++cur;";
|
||||
|
||||
* { count = -1; break; }
|
||||
[\x00] { break;; }
|
||||
|
||||
@@ -15,14 +15,14 @@ static int lex(const char *str, unsigned int len) {
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:eof = 0;
|
||||
re2c:api = custom;
|
||||
re2c:api = generic;
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYLESSTHAN = "cur >= lim";
|
||||
re2c:define:YYPEEK = "cur < lim ? *cur : 0"; // fake null
|
||||
re2c:define:YYSKIP = "++cur;";
|
||||
re2c:define:YYBACKUP = "mar = cur;";
|
||||
re2c:define:YYRESTORE = "cur = mar;";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYLESSTHAN = "cur >= lim";
|
||||
re2c:YYPEEK = "cur < lim ? *cur : 0"; // fake null
|
||||
re2c:YYSKIP = "++cur;";
|
||||
re2c:YYBACKUP = "mar = cur;";
|
||||
re2c:YYRESTORE = "cur = mar;";
|
||||
|
||||
str = ['] ([^'\\] | [\\][^])* ['];
|
||||
|
||||
|
||||
@@ -40,11 +40,11 @@ loop:
|
||||
in->tok = in->cur;
|
||||
/*!re2c
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = in->cur;
|
||||
re2c:define:YYMARKER = in->mar;
|
||||
re2c:define:YYLIMIT = in->lim;
|
||||
re2c:define:YYFILL = "fill(in) == 0";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = in->cur;
|
||||
re2c:YYMARKER = in->mar;
|
||||
re2c:YYLIMIT = in->lim;
|
||||
re2c:YYFILL = "fill(in) == 0";
|
||||
re2c:eof = 0;
|
||||
|
||||
str = ['] ([^'\\] | [\\][^])* ['];
|
||||
|
||||
@@ -47,10 +47,10 @@ loop:
|
||||
in->tok = in->cur;
|
||||
/*!re2c
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = in->cur;
|
||||
re2c:define:YYLIMIT = in->lim;
|
||||
re2c:define:YYFILL = "if (fill(in, @@) != 0) return -1;";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = in->cur;
|
||||
re2c:YYLIMIT = in->lim;
|
||||
re2c:YYFILL = "if (fill(in, @@) != 0) return -1;";
|
||||
|
||||
str = ['] ([^'\\] | [\\][^])* ['];
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@ static void convert_newlines(std::ifstream &in, std::ostringstream &out) {
|
||||
std::streampos mar;
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:api= custom;
|
||||
re2c:api = generic;
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYPEEK = "in.peek()";
|
||||
re2c:define:YYSKIP = "{ in.ignore(); if (in.eof()) return; }";
|
||||
re2c:define:YYBACKUP = "mar = in.tellg();";
|
||||
re2c:define:YYRESTORE = "in.seekg(mar);";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYPEEK = "in.peek()";
|
||||
re2c:YYSKIP = "{ in.ignore(); if (in.eof()) return; }";
|
||||
re2c:YYBACKUP = "mar = in.tellg();";
|
||||
re2c:YYRESTORE = "in.seekg(mar);";
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
* { out.put(yych); continue; }
|
||||
|
||||
@@ -15,8 +15,8 @@ long lex(LexerState* st) {
|
||||
/*!re2c
|
||||
re2c:header = "lexer/state.h";
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = "st->cur";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = "st->cur";
|
||||
re2c:tags = 1;
|
||||
re2c:tags:expression = "st->@@";
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
Result lex(const char *s) {
|
||||
const char *YYCURSOR = s, *YYMARKER;
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:yyfill:enable = 0;
|
||||
|
||||
* { return FAIL; }
|
||||
|
||||
@@ -51,7 +51,7 @@ struct input_t {
|
||||
}
|
||||
};
|
||||
|
||||
/*!re2c re2c:define:YYCTYPE = "unsigned char"; */
|
||||
/*!re2c re2c:YYCTYPE = "unsigned char"; */
|
||||
|
||||
template<int base>
|
||||
static bool adddgt(unsigned long &u, unsigned long d)
|
||||
@@ -88,7 +88,7 @@ static bool lex_hex(const unsigned char *s, const unsigned char *e, unsigned lon
|
||||
for (u = 0, s += 2; s < e;) {
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCURSOR = s;
|
||||
re2c:YYCURSOR = s;
|
||||
* { if (!adddgt<16>(u, s[-1] - 0x30u)) return false; continue; }
|
||||
[a-f] { if (!adddgt<16>(u, s[-1] - 0x61u + 10)) return false; continue; }
|
||||
[A-F] { if (!adddgt<16>(u, s[-1] - 0x41u + 10)) return false; continue; }
|
||||
@@ -104,11 +104,11 @@ static bool lex_str(input_t &in, unsigned char q)
|
||||
in.tok = in.cur;
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 1;
|
||||
re2c:define:YYCURSOR = in.cur;
|
||||
re2c:define:YYMARKER = in.mar;
|
||||
re2c:define:YYLIMIT = in.lim;
|
||||
re2c:define:YYFILL = "if (!in.fill(@@)) return false;";
|
||||
re2c:define:YYFILL:naked = 1;
|
||||
re2c:YYCURSOR = in.cur;
|
||||
re2c:YYMARKER = in.mar;
|
||||
re2c:YYLIMIT = in.lim;
|
||||
re2c:YYFILL = "if (!in.fill(@@)) return false;";
|
||||
re2c:YYFILL:naked = 1;
|
||||
* { return false; }
|
||||
[^\n\\] { u = in.tok[0]; if (u == q) break; continue; }
|
||||
"\\a" { u = '\a'; continue; }
|
||||
@@ -139,7 +139,7 @@ static bool lex_flt(const unsigned char *s)
|
||||
int e = 0;
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCURSOR = s;
|
||||
re2c:YYCURSOR = s;
|
||||
*/
|
||||
mant_int:
|
||||
/*!re2c
|
||||
@@ -180,11 +180,11 @@ static bool lex(input_t &in)
|
||||
in.tok = in.cur;
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 1;
|
||||
re2c:define:YYCURSOR = in.cur;
|
||||
re2c:define:YYMARKER = in.mar;
|
||||
re2c:define:YYLIMIT = in.lim;
|
||||
re2c:define:YYFILL = "if (!in.fill(@@)) return false;";
|
||||
re2c:define:YYFILL:naked = 1;
|
||||
re2c:YYCURSOR = in.cur;
|
||||
re2c:YYMARKER = in.mar;
|
||||
re2c:YYLIMIT = in.lim;
|
||||
re2c:YYFILL = "if (!in.fill(@@)) return false;";
|
||||
re2c:YYFILL:naked = 1;
|
||||
|
||||
end = "\x00";
|
||||
|
||||
|
||||
@@ -44,8 +44,8 @@ struct out_t {
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:api:style = free-form;
|
||||
re2c:encoding:utf8 = 1;
|
||||
re2c:define:YYGETCONDITION = "c";
|
||||
re2c:define:YYSETCONDITION = "c = @@;";
|
||||
re2c:YYGETCOND = "c";
|
||||
re2c:YYSETCOND = "c = @@;";
|
||||
|
||||
// letters
|
||||
l = "\u2830";
|
||||
@@ -135,7 +135,7 @@ static void lex_utf8(const iutf8_t & in)
|
||||
int c = yycl;
|
||||
out_t out;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:encoding:utf8 = 1;
|
||||
*/
|
||||
}
|
||||
@@ -146,7 +146,7 @@ static void lex_utf16(const iutf16_t & in)
|
||||
int c = yycl;
|
||||
out_t out;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = "unsigned int";
|
||||
re2c:YYCTYPE = "unsigned int";
|
||||
re2c:encoding:utf16 = 1;
|
||||
*/
|
||||
}
|
||||
@@ -157,7 +157,7 @@ static void lex_utf32(const iutf32_t & in)
|
||||
int c = yycl;
|
||||
out_t out;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = "unsigned int";
|
||||
re2c:YYCTYPE = "unsigned int";
|
||||
re2c:encoding:utf32 = 1;
|
||||
*/
|
||||
}
|
||||
@@ -168,7 +168,7 @@ static void lex_ucs2(const iucs2_t & in)
|
||||
int c = yycl;
|
||||
out_t out;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = "unsigned int";
|
||||
re2c:YYCTYPE = "unsigned int";
|
||||
re2c:encoding:ucs2 = 1;
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
static int lex_utf8(const uint8_t *s) {
|
||||
const uint8_t *YYCURSOR = s, *YYMARKER;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = uint8_t;
|
||||
re2c:YYCTYPE = uint8_t;
|
||||
re2c:encoding:utf8 = 1;
|
||||
*/
|
||||
}
|
||||
@@ -23,7 +23,7 @@ static int lex_utf8(const uint8_t *s) {
|
||||
static int lex_utf32(const uint32_t *s) {
|
||||
const uint32_t *YYCURSOR = s, *YYMARKER;
|
||||
/*!use:re2c
|
||||
re2c:define:YYCTYPE = uint32_t;
|
||||
re2c:YYCTYPE = uint32_t;
|
||||
re2c:encoding:utf32 = 1;
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ static What lex(const char *s) {
|
||||
const char *YYCURSOR = s, *YYMARKER;
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
|
||||
!use:fish;
|
||||
!use:colors;
|
||||
|
||||
@@ -49,13 +49,13 @@ static Status lex(State *st, unsigned int *recv) {
|
||||
st->tok = st->cur;
|
||||
/*!re2c
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = "st->cur";
|
||||
re2c:define:YYMARKER = "st->mar";
|
||||
re2c:define:YYLIMIT = "st->lim";
|
||||
re2c:define:YYGETSTATE = "st->state";
|
||||
re2c:define:YYSETSTATE = "st->state = @@;";
|
||||
re2c:define:YYFILL = "return WAITING;";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = "st->cur";
|
||||
re2c:YYMARKER = "st->mar";
|
||||
re2c:YYLIMIT = "st->lim";
|
||||
re2c:YYGETSTATE = "st->state";
|
||||
re2c:YYSETSTATE = "st->state = @@;";
|
||||
re2c:YYFILL = "return WAITING;";
|
||||
re2c:eof = 0;
|
||||
|
||||
packet = [a-z]+[;];
|
||||
|
||||
@@ -21,7 +21,7 @@ static int lex(const char *str, SemVer *ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:tags = 1;
|
||||
|
||||
num = [0-9]+;
|
||||
|
||||
@@ -65,11 +65,11 @@ static bool lex(Input &in, std::vector<SemVer> &vers) {
|
||||
/*!re2c
|
||||
re2c:eof = 0;
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = in.cur;
|
||||
re2c:define:YYMARKER = in.mar;
|
||||
re2c:define:YYLIMIT = in.lim;
|
||||
re2c:define:YYFILL = "fill(in) == 0";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = in.cur;
|
||||
re2c:YYMARKER = in.mar;
|
||||
re2c:YYLIMIT = in.lim;
|
||||
re2c:YYFILL = "fill(in) == 0";
|
||||
re2c:tags:expression = "in.@@";
|
||||
|
||||
num = [0-9]+;
|
||||
|
||||
@@ -65,11 +65,11 @@ static bool parse(const char *str, Ver &ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:api:style = free-form;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYSTAGP = "@@ = YYCURSOR;";
|
||||
re2c:define:YYSTAGN = "@@ = NULL;";
|
||||
re2c:define:YYMTAGP = "add_mtag(mt, @@, YYCURSOR);";
|
||||
re2c:define:YYMTAGN = "add_mtag(mt, @@, NULL);";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYSTAGP = "@@ = YYCURSOR;";
|
||||
re2c:YYSTAGN = "@@ = NULL;";
|
||||
re2c:YYMTAGP = "add_mtag(mt, @@, YYCURSOR);";
|
||||
re2c:YYMTAGN = "add_mtag(mt, @@, NULL);";
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:tags = 1;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ static int lex(const char *str, SemVer *ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:captvars = 1;
|
||||
|
||||
num = [0-9]+;
|
||||
|
||||
@@ -25,7 +25,7 @@ static int lex(const char *str, SemVer *ver) {
|
||||
|
||||
/*!re2c
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:posix-captures = 1;
|
||||
|
||||
num = [0-9]+;
|
||||
|
||||
@@ -259,20 +259,51 @@ static void print_headers(const char *tok,
|
||||
|
||||
static int lex(input_t *in, long *count)
|
||||
{
|
||||
const char *of, *au, *at,
|
||||
*hs1, *hs3, *m1, *p1, *p3, *p5, *q1, *q3,
|
||||
*hs2, *hs4, *m2, *p2, *p4, *p6, *q2, *q4,
|
||||
*r1, *r3, *rp1, *s1, *st1, *u1, *u3, *v1, *v3,
|
||||
*r2, *r4, *rp2, *s2, *st2, *u2, *u4, *v2, *v4;
|
||||
mtag_t *h1, *h2, *h3, *h4, *h5;
|
||||
long c;
|
||||
const char *at = NULL;
|
||||
const char *au = NULL;
|
||||
const char *hs1 = NULL;
|
||||
const char *hs2 = NULL;
|
||||
const char *hs3 = NULL;
|
||||
const char *hs4 = NULL;
|
||||
const char *m1 = NULL;
|
||||
const char *m2 = NULL;
|
||||
const char *of = NULL;
|
||||
const char *p1 = NULL;
|
||||
const char *p2 = NULL;
|
||||
const char *p3 = NULL;
|
||||
const char *p4 = NULL;
|
||||
const char *p5 = NULL;
|
||||
const char *p6 = NULL;
|
||||
const char *q1 = NULL;
|
||||
const char *q2 = NULL;
|
||||
const char *q3 = NULL;
|
||||
const char *q4 = NULL;
|
||||
const char *r1 = NULL;
|
||||
const char *r2 = NULL;
|
||||
const char *r3 = NULL;
|
||||
const char *r4 = NULL;
|
||||
const char *rp1 = NULL;
|
||||
const char *rp2 = NULL;
|
||||
const char *s1 = NULL;
|
||||
const char *s2 = NULL;
|
||||
const char *st1 = NULL;
|
||||
const char *st2 = NULL;
|
||||
const char *u1 = NULL;
|
||||
const char *u2 = NULL;
|
||||
const char *u3 = NULL;
|
||||
const char *u4 = NULL;
|
||||
const char *v1 = NULL;
|
||||
const char *v2 = NULL;
|
||||
const char *v3 = NULL;
|
||||
const char *v4 = NULL;
|
||||
|
||||
c = 0;;
|
||||
of = au = at
|
||||
= hs1 = hs3 = m1 = p1 = p3 = p5 = q1 = q3
|
||||
= hs2 = hs4 = m2 = p2 = p4 = p6 = q2 = q4
|
||||
= r1 = r3 = rp1 = s1 = st1 = u1 = u3 = v1 = v3
|
||||
= r2 = r4 = rp2 = s2 = st2 = u2 = u4 = v2 = v4 = NULL;
|
||||
mtag_t *h1;
|
||||
mtag_t *h2;
|
||||
mtag_t *h3;
|
||||
mtag_t *h4;
|
||||
mtag_t *h5;
|
||||
|
||||
long c = 0;
|
||||
loop:
|
||||
in->tok = in->cur;
|
||||
|
||||
@@ -14045,21 +14076,21 @@ int main()
|
||||
free_input(&in);
|
||||
return 0;
|
||||
}
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `m1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `at` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `u3` has 3rd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `u4` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `hs3` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `hs4` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `r3` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `s1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `s2` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `u1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `u2` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `hs1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `hs2` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `r1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `p3` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `h3` has 3rd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `h4` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:247:17: warning: tag `h5` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `m1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `at` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `u3` has 3rd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `u4` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `hs3` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `hs4` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `r3` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `s1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `s2` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `u1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `u2` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `hs1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `hs2` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `r1` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `p3` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `h3` has 3rd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `h4` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
c/submatch/http_rfc7230.re:236:17: warning: tag `h5` has 2nd degree of nondeterminism [-Wnondeterministic-tags]
|
||||
@@ -146,20 +146,9 @@ static void print_headers(const char *tok,
|
||||
|
||||
static int lex(input_t *in, long *count)
|
||||
{
|
||||
const char *of, *au, *at,
|
||||
*hs1, *hs3, *m1, *p1, *p3, *p5, *q1, *q3,
|
||||
*hs2, *hs4, *m2, *p2, *p4, *p6, *q2, *q4,
|
||||
*r1, *r3, *rp1, *s1, *st1, *u1, *u3, *v1, *v3,
|
||||
*r2, *r4, *rp2, *s2, *st2, *u2, *u4, *v2, *v4;
|
||||
mtag_t *h1, *h2, *h3, *h4, *h5;
|
||||
long c;
|
||||
|
||||
c = 0;;
|
||||
of = au = at
|
||||
= hs1 = hs3 = m1 = p1 = p3 = p5 = q1 = q3
|
||||
= hs2 = hs4 = m2 = p2 = p4 = p6 = q2 = q4
|
||||
= r1 = r3 = rp1 = s1 = st1 = u1 = u3 = v1 = v3
|
||||
= r2 = r4 = rp2 = s2 = st2 = u2 = u4 = v2 = v4 = NULL;
|
||||
/*!svars:re2c format = 'const char *@@ = NULL;\n'; */
|
||||
/*!mvars:re2c format = 'mtag_t *@@;\n'; */
|
||||
long c = 0;
|
||||
loop:
|
||||
in->tok = in->cur;
|
||||
/*!re2c
|
||||
|
||||
@@ -11,7 +11,7 @@ static int lex(const char *YYCURSOR) {
|
||||
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:tags = 1;
|
||||
|
||||
|
||||
@@ -42,9 +42,9 @@ static int lex(const char *s) {
|
||||
|
||||
for (;;) {
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = s;
|
||||
re2c:define:YYMARKER = m;
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = s;
|
||||
re2c:YYMARKER = m;
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:tags = 1;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ static int lex(const char *YYCURSOR) {
|
||||
tp.clear();
|
||||
/*!mtags:re2c format = "@@ = -1;"; */
|
||||
/*!re2c
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:yyfill:enable = 0;
|
||||
re2c:tags = 1;
|
||||
|
||||
|
||||
@@ -72,12 +72,12 @@ loop:
|
||||
in->tok = in->cur;
|
||||
/*!re2c
|
||||
|
||||
re2c:define:YYCTYPE = "unsigned char";
|
||||
re2c:define:YYCURSOR = in->cur;
|
||||
re2c:define:YYMARKER = in->mar;
|
||||
re2c:define:YYLIMIT = in->lim;
|
||||
re2c:define:YYFILL = "if (fill(in, @@) != 0) return 2;";
|
||||
re2c:define:YYFILL:naked = 1;
|
||||
re2c:YYCTYPE = "unsigned char";
|
||||
re2c:YYCURSOR = in->cur;
|
||||
re2c:YYMARKER = in->mar;
|
||||
re2c:YYLIMIT = in->lim;
|
||||
re2c:YYFILL = "if (fill(in, @@) != 0) return 2;";
|
||||
re2c:YYFILL:naked = 1;
|
||||
re2c:tags:expression = "in->@@";
|
||||
|
||||
end = "\x00";
|
||||
|
||||
+2025
-1485
File diff suppressed because it is too large.
Load diff
+4298
-2998
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+5073
-3175
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+4098
-2904
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+14
-5
@@ -5,7 +5,7 @@ supported_api_styles = ["free-form"];
|
||||
supported_code_models = ["loop-switch", "recursive-functions"];
|
||||
supported_targets = ["code", "dot"];
|
||||
supported_features = ["nested-ifs", "bitmaps", "case-ranges",
|
||||
"tags", "captures", "captvars"];
|
||||
"tags", "captures", "captvars", "computed-continue"];
|
||||
|
||||
|
||||
// language-specific options ---------------------------------------------------
|
||||
@@ -220,12 +220,21 @@ code:switch_case_range = [val{0}: val] (.many ? "..." [val{-1}: val]);
|
||||
|
||||
code:switch_case_default = "else";
|
||||
|
||||
code:loop =
|
||||
topindent (.loop_label ? label ": ") "while (true) {" nl
|
||||
code:loop = (.computed_continue
|
||||
? topindent var ": switch (@as(enum {" nl
|
||||
indent [state: topindent state "," nl] dedent
|
||||
topindent "}, ." val ")) {" nl
|
||||
indent [state:
|
||||
topindent "." state " => {" nl
|
||||
indent [stmt: stmt] dedent
|
||||
topindent "}," nl] dedent
|
||||
topindent "}" nl
|
||||
: topindent (.loop_label ? label ": ") "while (true) {" nl
|
||||
indent [stmt: stmt] dedent
|
||||
topindent "}" nl;
|
||||
topindent "}" nl);
|
||||
|
||||
code:continue = topindent "continue" (.loop_label ? " :" label) ";" nl;
|
||||
code:continue = topindent "continue"
|
||||
(.computed_continue ? " :" var " ." val : (.loop_label ? " :" label)) ";" nl;
|
||||
|
||||
code:goto = topindent "goto " label ";" nl;
|
||||
|
||||
|
||||
@@ -0,0 +1,348 @@
|
||||
/*!re2c
|
||||
Basic_Latin = [\x00-\x7f];
|
||||
Latin_1_Supplement = [\x80-\xff];
|
||||
Latin_Extended_A = [\u0100-\u017f];
|
||||
Latin_Extended_B = [\u0180-\u024f];
|
||||
IPA_Extensions = [\u0250-\u02af];
|
||||
Spacing_Modifier_Letters = [\u02b0-\u02ff];
|
||||
Combining_Diacritical_Marks = [\u0300-\u036f];
|
||||
Greek_and_Coptic = [\u0370-\u03ff];
|
||||
Cyrillic = [\u0400-\u04ff];
|
||||
Cyrillic_Supplement = [\u0500-\u052f];
|
||||
Armenian = [\u0530-\u058f];
|
||||
Hebrew = [\u0590-\u05ff];
|
||||
Arabic = [\u0600-\u06ff];
|
||||
Syriac = [\u0700-\u074f];
|
||||
Arabic_Supplement = [\u0750-\u077f];
|
||||
Thaana = [\u0780-\u07bf];
|
||||
NKo = [\u07c0-\u07ff];
|
||||
Samaritan = [\u0800-\u083f];
|
||||
Mandaic = [\u0840-\u085f];
|
||||
Syriac_Supplement = [\u0860-\u086f];
|
||||
Arabic_Extended_B = [\u0870-\u089f];
|
||||
Arabic_Extended_A = [\u08a0-\u08ff];
|
||||
Devanagari = [\u0900-\u097f];
|
||||
Bengali = [\u0980-\u09ff];
|
||||
Gurmukhi = [\u0a00-\u0a7f];
|
||||
Gujarati = [\u0a80-\u0aff];
|
||||
Oriya = [\u0b00-\u0b7f];
|
||||
Tamil = [\u0b80-\u0bff];
|
||||
Telugu = [\u0c00-\u0c7f];
|
||||
Kannada = [\u0c80-\u0cff];
|
||||
Malayalam = [\u0d00-\u0d7f];
|
||||
Sinhala = [\u0d80-\u0dff];
|
||||
Thai = [\u0e00-\u0e7f];
|
||||
Lao = [\u0e80-\u0eff];
|
||||
Tibetan = [\u0f00-\u0fff];
|
||||
Myanmar = [\u1000-\u109f];
|
||||
Georgian = [\u10a0-\u10ff];
|
||||
Hangul_Jamo = [\u1100-\u11ff];
|
||||
Ethiopic = [\u1200-\u137f];
|
||||
Ethiopic_Supplement = [\u1380-\u139f];
|
||||
Cherokee = [\u13a0-\u13ff];
|
||||
Unified_Canadian_Aboriginal_Syllabics = [\u1400-\u167f];
|
||||
Ogham = [\u1680-\u169f];
|
||||
Runic = [\u16a0-\u16ff];
|
||||
Tagalog = [\u1700-\u171f];
|
||||
Hanunoo = [\u1720-\u173f];
|
||||
Buhid = [\u1740-\u175f];
|
||||
Tagbanwa = [\u1760-\u177f];
|
||||
Khmer = [\u1780-\u17ff];
|
||||
Mongolian = [\u1800-\u18af];
|
||||
Unified_Canadian_Aboriginal_Syllabics_Extended = [\u18b0-\u18ff];
|
||||
Limbu = [\u1900-\u194f];
|
||||
Tai_Le = [\u1950-\u197f];
|
||||
New_Tai_Lue = [\u1980-\u19df];
|
||||
Khmer_Symbols = [\u19e0-\u19ff];
|
||||
Buginese = [\u1a00-\u1a1f];
|
||||
Tai_Tham = [\u1a20-\u1aaf];
|
||||
Combining_Diacritical_Marks_Extended = [\u1ab0-\u1aff];
|
||||
Balinese = [\u1b00-\u1b7f];
|
||||
Sundanese = [\u1b80-\u1bbf];
|
||||
Batak = [\u1bc0-\u1bff];
|
||||
Lepcha = [\u1c00-\u1c4f];
|
||||
Ol_Chiki = [\u1c50-\u1c7f];
|
||||
Cyrillic_Extended_C = [\u1c80-\u1c8f];
|
||||
Georgian_Extended = [\u1c90-\u1cbf];
|
||||
Sundanese_Supplement = [\u1cc0-\u1ccf];
|
||||
Vedic_Extensions = [\u1cd0-\u1cff];
|
||||
Phonetic_Extensions = [\u1d00-\u1d7f];
|
||||
Phonetic_Extensions_Supplement = [\u1d80-\u1dbf];
|
||||
Combining_Diacritical_Marks_Supplement = [\u1dc0-\u1dff];
|
||||
Latin_Extended_Additional = [\u1e00-\u1eff];
|
||||
Greek_Extended = [\u1f00-\u1fff];
|
||||
General_Punctuation = [\u2000-\u206f];
|
||||
Superscripts_and_Subscripts = [\u2070-\u209f];
|
||||
Currency_Symbols = [\u20a0-\u20cf];
|
||||
Combining_Diacritical_Marks_for_Symbols = [\u20d0-\u20ff];
|
||||
Letterlike_Symbols = [\u2100-\u214f];
|
||||
Number_Forms = [\u2150-\u218f];
|
||||
Arrows = [\u2190-\u21ff];
|
||||
Mathematical_Operators = [\u2200-\u22ff];
|
||||
Miscellaneous_Technical = [\u2300-\u23ff];
|
||||
Control_Pictures = [\u2400-\u243f];
|
||||
Optical_Character_Recognition = [\u2440-\u245f];
|
||||
Enclosed_Alphanumerics = [\u2460-\u24ff];
|
||||
Box_Drawing = [\u2500-\u257f];
|
||||
Block_Elements = [\u2580-\u259f];
|
||||
Geometric_Shapes = [\u25a0-\u25ff];
|
||||
Miscellaneous_Symbols = [\u2600-\u26ff];
|
||||
Dingbats = [\u2700-\u27bf];
|
||||
Miscellaneous_Mathematical_Symbols_A = [\u27c0-\u27ef];
|
||||
Supplemental_Arrows_A = [\u27f0-\u27ff];
|
||||
Braille_Patterns = [\u2800-\u28ff];
|
||||
Supplemental_Arrows_B = [\u2900-\u297f];
|
||||
Miscellaneous_Mathematical_Symbols_B = [\u2980-\u29ff];
|
||||
Supplemental_Mathematical_Operators = [\u2a00-\u2aff];
|
||||
Miscellaneous_Symbols_and_Arrows = [\u2b00-\u2bff];
|
||||
Glagolitic = [\u2c00-\u2c5f];
|
||||
Latin_Extended_C = [\u2c60-\u2c7f];
|
||||
Coptic = [\u2c80-\u2cff];
|
||||
Georgian_Supplement = [\u2d00-\u2d2f];
|
||||
Tifinagh = [\u2d30-\u2d7f];
|
||||
Ethiopic_Extended = [\u2d80-\u2ddf];
|
||||
Cyrillic_Extended_A = [\u2de0-\u2dff];
|
||||
Supplemental_Punctuation = [\u2e00-\u2e7f];
|
||||
CJK_Radicals_Supplement = [\u2e80-\u2eff];
|
||||
Kangxi_Radicals = [\u2f00-\u2fdf];
|
||||
Ideographic_Description_Characters = [\u2ff0-\u2fff];
|
||||
CJK_Symbols_and_Punctuation = [\u3000-\u303f];
|
||||
Hiragana = [\u3040-\u309f];
|
||||
Katakana = [\u30a0-\u30ff];
|
||||
Bopomofo = [\u3100-\u312f];
|
||||
Hangul_Compatibility_Jamo = [\u3130-\u318f];
|
||||
Kanbun = [\u3190-\u319f];
|
||||
Bopomofo_Extended = [\u31a0-\u31bf];
|
||||
CJK_Strokes = [\u31c0-\u31ef];
|
||||
Katakana_Phonetic_Extensions = [\u31f0-\u31ff];
|
||||
Enclosed_CJK_Letters_and_Months = [\u3200-\u32ff];
|
||||
CJK_Compatibility = [\u3300-\u33ff];
|
||||
CJK_Unified_Ideographs_Extension_A = [\u3400-\u4dbf];
|
||||
Yijing_Hexagram_Symbols = [\u4dc0-\u4dff];
|
||||
CJK_Unified_Ideographs = [\u4e00-\u9fff];
|
||||
Yi_Syllables = [\ua000-\ua48f];
|
||||
Yi_Radicals = [\ua490-\ua4cf];
|
||||
Lisu = [\ua4d0-\ua4ff];
|
||||
Vai = [\ua500-\ua63f];
|
||||
Cyrillic_Extended_B = [\ua640-\ua69f];
|
||||
Bamum = [\ua6a0-\ua6ff];
|
||||
Modifier_Tone_Letters = [\ua700-\ua71f];
|
||||
Latin_Extended_D = [\ua720-\ua7ff];
|
||||
Syloti_Nagri = [\ua800-\ua82f];
|
||||
Common_Indic_Number_Forms = [\ua830-\ua83f];
|
||||
Phags_pa = [\ua840-\ua87f];
|
||||
Saurashtra = [\ua880-\ua8df];
|
||||
Devanagari_Extended = [\ua8e0-\ua8ff];
|
||||
Kayah_Li = [\ua900-\ua92f];
|
||||
Rejang = [\ua930-\ua95f];
|
||||
Hangul_Jamo_Extended_A = [\ua960-\ua97f];
|
||||
Javanese = [\ua980-\ua9df];
|
||||
Myanmar_Extended_B = [\ua9e0-\ua9ff];
|
||||
Cham = [\uaa00-\uaa5f];
|
||||
Myanmar_Extended_A = [\uaa60-\uaa7f];
|
||||
Tai_Viet = [\uaa80-\uaadf];
|
||||
Meetei_Mayek_Extensions = [\uaae0-\uaaff];
|
||||
Ethiopic_Extended_A = [\uab00-\uab2f];
|
||||
Latin_Extended_E = [\uab30-\uab6f];
|
||||
Cherokee_Supplement = [\uab70-\uabbf];
|
||||
Meetei_Mayek = [\uabc0-\uabff];
|
||||
Hangul_Syllables = [\uac00-\ud7af];
|
||||
Hangul_Jamo_Extended_B = [\ud7b0-\ud7ff];
|
||||
High_Surrogates = [\ud800-\udb7f];
|
||||
High_Private_Use_Surrogates = [\udb80-\udbff];
|
||||
Low_Surrogates = [\udc00-\udfff];
|
||||
Private_Use_Area = [\ue000-\uf8ff];
|
||||
CJK_Compatibility_Ideographs = [\uf900-\ufaff];
|
||||
Alphabetic_Presentation_Forms = [\ufb00-\ufb4f];
|
||||
Arabic_Presentation_Forms_A = [\ufb50-\ufdff];
|
||||
Variation_Selectors = [\ufe00-\ufe0f];
|
||||
Vertical_Forms = [\ufe10-\ufe1f];
|
||||
Combining_Half_Marks = [\ufe20-\ufe2f];
|
||||
CJK_Compatibility_Forms = [\ufe30-\ufe4f];
|
||||
Small_Form_Variants = [\ufe50-\ufe6f];
|
||||
Arabic_Presentation_Forms_B = [\ufe70-\ufeff];
|
||||
Halfwidth_and_Fullwidth_Forms = [\uff00-\uffef];
|
||||
Specials = [\ufff0-\uffff];
|
||||
Linear_B_Syllabary = [\U00010000-\U0001007f];
|
||||
Linear_B_Ideograms = [\U00010080-\U000100ff];
|
||||
Aegean_Numbers = [\U00010100-\U0001013f];
|
||||
Ancient_Greek_Numbers = [\U00010140-\U0001018f];
|
||||
Ancient_Symbols = [\U00010190-\U000101cf];
|
||||
Phaistos_Disc = [\U000101d0-\U000101ff];
|
||||
Lycian = [\U00010280-\U0001029f];
|
||||
Carian = [\U000102a0-\U000102df];
|
||||
Coptic_Epact_Numbers = [\U000102e0-\U000102ff];
|
||||
Old_Italic = [\U00010300-\U0001032f];
|
||||
Gothic = [\U00010330-\U0001034f];
|
||||
Old_Permic = [\U00010350-\U0001037f];
|
||||
Ugaritic = [\U00010380-\U0001039f];
|
||||
Old_Persian = [\U000103a0-\U000103df];
|
||||
Deseret = [\U00010400-\U0001044f];
|
||||
Shavian = [\U00010450-\U0001047f];
|
||||
Osmanya = [\U00010480-\U000104af];
|
||||
Osage = [\U000104b0-\U000104ff];
|
||||
Elbasan = [\U00010500-\U0001052f];
|
||||
Caucasian_Albanian = [\U00010530-\U0001056f];
|
||||
Vithkuqi = [\U00010570-\U000105bf];
|
||||
Todhri = [\U000105c0-\U000105ff];
|
||||
Linear_A = [\U00010600-\U0001077f];
|
||||
Latin_Extended_F = [\U00010780-\U000107bf];
|
||||
Cypriot_Syllabary = [\U00010800-\U0001083f];
|
||||
Imperial_Aramaic = [\U00010840-\U0001085f];
|
||||
Palmyrene = [\U00010860-\U0001087f];
|
||||
Nabataean = [\U00010880-\U000108af];
|
||||
Hatran = [\U000108e0-\U000108ff];
|
||||
Phoenician = [\U00010900-\U0001091f];
|
||||
Lydian = [\U00010920-\U0001093f];
|
||||
Sidetic = [\U00010940-\U0001095f];
|
||||
Meroitic_Hieroglyphs = [\U00010980-\U0001099f];
|
||||
Meroitic_Cursive = [\U000109a0-\U000109ff];
|
||||
Kharoshthi = [\U00010a00-\U00010a5f];
|
||||
Old_South_Arabian = [\U00010a60-\U00010a7f];
|
||||
Old_North_Arabian = [\U00010a80-\U00010a9f];
|
||||
Manichaean = [\U00010ac0-\U00010aff];
|
||||
Avestan = [\U00010b00-\U00010b3f];
|
||||
Inscriptional_Parthian = [\U00010b40-\U00010b5f];
|
||||
Inscriptional_Pahlavi = [\U00010b60-\U00010b7f];
|
||||
Psalter_Pahlavi = [\U00010b80-\U00010baf];
|
||||
Old_Turkic = [\U00010c00-\U00010c4f];
|
||||
Old_Hungarian = [\U00010c80-\U00010cff];
|
||||
Hanifi_Rohingya = [\U00010d00-\U00010d3f];
|
||||
Garay = [\U00010d40-\U00010d8f];
|
||||
Rumi_Numeral_Symbols = [\U00010e60-\U00010e7f];
|
||||
Yezidi = [\U00010e80-\U00010ebf];
|
||||
Arabic_Extended_C = [\U00010ec0-\U00010eff];
|
||||
Old_Sogdian = [\U00010f00-\U00010f2f];
|
||||
Sogdian = [\U00010f30-\U00010f6f];
|
||||
Old_Uyghur = [\U00010f70-\U00010faf];
|
||||
Chorasmian = [\U00010fb0-\U00010fdf];
|
||||
Elymaic = [\U00010fe0-\U00010fff];
|
||||
Brahmi = [\U00011000-\U0001107f];
|
||||
Kaithi = [\U00011080-\U000110cf];
|
||||
Sora_Sompeng = [\U000110d0-\U000110ff];
|
||||
Chakma = [\U00011100-\U0001114f];
|
||||
Mahajani = [\U00011150-\U0001117f];
|
||||
Sharada = [\U00011180-\U000111df];
|
||||
Sinhala_Archaic_Numbers = [\U000111e0-\U000111ff];
|
||||
Khojki = [\U00011200-\U0001124f];
|
||||
Multani = [\U00011280-\U000112af];
|
||||
Khudawadi = [\U000112b0-\U000112ff];
|
||||
Grantha = [\U00011300-\U0001137f];
|
||||
Tulu_Tigalari = [\U00011380-\U000113ff];
|
||||
Newa = [\U00011400-\U0001147f];
|
||||
Tirhuta = [\U00011480-\U000114df];
|
||||
Siddham = [\U00011580-\U000115ff];
|
||||
Modi = [\U00011600-\U0001165f];
|
||||
Mongolian_Supplement = [\U00011660-\U0001167f];
|
||||
Takri = [\U00011680-\U000116cf];
|
||||
Myanmar_Extended_C = [\U000116d0-\U000116ff];
|
||||
Ahom = [\U00011700-\U0001174f];
|
||||
Dogra = [\U00011800-\U0001184f];
|
||||
Warang_Citi = [\U000118a0-\U000118ff];
|
||||
Dives_Akuru = [\U00011900-\U0001195f];
|
||||
Nandinagari = [\U000119a0-\U000119ff];
|
||||
Zanabazar_Square = [\U00011a00-\U00011a4f];
|
||||
Soyombo = [\U00011a50-\U00011aaf];
|
||||
Unified_Canadian_Aboriginal_Syllabics_Extended_A = [\U00011ab0-\U00011abf];
|
||||
Pau_Cin_Hau = [\U00011ac0-\U00011aff];
|
||||
Devanagari_Extended_A = [\U00011b00-\U00011b5f];
|
||||
Sharada_Supplement = [\U00011b60-\U00011b7f];
|
||||
Sunuwar = [\U00011bc0-\U00011bff];
|
||||
Bhaiksuki = [\U00011c00-\U00011c6f];
|
||||
Marchen = [\U00011c70-\U00011cbf];
|
||||
Masaram_Gondi = [\U00011d00-\U00011d5f];
|
||||
Gunjala_Gondi = [\U00011d60-\U00011daf];
|
||||
Tolong_Siki = [\U00011db0-\U00011def];
|
||||
Makasar = [\U00011ee0-\U00011eff];
|
||||
Kawi = [\U00011f00-\U00011f5f];
|
||||
Lisu_Supplement = [\U00011fb0-\U00011fbf];
|
||||
Tamil_Supplement = [\U00011fc0-\U00011fff];
|
||||
Cuneiform = [\U00012000-\U000123ff];
|
||||
Cuneiform_Numbers_and_Punctuation = [\U00012400-\U0001247f];
|
||||
Early_Dynastic_Cuneiform = [\U00012480-\U0001254f];
|
||||
Cypro_Minoan = [\U00012f90-\U00012fff];
|
||||
Egyptian_Hieroglyphs = [\U00013000-\U0001342f];
|
||||
Egyptian_Hieroglyph_Format_Controls = [\U00013430-\U0001345f];
|
||||
Egyptian_Hieroglyphs_Extended_A = [\U00013460-\U000143ff];
|
||||
Anatolian_Hieroglyphs = [\U00014400-\U0001467f];
|
||||
Gurung_Khema = [\U00016100-\U0001613f];
|
||||
Bamum_Supplement = [\U00016800-\U00016a3f];
|
||||
Mro = [\U00016a40-\U00016a6f];
|
||||
Tangsa = [\U00016a70-\U00016acf];
|
||||
Bassa_Vah = [\U00016ad0-\U00016aff];
|
||||
Pahawh_Hmong = [\U00016b00-\U00016b8f];
|
||||
Kirat_Rai = [\U00016d40-\U00016d7f];
|
||||
Medefaidrin = [\U00016e40-\U00016e9f];
|
||||
Beria_Erfe = [\U00016ea0-\U00016edf];
|
||||
Miao = [\U00016f00-\U00016f9f];
|
||||
Ideographic_Symbols_and_Punctuation = [\U00016fe0-\U00016fff];
|
||||
Tangut = [\U00017000-\U000187ff];
|
||||
Tangut_Components = [\U00018800-\U00018aff];
|
||||
Khitan_Small_Script = [\U00018b00-\U00018cff];
|
||||
Tangut_Supplement = [\U00018d00-\U00018d7f];
|
||||
Tangut_Components_Supplement = [\U00018d80-\U00018dff];
|
||||
Kana_Extended_B = [\U0001aff0-\U0001afff];
|
||||
Kana_Supplement = [\U0001b000-\U0001b0ff];
|
||||
Kana_Extended_A = [\U0001b100-\U0001b12f];
|
||||
Small_Kana_Extension = [\U0001b130-\U0001b16f];
|
||||
Nushu = [\U0001b170-\U0001b2ff];
|
||||
Duployan = [\U0001bc00-\U0001bc9f];
|
||||
Shorthand_Format_Controls = [\U0001bca0-\U0001bcaf];
|
||||
Symbols_for_Legacy_Computing_Supplement = [\U0001cc00-\U0001cebf];
|
||||
Miscellaneous_Symbols_Supplement = [\U0001cec0-\U0001ceff];
|
||||
Znamenny_Musical_Notation = [\U0001cf00-\U0001cfcf];
|
||||
Byzantine_Musical_Symbols = [\U0001d000-\U0001d0ff];
|
||||
Musical_Symbols = [\U0001d100-\U0001d1ff];
|
||||
Ancient_Greek_Musical_Notation = [\U0001d200-\U0001d24f];
|
||||
Kaktovik_Numerals = [\U0001d2c0-\U0001d2df];
|
||||
Mayan_Numerals = [\U0001d2e0-\U0001d2ff];
|
||||
Tai_Xuan_Jing_Symbols = [\U0001d300-\U0001d35f];
|
||||
Counting_Rod_Numerals = [\U0001d360-\U0001d37f];
|
||||
Mathematical_Alphanumeric_Symbols = [\U0001d400-\U0001d7ff];
|
||||
Sutton_SignWriting = [\U0001d800-\U0001daaf];
|
||||
Latin_Extended_G = [\U0001df00-\U0001dfff];
|
||||
Glagolitic_Supplement = [\U0001e000-\U0001e02f];
|
||||
Cyrillic_Extended_D = [\U0001e030-\U0001e08f];
|
||||
Nyiakeng_Puachue_Hmong = [\U0001e100-\U0001e14f];
|
||||
Toto = [\U0001e290-\U0001e2bf];
|
||||
Wancho = [\U0001e2c0-\U0001e2ff];
|
||||
Nag_Mundari = [\U0001e4d0-\U0001e4ff];
|
||||
Ol_Onal = [\U0001e5d0-\U0001e5ff];
|
||||
Tai_Yo = [\U0001e6c0-\U0001e6ff];
|
||||
Ethiopic_Extended_B = [\U0001e7e0-\U0001e7ff];
|
||||
Mende_Kikakui = [\U0001e800-\U0001e8df];
|
||||
Adlam = [\U0001e900-\U0001e95f];
|
||||
Indic_Siyaq_Numbers = [\U0001ec70-\U0001ecbf];
|
||||
Ottoman_Siyaq_Numbers = [\U0001ed00-\U0001ed4f];
|
||||
Arabic_Mathematical_Alphabetic_Symbols = [\U0001ee00-\U0001eeff];
|
||||
Mahjong_Tiles = [\U0001f000-\U0001f02f];
|
||||
Domino_Tiles = [\U0001f030-\U0001f09f];
|
||||
Playing_Cards = [\U0001f0a0-\U0001f0ff];
|
||||
Enclosed_Alphanumeric_Supplement = [\U0001f100-\U0001f1ff];
|
||||
Enclosed_Ideographic_Supplement = [\U0001f200-\U0001f2ff];
|
||||
Miscellaneous_Symbols_and_Pictographs = [\U0001f300-\U0001f5ff];
|
||||
Emoticons = [\U0001f600-\U0001f64f];
|
||||
Ornamental_Dingbats = [\U0001f650-\U0001f67f];
|
||||
Transport_and_Map_Symbols = [\U0001f680-\U0001f6ff];
|
||||
Alchemical_Symbols = [\U0001f700-\U0001f77f];
|
||||
Geometric_Shapes_Extended = [\U0001f780-\U0001f7ff];
|
||||
Supplemental_Arrows_C = [\U0001f800-\U0001f8ff];
|
||||
Supplemental_Symbols_and_Pictographs = [\U0001f900-\U0001f9ff];
|
||||
Chess_Symbols = [\U0001fa00-\U0001fa6f];
|
||||
Symbols_and_Pictographs_Extended_A = [\U0001fa70-\U0001faff];
|
||||
Symbols_for_Legacy_Computing = [\U0001fb00-\U0001fbff];
|
||||
CJK_Unified_Ideographs_Extension_B = [\U00020000-\U0002a6df];
|
||||
CJK_Unified_Ideographs_Extension_C = [\U0002a700-\U0002b73f];
|
||||
CJK_Unified_Ideographs_Extension_D = [\U0002b740-\U0002b81f];
|
||||
CJK_Unified_Ideographs_Extension_E = [\U0002b820-\U0002ceaf];
|
||||
CJK_Unified_Ideographs_Extension_F = [\U0002ceb0-\U0002ebef];
|
||||
CJK_Unified_Ideographs_Extension_I = [\U0002ebf0-\U0002ee5f];
|
||||
CJK_Compatibility_Ideographs_Supplement = [\U0002f800-\U0002fa1f];
|
||||
CJK_Unified_Ideographs_Extension_G = [\U00030000-\U0003134f];
|
||||
CJK_Unified_Ideographs_Extension_H = [\U00031350-\U000323af];
|
||||
CJK_Unified_Ideographs_Extension_J = [\U000323b0-\U0003347f];
|
||||
Tags = [\U000e0000-\U000e007f];
|
||||
Variation_Selectors_Supplement = [\U000e0100-\U000e01ef];
|
||||
Supplementary_Private_Use_Area_A = [\U000f0000-\U000fffff];
|
||||
Supplementary_Private_Use_Area_B = [\U00100000-\U0010ffff];
|
||||
*/
|
||||
@@ -1,40 +1,40 @@
|
||||
/*!re2c
|
||||
C = [\x00-\x1f\x7f-\x9f\xad-\xad\u0378-\u0379\u0380-\u0383\u038b-\u038b\u038d-\u038d\u03a2-\u03a2\u0530-\u0530\u0557-\u0558\u058b-\u058c\u0590-\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u0605\u061c-\u061d\u06dd-\u06dd\u070e-\u070f\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f-\u083f\u085c-\u085d\u085f-\u085f\u086b-\u089f\u08b5-\u08b5\u08be-\u08d2\u08e2-\u08e2\u0984-\u0984\u098d-\u098e\u0991-\u0992\u09a9-\u09a9\u09b1-\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de-\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29-\u0a29\u0a31-\u0a31\u0a34-\u0a34\u0a37-\u0a37\u0a3a-\u0a3b\u0a3d-\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d-\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84-\u0a84\u0a8e-\u0a8e\u0a92-\u0a92\u0aa9-\u0aa9\u0ab1-\u0ab1\u0ab4-\u0ab4\u0aba-\u0abb\u0ac6-\u0ac6\u0aca-\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00-\u0b00\u0b04-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29-\u0b29\u0b31-\u0b31\u0b34-\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e-\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84-\u0b84\u0b8b-\u0b8d\u0b91-\u0b91\u0b96-\u0b98\u0b9b-\u0b9b\u0b9d-\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9-\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d-\u0c0d\u0c11-\u0c11\u0c29-\u0c29\u0c3a-\u0c3c\u0c45-\u0c45\u0c49-\u0c49\u0c4e-\u0c54\u0c57-\u0c57\u0c5b-\u0c5f\u0c64-\u0c65\u0c70-\u0c76\u0c8d-\u0c8d\u0c91-\u0c91\u0ca9-\u0ca9\u0cb4-\u0cb4\u0cba-\u0cbb\u0cc5-\u0cc5\u0cc9-\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf-\u0cdf\u0ce4-\u0ce5\u0cf0-\u0cf0\u0cf3-\u0cff\u0d04-\u0d04\u0d0d-\u0d0d\u0d11-\u0d11\u0d45-\u0d45\u0d49-\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80-\u0d81\u0d84-\u0d84\u0d97-\u0d99\u0db2-\u0db2\u0dbc-\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5-\u0dd5\u0dd7-\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83-\u0e83\u0e85-\u0e85\u0e8b-\u0e8b\u0ea4-\u0ea4\u0ea6-\u0ea6\u0ebe-\u0ebf\u0ec5-\u0ec5\u0ec7-\u0ec7\u0ece-\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48-\u0f48\u0f6d-\u0f70\u0f98-\u0f98\u0fbd-\u0fbd\u0fcd-\u0fcd\u0fdb-\u0fff\u10c6-\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249-\u1249\u124e-\u124f\u1257-\u1257\u1259-\u1259\u125e-\u125f\u1289-\u1289\u128e-\u128f\u12b1-\u12b1\u12b6-\u12b7\u12bf-\u12bf\u12c1-\u12c1\u12c6-\u12c7\u12d7-\u12d7\u1311-\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u170d-\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d-\u176d\u1771-\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u180e-\u180f\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f-\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f-\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfb-\u1cff\u1dfa-\u1dfa\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58-\u1f58\u1f5a-\u1f5a\u1f5c-\u1f5c\u1f5e-\u1f5e\u1f7e-\u1f7f\u1fb5-\u1fb5\u1fc5-\u1fc5\u1fd4-\u1fd5\u1fdc-\u1fdc\u1ff0-\u1ff1\u1ff5-\u1ff5\u1fff-\u1fff\u200b-\u200f\u202a-\u202e\u2060-\u206f\u2072-\u2073\u208f-\u208f\u209d-\u209f\u20c0-\u20cf\u20f1-\u20ff\u218c-\u218f\u2427-\u243f\u244b-\u245f\u2b74-\u2b75\u2b96-\u2b97\u2c2f-\u2c2f\u2c5f-\u2c5f\u2cf4-\u2cf8\u2d26-\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7-\u2da7\u2daf-\u2daf\u2db7-\u2db7\u2dbf-\u2dbf\u2dc7-\u2dc7\u2dcf-\u2dcf\u2dd7-\u2dd7\u2ddf-\u2ddf\u2e50-\u2e7f\u2e9a-\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040-\u3040\u3097-\u3098\u3100-\u3104\u3130-\u3130\u318f-\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f-\u321f\u4db6-\u4dbf\u9ff0-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7c0-\ua7c1\ua7c7-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce-\ua9ce\ua9da-\ua9dd\ua9ff-\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27-\uab27\uab2f-\uab2f\uab68-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\uf8ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37-\ufb37\ufb3d-\ufb3d\ufb3f-\ufb3f\ufb42-\ufb42\ufb45-\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdef\ufdfe-\ufdff\ufe1a-\ufe1f\ufe53-\ufe53\ufe67-\ufe67\ufe6c-\ufe6f\ufe75-\ufe75\ufefd-\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7-\uffe7\uffef-\ufffb\ufffe-\U0000ffff\U0001000c-\U0001000c\U00010027-\U00010027\U0001003b-\U0001003b\U0001003e-\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f-\U0001018f\U0001019c-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e-\U0Line truncated
|
||||
C = [\x00-\x1f\x7f-\x9f\xad\u0378-\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557-\u0558\u058b-\u058c\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u0605\u061c\u06dd\u070e-\u070f\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f\u085c-\u085d\u085f\u086b-\u086f\u0890-\u0896\u08e2\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b54\u0b58-\u0b5b\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d\u0c11\u0c29\u0c3a-\u0c3b\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b\u0c5e-\u0c5f\u0c64-\u0c65\u0c70-\u0c76\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdb\u0cdf\u0ce4-\u0ce5\u0cf0\u0cf4-\u0cff\u0d0d\u0d11\u0d45\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85\u0e8b\u0ea4\u0ea6\u0ebe-\u0ebf\u0ec5\u0ec7\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249\u124e-\u124f\u1257\u1259\u125e-\u125f\u1289\u128e-\u128f\u12b1\u12b6-\u12b7\u12bf\u12c1\u12c6-\u12c7\u12d7\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u1716-\u171e\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u180e\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1ade-\u1adf\u1aec-\u1aff\u1b4d\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c8b-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfb-\u1cff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fc5\u1fd4-\u1fd5\u1fdc\u1ff0-\u1ff1\u1ff5\u1fff\u200b-\u200f\u202a-\u202e\u2060-\u206f\u2072-\u2073\u208f\u209d-\u209f\u20c2-\u20cf\u20f1-\u20ff\u218c-\u218f\u242a-\u243f\u244b-\u245f\u2b74-\u2b75\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e5e-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u3040\u3097-\u3098\u3100-\u3104\u3130\u318f\u31e6-\u31ee\u321f\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7dd-\ua7f0\ua82d-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27\uab2f\uab6c-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\uf8ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufdd0-\ufdef\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd-\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7\uffef-\ufffb\ufffe-\uffff\U0001000c\U00010027\U0001003b\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f\U0001019d-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e\U000103c4-\U000103c7\U000103d6-\U000103ff\U0001049e-\U0001049f\U000104aa-\U000104af\U000104d4-\U000104d7\U000104fc-\U000104ff\U00010528-\U0001052f\U00010564-\U0001056e\U0001057b\U0001058b\U00010593\U00010596\U000105a2\U000105b2\U000105ba\U000105bd-\U000105bf\U000105f4-\U000105ff\U00010737-\U0001073f\U00010756-\U0001075f\U00010768-\U0001077f\U00010786\U000107b1\U000107bb-\U000107ff\U00010806-\U00010807\U00010809\U00010836\U00010839-\U0001083b\U0001083d-\U0001083e\U00010856\U0001089f-\U000108a6\U000108b0-\U000108df\U000108f3\U000108f6-\U000108fa\U0001091c-\U0001091e\U0001093a-\U0001093e\U0001095a-\U0001097f\U000109b8-\U000109bb\U000109d0-\U000109d1\U00010a04\U00010a07-\U00010a0b\U00010a14\U00010a18\U00010a36-\U00010a37\U00010a3b-\U00010a3e\U00010a49-\U00010a4f\U00010a59-\U00010a5f\U00010aa0-\U00010abf\U00010ae7-\U00010aea\U00010af7-\U00010aff\U00010b36-\U00010b38\U00010b56-\U00010b57\U00010b73-\U00010b77\U00010b92-\U00010b98\U00010b9d-\U00010ba8\U00010bb0-\U00010bff\U00010c49-\U00010c7f\U00010cb3-\U00010cbf\U00010cf3-\U00010cf9\U00010d28-\U00010d2f\U00010d3a-\U00010d3f\U00010d66-\U00010d68\U00010d86-\U00010d8d\U00010d90-\U00010e5f\U00010e7f\U00010eaa\U0001Line truncated
|
||||
Cc = [\x00-\x1f\x7f-\x9f];
|
||||
Cf = [\xad-\xad\u0600-\u0605\u061c-\u061c\u06dd-\u06dd\u070f-\u070f\u08e2-\u08e2\u180e-\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff-\ufeff\ufff9-\ufffb\U000110bd-\U000110bd\U000110cd-\U000110cd\U00013430-\U00013438\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001-\U000e0001\U000e0020-\U000e007f];
|
||||
Cn = [\u0378-\u0379\u0380-\u0383\u038b-\u038b\u038d-\u038d\u03a2-\u03a2\u0530-\u0530\u0557-\u0558\u058b-\u058c\u0590-\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u05ff\u061d-\u061d\u070e-\u070e\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f-\u083f\u085c-\u085d\u085f-\u085f\u086b-\u089f\u08b5-\u08b5\u08be-\u08d2\u0984-\u0984\u098d-\u098e\u0991-\u0992\u09a9-\u09a9\u09b1-\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de-\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29-\u0a29\u0a31-\u0a31\u0a34-\u0a34\u0a37-\u0a37\u0a3a-\u0a3b\u0a3d-\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d-\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84-\u0a84\u0a8e-\u0a8e\u0a92-\u0a92\u0aa9-\u0aa9\u0ab1-\u0ab1\u0ab4-\u0ab4\u0aba-\u0abb\u0ac6-\u0ac6\u0aca-\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00-\u0b00\u0b04-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29-\u0b29\u0b31-\u0b31\u0b34-\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e-\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84-\u0b84\u0b8b-\u0b8d\u0b91-\u0b91\u0b96-\u0b98\u0b9b-\u0b9b\u0b9d-\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9-\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d-\u0c0d\u0c11-\u0c11\u0c29-\u0c29\u0c3a-\u0c3c\u0c45-\u0c45\u0c49-\u0c49\u0c4e-\u0c54\u0c57-\u0c57\u0c5b-\u0c5f\u0c64-\u0c65\u0c70-\u0c76\u0c8d-\u0c8d\u0c91-\u0c91\u0ca9-\u0ca9\u0cb4-\u0cb4\u0cba-\u0cbb\u0cc5-\u0cc5\u0cc9-\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf-\u0cdf\u0ce4-\u0ce5\u0cf0-\u0cf0\u0cf3-\u0cff\u0d04-\u0d04\u0d0d-\u0d0d\u0d11-\u0d11\u0d45-\u0d45\u0d49-\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80-\u0d81\u0d84-\u0d84\u0d97-\u0d99\u0db2-\u0db2\u0dbc-\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5-\u0dd5\u0dd7-\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83-\u0e83\u0e85-\u0e85\u0e8b-\u0e8b\u0ea4-\u0ea4\u0ea6-\u0ea6\u0ebe-\u0ebf\u0ec5-\u0ec5\u0ec7-\u0ec7\u0ece-\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48-\u0f48\u0f6d-\u0f70\u0f98-\u0f98\u0fbd-\u0fbd\u0fcd-\u0fcd\u0fdb-\u0fff\u10c6-\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249-\u1249\u124e-\u124f\u1257-\u1257\u1259-\u1259\u125e-\u125f\u1289-\u1289\u128e-\u128f\u12b1-\u12b1\u12b6-\u12b7\u12bf-\u12bf\u12c1-\u12c1\u12c6-\u12c7\u12d7-\u12d7\u1311-\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u170d-\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d-\u176d\u1771-\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u180f-\u180f\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f-\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f-\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfb-\u1cff\u1dfa-\u1dfa\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58-\u1f58\u1f5a-\u1f5a\u1f5c-\u1f5c\u1f5e-\u1f5e\u1f7e-\u1f7f\u1fb5-\u1fb5\u1fc5-\u1fc5\u1fd4-\u1fd5\u1fdc-\u1fdc\u1ff0-\u1ff1\u1ff5-\u1ff5\u1fff-\u1fff\u2065-\u2065\u2072-\u2073\u208f-\u208f\u209d-\u209f\u20c0-\u20cf\u20f1-\u20ff\u218c-\u218f\u2427-\u243f\u244b-\u245f\u2b74-\u2b75\u2b96-\u2b97\u2c2f-\u2c2f\u2c5f-\u2c5f\u2cf4-\u2cf8\u2d26-\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7-\u2da7\u2daf-\u2daf\u2db7-\u2db7\u2dbf-\u2dbf\u2dc7-\u2dc7\u2dcf-\u2dcf\u2dd7-\u2dd7\u2ddf-\u2ddf\u2e50-\u2e7f\u2e9a-\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040-\u3040\u3097-\u3098\u3100-\u3104\u3130-\u3130\u318f-\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f-\u321f\u4db6-\u4dbf\u9ff0-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7c0-\ua7c1\ua7c7-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce-\ua9ce\ua9da-\ua9dd\ua9ff-\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27-\uab27\uab2f-\uab2f\uab68-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\ud7ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37-\ufb37\ufb3d-\ufb3d\ufb3f-\ufb3f\ufb42-\ufb42\ufb45-\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdef\ufdfe-\ufdff\ufe1a-\ufe1f\ufe53-\ufe53\ufe67-\ufe67\ufe6c-\ufe6f\ufe75-\ufe75\ufefd-\ufefe\uff00-\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7-\uffe7\uffef-\ufff8\ufffe-\U0000ffff\U0001000c-\U0001000c\U00010027-\U00010027\U0001003b-\U0001003b\U0001003e-\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f-\U0001018f\U0001019c-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e-\U0001039e\U000103c4-\U000103c7\U000103d6-\U000103ff\U0001049e-\U000Line truncated
|
||||
Cf = [\xad\u0600-\u0605\u061c\u06dd\u070f\u0890-\u0891\u08e2\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U00013430-\U0001343f\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f];
|
||||
Cn = [\u0378-\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557-\u0558\u058b-\u058c\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u05ff\u070e\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f\u085c-\u085d\u085f\u086b-\u086f\u0892-\u0896\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b54\u0b58-\u0b5b\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d\u0c11\u0c29\u0c3a-\u0c3b\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b\u0c5e-\u0c5f\u0c64-\u0c65\u0c70-\u0c76\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdb\u0cdf\u0ce4-\u0ce5\u0cf0\u0cf4-\u0cff\u0d0d\u0d11\u0d45\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85\u0e8b\u0ea4\u0ea6\u0ebe-\u0ebf\u0ec5\u0ec7\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249\u124e-\u124f\u1257\u1259\u125e-\u125f\u1289\u128e-\u128f\u12b1\u12b6-\u12b7\u12bf\u12c1\u12c6-\u12c7\u12d7\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u1716-\u171e\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1ade-\u1adf\u1aec-\u1aff\u1b4d\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c8b-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfb-\u1cff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fc5\u1fd4-\u1fd5\u1fdc\u1ff0-\u1ff1\u1ff5\u1fff\u2065\u2072-\u2073\u208f\u209d-\u209f\u20c2-\u20cf\u20f1-\u20ff\u218c-\u218f\u242a-\u243f\u244b-\u245f\u2b74-\u2b75\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e5e-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u3040\u3097-\u3098\u3100-\u3104\u3130\u318f\u31e6-\u31ee\u321f\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7dd-\ua7f0\ua82d-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27\uab2f\uab6c-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\ud7ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufdd0-\ufdef\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd-\ufefe\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7\uffef-\ufff8\ufffe-\uffff\U0001000c\U00010027\U0001003b\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f\U0001019d-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e\U000103c4-\U000103c7\U000103d6-\U000103ff\U0001049e-\U0001049f\U000104aa-\U000104af\U000104d4-\U000104d7\U000104fc-\U000104ff\U00010528-\U0001052f\U00010564-\U0001056e\U0001057b\U0001058b\U00010593\U00010596\U000105a2\U000105b2\U000105ba\U000105bd-\U000105bf\U000105f4-\U000105ff\U00010737-\U0001073f\U00010756-\U0001075f\U00010768-\U0001077f\U00010786\U000107b1\U000107bb-\U000107ff\U00010806-\U00010807\U00010809\U00010836\U00010839-\U0001083b\U0001083d-\U0001083e\U00010856\U0001089f-\U000108a6\U000108b0-\U000108df\U000108f3\U000108f6-\U000108fa\U0001091c-\U0001091e\U0001093a-\U0001093e\U0001095a-\U0001097f\U000109b8-\U000109bb\U000109d0-\U000109d1\U00010a04\U00010a07-\U00010a0b\U00010a14\U00010a18\U00010a36-\U00010a37\U00010a3b-\U00010a3e\U00010a49-\U00010a4f\U00010a59-\U00010a5f\U00010aa0-\U00010abf\U00010ae7-\U00010aea\U00010af7-\U00010aff\U00010b36-\U00010b38\U00010b56-\U00010b57\U00010b73-\U00010b77\U00010b92-\U00010b98\U00010b9d-\U00010ba8\U00010bb0-\U00010bff\U00010c49-\U00010c7f\U00010cb3-\U00010cbf\U00010cf3-\U00010cf9\U00010d28-\U00010d2f\U00010d3a-\U00010d3f\U00010d66-\U00010d68\U00010d86-\U00010d8d\U00010d90-\U00010e5f\U00010e7f\U00010eaa\U00010eae-\U00010eaf\U00010eb2-\U00010ec1\U00010ec8-\U00010ecf\U00010ed9-\U00010ef9\Line truncated
|
||||
Co = [\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd];
|
||||
Cs = [\ud800-\udfff];
|
||||
L = [\x41-\x5a\x61-\x7a\xaa-\xaa\xb5-\xb5\xba-\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec-\u02ec\u02ee-\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f-\u037f\u0386-\u0386\u0388-\u038a\u038c-\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559-\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5-\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff-\u06ff\u0710-\u0710\u0712-\u072f\u074d-\u07a5\u07b1-\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa-\u07fa\u0800-\u0815\u081a-\u081a\u0824-\u0824\u0828-\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d-\u093d\u0950-\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2-\u09b2\u09b6-\u09b9\u09bd-\u09bd\u09ce-\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc-\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e-\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd-\u0abd\u0ad0-\u0ad0\u0ae0-\u0ae1\u0af9-\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d-\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71-\u0b71\u0b83-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c-\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0-\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80-\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cbd\u0cde-\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d3d\u0d4e-\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd-\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84-\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5-\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd-\u0ebd\u0ec0-\u0ec4\u0ec6-\u0ec6\u0edc-\u0edf\u0f00-\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f-\u103f\u1050-\u1055\u105a-\u105d\u1061-\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e-\u108e\u10a0-\u10c5\u10c7-\u10c7\u10cd-\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258-\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0-\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7-\u17d7\u17dc-\u17dc\u1820-\u1878\u1880-\u1884\u1887-\u18a8\u18aa-\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7-\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa-\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59-\u1f59\u1f5b-\u1f5b\u1f5d-\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe-\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071-\u2071\u207f-\u207f\u2090-\u209c\u2102-\u2102\u2107-\u2107\u210a-\u2113\u2115-\u2115\u2119-\u211d\u2124-\u2124\u2126-\u2126\u2128-\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e-\u214e\u2183-\u2184\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27-\u2d27\u2d2d-\u2d2d\u2d30-\u2d67\u2d6f-\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f-\u2e2f\u3005-\u3006\u3031-\u3035\u303b-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6e5\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb-\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf-\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a-\uaa7a\uaa7e-\uaaaf\uaab1-\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0-\uaac0\uaac2-\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e-\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003dLine truncated
|
||||
L_ = [\x41-\x5a\x61-\x7a\xb5-\xb5\xc0-\xd6\xd8-\xf6\xf8-\u01ba\u01bc-\u01bf\u01c4-\u0293\u0295-\u02af\u0370-\u0373\u0376-\u0377\u037b-\u037d\u037f-\u037f\u0386-\u0386\u0388-\u038a\u038c-\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0560-\u0588\u10a0-\u10c5\u10c7-\u10c7\u10cd-\u10cd\u10d0-\u10fa\u10fd-\u10ff\u13a0-\u13f5\u13f8-\u13fd\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59-\u1f59\u1f5b-\u1f5b\u1f5d-\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe-\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2102-\u2102\u2107-\u2107\u210a-\u2113\u2115-\u2115\u2119-\u211d\u2124-\u2124\u2126-\u2126\u2128-\u2128\u212a-\u212d\u212f-\u2134\u2139-\u2139\u213c-\u213f\u2145-\u2149\u214e-\u214e\u2183-\u2184\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2c7b\u2c7e-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27-\u2d27\u2d2d-\u2d2d\ua640-\ua66d\ua680-\ua69b\ua722-\ua76f\ua771-\ua787\ua78b-\ua78e\ua790-\ua7bf\ua7c2-\ua7c6\ua7fa-\ua7fa\uab30-\uab5a\uab60-\uab67\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a\U00010400-\U0001044f\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U000118a0-\U000118df\U00016e40-\U00016e7f\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2-\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb-\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546-\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001e900-\U0001e943];
|
||||
Ll = [\x61-\x7a\xb5-\xb5\xdf-\xf6\xf8-\u00ff\u0101-\u0101\u0103-\u0103\u0105-\u0105\u0107-\u0107\u0109-\u0109\u010b-\u010b\u010d-\u010d\u010f-\u010f\u0111-\u0111\u0113-\u0113\u0115-\u0115\u0117-\u0117\u0119-\u0119\u011b-\u011b\u011d-\u011d\u011f-\u011f\u0121-\u0121\u0123-\u0123\u0125-\u0125\u0127-\u0127\u0129-\u0129\u012b-\u012b\u012d-\u012d\u012f-\u012f\u0131-\u0131\u0133-\u0133\u0135-\u0135\u0137-\u0138\u013a-\u013a\u013c-\u013c\u013e-\u013e\u0140-\u0140\u0142-\u0142\u0144-\u0144\u0146-\u0146\u0148-\u0149\u014b-\u014b\u014d-\u014d\u014f-\u014f\u0151-\u0151\u0153-\u0153\u0155-\u0155\u0157-\u0157\u0159-\u0159\u015b-\u015b\u015d-\u015d\u015f-\u015f\u0161-\u0161\u0163-\u0163\u0165-\u0165\u0167-\u0167\u0169-\u0169\u016b-\u016b\u016d-\u016d\u016f-\u016f\u0171-\u0171\u0173-\u0173\u0175-\u0175\u0177-\u0177\u017a-\u017a\u017c-\u017c\u017e-\u0180\u0183-\u0183\u0185-\u0185\u0188-\u0188\u018c-\u018d\u0192-\u0192\u0195-\u0195\u0199-\u019b\u019e-\u019e\u01a1-\u01a1\u01a3-\u01a3\u01a5-\u01a5\u01a8-\u01a8\u01aa-\u01ab\u01ad-\u01ad\u01b0-\u01b0\u01b4-\u01b4\u01b6-\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6-\u01c6\u01c9-\u01c9\u01cc-\u01cc\u01ce-\u01ce\u01d0-\u01d0\u01d2-\u01d2\u01d4-\u01d4\u01d6-\u01d6\u01d8-\u01d8\u01da-\u01da\u01dc-\u01dd\u01df-\u01df\u01e1-\u01e1\u01e3-\u01e3\u01e5-\u01e5\u01e7-\u01e7\u01e9-\u01e9\u01eb-\u01eb\u01ed-\u01ed\u01ef-\u01f0\u01f3-\u01f3\u01f5-\u01f5\u01f9-\u01f9\u01fb-\u01fb\u01fd-\u01fd\u01ff-\u01ff\u0201-\u0201\u0203-\u0203\u0205-\u0205\u0207-\u0207\u0209-\u0209\u020b-\u020b\u020d-\u020d\u020f-\u020f\u0211-\u0211\u0213-\u0213\u0215-\u0215\u0217-\u0217\u0219-\u0219\u021b-\u021b\u021d-\u021d\u021f-\u021f\u0221-\u0221\u0223-\u0223\u0225-\u0225\u0227-\u0227\u0229-\u0229\u022b-\u022b\u022d-\u022d\u022f-\u022f\u0231-\u0231\u0233-\u0239\u023c-\u023c\u023f-\u0240\u0242-\u0242\u0247-\u0247\u0249-\u0249\u024b-\u024b\u024d-\u024d\u024f-\u0293\u0295-\u02af\u0371-\u0371\u0373-\u0373\u0377-\u0377\u037b-\u037d\u0390-\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9-\u03d9\u03db-\u03db\u03dd-\u03dd\u03df-\u03df\u03e1-\u03e1\u03e3-\u03e3\u03e5-\u03e5\u03e7-\u03e7\u03e9-\u03e9\u03eb-\u03eb\u03ed-\u03ed\u03ef-\u03f3\u03f5-\u03f5\u03f8-\u03f8\u03fb-\u03fc\u0430-\u045f\u0461-\u0461\u0463-\u0463\u0465-\u0465\u0467-\u0467\u0469-\u0469\u046b-\u046b\u046d-\u046d\u046f-\u046f\u0471-\u0471\u0473-\u0473\u0475-\u0475\u0477-\u0477\u0479-\u0479\u047b-\u047b\u047d-\u047d\u047f-\u047f\u0481-\u0481\u048b-\u048b\u048d-\u048d\u048f-\u048f\u0491-\u0491\u0493-\u0493\u0495-\u0495\u0497-\u0497\u0499-\u0499\u049b-\u049b\u049d-\u049d\u049f-\u049f\u04a1-\u04a1\u04a3-\u04a3\u04a5-\u04a5\u04a7-\u04a7\u04a9-\u04a9\u04ab-\u04ab\u04ad-\u04ad\u04af-\u04af\u04b1-\u04b1\u04b3-\u04b3\u04b5-\u04b5\u04b7-\u04b7\u04b9-\u04b9\u04bb-\u04bb\u04bd-\u04bd\u04bf-\u04bf\u04c2-\u04c2\u04c4-\u04c4\u04c6-\u04c6\u04c8-\u04c8\u04ca-\u04ca\u04cc-\u04cc\u04ce-\u04cf\u04d1-\u04d1\u04d3-\u04d3\u04d5-\u04d5\u04d7-\u04d7\u04d9-\u04d9\u04db-\u04db\u04dd-\u04dd\u04df-\u04df\u04e1-\u04e1\u04e3-\u04e3\u04e5-\u04e5\u04e7-\u04e7\u04e9-\u04e9\u04eb-\u04eb\u04ed-\u04ed\u04ef-\u04ef\u04f1-\u04f1\u04f3-\u04f3\u04f5-\u04f5\u04f7-\u04f7\u04f9-\u04f9\u04fb-\u04fb\u04fd-\u04fd\u04ff-\u04ff\u0501-\u0501\u0503-\u0503\u0505-\u0505\u0507-\u0507\u0509-\u0509\u050b-\u050b\u050d-\u050d\u050f-\u050f\u0511-\u0511\u0513-\u0513\u0515-\u0515\u0517-\u0517\u0519-\u0519\u051b-\u051b\u051d-\u051d\u051f-\u051f\u0521-\u0521\u0523-\u0523\u0525-\u0525\u0527-\u0527\u0529-\u0529\u052b-\u052b\u052d-\u052d\u052f-\u052f\u0560-\u0588\u10d0-\u10fa\u10fd-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01-\u1e01\u1e03-\u1e03\u1e05-\u1e05\u1e07-\u1e07\u1e09-\u1e09\u1e0b-\u1e0b\u1e0d-\u1e0d\u1e0f-\u1e0f\u1e11-\u1e11\u1e13-\u1e13\u1e15-\u1e15\u1e17-\u1e17\u1e19-\u1e19\u1e1b-\u1e1b\u1e1d-\u1e1d\u1e1f-\u1e1f\u1e21-\u1e21\u1e23-\u1e23\u1e25-\u1e25\u1e27-\u1e27\u1e29-\u1e29\u1e2b-\u1e2b\u1e2d-\u1e2d\u1e2f-\u1e2f\u1e31-\u1e31\u1e33-\u1e33\u1e35-\u1e35\u1e37-\u1e37\u1e39-\u1e39\u1e3b-\u1e3b\u1e3d-\u1e3d\u1e3f-\u1e3f\u1e41-\u1e41\u1e43-\u1e43\u1e45-\u1e45\u1e47-\u1e47\u1e49-\u1e49\u1e4b-\u1e4b\u1e4d-\u1e4d\u1e4f-\u1e4f\u1e51-\u1e51\u1e53-\u1e53\u1e55-\u1e55\u1e57-\u1e57\u1e59-\u1e59\u1e5b-\u1e5b\u1e5d-\u1e5d\u1e5f-\u1e5f\u1e61-\u1e61\u1e63-\u1e63\u1e65-\u1e65\u1e67-\u1e67\u1e69-\u1e69\u1e6b-\u1e6b\u1e6d-\u1e6d\u1e6f-\u1e6f\u1e71-\u1e71\u1e73-\u1e73\u1e75-\u1e75\u1e77-\u1e77\u1e79-\u1e79\u1e7b-\u1e7b\u1e7d-\u1e7d\u1e7f-\u1e7f\u1e81-\u1e81\u1e83-\u1e83\u1e85-\u1e85\u1e87-\u1e87\u1e89-\u1e89\u1e8b-\u1e8b\u1e8d-\u1e8d\u1e8f-\u1e8f\u1e91-\u1e91\u1e93-\u1e93\u1e95-\u1e9d\u1e9f-\u1e9f\u1ea1-\u1ea1\u1ea3-\u1ea3\u1ea5-\u1ea5\u1ea7-\u1ea7\u1ea9-\u1ea9\u1eab-\u1eab\u1ead-\u1ead\u1eaf-\u1eaf\u1eb1-\u1eb1\u1eb3-\u1eb3\u1eb5-\u1eb5\u1eb7-\u1eb7\u1eb9-\u1eb9\u1ebb-\u1ebb\u1ebd-\u1ebd\u1ebf-\u1ebf\u1ec1-\u1ec1\u1ec3-\u1ec3\u1ec5-\u1ec5\u1ec7-\u1ec7\u1ec9-\u1ec9\u1ecb-\u1ecb\u1ecd-\u1ecd\u1ecf-\u1ecf\u1ed1-\u1ed1\u1ed3-\u1ed3\u1ed5-\u1ed5\u1ed7-\u1ed7\u1ed9-\u1ed9\u1edb-\u1edb\u1edd-\u1edd\u1edf-\u1edf\uLine truncated
|
||||
Lm = [\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec-\u02ec\u02ee-\u02ee\u0374-\u0374\u037a-\u037a\u0559-\u0559\u0640-\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa-\u07fa\u081a-\u081a\u0824-\u0824\u0828-\u0828\u0971-\u0971\u0e46-\u0e46\u0ec6-\u0ec6\u10fc-\u10fc\u17d7-\u17d7\u1843-\u1843\u1aa7-\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78-\u1d78\u1d9b-\u1dbf\u2071-\u2071\u207f-\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f-\u2d6f\u2e2f-\u2e2f\u3005-\u3005\u3031-\u3035\u303b-\u303b\u309d-\u309e\u30fc-\u30fe\ua015-\ua015\ua4f8-\ua4fd\ua60c-\ua60c\ua67f-\ua67f\ua69c-\ua69d\ua717-\ua71f\ua770-\ua770\ua788-\ua788\ua7f8-\ua7f9\ua9cf-\ua9cf\ua9e6-\ua9e6\uaa70-\uaa70\uaadd-\uaadd\uaaf3-\uaaf4\uab5c-\uab5f\uff70-\uff70\uff9e-\uff9f\U00016b40-\U00016b43\U00016f93-\U00016f9f\U00016fe0-\U00016fe1\U00016fe3-\U00016fe3\U0001e137-\U0001e13d\U0001e94b-\U0001e94b];
|
||||
Lo = [\xaa-\xaa\xba-\xba\u01bb-\u01bb\u01c0-\u01c3\u0294-\u0294\u05d0-\u05ea\u05ef-\u05f2\u0620-\u063f\u0641-\u064a\u066e-\u066f\u0671-\u06d3\u06d5-\u06d5\u06ee-\u06ef\u06fa-\u06fc\u06ff-\u06ff\u0710-\u0710\u0712-\u072f\u074d-\u07a5\u07b1-\u07b1\u07ca-\u07ea\u0800-\u0815\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d-\u093d\u0950-\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2-\u09b2\u09b6-\u09b9\u09bd-\u09bd\u09ce-\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc-\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e-\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd-\u0abd\u0ad0-\u0ad0\u0ae0-\u0ae1\u0af9-\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d-\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71-\u0b71\u0b83-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c-\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0-\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80-\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cbd\u0cde-\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d3d\u0d4e-\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd-\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84-\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5-\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd-\u0ebd\u0ec0-\u0ec4\u0edc-\u0edf\u0f00-\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f-\u103f\u1050-\u1055\u105a-\u105d\u1061-\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e-\u108e\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258-\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0-\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc-\u17dc\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18a8\u18aa-\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c77\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa-\u1cfa\u2135-\u2138\u2d30-\u2d67\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006-\u3006\u303c-\u303c\u3041-\u3096\u309f-\u309f\u30a1-\u30fa\u30ff-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua014\ua016-\ua48c\ua4d0-\ua4f7\ua500-\ua60b\ua610-\ua61f\ua62a-\ua62b\ua66e-\ua66e\ua6a0-\ua6e5\ua78f-\ua78f\ua7f7-\ua7f7\ua7fb-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb-\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa6f\uaa71-\uaa76\uaa7a-\uaa7a\uaa7e-\uaaaf\uaab1-\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0-\uaac0\uaac2-\uaac2\uaadb-\uaadc\uaae0-\uaaea\uaaf2-\uaaf2\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb1d-\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e-\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U00010450-\U0001049d\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808-\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c-\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00-\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27-\U00010f27\U00010f30-\U00010f45\U00010fe0-\U00010ff6\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144-\ULine truncated
|
||||
Lt = [\u01c5-\u01c5\u01c8-\u01c8\u01cb-\u01cb\u01f2-\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc-\u1fbc\u1fcc-\u1fcc\u1ffc-\u1ffc];
|
||||
Lu = [\x41-\x5a\xc0-\xd6\xd8-\xde\u0100-\u0100\u0102-\u0102\u0104-\u0104\u0106-\u0106\u0108-\u0108\u010a-\u010a\u010c-\u010c\u010e-\u010e\u0110-\u0110\u0112-\u0112\u0114-\u0114\u0116-\u0116\u0118-\u0118\u011a-\u011a\u011c-\u011c\u011e-\u011e\u0120-\u0120\u0122-\u0122\u0124-\u0124\u0126-\u0126\u0128-\u0128\u012a-\u012a\u012c-\u012c\u012e-\u012e\u0130-\u0130\u0132-\u0132\u0134-\u0134\u0136-\u0136\u0139-\u0139\u013b-\u013b\u013d-\u013d\u013f-\u013f\u0141-\u0141\u0143-\u0143\u0145-\u0145\u0147-\u0147\u014a-\u014a\u014c-\u014c\u014e-\u014e\u0150-\u0150\u0152-\u0152\u0154-\u0154\u0156-\u0156\u0158-\u0158\u015a-\u015a\u015c-\u015c\u015e-\u015e\u0160-\u0160\u0162-\u0162\u0164-\u0164\u0166-\u0166\u0168-\u0168\u016a-\u016a\u016c-\u016c\u016e-\u016e\u0170-\u0170\u0172-\u0172\u0174-\u0174\u0176-\u0176\u0178-\u0179\u017b-\u017b\u017d-\u017d\u0181-\u0182\u0184-\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2-\u01a2\u01a4-\u01a4\u01a6-\u01a7\u01a9-\u01a9\u01ac-\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5-\u01b5\u01b7-\u01b8\u01bc-\u01bc\u01c4-\u01c4\u01c7-\u01c7\u01ca-\u01ca\u01cd-\u01cd\u01cf-\u01cf\u01d1-\u01d1\u01d3-\u01d3\u01d5-\u01d5\u01d7-\u01d7\u01d9-\u01d9\u01db-\u01db\u01de-\u01de\u01e0-\u01e0\u01e2-\u01e2\u01e4-\u01e4\u01e6-\u01e6\u01e8-\u01e8\u01ea-\u01ea\u01ec-\u01ec\u01ee-\u01ee\u01f1-\u01f1\u01f4-\u01f4\u01f6-\u01f8\u01fa-\u01fa\u01fc-\u01fc\u01fe-\u01fe\u0200-\u0200\u0202-\u0202\u0204-\u0204\u0206-\u0206\u0208-\u0208\u020a-\u020a\u020c-\u020c\u020e-\u020e\u0210-\u0210\u0212-\u0212\u0214-\u0214\u0216-\u0216\u0218-\u0218\u021a-\u021a\u021c-\u021c\u021e-\u021e\u0220-\u0220\u0222-\u0222\u0224-\u0224\u0226-\u0226\u0228-\u0228\u022a-\u022a\u022c-\u022c\u022e-\u022e\u0230-\u0230\u0232-\u0232\u023a-\u023b\u023d-\u023e\u0241-\u0241\u0243-\u0246\u0248-\u0248\u024a-\u024a\u024c-\u024c\u024e-\u024e\u0370-\u0370\u0372-\u0372\u0376-\u0376\u037f-\u037f\u0386-\u0386\u0388-\u038a\u038c-\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf-\u03cf\u03d2-\u03d4\u03d8-\u03d8\u03da-\u03da\u03dc-\u03dc\u03de-\u03de\u03e0-\u03e0\u03e2-\u03e2\u03e4-\u03e4\u03e6-\u03e6\u03e8-\u03e8\u03ea-\u03ea\u03ec-\u03ec\u03ee-\u03ee\u03f4-\u03f4\u03f7-\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460-\u0460\u0462-\u0462\u0464-\u0464\u0466-\u0466\u0468-\u0468\u046a-\u046a\u046c-\u046c\u046e-\u046e\u0470-\u0470\u0472-\u0472\u0474-\u0474\u0476-\u0476\u0478-\u0478\u047a-\u047a\u047c-\u047c\u047e-\u047e\u0480-\u0480\u048a-\u048a\u048c-\u048c\u048e-\u048e\u0490-\u0490\u0492-\u0492\u0494-\u0494\u0496-\u0496\u0498-\u0498\u049a-\u049a\u049c-\u049c\u049e-\u049e\u04a0-\u04a0\u04a2-\u04a2\u04a4-\u04a4\u04a6-\u04a6\u04a8-\u04a8\u04aa-\u04aa\u04ac-\u04ac\u04ae-\u04ae\u04b0-\u04b0\u04b2-\u04b2\u04b4-\u04b4\u04b6-\u04b6\u04b8-\u04b8\u04ba-\u04ba\u04bc-\u04bc\u04be-\u04be\u04c0-\u04c1\u04c3-\u04c3\u04c5-\u04c5\u04c7-\u04c7\u04c9-\u04c9\u04cb-\u04cb\u04cd-\u04cd\u04d0-\u04d0\u04d2-\u04d2\u04d4-\u04d4\u04d6-\u04d6\u04d8-\u04d8\u04da-\u04da\u04dc-\u04dc\u04de-\u04de\u04e0-\u04e0\u04e2-\u04e2\u04e4-\u04e4\u04e6-\u04e6\u04e8-\u04e8\u04ea-\u04ea\u04ec-\u04ec\u04ee-\u04ee\u04f0-\u04f0\u04f2-\u04f2\u04f4-\u04f4\u04f6-\u04f6\u04f8-\u04f8\u04fa-\u04fa\u04fc-\u04fc\u04fe-\u04fe\u0500-\u0500\u0502-\u0502\u0504-\u0504\u0506-\u0506\u0508-\u0508\u050a-\u050a\u050c-\u050c\u050e-\u050e\u0510-\u0510\u0512-\u0512\u0514-\u0514\u0516-\u0516\u0518-\u0518\u051a-\u051a\u051c-\u051c\u051e-\u051e\u0520-\u0520\u0522-\u0522\u0524-\u0524\u0526-\u0526\u0528-\u0528\u052a-\u052a\u052c-\u052c\u052e-\u052e\u0531-\u0556\u10a0-\u10c5\u10c7-\u10c7\u10cd-\u10cd\u13a0-\u13f5\u1c90-\u1cba\u1cbd-\u1cbf\u1e00-\u1e00\u1e02-\u1e02\u1e04-\u1e04\u1e06-\u1e06\u1e08-\u1e08\u1e0a-\u1e0a\u1e0c-\u1e0c\u1e0e-\u1e0e\u1e10-\u1e10\u1e12-\u1e12\u1e14-\u1e14\u1e16-\u1e16\u1e18-\u1e18\u1e1a-\u1e1a\u1e1c-\u1e1c\u1e1e-\u1e1e\u1e20-\u1e20\u1e22-\u1e22\u1e24-\u1e24\u1e26-\u1e26\u1e28-\u1e28\u1e2a-\u1e2a\u1e2c-\u1e2c\u1e2e-\u1e2e\u1e30-\u1e30\u1e32-\u1e32\u1e34-\u1e34\u1e36-\u1e36\u1e38-\u1e38\u1e3a-\u1e3a\u1e3c-\u1e3c\u1e3e-\u1e3e\u1e40-\u1e40\u1e42-\u1e42\u1e44-\u1e44\u1e46-\u1e46\u1e48-\u1e48\u1e4a-\u1e4a\u1e4c-\u1e4c\u1e4e-\u1e4e\u1e50-\u1e50\u1e52-\u1e52\u1e54-\u1e54\u1e56-\u1e56\u1e58-\u1e58\u1e5a-\u1e5a\u1e5c-\u1e5c\u1e5e-\u1e5e\u1e60-\u1e60\u1e62-\u1e62\u1e64-\u1e64\u1e66-\u1e66\u1e68-\u1e68\u1e6a-\u1e6a\u1e6c-\u1e6c\u1e6e-\u1e6e\u1e70-\u1e70\u1e72-\u1e72\u1e74-\u1e74\u1e76-\u1e76\u1e78-\u1e78\u1e7a-\u1e7a\u1e7c-\u1e7c\u1e7e-\u1e7e\u1e80-\u1e80\u1e82-\u1e82\u1e84-\u1e84\u1e86-\u1e86\u1e88-\u1e88\u1e8a-\u1e8a\u1e8c-\u1e8c\u1e8e-\u1e8e\u1e90-\u1e90\u1e92-\u1e92\u1e94-\u1e94\u1e9e-\u1e9e\u1ea0-\u1ea0\u1ea2-\u1ea2\u1ea4-\u1ea4\u1ea6-\u1ea6\u1ea8-\u1ea8\u1eaa-\u1eaa\u1eac-\u1eac\u1eae-\u1eae\u1eb0-\u1eb0\u1eb2-\u1eb2\u1eb4-\u1eb4\u1eb6-\u1eb6\u1eb8-\u1eb8\u1eba-\u1eba\u1ebc-\u1ebc\u1ebe-\u1ebe\u1ec0-\u1ec0\u1ec2-\u1ec2\u1ec4-\u1ec4\u1ec6-\u1ec6\u1ec8-\u1ec8\u1eca-\u1eca\u1ecc-\u1ecc\u1ece-\u1ece\u1ed0-\u1ed0\u1ed2-\u1ed2\u1ed4-\u1ed4\u1ed6-\u1ed6\u1ed8-\u1ed8\u1eda-\u1eda\u1edc-\u1edcLine truncated
|
||||
M = [\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf-\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7-\u05c7\u0610-\u061a\u064b-\u065f\u0670-\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711-\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd-\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0981-\u0983\u09bc-\u09bc\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7-\u09d7\u09e2-\u09e3\u09fe-\u09fe\u0a01-\u0a03\u0a3c-\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51-\u0a51\u0a70-\u0a71\u0a75-\u0a75\u0a81-\u0a83\u0abc-\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01-\u0b03\u0b3c-\u0b3c\u0b3e-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b62-\u0b63\u0b82-\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7-\u0bd7\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81-\u0c83\u0cbc-\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d00-\u0d03\u0d3b-\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57-\u0d57\u0d62-\u0d63\u0d82-\u0d83\u0dca-\u0dca\u0dcf-\u0dd4\u0dd6-\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e31-\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1-\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35-\u0f35\u0f37-\u0f37\u0f39-\u0f39\u0f3e-\u0f3f\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6-\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17d3\u17dd-\u17dd\u180b-\u180d\u1885-\u1886\u18a9-\u18a9\u1920-\u192b\u1930-\u193b\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a7f\u1ab0-\u1abe\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced-\u1ced\u1cf4-\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u20d0-\u20f0\u2cef-\u2cf1\u2d7f-\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099-\u309a\ua66f-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802-\ua802\ua806-\ua806\ua80b-\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c5\ua8e0-\ua8f1\ua8ff-\ua8ff\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9e5-\ua9e5\uaa29-\uaa36\uaa43-\uaa43\uaa4c-\uaa4d\uaa7b-\uaa7d\uaab0-\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1-\uaac1\uaaeb-\uaaef\uaaf5-\uaaf6\uabe3-\uabea\uabec-\uabed\ufb1e-\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd-\U000101fd\U000102e0-\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f-\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010f46-\U00010f50\U00011000-\U00011002\U00011038-\U00011046\U0001107f-\U00011082\U000110b0-\U000110ba\U00011100-\U00011102\U00011127-\U00011134\U00011145-\U00011146\U00011173-\U00011173\U00011180-\U00011182\U000111b3-\U000111c0\U000111c9-\U000111cc\U0001122c-\U00011237\U0001123e-\U0001123e\U000112df-\U000112ea\U00011300-\U00011303\U0001133b-\U0001133c\U0001133e-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357-\U00011357\U00011362-\U00011363\U00011366-\U0001136c\U00011370-\U00011374\U00011435-\U00011446\U0001145e-\U0001145e\U000114b0-\U000114c3\U000115af-\U000115b5\U000115b8-\U000115c0\U000115dc-\U000115dd\U00011630-\U00011640\U000116ab-\U000116b7\U0001171d-\U0001172b\U0001182c-\U0001183a\U000119d1-\U000119d7\U000119da-\U000119e0\U000119e4-\U000119e4\U00011a01-\U00011a0a\U00011a33-\U00011a39\U00011a3b-\U00011a3e\U00011a47-\U00011a47\U00011a51-\U00011a5b\U00011a8a-\U00011a99\U00011c2f-\U00011c36\U00011c38-\U00011c3f\U00011c92-\U00011ca7\U00011ca9-\U00011cb6\U00011d31-\U00011d36\U00011d3a-\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47-\U00011d47\U00011d8a-\U00011d8e\U00011d90-\U00011d91\U00011d93-\U00011d97\U00011ef3-\U00011ef6\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f4f-\U00016f4f\U00016f51-\U00016f87\U00016f8f-\U00016f92\U0001bc9d-\U0001bc9e\U0001d165-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75-\U0001da75\U0001da84-\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e130-\U0001e136\U0001e2ec-\U0001e2ef\U0001e8d0-\U0001e8d6\U0001e944-\U0001e94a\U000e0100-\U000e01ef];
|
||||
Mc = [\u0903-\u0903\u093b-\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7-\u09d7\u0a03-\u0a03\u0a3e-\u0a40\u0a83-\u0a83\u0abe-\u0ac0\u0ac9-\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e-\u0b3e\u0b40-\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57-\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7-\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe-\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57-\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f-\u0f7f\u102b-\u102c\u1031-\u1031\u1038-\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f-\u108f\u109a-\u109c\u17b6-\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u1a19-\u1a1a\u1a55-\u1a55\u1a57-\u1a57\u1a61-\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04-\u1b04\u1b35-\u1b35\u1b3b-\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82-\u1b82\u1ba1-\u1ba1\u1ba6-\u1ba7\u1baa-\u1baa\u1be7-\u1be7\u1bea-\u1bec\u1bee-\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1-\u1ce1\u1cf7-\u1cf7\u302e-\u302f\ua823-\ua824\ua827-\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983-\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9be-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d-\uaa4d\uaa7b-\uaa7b\uaa7d-\uaa7d\uaaeb-\uaaeb\uaaee-\uaaef\uaaf5-\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec-\uabec\U00011000-\U00011000\U00011002-\U00011002\U00011082-\U00011082\U000110b0-\U000110b2\U000110b7-\U000110b8\U0001112c-\U0001112c\U00011145-\U00011146\U00011182-\U00011182\U000111b3-\U000111b5\U000111bf-\U000111c0\U0001122c-\U0001122e\U00011232-\U00011233\U00011235-\U00011235\U000112e0-\U000112e2\U00011302-\U00011303\U0001133e-\U0001133f\U00011341-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357-\U00011357\U00011362-\U00011363\U00011435-\U00011437\U00011440-\U00011441\U00011445-\U00011445\U000114b0-\U000114b2\U000114b9-\U000114b9\U000114bb-\U000114be\U000114c1-\U000114c1\U000115af-\U000115b1\U000115b8-\U000115bb\U000115be-\U000115be\U00011630-\U00011632\U0001163b-\U0001163c\U0001163e-\U0001163e\U000116ac-\U000116ac\U000116ae-\U000116af\U000116b6-\U000116b6\U00011720-\U00011721\U00011726-\U00011726\U0001182c-\U0001182e\U00011838-\U00011838\U000119d1-\U000119d3\U000119dc-\U000119df\U000119e4-\U000119e4\U00011a39-\U00011a39\U00011a57-\U00011a58\U00011a97-\U00011a97\U00011c2f-\U00011c2f\U00011c3e-\U00011c3e\U00011ca9-\U00011ca9\U00011cb1-\U00011cb1\U00011cb4-\U00011cb4\U00011d8a-\U00011d8e\U00011d93-\U00011d94\U00011d96-\U00011d96\U00011ef5-\U00011ef6\U00016f51-\U00016f87\U0001d165-\U0001d166\U0001d16d-\U0001d172];
|
||||
Me = [\u0488-\u0489\u1abe-\u1abe\u20dd-\u20e0\u20e2-\u20e4\ua670-\ua672];
|
||||
Mn = [\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf-\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7-\u05c7\u0610-\u061a\u064b-\u065f\u0670-\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711-\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd-\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0902\u093a-\u093a\u093c-\u093c\u0941-\u0948\u094d-\u094d\u0951-\u0957\u0962-\u0963\u0981-\u0981\u09bc-\u09bc\u09c1-\u09c4\u09cd-\u09cd\u09e2-\u09e3\u09fe-\u09fe\u0a01-\u0a02\u0a3c-\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51-\u0a51\u0a70-\u0a71\u0a75-\u0a75\u0a81-\u0a82\u0abc-\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd-\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01-\u0b01\u0b3c-\u0b3c\u0b3f-\u0b3f\u0b41-\u0b44\u0b4d-\u0b4d\u0b56-\u0b56\u0b62-\u0b63\u0b82-\u0b82\u0bc0-\u0bc0\u0bcd-\u0bcd\u0c00-\u0c00\u0c04-\u0c04\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81-\u0c81\u0cbc-\u0cbc\u0cbf-\u0cbf\u0cc6-\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d41-\u0d44\u0d4d-\u0d4d\u0d62-\u0d63\u0dca-\u0dca\u0dd2-\u0dd4\u0dd6-\u0dd6\u0e31-\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1-\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35-\u0f35\u0f37-\u0f37\u0f39-\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6-\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082-\u1082\u1085-\u1086\u108d-\u108d\u109d-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6-\u17c6\u17c9-\u17d3\u17dd-\u17dd\u180b-\u180d\u1885-\u1886\u18a9-\u18a9\u1920-\u1922\u1927-\u1928\u1932-\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b-\u1a1b\u1a56-\u1a56\u1a58-\u1a5e\u1a60-\u1a60\u1a62-\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f-\u1a7f\u1ab0-\u1abd\u1b00-\u1b03\u1b34-\u1b34\u1b36-\u1b3a\u1b3c-\u1b3c\u1b42-\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6-\u1be6\u1be8-\u1be9\u1bed-\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced-\u1ced\u1cf4-\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u20d0-\u20dc\u20e1-\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f-\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f-\ua66f\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802-\ua802\ua806-\ua806\ua80b-\ua80b\ua825-\ua826\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff-\ua8ff\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3-\ua9b3\ua9b6-\ua9b9\ua9bc-\ua9bd\ua9e5-\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43-\uaa43\uaa4c-\uaa4c\uaa7c-\uaa7c\uaab0-\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1-\uaac1\uaaec-\uaaed\uaaf6-\uaaf6\uabe5-\uabe5\uabe8-\uabe8\uabed-\uabed\ufb1e-\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd-\U000101fd\U000102e0-\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f-\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010f46-\U00010f50\U00011001-\U00011001\U00011038-\U00011046\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173-\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c9-\U000111cc\U0001122f-\U00011231\U00011234-\U00011234\U00011236-\U00011237\U0001123e-\U0001123e\U000112df-\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U00011340-\U00011340\U00011366-\U0001136c\U00011370-\U00011374\U00011438-\U0001143f\U00011442-\U00011444\U00011446-\U00011446\U0001145e-\U0001145e\U000114b3-\U000114b8\U000114ba-\U000114ba\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d-\U0001163d\U0001163f-\U00011640\U000116ab-\U000116ab\U000116ad-\U000116ad\U000116b0-\U000116b5\U000116b7-\U000116b7\U0001171d-\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U000119d4-\U000119d7\U000119da-\U000119db\U000119e0-\U000119e0\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47-\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f-\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a-\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47-\U00011d47\U00011d90-\U00011d91\U00011d95-\U00011d95\U00011d97-\U00011d97\U00011ef3-\U00011ef4\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f4f-\U00016f4f\U00016f8f-\U00016f92\U0001bc9d-\U0001bc9e\U0001d167-\U0001d169\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75-\U0001da75\U0001da84-\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e130-\U0001e136\U0001e2ec-\U0001e2ef\U0001e8d0-\U0001e8d6\U0001e944-\ULine truncated
|
||||
N = [\x30-\x39\xb2-\xb3\xb9-\xb9\xbc-\xbe\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u09f4-\u09f9\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0b72-\u0b77\u0be6-\u0bf2\u0c66-\u0c6f\u0c78-\u0c7e\u0ce6-\u0cef\u0d58-\u0d5e\u0d66-\u0d78\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f33\u1040-\u1049\u1090-\u1099\u1369-\u137c\u16ee-\u16f0\u17e0-\u17e9\u17f0-\u17f9\u1810-\u1819\u1946-\u194f\u19d0-\u19da\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\u2070-\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd-\u2cfd\u3007-\u3007\u3021-\u3029\u3038-\u303a\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua620-\ua629\ua6e6-\ua6ef\ua830-\ua835\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U00010107-\U00010133\U00010140-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010341-\U00010341\U0001034a-\U0001034a\U000103d1-\U000103d5\U000104a0-\U000104a9\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010d30-\U00010d39\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00011052-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000111e1-\U000111f4\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U00011730-\U0001173b\U000118e0-\U000118f2\U00011c50-\U00011c6c\U00011d50-\U00011d59\U00011da0-\U00011da9\U00011fc0-\U00011fd4\U00012400-\U0001246e\U00016a60-\U00016a69\U00016b50-\U00016b59\U00016b5b-\U00016b61\U00016e80-\U00016e96\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001d7ce-\U0001d7ff\U0001e140-\U0001e149\U0001e2f0-\U0001e2f9\U0001e8c7-\U0001e8cf\U0001e950-\U0001e959\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001ed01-\U0001ed2d\U0001ed2f-\U0001ed3d\U0001f100-\U0001f10c];
|
||||
Nd = [\x30-\x39\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U000104a0-\U000104a9\U00010d30-\U00010d39\U00011066-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U00011730-\U00011739\U000118e0-\U000118e9\U00011c50-\U00011c59\U00011d50-\U00011d59\U00011da0-\U00011da9\U00016a60-\U00016a69\U00016b50-\U00016b59\U0001d7ce-\U0001d7ff\U0001e140-\U0001e149\U0001e2f0-\U0001e2f9\U0001e950-\U0001e959];
|
||||
Nl = [\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007-\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef\U00010140-\U00010174\U00010341-\U00010341\U0001034a-\U0001034a\U000103d1-\U000103d5\U00012400-\U0001246e];
|
||||
No = [\xb2-\xb3\xb9-\xb9\xbc-\xbe\u09f4-\u09f9\u0b72-\u0b77\u0bf0-\u0bf2\u0c78-\u0c7e\u0d58-\u0d5e\u0d70-\u0d78\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u19da-\u19da\u2070-\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215f\u2189-\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd-\u2cfd\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua830-\ua835\U00010107-\U00010133\U00010175-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00011052-\U00011065\U000111e1-\U000111f4\U0001173a-\U0001173b\U000118ea-\U000118f2\U00011c5a-\U00011c6c\U00011fc0-\U00011fd4\U00016b5b-\U00016b61\U00016e80-\U00016e96\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001e8c7-\U0001e8cf\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001ed01-\U0001ed2d\U0001ed2f-\U0001ed3d\U0001f100-\U0001f10c];
|
||||
P = [\x21-\x23\x25-\x2a\x2c-\x2f\x3a-\x3b\x3f-\x40\x5b-\x5d\x5f-\x5f\x7b-\x7b\x7d-\x7d\xa1-\xa1\xa7-\xa7\xab-\xab\xb6-\xb7\xbb-\xbb\xbf-\xbf\u037e-\u037e\u0387-\u0387\u055a-\u055f\u0589-\u058a\u05be-\u05be\u05c0-\u05c0\u05c3-\u05c3\u05c6-\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b-\u061b\u061e-\u061f\u066a-\u066d\u06d4-\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e-\u085e\u0964-\u0965\u0970-\u0970\u09fd-\u09fd\u0a76-\u0a76\u0af0-\u0af0\u0c77-\u0c77\u0c84-\u0c84\u0df4-\u0df4\u0e4f-\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f14-\u0f14\u0f3a-\u0f3d\u0f85-\u0f85\u0fd0-\u0fd4\u0fd9-\u0fda\u104a-\u104f\u10fb-\u10fb\u1360-\u1368\u1400-\u1400\u166e-\u166e\u169b-\u169c\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944-\u1945\u1a1e-\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e-\u1c7f\u1cc0-\u1cc7\u1cd3-\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d-\u207e\u208d-\u208e\u2308-\u230b\u2329-\u232a\u2768-\u2775\u27c5-\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc-\u29fd\u2cf9-\u2cfc\u2cfe-\u2cff\u2d70-\u2d70\u2e00-\u2e2e\u2e30-\u2e4f\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030-\u3030\u303d-\u303d\u30a0-\u30a0\u30fb-\u30fb\ua4fe-\ua4ff\ua60d-\ua60f\ua673-\ua673\ua67e-\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce-\ua8cf\ua8f8-\ua8fa\ua8fc-\ua8fc\ua92e-\ua92f\ua95f-\ua95f\ua9c1-\ua9cd\ua9de-\ua9df\uaa5c-\uaa5f\uaade-\uaadf\uaaf0-\uaaf1\uabeb-\uabeb\ufd3e-\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63-\ufe63\ufe68-\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3b-\uff3d\uff3f-\uff3f\uff5b-\uff5b\uff5d-\uff5d\uff5f-\uff65\U00010100-\U00010102\U0001039f-\U0001039f\U000103d0-\U000103d0\U0001056f-\U0001056f\U00010857-\U00010857\U0001091f-\U0001091f\U0001093f-\U0001093f\U00010a50-\U00010a58\U00010a7f-\U00010a7f\U00010af0-\U00010af6\U00010b39-\U00010b3f\U00010b99-\U00010b9c\U00010f55-\U00010f59\U00011047-\U0001104d\U000110bb-\U000110bc\U000110be-\U000110c1\U00011140-\U00011143\U00011174-\U00011175\U000111c5-\U000111c8\U000111cd-\U000111cd\U000111db-\U000111db\U000111dd-\U000111df\U00011238-\U0001123d\U000112a9-\U000112a9\U0001144b-\U0001144f\U0001145b-\U0001145b\U0001145d-\U0001145d\U000114c6-\U000114c6\U000115c1-\U000115d7\U00011641-\U00011643\U00011660-\U0001166c\U0001173c-\U0001173e\U0001183b-\U0001183b\U000119e2-\U000119e2\U00011a3f-\U00011a46\U00011a9a-\U00011a9c\U00011a9e-\U00011aa2\U00011c41-\U00011c45\U00011c70-\U00011c71\U00011ef7-\U00011ef8\U00011fff-\U00011fff\U00012470-\U00012474\U00016a6e-\U00016a6f\U00016af5-\U00016af5\U00016b37-\U00016b3b\U00016b44-\U00016b44\U00016e97-\U00016e9a\U00016fe2-\U00016fe2\U0001bc9f-\U0001bc9f\U0001da87-\U0001da8b\U0001e95e-\U0001e95f];
|
||||
Pc = [\x5f-\x5f\u203f-\u2040\u2054-\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f-\uff3f];
|
||||
Pd = [\x2d-\x2d\u058a-\u058a\u05be-\u05be\u1400-\u1400\u1806-\u1806\u2010-\u2015\u2e17-\u2e17\u2e1a-\u2e1a\u2e3a-\u2e3b\u2e40-\u2e40\u301c-\u301c\u3030-\u3030\u30a0-\u30a0\ufe31-\ufe32\ufe58-\ufe58\ufe63-\ufe63\uff0d-\uff0d];
|
||||
Pe = [\x29-\x29\x5d-\x5d\x7d-\x7d\u0f3b-\u0f3b\u0f3d-\u0f3d\u169c-\u169c\u2046-\u2046\u207e-\u207e\u208e-\u208e\u2309-\u2309\u230b-\u230b\u232a-\u232a\u2769-\u2769\u276b-\u276b\u276d-\u276d\u276f-\u276f\u2771-\u2771\u2773-\u2773\u2775-\u2775\u27c6-\u27c6\u27e7-\u27e7\u27e9-\u27e9\u27eb-\u27eb\u27ed-\u27ed\u27ef-\u27ef\u2984-\u2984\u2986-\u2986\u2988-\u2988\u298a-\u298a\u298c-\u298c\u298e-\u298e\u2990-\u2990\u2992-\u2992\u2994-\u2994\u2996-\u2996\u2998-\u2998\u29d9-\u29d9\u29db-\u29db\u29fd-\u29fd\u2e23-\u2e23\u2e25-\u2e25\u2e27-\u2e27\u2e29-\u2e29\u3009-\u3009\u300b-\u300b\u300d-\u300d\u300f-\u300f\u3011-\u3011\u3015-\u3015\u3017-\u3017\u3019-\u3019\u301b-\u301b\u301e-\u301f\ufd3e-\ufd3e\ufe18-\ufe18\ufe36-\ufe36\ufe38-\ufe38\ufe3a-\ufe3a\ufe3c-\ufe3c\ufe3e-\ufe3e\ufe40-\ufe40\ufe42-\ufe42\ufe44-\ufe44\ufe48-\ufe48\ufe5a-\ufe5a\ufe5c-\ufe5c\ufe5e-\ufe5e\uff09-\uff09\uff3d-\uff3d\uff5d-\uff5d\uff60-\uff60\uff63-\uff63];
|
||||
Pf = [\xbb-\xbb\u2019-\u2019\u201d-\u201d\u203a-\u203a\u2e03-\u2e03\u2e05-\u2e05\u2e0a-\u2e0a\u2e0d-\u2e0d\u2e1d-\u2e1d\u2e21-\u2e21];
|
||||
Pi = [\xab-\xab\u2018-\u2018\u201b-\u201c\u201f-\u201f\u2039-\u2039\u2e02-\u2e02\u2e04-\u2e04\u2e09-\u2e09\u2e0c-\u2e0c\u2e1c-\u2e1c\u2e20-\u2e20];
|
||||
Po = [\x21-\x23\x25-\x27\x2a-\x2a\x2c-\x2c\x2e-\x2f\x3a-\x3b\x3f-\x40\x5c-\x5c\xa1-\xa1\xa7-\xa7\xb6-\xb7\xbf-\xbf\u037e-\u037e\u0387-\u0387\u055a-\u055f\u0589-\u0589\u05c0-\u05c0\u05c3-\u05c3\u05c6-\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b-\u061b\u061e-\u061f\u066a-\u066d\u06d4-\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e-\u085e\u0964-\u0965\u0970-\u0970\u09fd-\u09fd\u0a76-\u0a76\u0af0-\u0af0\u0c77-\u0c77\u0c84-\u0c84\u0df4-\u0df4\u0e4f-\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f14-\u0f14\u0f85-\u0f85\u0fd0-\u0fd4\u0fd9-\u0fda\u104a-\u104f\u10fb-\u10fb\u1360-\u1368\u166e-\u166e\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944-\u1945\u1a1e-\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e-\u1c7f\u1cc0-\u1cc7\u1cd3-\u1cd3\u2016-\u2017\u2020-\u2027\u2030-\u2038\u203b-\u203e\u2041-\u2043\u2047-\u2051\u2053-\u2053\u2055-\u205e\u2cf9-\u2cfc\u2cfe-\u2cff\u2d70-\u2d70\u2e00-\u2e01\u2e06-\u2e08\u2e0b-\u2e0b\u2e0e-\u2e16\u2e18-\u2e19\u2e1b-\u2e1b\u2e1e-\u2e1f\u2e2a-\u2e2e\u2e30-\u2e39\u2e3c-\u2e3f\u2e41-\u2e41\u2e43-\u2e4f\u3001-\u3003\u303d-\u303d\u30fb-\u30fb\ua4fe-\ua4ff\ua60d-\ua60f\ua673-\ua673\ua67e-\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce-\ua8cf\ua8f8-\ua8fa\ua8fc-\ua8fc\ua92e-\ua92f\ua95f-\ua95f\ua9c1-\ua9cd\ua9de-\ua9df\uaa5c-\uaa5f\uaade-\uaadf\uaaf0-\uaaf1\uabeb-\uabeb\ufe10-\ufe16\ufe19-\ufe19\ufe30-\ufe30\ufe45-\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68-\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff07\uff0a-\uff0a\uff0c-\uff0c\uff0e-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3c-\uff3c\uff61-\uff61\uff64-\uff65\U00010100-\U00010102\U0001039f-\U0001039f\U000103d0-\U000103d0\U0001056f-\U0001056f\U00010857-\U00010857\U0001091f-\U0001091f\U0001093f-\U0001093f\U00010a50-\U00010a58\U00010a7f-\U00010a7f\U00010af0-\U00010af6\U00010b39-\U00010b3f\U00010b99-\U00010b9c\U00010f55-\U00010f59\U00011047-\U0001104d\U000110bb-\U000110bc\U000110be-\U000110c1\U00011140-\U00011143\U00011174-\U00011175\U000111c5-\U000111c8\U000111cd-\U000111cd\U000111db-\U000111db\U000111dd-\U000111df\U00011238-\U0001123d\U000112a9-\U000112a9\U0001144b-\U0001144f\U0001145b-\U0001145b\U0001145d-\U0001145d\U000114c6-\U000114c6\U000115c1-\U000115d7\U00011641-\U00011643\U00011660-\U0001166c\U0001173c-\U0001173e\U0001183b-\U0001183b\U000119e2-\U000119e2\U00011a3f-\U00011a46\U00011a9a-\U00011a9c\U00011a9e-\U00011aa2\U00011c41-\U00011c45\U00011c70-\U00011c71\U00011ef7-\U00011ef8\U00011fff-\U00011fff\U00012470-\U00012474\U00016a6e-\U00016a6f\U00016af5-\U00016af5\U00016b37-\U00016b3b\U00016b44-\U00016b44\U00016e97-\U00016e9a\U00016fe2-\U00016fe2\U0001bc9f-\U0001bc9f\U0001da87-\U0001da8b\U0001e95e-\U0001e95f];
|
||||
Ps = [\x28-\x28\x5b-\x5b\x7b-\x7b\u0f3a-\u0f3a\u0f3c-\u0f3c\u169b-\u169b\u201a-\u201a\u201e-\u201e\u2045-\u2045\u207d-\u207d\u208d-\u208d\u2308-\u2308\u230a-\u230a\u2329-\u2329\u2768-\u2768\u276a-\u276a\u276c-\u276c\u276e-\u276e\u2770-\u2770\u2772-\u2772\u2774-\u2774\u27c5-\u27c5\u27e6-\u27e6\u27e8-\u27e8\u27ea-\u27ea\u27ec-\u27ec\u27ee-\u27ee\u2983-\u2983\u2985-\u2985\u2987-\u2987\u2989-\u2989\u298b-\u298b\u298d-\u298d\u298f-\u298f\u2991-\u2991\u2993-\u2993\u2995-\u2995\u2997-\u2997\u29d8-\u29d8\u29da-\u29da\u29fc-\u29fc\u2e22-\u2e22\u2e24-\u2e24\u2e26-\u2e26\u2e28-\u2e28\u2e42-\u2e42\u3008-\u3008\u300a-\u300a\u300c-\u300c\u300e-\u300e\u3010-\u3010\u3014-\u3014\u3016-\u3016\u3018-\u3018\u301a-\u301a\u301d-\u301d\ufd3f-\ufd3f\ufe17-\ufe17\ufe35-\ufe35\ufe37-\ufe37\ufe39-\ufe39\ufe3b-\ufe3b\ufe3d-\ufe3d\ufe3f-\ufe3f\ufe41-\ufe41\ufe43-\ufe43\ufe47-\ufe47\ufe59-\ufe59\ufe5b-\ufe5b\ufe5d-\ufe5d\uff08-\uff08\uff3b-\uff3b\uff5b-\uff5b\uff5f-\uff5f\uff62-\uff62];
|
||||
S = [\x24-\x24\x2b-\x2b\x3c-\x3e\x5e-\x5e\x60-\x60\x7c-\x7c\x7e-\x7e\xa2-\xa6\xa8-\xa9\xac-\xac\xae-\xb1\xb4-\xb4\xb8-\xb8\xd7-\xd7\xf7-\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed-\u02ed\u02ef-\u02ff\u0375-\u0375\u0384-\u0385\u03f6-\u03f6\u0482-\u0482\u058d-\u058f\u0606-\u0608\u060b-\u060b\u060e-\u060f\u06de-\u06de\u06e9-\u06e9\u06fd-\u06fe\u07f6-\u07f6\u07fe-\u07ff\u09f2-\u09f3\u09fa-\u09fb\u0af1-\u0af1\u0b70-\u0b70\u0bf3-\u0bfa\u0c7f-\u0c7f\u0d4f-\u0d4f\u0d79-\u0d79\u0e3f-\u0e3f\u0f01-\u0f03\u0f13-\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34-\u0f34\u0f36-\u0f36\u0f38-\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u166d-\u166d\u17db-\u17db\u1940-\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd-\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u2044-\u2044\u2052-\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20bf\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114-\u2114\u2116-\u2118\u211e-\u2123\u2125-\u2125\u2127-\u2127\u2129-\u2129\u212e-\u212e\u213a-\u213b\u2140-\u2144\u214a-\u214d\u214f-\u214f\u218a-\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b98-\u2bff\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004-\u3004\u3012-\u3013\u3020-\u3020\u3036-\u3037\u303e-\u303f\u309b-\u309c\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250-\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720-\ua721\ua789-\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b-\uab5b\ufb29-\ufb29\ufbb2-\ufbc1\ufdfc-\ufdfd\ufe62-\ufe62\ufe64-\ufe66\ufe69-\ufe69\uff04-\uff04\uff0b-\uff0b\uff1c-\uff1e\uff3e-\uff3e\uff40-\uff40\uff5c-\uff5c\uff5e-\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019b\U000101a0-\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8-\U00010ac8\U0001173f-\U0001173f\U00011fd5-\U00011ff1\U00016b3c-\U00016b3f\U00016b45-\U00016b45\U0001bc9c-\U0001bc9c\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1e8\U0001d200-\U0001d241\U0001d245-\U0001d245\U0001d300-\U0001d356\U0001d6c1-\U0001d6c1\U0001d6db-\U0001d6db\U0001d6fb-\U0001d6fb\U0001d715-\U0001d715\U0001d735-\U0001d735\U0001d74f-\U0001d74f\U0001d76f-\U0001d76f\U0001d789-\U0001d789\U0001d7a9-\U0001d7a9\U0001d7c3-\U0001d7c3\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001e14f-\U0001e14f\U0001e2ff-\U0001e2ff\U0001ecac-\U0001ecac\U0001ecb0-\U0001ecb0\U0001ed2e-\U0001ed2e\U0001eef0-\U0001eef1\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f110-\U0001f16c\U0001f170-\U0001f1ac\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f6d5\U0001f6e0-\U0001f6ec\U0001f6f0-\U0001f6fa\U0001f700-\U0001f773\U0001f780-\U0001f7d8\U0001f7e0-\U0001f7eb\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f900-\U0001f90b\U0001f90d-\U0001f971\U0001f973-\U0001f976\U0001f97a-\U0001f9a2\U0001f9a5-\U0001f9aa\U0001f9ae-\U0001f9ca\U0001f9cd-\U0001fa53\U0001fa60-\U0001fa6d\U0001fa70-\U0001fa73\U0001fa78-\U0001fa7a\U0001fa80-\U0001fa82\U0001fa90-\U0001fa95];
|
||||
Sc = [\x24-\x24\xa2-\xa5\u058f-\u058f\u060b-\u060b\u07fe-\u07ff\u09f2-\u09f3\u09fb-\u09fb\u0af1-\u0af1\u0bf9-\u0bf9\u0e3f-\u0e3f\u17db-\u17db\u20a0-\u20bf\ua838-\ua838\ufdfc-\ufdfc\ufe69-\ufe69\uff04-\uff04\uffe0-\uffe1\uffe5-\uffe6\U00011fdd-\U00011fe0\U0001e2ff-\U0001e2ff\U0001ecb0-\U0001ecb0];
|
||||
Sk = [\x5e-\x5e\x60-\x60\xa8-\xa8\xaf-\xaf\xb4-\xb4\xb8-\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed-\u02ed\u02ef-\u02ff\u0375-\u0375\u0384-\u0385\u1fbd-\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u309b-\u309c\ua700-\ua716\ua720-\ua721\ua789-\ua78a\uab5b-\uab5b\ufbb2-\ufbc1\uff3e-\uff3e\uff40-\uff40\uffe3-\uffe3\U0001f3fb-\U0001f3ff];
|
||||
Sm = [\x2b-\x2b\x3c-\x3e\x7c-\x7c\x7e-\x7e\xac-\xac\xb1-\xb1\xd7-\xd7\xf7-\xf7\u03f6-\u03f6\u0606-\u0608\u2044-\u2044\u2052-\u2052\u207a-\u207c\u208a-\u208c\u2118-\u2118\u2140-\u2144\u214b-\u214b\u2190-\u2194\u219a-\u219b\u21a0-\u21a0\u21a3-\u21a3\u21a6-\u21a6\u21ae-\u21ae\u21ce-\u21cf\u21d2-\u21d2\u21d4-\u21d4\u21f4-\u22ff\u2320-\u2321\u237c-\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7-\u25b7\u25c1-\u25c1\u25f8-\u25ff\u266f-\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29-\ufb29\ufe62-\ufe62\ufe64-\ufe66\uff0b-\uff0b\uff1c-\uff1e\uff5c-\uff5c\uff5e-\uff5e\uffe2-\uffe2\uffe9-\uffec\U0001d6c1-\U0001d6c1\U0001d6db-\U0001d6db\U0001d6fb-\U0001d6fb\U0001d715-\U0001d715\U0001d735-\U0001d735\U0001d74f-\U0001d74f\U0001d76f-\U0001d76f\U0001d789-\U0001d789\U0001d7a9-\U0001d7a9\U0001d7c3-\U0001d7c3\U0001eef0-\U0001eef1];
|
||||
So = [\xa6-\xa6\xa9-\xa9\xae-\xae\xb0-\xb0\u0482-\u0482\u058d-\u058e\u060e-\u060f\u06de-\u06de\u06e9-\u06e9\u06fd-\u06fe\u07f6-\u07f6\u09fa-\u09fa\u0b70-\u0b70\u0bf3-\u0bf8\u0bfa-\u0bfa\u0c7f-\u0c7f\u0d4f-\u0d4f\u0d79-\u0d79\u0f01-\u0f03\u0f13-\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34-\u0f34\u0f36-\u0f36\u0f38-\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u166d-\u166d\u1940-\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114-\u2114\u2116-\u2117\u211e-\u2123\u2125-\u2125\u2127-\u2127\u2129-\u2129\u212e-\u212e\u213a-\u213b\u214a-\u214a\u214c-\u214d\u214f-\u214f\u218a-\u218b\u2195-\u2199\u219c-\u219f\u21a1-\u21a2\u21a4-\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0-\u21d1\u21d3-\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45-\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bff\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004-\u3004\u3012-\u3013\u3020-\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250-\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836-\ua837\ua839-\ua839\uaa77-\uaa79\ufdfd-\ufdfd\uffe4-\uffe4\uffe8-\uffe8\uffed-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019b\U000101a0-\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8-\U00010ac8\U0001173f-\U0001173f\U00011fd5-\U00011fdc\U00011fe1-\U00011ff1\U00016b3c-\U00016b3f\U00016b45-\U00016b45\U0001bc9c-\U0001bc9c\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1e8\U0001d200-\U0001d241\U0001d245-\U0001d245\U0001d300-\U0001d356\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001e14f-\U0001e14f\U0001ecac-\U0001ecac\U0001ed2e-\U0001ed2e\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f110-\U0001f16c\U0001f170-\U0001f1ac\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f3fa\U0001f400-\U0001f6d5\U0001f6e0-\U0001f6ec\U0001f6f0-\U0001f6fa\U0001f700-\U0001f773\U0001f780-\U0001f7d8\U0001f7e0-\U0001f7eb\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f900-\U0001f90b\U0001f90d-\U0001f971\U0001f973-\U0001f976\U0001f97a-\U0001f9a2\U0001f9a5-\U0001f9aa\U0001f9ae-\U0001f9ca\U0001f9cd-\U0001fa53\U0001fa60-\U0001fa6d\U0001fa70-\U0001fa73\U0001fa78-\U0001fa7a\U0001fa80-\U0001fa82\U0001fa90-\U0001fa95];
|
||||
Z = [\x20-\x20\xa0-\xa0\u1680-\u1680\u2000-\u200a\u2028-\u2029\u202f-\u202f\u205f-\u205f\u3000-\u3000];
|
||||
Zl = [\u2028-\u2028];
|
||||
Zp = [\u2029-\u2029];
|
||||
Zs = [\x20-\x20\xa0-\xa0\u1680-\u1680\u2000-\u200a\u202f-\u202f\u205f-\u205f\u3000-\u3000];
|
||||
L = [\x41-\x5a\x61-\x7a\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2183-\u2184\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3006\u3031-\u3035\u303b-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6e5\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U00010400-\U0001049d\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U000105c0-\U000105f3\U00010600-\U00010736\U00010740-\U00010755\U000Line truncated
|
||||
L_ = [\x41-\x5a\x61-\x7a\xb5\xc0-\xd6\xd8-\xf6\xf8-\u01ba\u01bc-\u01bf\u01c4-\u0293\u0296-\u02af\u0370-\u0373\u0376-\u0377\u037b-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0560-\u0588\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fd-\u10ff\u13a0-\u13f5\u13f8-\u13fd\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2134\u2139\u213c-\u213f\u2145-\u2149\u214e\u2183-\u2184\u2c00-\u2c7b\u2c7e-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua640-\ua66d\ua680-\ua69b\ua722-\ua76f\ua771-\ua787\ua78b-\ua78e\ua790-\ua7dc\ua7f5-\ua7f6\ua7fa\uab30-\uab5a\uab60-\uab68\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a\U00010400-\U0001044f\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d50-\U00010d65\U00010d70-\U00010d85\U000118a0-\U000118df\U00016e40-\U00016e7f\U00016ea0-\U00016eb8\U00016ebb-\U00016ed3\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001df00-\U0001df09\U0001df0b-\U0001df1e\U0001df25-\U0001df2a\U0001e900-\U0001e943];
|
||||
Ll = [\x61-\x7a\xb5\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0296-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0560-\u0588\u10d0-\u10fa\u10fd-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1c8a\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5f\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7af\ua7b5\ua7b7\ua7b9\ua7bb\ua7bd\ua7bf\ua7c1\ua7c3\ua7c8\ua7ca\ua7cd\ua7cf\ua7d1\ua7d3\ua7d5\ua7d7\ua7d9\ua7db\ua7f6\ua7fa\uab30-\uab5a\uab60-\uab68\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010cc0-\U00010cf2\U00010d70-\U00010d85\U000118c0-\U000118df\U00016e60-\U00016e7f\U00016ebb-\U00016ed3\U0001d41a-\U0001d433\U0001d44e-\U0001d454\U0001d456-\U0001d467\U0001d482-\U0001d49b\U0001d4b6-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d4cf\U0001d4ea-\U0001d503\U0001d51e-\U0001d537\U0001d552-\U0001d56b\U0001d586-\U0001d59f\U0001d5ba-\U0001d5d3\U0001d5ee-\U0001d607\U0001d622-\U0001d63b\U0001d656-\U0001d66f\U0001d68a-\U0001d6a5\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6e1\U0001d6fc-\U0001d714\U0001d716-\U0001d71b\U0001d736-\U0001d74e\U0001d750-\U0001d755\U0001d770-\U0001d788\U0001d78a-\U0001d78f\U0001d7aa-\U0001d7c2\U0001d7c4-Line truncated
|
||||
Lm = [\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u08c9\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua69c-\ua69d\ua717-\ua71f\ua770\ua788\ua7f1-\ua7f4\ua7f8-\ua7f9\ua9cf\ua9e6\uaa70\uaadd\uaaf3-\uaaf4\uab5c-\uab5f\uab69\uff70\uff9e-\uff9f\U00010780-\U00010785\U00010787-\U000107b0\U000107b2-\U000107ba\U00010d4e\U00010d6f\U00010ec5\U00011dd9\U00016b40-\U00016b43\U00016d40-\U00016d42\U00016d6b-\U00016d6c\U00016f93-\U00016f9f\U00016fe0-\U00016fe1\U00016fe3\U00016ff2-\U00016ff3\U0001aff0-\U0001aff3\U0001aff5-\U0001affb\U0001affd-\U0001affe\U0001e030-\U0001e06d\U0001e137-\U0001e13d\U0001e4eb\U0001e6ff\U0001e94b];
|
||||
Lo = [\xaa\xba\u01bb\u01c0-\u01c3\u0294-\u0295\u05d0-\u05ea\u05ef-\u05f2\u0620-\u063f\u0641-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u0800-\u0815\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c8\u0904-\u0939\u093d\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c77\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u2135-\u2138\u2d30-\u2d67\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua014\ua016-\ua48c\ua4d0-\ua4f7\ua500-\ua60b\ua610-\ua61f\ua62a-\ua62b\ua66e\ua6a0-\ua6e5\ua78f\ua7f7\ua7fb-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa6f\uaa71-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadc\uaae0-\uaaea\uaaf2\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U00010450-\U0001049d\U00010500-\U00010527\U00010530-\U00010563\U000105c0-\U000105f3\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010940-\U00010959\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010d00-\U00010d23\U00010d4a-\U00010d4d\U00010d4f\U00010e80-\U00010ea9\U00010eb0-\U00010eb1\U00010ec2-\U00010ec4\U00010ec6-\U00010ec7\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00010f70-\U00010f81\U00010fb0-\U00010fc4\U00010fe0-\U00010ff6\U00011003-\U00011037\U00011071-\U00011072\U00011075\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011147\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U0001123f-\U00011240\U00011280-\U00011286\U00011288\Line truncated
|
||||
Lt = [\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc];
|
||||
Lu = [\x41-\x5a\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1c89\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2f\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\ua7ba\ua7bc\ua7be\ua7c0\ua7c2\ua7c4-\ua7c7\ua7c9\ua7cb-\ua7cc\ua7ce\ua7d0\ua7d2\ua7d4\ua7d6\ua7d8\ua7da\ua7dc\ua7f5\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010c80-\U00010cb2\U00010d50-\U00010d65\U000118a0-\U000118bf\U00016e40-\U00016e5f\U00016ea0-\U00016eb8\U0001d400-\U0001d419\U0001d434-\U0001d44d\U0001d468-\U0001d481\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b5\U0001d4d0-\U0001d4e9\U0001d504-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d538-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d56c-\U0001d585\U0001d5a0-\U0001d5b9\U0001d5d4-\U0001d5ed\U0001d608-\U0001d621\U0001d63c-\U0001d655\U0001d670-\U0001d689\U0001d6a8-\U0001d6c0\U0001d6e2-\U0001d6fa\U0001d71c-\U0001d734\U0001d756-\U0001d76e\U0001d790-\U0001d7a8\U0001d7ca\U0001e900-\U0001e921];
|
||||
M = [\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62-\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0cf3\u0d00-\u0d03\u0d3b-\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62-\u0d63\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f3e-\u0f3f\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1715\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17d3\u17dd\u180b-\u180d\u180f\u1885-\u1886\u18a9\u1920-\u192b\u1930-\u193b\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1ab0-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099-\u309a\ua66f-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880-\ua881\ua8b4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9e5\uaa29-\uaa36\uaa43\uaa4c-\uaa4d\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaeb-\uaaef\uaaf5-\uaaf6\uabe3-\uabea\uabec-\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010d69-\U00010d6d\U00010eab-\U00010eac\U00010efa-\U00010eff\U00010f46-\U00010f50\U00010f82-\U00010f85\U00011000-\U00011002\U00011038-\U00011046\U00011070\U00011073-\U00011074\U0001107f-\U00011082\U000110b0-\U000110ba\U000110c2\U00011100-\U00011102\U00011127-\U00011134\U00011145-\U00011146\U00011173\U00011180-\U00011182\U000111b3-\U000111c0\U000111c9-\U000111cc\U000111ce-\U000111cf\U0001122c-\U00011237\U0001123e\U00011241\U000112df-\U000112ea\U00011300-\U00011303\U0001133b-\U0001133c\U0001133e-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357\U00011362-\U00011363\U00011366-\U0001136c\U00011370-\U00011374\U000113b8-\U000113c0\U000113c2\U000113c5\U000113c7-\U000113ca\U000113cc-\U000113d0\U000113d2\U000113e1-\U000113e2\U00011435-\U00011446\U0001145e\U000114b0-\U000114c3\U000115af-\U000115b5\U000115b8-\U000115c0\U000115dc-\U000115dd\U00011630-\U00011640\U000116ab-\U000116b7\U0001171d-\U0001172b\U0001182c-\U0001183a\U00011930-\U00011935\U00011937-\U00011938\U0001193b-\U0001193e\U00011940\U00011942-\U00011943\U000119d1-\U000119d7\U000119da-\U000119e0\U000119e4\U00011a01-\U00011a0a\U00011a33-\U00011a39\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a5b\U00011a8a-\U00011a99\U00011b60-\U00011b67\U00011c2f-\U00011c36\U00011c38-\U00011c3f\U00011c92-\U00011ca7\U00011ca9-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d8a-\U00011d8e\U00011d90-\U00011d91\U00011d93-\U00011d97\U00011ef3-\U00011ef6\U00011f00-\U00011f01\U00011f03\U00011f34-\U00011f3a\U00011f3e-\U00011f42\U00011f5a\U00013440\U00013447-\U00013455\U0001611e-\U0001612f\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f4f\U00016f51-\U00016f87\U00016f8f-\U00016f92\U00016fe4\U00016ff0-\U00016ff1\U0001bc9d-\U0001bc9e\U0001cf00-\U0001cf2d\U0001cf30-\U0001cf46\U0001d165-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e08f\U0001e130-\U0001e136\U0001e2ae\U0001e2ec-\U0001e2ef\U0001e4ec-\U0001e4ef\U0001e5ee-\U0001e5ef\U0001e6e3\U0001e6e6\U0001e6ee-\U0001e6ef\U0001e6f5\U0001e8d0-\U0001e8d6\U0001e944-\U0001e94a\U000e0100-\U000e01ef];
|
||||
Mc = [\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0cf3\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f\u102b-\u102c\u1031\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f\u109a-\u109c\u1715\u1734\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u1a19-\u1a1a\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82\u1ba1\u1ba6-\u1ba7\u1baa\u1be7\u1bea-\u1bec\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1\u1cf7\u302e-\u302f\ua823-\ua824\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9be-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d\uaa7b\uaa7d\uaaeb\uaaee-\uaaef\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec\U00011000\U00011002\U00011082\U000110b0-\U000110b2\U000110b7-\U000110b8\U0001112c\U00011145-\U00011146\U00011182\U000111b3-\U000111b5\U000111bf-\U000111c0\U000111ce\U0001122c-\U0001122e\U00011232-\U00011233\U00011235\U000112e0-\U000112e2\U00011302-\U00011303\U0001133e-\U0001133f\U00011341-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357\U00011362-\U00011363\U000113b8-\U000113ba\U000113c2\U000113c5\U000113c7-\U000113ca\U000113cc-\U000113cd\U000113cf\U00011435-\U00011437\U00011440-\U00011441\U00011445\U000114b0-\U000114b2\U000114b9\U000114bb-\U000114be\U000114c1\U000115af-\U000115b1\U000115b8-\U000115bb\U000115be\U00011630-\U00011632\U0001163b-\U0001163c\U0001163e\U000116ac\U000116ae-\U000116af\U000116b6\U0001171e\U00011720-\U00011721\U00011726\U0001182c-\U0001182e\U00011838\U00011930-\U00011935\U00011937-\U00011938\U0001193d\U00011940\U00011942\U000119d1-\U000119d3\U000119dc-\U000119df\U000119e4\U00011a39\U00011a57-\U00011a58\U00011a97\U00011b61\U00011b65\U00011b67\U00011c2f\U00011c3e\U00011ca9\U00011cb1\U00011cb4\U00011d8a-\U00011d8e\U00011d93-\U00011d94\U00011d96\U00011ef5-\U00011ef6\U00011f03\U00011f34-\U00011f35\U00011f3e-\U00011f3f\U00011f41\U0001612a-\U0001612c\U00016f51-\U00016f87\U00016ff0-\U00016ff1\U0001d165-\U0001d166\U0001d16d-\U0001d172];
|
||||
Me = [\u0488-\u0489\u1abe\u20dd-\u20e0\u20e2-\u20e4\ua670-\ua672];
|
||||
Mn = [\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b55-\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c00\u0c04\u0c3c\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0d81\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1733\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u180f\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua82c\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc-\ua9bd\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010d69-\U00010d6d\U00010eab-\U00010eac\U00010efa-\U00010eff\U00010f46-\U00010f50\U00010f82-\U00010f85\U00011001\U00011038-\U00011046\U00011070\U00011073-\U00011074\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U000110c2\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c9-\U000111cc\U000111cf\U0001122f-\U00011231\U00011234\U00011236-\U00011237\U0001123e\U00011241\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U00011340\U00011366-\U0001136c\U00011370-\U00011374\U000113bb-\U000113c0\U000113ce\U000113d0\U000113d2\U000113e1-\U000113e2\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b3-\U000114b8\U000114ba\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b5\U000116b7\U0001171d\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U0001193b-\U0001193c\U0001193e\U00011943\U000119d4-\U000119d7\U000119da-\U000119db\U000119e0\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011b60\U00011b62-\U00011b64\U00011b66\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d90-\U00011d91\U00011d95\U00011d97\U00011ef3-\U00011ef4\U00011f00-\U00011f01\U00011f36-\U00011f3a\U00011f40\U00011f42\U00011f5a\U00013440\U00013447-\U00013455\U0001611e-\U00016129\U0001612d-\U0001612f\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f4f\U00016f8f-\U00016f92\U00016fe4\U0001bc9d-\U0001bc9e\U0001cf00-\U0001cf2d\U0001cf30-\U0001cf46\U0001d167-\U0001d169\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e08f\U0001e130-\U0001e136\U0001e2ae\U0001e2ec-\U0001e2ef\U0001e4ec-\U0001e4ef\U0001e5ee-\U0001e5ef\U0001e6e3\U0001e6e6\U0001e6ee-\U0001e6ef\U0001e6f5\U0001e8d0-\U0001e8d6\U0001e944-\U0001e94a\U000e0100-\U000e01ef];
|
||||
N = [\x30-\x39\xb2-\xb3\xb9\xbc-\xbe\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u09f4-\u09f9\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0b72-\u0b77\u0be6-\u0bf2\u0c66-\u0c6f\u0c78-\u0c7e\u0ce6-\u0cef\u0d58-\u0d5e\u0d66-\u0d78\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f33\u1040-\u1049\u1090-\u1099\u1369-\u137c\u16ee-\u16f0\u17e0-\u17e9\u17f0-\u17f9\u1810-\u1819\u1946-\u194f\u19d0-\u19da\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3007\u3021-\u3029\u3038-\u303a\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua620-\ua629\ua6e6-\ua6ef\ua830-\ua835\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U00010107-\U00010133\U00010140-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010341\U0001034a\U000103d1-\U000103d5\U000104a0-\U000104a9\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010d30-\U00010d39\U00010d40-\U00010d49\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00010fc5-\U00010fcb\U00011052-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000111e1-\U000111f4\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U000116d0-\U000116e3\U00011730-\U0001173b\U000118e0-\U000118f2\U00011950-\U00011959\U00011bf0-\U00011bf9\U00011c50-\U00011c6c\U00011d50-\U00011d59\U00011da0-\U00011da9\U00011de0-\U00011de9\U00011f50-\U00011f59\U00011fc0-\U00011fd4\U00012400-\U0001246e\U00016130-\U00016139\U00016a60-\U00016a69\U00016ac0-\U00016ac9\U00016b50-\U00016b59\U00016b5b-\U00016b61\U00016d70-\U00016d79\U00016e80-\U00016e96\U00016ff4-\U00016ff6\U0001ccf0-\U0001ccf9\U0001d2c0-\U0001d2d3\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001d7ce-\U0001d7ff\U0001e140-\U0001e149\U0001e2f0-\U0001e2f9\U0001e4f0-\U0001e4f9\U0001e5f1-\U0001e5fa\U0001e8c7-\U0001e8cf\U0001e950-\U0001e959\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001ed01-\U0001ed2d\U0001ed2f-\U0001ed3d\U0001f100-\U0001f10c\U0001fbf0-\U0001fbf9];
|
||||
Nd = [\x30-\x39\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U000104a0-\U000104a9\U00010d30-\U00010d39\U00010d40-\U00010d49\U00011066-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U000116d0-\U000116e3\U00011730-\U00011739\U000118e0-\U000118e9\U00011950-\U00011959\U00011bf0-\U00011bf9\U00011c50-\U00011c59\U00011d50-\U00011d59\U00011da0-\U00011da9\U00011de0-\U00011de9\U00011f50-\U00011f59\U00016130-\U00016139\U00016a60-\U00016a69\U00016ac0-\U00016ac9\U00016b50-\U00016b59\U00016d70-\U00016d79\U0001ccf0-\U0001ccf9\U0001d7ce-\U0001d7ff\U0001e140-\U0001e149\U0001e2f0-\U0001e2f9\U0001e4f0-\U0001e4f9\U0001e5f1-\U0001e5fa\U0001e950-\U0001e959\U0001fbf0-\U0001fbf9];
|
||||
Nl = [\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef\U00010140-\U00010174\U00010341\U0001034a\U000103d1-\U000103d5\U00012400-\U0001246e\U00016ff4-\U00016ff6];
|
||||
No = [\xb2-\xb3\xb9\xbc-\xbe\u09f4-\u09f9\u0b72-\u0b77\u0bf0-\u0bf2\u0c78-\u0c7e\u0d58-\u0d5e\u0d70-\u0d78\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u19da\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215f\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua830-\ua835\U00010107-\U00010133\U00010175-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00010fc5-\U00010fcb\U00011052-\U00011065\U000111e1-\U000111f4\U0001173a-\U0001173b\U000118ea-\U000118f2\U00011c5a-\U00011c6c\U00011fc0-\U00011fd4\U00016b5b-\U00016b61\U00016e80-\U00016e96\U0001d2c0-\U0001d2d3\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001e8c7-\U0001e8cf\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001ed01-\U0001ed2d\U0001ed2f-\U0001ed3d\U0001f100-\U0001f10c];
|
||||
P = [\x21-\x23\x25-\x2a\x2c-\x2f\x3a-\x3b\x3f-\x40\x5b-\x5d\x5f\x7b\x7d\xa1\xa7\xab\xb6-\xb7\xbb\xbf\u037e\u0387\u055a-\u055f\u0589-\u058a\u05be\u05c0\u05c3\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b\u061d-\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964-\u0965\u0970\u09fd\u0a76\u0af0\u0c77\u0c84\u0df4\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f14\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9-\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u1400\u166e\u169b-\u169c\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944-\u1945\u1a1e-\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b4e-\u1b4f\u1b5a-\u1b60\u1b7d-\u1b7f\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e-\u1c7f\u1cc0-\u1cc7\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d-\u207e\u208d-\u208e\u2308-\u230b\u2329-\u232a\u2768-\u2775\u27c5-\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc-\u29fd\u2cf9-\u2cfc\u2cfe-\u2cff\u2d70\u2e00-\u2e2e\u2e30-\u2e4f\u2e52-\u2e5d\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe-\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce-\ua8cf\ua8f8-\ua8fa\ua8fc\ua92e-\ua92f\ua95f\ua9c1-\ua9cd\ua9de-\ua9df\uaa5c-\uaa5f\uaade-\uaadf\uaaf0-\uaaf1\uabeb\ufd3e-\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65\U00010100-\U00010102\U0001039f\U000103d0\U0001056f\U00010857\U0001091f\U0001093f\U00010a50-\U00010a58\U00010a7f\U00010af0-\U00010af6\U00010b39-\U00010b3f\U00010b99-\U00010b9c\U00010d6e\U00010ead\U00010ed0\U00010f55-\U00010f59\U00010f86-\U00010f89\U00011047-\U0001104d\U000110bb-\U000110bc\U000110be-\U000110c1\U00011140-\U00011143\U00011174-\U00011175\U000111c5-\U000111c8\U000111cd\U000111db\U000111dd-\U000111df\U00011238-\U0001123d\U000112a9\U000113d4-\U000113d5\U000113d7-\U000113d8\U0001144b-\U0001144f\U0001145a-\U0001145b\U0001145d\U000114c6\U000115c1-\U000115d7\U00011641-\U00011643\U00011660-\U0001166c\U000116b9\U0001173c-\U0001173e\U0001183b\U00011944-\U00011946\U000119e2\U00011a3f-\U00011a46\U00011a9a-\U00011a9c\U00011a9e-\U00011aa2\U00011b00-\U00011b09\U00011be1\U00011c41-\U00011c45\U00011c70-\U00011c71\U00011ef7-\U00011ef8\U00011f43-\U00011f4f\U00011fff\U00012470-\U00012474\U00012ff1-\U00012ff2\U00016a6e-\U00016a6f\U00016af5\U00016b37-\U00016b3b\U00016b44\U00016d6d-\U00016d6f\U00016e97-\U00016e9a\U00016fe2\U0001bc9f\U0001da87-\U0001da8b\U0001e5ff\U0001e95e-\U0001e95f];
|
||||
Pc = [\x5f\u203f-\u2040\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f];
|
||||
Pd = [\x2d\u058a\u05be\u1400\u1806\u2010-\u2015\u2e17\u2e1a\u2e3a-\u2e3b\u2e40\u2e5d\u301c\u3030\u30a0\ufe31-\ufe32\ufe58\ufe63\uff0d\U00010d6e\U00010ead];
|
||||
Pe = [\x29\x5d\x7d\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u2309\u230b\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u2e56\u2e58\u2e5a\u2e5c\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e-\u301f\ufd3e\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63];
|
||||
Pf = [\xbb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d\u2e21];
|
||||
Pi = [\xab\u2018\u201b-\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c\u2e20];
|
||||
Po = [\x21-\x23\x25-\x27\x2a\x2c\x2e-\x2f\x3a-\x3b\x3f-\x40\x5c\xa1\xa7\xb6-\xb7\xbf\u037e\u0387\u055a-\u055f\u0589\u05c0\u05c3\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b\u061d-\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964-\u0965\u0970\u09fd\u0a76\u0af0\u0c77\u0c84\u0df4\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f14\u0f85\u0fd0-\u0fd4\u0fd9-\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u166e\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944-\u1945\u1a1e-\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b4e-\u1b4f\u1b5a-\u1b60\u1b7d-\u1b7f\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e-\u1c7f\u1cc0-\u1cc7\u1cd3\u2016-\u2017\u2020-\u2027\u2030-\u2038\u203b-\u203e\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205e\u2cf9-\u2cfc\u2cfe-\u2cff\u2d70\u2e00-\u2e01\u2e06-\u2e08\u2e0b\u2e0e-\u2e16\u2e18-\u2e19\u2e1b\u2e1e-\u2e1f\u2e2a-\u2e2e\u2e30-\u2e39\u2e3c-\u2e3f\u2e41\u2e43-\u2e4f\u2e52-\u2e54\u3001-\u3003\u303d\u30fb\ua4fe-\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce-\ua8cf\ua8f8-\ua8fa\ua8fc\ua92e-\ua92f\ua95f\ua9c1-\ua9cd\ua9de-\ua9df\uaa5c-\uaa5f\uaade-\uaadf\uaaf0-\uaaf1\uabeb\ufe10-\ufe16\ufe19\ufe30\ufe45-\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3c\uff61\uff64-\uff65\U00010100-\U00010102\U0001039f\U000103d0\U0001056f\U00010857\U0001091f\U0001093f\U00010a50-\U00010a58\U00010a7f\U00010af0-\U00010af6\U00010b39-\U00010b3f\U00010b99-\U00010b9c\U00010ed0\U00010f55-\U00010f59\U00010f86-\U00010f89\U00011047-\U0001104d\U000110bb-\U000110bc\U000110be-\U000110c1\U00011140-\U00011143\U00011174-\U00011175\U000111c5-\U000111c8\U000111cd\U000111db\U000111dd-\U000111df\U00011238-\U0001123d\U000112a9\U000113d4-\U000113d5\U000113d7-\U000113d8\U0001144b-\U0001144f\U0001145a-\U0001145b\U0001145d\U000114c6\U000115c1-\U000115d7\U00011641-\U00011643\U00011660-\U0001166c\U000116b9\U0001173c-\U0001173e\U0001183b\U00011944-\U00011946\U000119e2\U00011a3f-\U00011a46\U00011a9a-\U00011a9c\U00011a9e-\U00011aa2\U00011b00-\U00011b09\U00011be1\U00011c41-\U00011c45\U00011c70-\U00011c71\U00011ef7-\U00011ef8\U00011f43-\U00011f4f\U00011fff\U00012470-\U00012474\U00012ff1-\U00012ff2\U00016a6e-\U00016a6f\U00016af5\U00016b37-\U00016b3b\U00016b44\U00016d6d-\U00016d6f\U00016e97-\U00016e9a\U00016fe2\U0001bc9f\U0001da87-\U0001da8b\U0001e5ff\U0001e95e-\U0001e95f];
|
||||
Ps = [\x28\x5b\x7b\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2308\u230a\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u2e42\u2e55\u2e57\u2e59\u2e5b\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3f\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62];
|
||||
S = [\x24\x2b\x3c-\x3e\x5e\x60\x7c\x7e\xa2-\xa6\xa8-\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384-\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e-\u060f\u06de\u06e9\u06fd-\u06fe\u07f6\u07fe-\u07ff\u0888\u09f2-\u09f3\u09fa-\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u166d\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20c1\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a-\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2429\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2bff\u2ce5-\u2cea\u2e50-\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2fff\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u309b-\u309c\u3190-\u3191\u3196-\u319f\u31c0-\u31e5\u31ef\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720-\ua721\ua789-\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\uab6a-\uab6b\ufb29\ufbb2-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdcf\ufdfc-\ufdff\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019c\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8\U00010d8e-\U00010d8f\U00010ed1-\U00010ed8\U0001173f\U00011fd5-\U00011ff1\U00016b3c-\U00016b3f\U00016b45\U0001bc9c\U0001cc00-\U0001ccef\U0001ccfa-\U0001ccfc\U0001cd00-\U0001ceb3\U0001ceba-\U0001ced0\U0001cee0-\U0001cef0\U0001cf50-\U0001cfc3\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1ea\U0001d200-\U0001d241\U0001d245\U0001d300-\U0001d356\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001e14f\U0001e2ff\U0001ecac\U0001ecb0\U0001ed2e\U0001eef0-\U0001eef1\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f10d-\U0001f1ad\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f6d8\U0001f6dc-\U0001f6ec\U0001f6f0-\U0001f6fc\U0001f700-\U0001f7d9\U0001f7e0-\U0001f7eb\U0001f7f0\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f8b0-\U0001f8bb\U0001f8c0-\U0001f8c1\U0001f8d0-\U0001f8d8\U0001f900-\U0001fa57\U0001fa60-\U0001fa6d\U0001fa70-\U0001fa7c\U0001fa80-\U0001fa8a\U0001fa8e-\U0001fac6\U0001fac8\U0001facd-\U0001fadc\U0001fadf-\U0001faea\U0001faef-\U0001faf8\U0001fb00-\U0001fb92\U0001fb94-\U0001fbef\U0001fbfa];
|
||||
Sc = [\x24\xa2-\xa5\u058f\u060b\u07fe-\u07ff\u09f2-\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20c1\ua838\ufdfc\ufe69\uff04\uffe0-\uffe1\uffe5-\uffe6\U00011fdd-\U00011fe0\U0001e2ff\U0001ecb0];
|
||||
Sk = [\x5e\x60\xa8\xaf\xb4\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384-\u0385\u0888\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u309b-\u309c\ua700-\ua716\ua720-\ua721\ua789-\ua78a\uab5b\uab6a-\uab6b\ufbb2-\ufbc2\uff3e\uff40\uffe3\U0001f3fb-\U0001f3ff];
|
||||
Sm = [\x2b\x3c-\x3e\x7c\x7e\xac\xb1\xd7\xf7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a-\u219b\u21a0\u21a3\u21a6\u21ae\u21ce-\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320-\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec\U00010d8e-\U00010d8f\U0001cef0\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3\U0001eef0-\U0001eef1\U0001f8d0-\U0001f8d8];
|
||||
So = [\xa6\xa9\xae\xb0\u0482\u058d-\u058e\u060e-\u060f\u06de\u06e9\u06fd-\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u166d\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u214a\u214c-\u214d\u214f\u218a-\u218b\u2195-\u2199\u219c-\u219f\u21a1-\u21a2\u21a4-\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0-\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u2429\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45-\u2b46\u2b4d-\u2b73\u2b76-\u2bff\u2ce5-\u2cea\u2e50-\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2fff\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e5\u31ef\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836-\ua837\ua839\uaa77-\uaa79\ufbc3-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdcf\ufdfd-\ufdff\uffe4\uffe8\uffed-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019c\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8\U00010ed1-\U00010ed8\U0001173f\U00011fd5-\U00011fdc\U00011fe1-\U00011ff1\U00016b3c-\U00016b3f\U00016b45\U0001bc9c\U0001cc00-\U0001ccef\U0001ccfa-\U0001ccfc\U0001cd00-\U0001ceb3\U0001ceba-\U0001ced0\U0001cee0-\U0001ceef\U0001cf50-\U0001cfc3\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1ea\U0001d200-\U0001d241\U0001d245\U0001d300-\U0001d356\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001e14f\U0001ecac\U0001ed2e\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f10d-\U0001f1ad\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f3fa\U0001f400-\U0001f6d8\U0001f6dc-\U0001f6ec\U0001f6f0-\U0001f6fc\U0001f700-\U0001f7d9\U0001f7e0-\U0001f7eb\U0001f7f0\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f8b0-\U0001f8bb\U0001f8c0-\U0001f8c1\U0001f900-\U0001fa57\U0001fa60-\U0001fa6d\U0001fa70-\U0001fa7c\U0001fa80-\U0001fa8a\U0001fa8e-\U0001fac6\U0001fac8\U0001facd-\U0001fadc\U0001fadf-\U0001faea\U0001faef-\U0001faf8\U0001fb00-\U0001fb92\U0001fb94-\U0001fbef\U0001fbfa];
|
||||
Z = [\x20\xa0\u1680\u2000-\u200a\u2028-\u2029\u202f\u205f\u3000];
|
||||
Zl = [\u2028];
|
||||
Zp = [\u2029];
|
||||
Zs = [\x20\xa0\u1680\u2000-\u200a\u202f\u205f\u3000];
|
||||
*/
|
||||
@@ -0,0 +1,60 @@
|
||||
/*!re2c
|
||||
ASCII_Hex_Digit = [\x30-\x39\x41-\x46\x61-\x66];
|
||||
Alphabetic = [\x41-\x5a\x61-\x7a\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0345\u0363-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05b0-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0657\u0659-\u065f\u066e-\u06d3\u06d5-\u06dc\u06e1-\u06e8\u06ed-\u06ef\u06fa-\u06fc\u06ff\u0710-\u073f\u074d-\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0817\u081a-\u082c\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u0897\u08a0-\u08c9\u08d4-\u08df\u08e3-\u08e9\u08f0-\u093b\u093d-\u094c\u094e-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd-\u09c4\u09c7-\u09c8\u09cb-\u09cc\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09f0-\u09f1\u09fc\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4c\u0a51\u0a59-\u0a5c\u0a5e\u0a70-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acc\u0ad0\u0ae0-\u0ae3\u0af9-\u0afc\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d-\u0b44\u0b47-\u0b48\u0b4b-\u0b4c\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0bd7\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4c\u0c55-\u0c56\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c63\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccc\u0cd5-\u0cd6\u0cdc-\u0cde\u0ce0-\u0ce3\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d7a-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e46\u0e4d\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ecd\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f71-\u0f83\u0f88-\u0f97\u0f99-\u0fbc\u1000-\u1036\u1038\u103b-\u103f\u1050-\u108f\u109a-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1713\u171f-\u1733\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17b3\u17b6-\u17c8\u17d7\u17dc\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u1938\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a1b\u1a20-\u1a5e\u1a61-\u1a74\u1aa7\u1abf-\u1ac0\u1acc-\u1ace\u1b00-\u1b33\u1b35-\u1b43\u1b45-\u1b4c\u1b80-\u1ba9\u1bac-\u1baf\u1bba-\u1be5\u1be7-\u1bf1\u1c00-\u1c36\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\u1dd3-\u1df4\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua674-\ua67b\ua67f-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua805\ua807-\ua827\ua840-\ua873\ua880-\ua8c3\ua8c5\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8ff\ua90a-\ua92a\ua930-\ua952\ua960-\ua97c\ua980-\ua9b2\ua9b4-\ua9bf\ua9cf\ua9e0-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa60-\uaa76\uaa7a-\uaabe\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabea\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U00Line truncated
|
||||
Bidi_Control = [\u061c\u200e-\u200f\u202a-\u202e\u2066-\u2069];
|
||||
Case_Ignorable = [\x27\x2e\x3a\x5e\x60\xa8\xad\xaf\xb4\xb7-\xb8\u02b0-\u036f\u0374-\u0375\u037a\u0384-\u0385\u0387\u0483-\u0489\u0559\u055f\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05f4\u0600-\u0605\u0610-\u061a\u061c\u0640\u064b-\u065f\u0670\u06d6-\u06dd\u06df-\u06e8\u06ea-\u06ed\u070f\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f5\u07fa\u07fd\u0816-\u082d\u0859-\u085b\u0888\u0890-\u0891\u0897-\u089f\u08c9-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0971\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b55-\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c00\u0c04\u0c3c\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0d81\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e46-\u0e4e\u0eb1\u0eb4-\u0ebc\u0ec6\u0ec8-\u0ece\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u10fc\u135d-\u135f\u1712-\u1714\u1732-\u1733\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17d7\u17dd\u180b-\u180f\u1843\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1aa7\u1ab0-\u1add\u1ae0-\u1aeb\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1c78-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1d2c-\u1d6a\u1d78\u1d9b-\u1dff\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u200b-\u200f\u2018-\u2019\u2024\u2027\u202a-\u202e\u2060-\u2064\u2066-\u206f\u2071\u207f\u2090-\u209c\u20d0-\u20f0\u2c7c-\u2c7d\u2cef-\u2cf1\u2d6f\u2d7f\u2de0-\u2dff\u2e2f\u3005\u302a-\u302d\u3031-\u3035\u303b\u3099-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua66f-\ua672\ua674-\ua67d\ua67f\ua69c-\ua69f\ua6f0-\ua6f1\ua700-\ua721\ua770\ua788-\ua78a\ua7f1-\ua7f4\ua7f8-\ua7f9\ua802\ua806\ua80b\ua825-\ua826\ua82c\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc-\ua9bd\ua9cf\ua9e5-\ua9e6\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa70\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaadd\uaaec-\uaaed\uaaf3-\uaaf4\uaaf6\uab5b-\uab5f\uab69-\uab6b\uabe5\uabe8\uabed\ufb1e\ufbb2-\ufbc2\ufe00-\ufe0f\ufe13\ufe20-\ufe2f\ufe52\ufe55\ufeff\uff07\uff0e\uff1a\uff3e\uff40\uff70\uff9e-\uff9f\uffe3\ufff9-\ufffb\U000101fd\U000102e0\U00010376-\U0001037a\U00010780-\U00010785\U00010787-\U000107b0\U000107b2-\U000107ba\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010d4e\U00010d69-\U00010d6d\U00010d6f\U00010eab-\U00010eac\U00010ec5\U00010efa-\U00010eff\U00010f46-\U00010f50\U00010f82-\U00010f85\U00011001\U00011038-\U00011046\U00011070\U00011073-\U00011074\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U000110bd\U000110c2\U000110cd\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c9-\U000111cc\U000111cf\U0001122f-\U00011231\U00011234\U00011236-\U00011237\U0001123e\U00011241\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U00011340\U00011366-\U0001136c\U00011370-\U00011374\U000113bb-\U000113c0\U000113ce\U000113d0\U000113d2\U000113e1-\U000113e2\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b3-\U000114b8\U000114ba\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b5\U000116b7\U0001171d\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U0001193b-\U0001193c\U0001193e\U00011943\U000119d4-\U000119d7\U000119da-\U000119db\U000119e0\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011b60\U00011b62-\U00011b64\U00011b66\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d90-\U00011d91\U00011d95\U00011d97\U00011dd9\U00011ef3-\U00011ef4\U00011f00-\U00011f01\U00011f36-\U00011f3a\U00011f40\U00011f42\U00011f5a\U00013430-\U00013440\U00013447-\U00013455\U0001611e-\U00016129\U0001612d-\U0001612f\U00016af0-\U00016af4\U00016b30-\U00016b36\U000Line truncated
|
||||
Cased = [\x41-\x5a\x61-\x7a\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u01ba\u01bc-\u01bf\u01c4-\u0293\u0296-\u02b8\u02c0-\u02c1\u02e0-\u02e4\u0345\u0370-\u0373\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0560-\u0588\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u10ff\u13a0-\u13f5\u13f8-\u13fd\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2134\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u217f\u2183-\u2184\u24b6-\u24e9\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua640-\ua66d\ua680-\ua69d\ua722-\ua787\ua78b-\ua78e\ua790-\ua7dc\ua7f1-\ua7f6\ua7f8-\ua7fa\uab30-\uab5a\uab5c-\uab69\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a\U00010400-\U0001044f\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010780\U00010783-\U00010785\U00010787-\U000107b0\U000107b2-\U000107ba\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d50-\U00010d65\U00010d70-\U00010d85\U000118a0-\U000118df\U00016e40-\U00016e7f\U00016ea0-\U00016eb8\U00016ebb-\U00016ed3\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001df00-\U0001df09\U0001df0b-\U0001df1e\U0001df25-\U0001df2a\U0001e030-\U0001e06d\U0001e900-\U0001e943\U0001f130-\U0001f149\U0001f150-\U0001f169\U0001f170-\U0001f189];
|
||||
Changes_When_Casefolded = [\x41-\x5a\xb5\xc0-\xd6\xd8-\xdf\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u0149-\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u017f\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4-\u01c5\u01c7-\u01c8\u01ca-\u01cb\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1-\u01f2\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0345\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03c2\u03cf-\u03d1\u03d5-\u03d6\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f0-\u03f1\u03f4-\u03f5\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u0587\u10a0-\u10c5\u10c7\u10cd\u13f8-\u13fd\u1c80-\u1c89\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9a-\u1e9b\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1f80-\u1faf\u1fb2-\u1fb4\u1fb7-\u1fbc\u1fc2-\u1fc4\u1fc7-\u1fcc\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff2-\u1ff4\u1ff7-\u1ffc\u2126\u212a-\u212b\u2132\u2160-\u216f\u2183\u24b6-\u24cf\u2c00-\u2c2f\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\ua7ba\ua7bc\ua7be\ua7c0\ua7c2\ua7c4-\ua7c7\ua7c9\ua7cb-\ua7cc\ua7ce\ua7d0\ua7d2\ua7d4\ua7d6\ua7d8\ua7da\ua7dc\ua7f5\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010c80-\U00010cb2\U00010d50-\U00010d65\U000118a0-\U000118bf\U00016e40-\U00016e5f\U00016ea0-\U00016eb8\U0001e900-\U0001e921];
|
||||
Changes_When_Casemapped = [\x41-\x5a\x61-\x7a\xb5\xc0-\xd6\xd8-\xf6\xf8-\u0137\u0139-\u018c\u018e-\u01a9\u01ac-\u01b9\u01bc-\u01bd\u01bf\u01c4-\u0220\u0222-\u0233\u023a-\u0254\u0256-\u0257\u0259\u025b-\u025c\u0260-\u0261\u0263-\u0266\u0268-\u026c\u026f\u0271-\u0272\u0275\u027d\u0280\u0282-\u0283\u0287-\u028c\u0292\u029d-\u029e\u0345\u0370-\u0373\u0376-\u0377\u037b-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03d1\u03d5-\u03f5\u03f7-\u03fb\u03fd-\u0481\u048a-\u052f\u0531-\u0556\u0561-\u0587\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fd-\u10ff\u13a0-\u13f5\u13f8-\u13fd\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1d79\u1d7d\u1d8e\u1e00-\u1e9b\u1e9e\u1ea0-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2126\u212a-\u212b\u2132\u214e\u2160-\u217f\u2183-\u2184\u24b6-\u24e9\u2c00-\u2c70\u2c72-\u2c73\u2c75-\u2c76\u2c7e-\u2ce3\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua640-\ua66d\ua680-\ua69b\ua722-\ua72f\ua732-\ua76f\ua779-\ua787\ua78b-\ua78d\ua790-\ua794\ua796-\ua7ae\ua7b0-\ua7dc\ua7f5-\ua7f6\uab53\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a\U00010400-\U0001044f\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d50-\U00010d65\U00010d70-\U00010d85\U000118a0-\U000118df\U00016e40-\U00016e7f\U00016ea0-\U00016eb8\U00016ebb-\U00016ed3\U0001e900-\U0001e943];
|
||||
Changes_When_Lowercased = [\x41-\x5a\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4-\u01c5\u01c7-\u01c8\u01ca-\u01cb\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1-\u01f2\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1c89\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fb8-\u1fbc\u1fc8-\u1fcc\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffc\u2126\u212a-\u212b\u2132\u2160-\u216f\u2183\u24b6-\u24cf\u2c00-\u2c2f\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\ua7ba\ua7bc\ua7be\ua7c0\ua7c2\ua7c4-\ua7c7\ua7c9\ua7cb-\ua7cc\ua7ce\ua7d0\ua7d2\ua7d4\ua7d6\ua7d8\ua7da\ua7dc\ua7f5\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010c80-\U00010cb2\U00010d50-\U00010d65\U000118a0-\U000118bf\U00016e40-\U00016e5f\U00016ea0-\U00016eb8\U0001e900-\U0001e921];
|
||||
Changes_When_Titlecased = [\x61-\x7a\xb5\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01ad\u01b0\u01b4\u01b6\u01b9\u01bd\u01bf\u01c4\u01c6-\u01c7\u01c9-\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f1\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0254\u0256-\u0257\u0259\u025b-\u025c\u0260-\u0261\u0263-\u0266\u0268-\u026c\u026f\u0271-\u0272\u0275\u027d\u0280\u0282-\u0283\u0287-\u028c\u0292\u029d-\u029e\u0345\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0561-\u0587\u13f8-\u13fd\u1c80-\u1c88\u1c8a\u1d79\u1d7d\u1d8e\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9b\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u214e\u2170-\u217f\u2184\u24d0-\u24e9\u2c30-\u2c5f\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c73\u2c76\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua791\ua793-\ua794\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7b5\ua7b7\ua7b9\ua7bb\ua7bd\ua7bf\ua7c1\ua7c3\ua7c8\ua7ca\ua7cd\ua7cf\ua7d1\ua7d3\ua7d5\ua7d7\ua7d9\ua7db\ua7f6\uab53\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010cc0-\U00010cf2\U00010d70-\U00010d85\U000118c0-\U000118df\U00016e60-\U00016e7f\U00016ebb-\U00016ed3\U0001e922-\U0001e943];
|
||||
Changes_When_Uppercased = [\x61-\x7a\xb5\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01ad\u01b0\u01b4\u01b6\u01b9\u01bd\u01bf\u01c5-\u01c6\u01c8-\u01c9\u01cb-\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f2-\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0254\u0256-\u0257\u0259\u025b-\u025c\u0260-\u0261\u0263-\u0266\u0268-\u026c\u026f\u0271-\u0272\u0275\u027d\u0280\u0282-\u0283\u0287-\u028c\u0292\u029d-\u029e\u0345\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0561-\u0587\u10d0-\u10fa\u10fd-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1c8a\u1d79\u1d7d\u1d8e\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9b\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fb7\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u1ffc\u214e\u2170-\u217f\u2184\u24d0-\u24e9\u2c30-\u2c5f\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c73\u2c76\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua791\ua793-\ua794\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7b5\ua7b7\ua7b9\ua7bb\ua7bd\ua7bf\ua7c1\ua7c3\ua7c8\ua7ca\ua7cd\ua7cf\ua7d1\ua7d3\ua7d5\ua7d7\ua7d9\ua7db\ua7f6\uab53\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010cc0-\U00010cf2\U00010d70-\U00010d85\U000118c0-\U000118df\U00016e60-\U00016e7f\U00016ebb-\U00016ed3\U0001e922-\U0001e943];
|
||||
Dash = [\x2d\u058a\u05be\u1400\u1806\u2010-\u2015\u2053\u207b\u208b\u2212\u2e17\u2e1a\u2e3a-\u2e3b\u2e40\u2e5d\u301c\u3030\u30a0\ufe31-\ufe32\ufe58\ufe63\uff0d\U00010d6e\U00010ead];
|
||||
Default_Ignorable_Code_Point = [\xad\u034f\u061c\u115f-\u1160\u17b4-\u17b5\u180b-\u180f\u200b-\u200f\u202a-\u202e\u2060-\u206f\u3164\ufe00-\ufe0f\ufeff\uffa0\ufff0-\ufff8\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0000-\U000e0fff];
|
||||
Deprecated = [\u0149\u0673\u0f77\u0f79\u17a3-\u17a4\u206a-\u206f\u2329-\u232a\U000e0001];
|
||||
Diacritic = [\x5e\x60\xa8\xaf\xb4\xb7-\xb8\u02b0-\u034e\u0350-\u0357\u035d-\u0362\u0374-\u0375\u037a\u0384-\u0385\u0483-\u0487\u0559\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u064b-\u0652\u0657-\u0658\u06df-\u06e0\u06e5-\u06e6\u06ea-\u06ec\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f5\u0818-\u0819\u0898-\u089f\u08c9-\u08d2\u08e3-\u08fe\u093c\u094d\u0951-\u0954\u0971\u09bc\u09cd\u0a3c\u0a4d\u0abc\u0acd\u0afd-\u0aff\u0b3c\u0b4d\u0b55\u0bcd\u0c3c\u0c4d\u0cbc\u0ccd\u0d3b-\u0d3c\u0d4d\u0dca\u0e3a\u0e47-\u0e4c\u0e4e\u0eba\u0ec8-\u0ecc\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f3e-\u0f3f\u0f82-\u0f84\u0f86-\u0f87\u0fc6\u1037\u1039-\u103a\u1063-\u1064\u1069-\u106d\u1087-\u108d\u108f\u109a-\u109b\u135d-\u135f\u1714-\u1715\u1734\u17c9-\u17d3\u17dd\u1939-\u193b\u1a60\u1a75-\u1a7c\u1a7f\u1ab0-\u1abe\u1ac1-\u1acb\u1acf-\u1add\u1ae0-\u1aeb\u1b34\u1b44\u1b6b-\u1b73\u1baa-\u1bab\u1be6\u1bf2-\u1bf3\u1c36-\u1c37\u1c78-\u1c7d\u1cd0-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1d2c-\u1d6a\u1d9b-\u1dbe\u1dc4-\u1dcf\u1df5-\u1dff\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u2cef-\u2cf1\u2e2f\u302a-\u302f\u3099-\u309c\u30fc\ua66f\ua67c-\ua67d\ua67f\ua69c-\ua69d\ua6f0-\ua6f1\ua700-\ua721\ua788-\ua78a\ua7f1\ua7f8-\ua7f9\ua806\ua82c\ua8c4\ua8e0-\ua8f1\ua92b-\ua92e\ua953\ua9b3\ua9c0\ua9e5\uaa7b-\uaa7d\uaabf-\uaac2\uaaf6\uab5b-\uab5f\uab69-\uab6b\uabec-\uabed\ufb1e\ufe20-\ufe2f\uff3e\uff40\uff70\uff9e-\uff9f\uffe3\U000102e0\U00010780-\U00010785\U00010787-\U000107b0\U000107b2-\U000107ba\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d22-\U00010d27\U00010d4e\U00010d69-\U00010d6d\U00010efa\U00010efd-\U00010eff\U00010f46-\U00010f50\U00010f82-\U00010f85\U00011046\U00011070\U000110b9-\U000110ba\U00011133-\U00011134\U00011173\U000111c0\U000111ca-\U000111cc\U00011235-\U00011236\U000112e9-\U000112ea\U0001133b-\U0001133c\U0001134d\U00011366-\U0001136c\U00011370-\U00011374\U000113ce-\U000113d0\U000113d2-\U000113d3\U000113e1-\U000113e2\U00011442\U00011446\U000114c2-\U000114c3\U000115bf-\U000115c0\U0001163f\U000116b6-\U000116b7\U0001172b\U00011839-\U0001183a\U0001193d-\U0001193e\U00011943\U000119e0\U00011a34\U00011a47\U00011a99\U00011c3f\U00011d42\U00011d44-\U00011d45\U00011d97\U00011dd9\U00011f41-\U00011f42\U00011f5a\U00013447-\U00013455\U0001612f\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016d6b-\U00016d6c\U00016f8f-\U00016f9f\U00016ff0-\U00016ff1\U0001aff0-\U0001aff3\U0001aff5-\U0001affb\U0001affd-\U0001affe\U0001cf00-\U0001cf2d\U0001cf30-\U0001cf46\U0001d167-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001e030-\U0001e06d\U0001e130-\U0001e136\U0001e2ae\U0001e2ec-\U0001e2ef\U0001e5ee-\U0001e5ef\U0001e8d0-\U0001e8d6\U0001e944-\U0001e946\U0001e948-\U0001e94a];
|
||||
Extender = [\xb7\u02d0-\u02d1\u0640\u07fa\u0a71\u0afb\u0b55\u0e46\u0ec6\u180a\u1843\u1aa7\u1c36\u1c7b\u3005\u3031-\u3035\u309d-\u309e\u30fc-\u30fe\ua015\ua60c\ua9cf\ua9e6\uaa70\uaadd\uaaf3-\uaaf4\uff70\U00010781-\U00010782\U00010d4e\U00010d6a\U00010d6f\U00011237\U0001135d\U000113d2-\U000113d3\U000115c6-\U000115c8\U00011a98\U00011dd9\U00016b42-\U00016b43\U00016fe0-\U00016fe1\U00016fe3\U00016ff2-\U00016ff3\U0001e13c-\U0001e13d\U0001e5ef\U0001e944-\U0001e946];
|
||||
Grapheme_Base = [\x20-\x7e\xa0-\xac\xae-\u02ff\u0370-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u0482\u048a-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u05be\u05c0\u05c3\u05c6\u05d0-\u05ea\u05ef-\u05f4\u0606-\u060f\u061b\u061d-\u064a\u0660-\u066f\u0671-\u06d5\u06de\u06e5-\u06e6\u06e9\u06ee-\u070d\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07c0-\u07ea\u07f4-\u07fa\u07fe-\u0815\u081a\u0824\u0828\u0830-\u083e\u0840-\u0858\u085e\u0860-\u086a\u0870-\u088f\u08a0-\u08c9\u0903-\u0939\u093b\u093d-\u0940\u0949-\u094c\u094e-\u0950\u0958-\u0961\u0964-\u0980\u0982-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09bf-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09ce\u09dc-\u09dd\u09df-\u09e1\u09e6-\u09fd\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3e-\u0a40\u0a59-\u0a5c\u0a5e\u0a66-\u0a6f\u0a72-\u0a74\u0a76\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac0\u0ac9\u0acb-\u0acc\u0ad0\u0ae0-\u0ae1\u0ae6-\u0af1\u0af9\u0b02-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b5c-\u0b5d\u0b5f-\u0b61\u0b66-\u0b77\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0be6-\u0bfa\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c41-\u0c44\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c61\u0c66-\u0c6f\u0c77-\u0c80\u0c82-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cbe\u0cc1\u0cc3-\u0cc4\u0cdc-\u0cde\u0ce0-\u0ce1\u0ce6-\u0cef\u0cf1-\u0cf3\u0d02-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d3f-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e-\u0d4f\u0d54-\u0d56\u0d58-\u0d61\u0d66-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dd0-\u0dd1\u0dd8-\u0dde\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e30\u0e32-\u0e33\u0e3f-\u0e46\u0e4f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f17\u0f1a-\u0f34\u0f36\u0f38\u0f3a-\u0f47\u0f49-\u0f6c\u0f7f\u0f85\u0f88-\u0f8c\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fda\u1000-\u102c\u1031\u1038\u103b-\u103c\u103f-\u1057\u105a-\u105d\u1061-\u1070\u1075-\u1081\u1083-\u1084\u1087-\u108c\u108e-\u109c\u109e-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1360-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1711\u171f-\u1731\u1735-\u1736\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17b6\u17be-\u17c5\u17c7-\u17c8\u17d4-\u17dc\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180a\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a16\u1a19-\u1a1a\u1a1e-\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1a80-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1b04-\u1b33\u1b3e-\u1b41\u1b45-\u1b4c\u1b4e-\u1b6a\u1b74-\u1b7f\u1b82-\u1ba1\u1ba6-\u1ba7\u1bae-\u1be5\u1be7\u1bea-\u1bec\u1bee\u1bfc-\u1c2b\u1c34-\u1c35\u1c3b-\u1c49\u1c4d-\u1c8a\u1c90-\u1cba\u1cbd-\u1cc7\u1cd3\u1ce1\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf7\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c1\u2100-\u218b\u2190-\u2429\u2440-\u244a\u2460-\u2b73\u2b76-\u2cee\u2cf2-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e00-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u3029\u3030-\u303f\u3041-\u3096\u309b-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e5\u31ef-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua66e\ua673\ua67e-\ua69d\ua6a0-\ua6ef\ua6f2-\ua6f7\ua700-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua824\ua827-\ua82b\ua830-\ua839\ua840-\ua877\ua880-\ua8c3\ua8ce-\ua8d9\ua8f2-\ua8fe\ua900-\ua925\ua92e-\ua946\ua952\ua95f-\ua97c\ua983-\ua9b2\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9be-\ua9bf\ua9c1-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9e4\ua9e6-\ua9fe\uaa00-\uaa28\uaa2f-\uaa30\uaa33-\uaa34\uaa40-\uaa42\uaa44-\uaa4b\uaa4d\uaa50-\uaa59\uaa5c-\uaa7b\uaa7d-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaaeb\uaaee-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabe4\uabe6-\uabe7\uabe9-\uabec\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufLine truncated
|
||||
Grapheme_Extend = [\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3e-\u0b3f\u0b41-\u0b44\u0b4d\u0b55-\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c04\u0c3c\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf-\u0cc0\u0cc2\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0d81\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1715\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u180f\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1add\u1ae0-\u1aeb\u1b00-\u1b03\u1b34-\u1b3d\u1b42-\u1b44\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf3\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1dff\u200c\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099-\u309a\ua66f-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua82c\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua953\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc-\ua9bd\ua9c0\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010d69-\U00010d6d\U00010eab-\U00010eac\U00010efa-\U00010eff\U00010f46-\U00010f50\U00010f82-\U00010f85\U00011001\U00011038-\U00011046\U00011070\U00011073-\U00011074\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U000110c2\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c0\U000111c9-\U000111cc\U000111cf\U0001122f-\U00011231\U00011234-\U00011237\U0001123e\U00011241\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U0001133e\U00011340\U0001134d\U00011357\U00011366-\U0001136c\U00011370-\U00011374\U000113b8\U000113bb-\U000113c0\U000113c2\U000113c5\U000113c7-\U000113c9\U000113ce-\U000113d0\U000113d2\U000113e1-\U000113e2\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b0\U000114b3-\U000114b8\U000114ba\U000114bd\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115af\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b7\U0001171d\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U00011930\U0001193b-\U0001193e\U00011943\U000119d4-\U000119d7\U000119da-\U000119db\U000119e0\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011b60\U00011b62-\U00011b64\U00011b66\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d90-\U00011d91\U00011d95\U00011d97\U00011ef3-\U00011ef4\U00011f00-\U00011f01\U00011f36-\U00011f3a\U00011f40-\U00011f42\U00011f5a\U00013440\U00013447-\U00013455\U0001611e-\U00016129\U0001612d-\U0001612f\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f4f\U00016f8f-\U00016f92\U00016fe4\U00016ff0-\U00016ff1\U0001bc9d-\U0001bc9e\U0001cf00-\U0001cf2d\U0001cf30-\U0001cf46\U0001d165-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e08f\U0001e130-\U0001e136\U0001e2ae\U0001e2ec-\U0001e2ef\U0001e4ec-\U0001e4ef\U0001e5ee-\U0001e5ef\U0001e6e3\U0001e6Line truncated
|
||||
Grapheme_Link = [\u094d\u09cd\u0a4d\u0acd\u0b4d\u0bcd\u0c4d\u0ccd\u0d3b-\u0d3c\u0d4d\u0dca\u0e3a\u0eba\u0f84\u1039-\u103a\u1714-\u1715\u1734\u17d2\u1a60\u1b44\u1baa-\u1bab\u1bf2-\u1bf3\u2d7f\ua806\ua82c\ua8c4\ua953\ua9c0\uaaf6\uabed\U00010a3f\U00011046\U00011070\U0001107f\U000110b9\U00011133-\U00011134\U000111c0\U00011235\U000112ea\U0001134d\U000113ce-\U000113d0\U00011442\U000114c2\U000115bf\U0001163f\U000116b6\U0001172b\U00011839\U0001193d-\U0001193e\U000119e0\U00011a34\U00011a47\U00011a99\U00011c3f\U00011d44-\U00011d45\U00011d97\U00011f41-\U00011f42\U0001612f];
|
||||
Hex_Digit = [\x30-\x39\x41-\x46\x61-\x66\uff10-\uff19\uff21-\uff26\uff41-\uff46];
|
||||
Hyphen = [\x2d\xad\u058a\u1806\u2010-\u2011\u2e17\u30fb\ufe63\uff0d\uff65];
|
||||
IDS_Binary_Operator = [\u2ff0-\u2ff1\u2ff4-\u2ffd\u31ef];
|
||||
IDS_Trinary_Operator = [\u2ff2-\u2ff3];
|
||||
IDS_Unary_Operator = [\u2ffe-\u2fff];
|
||||
ID_Compat_Math_Continue = [\xb2-\xb3\xb9\u2070\u2074-\u207e\u2080-\u208e\u2202\u2207\u221e\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3];
|
||||
ID_Compat_Math_Start = [\u2202\u2207\u221e\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3];
|
||||
ID_Continue = [\x30-\x39\x41-\x5a\x5f\x61-\x7a\xaa\xb5\xb7\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u0870-\u0887\u0889-\u088f\u0897-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdc-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1715\u171f-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b4c\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c-\u200d\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua827\ua82c\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff6Line truncated
|
||||
ID_Start = [\x41-\x5a\x61-\x7a\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U000105c0-\U000105f3\U00010600-\U00010736\U00010740-\U0001Line truncated
|
||||
Ideographic = [\u3006-\u3007\u3021-\u3029\u3038-\u303a\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufa6d\ufa70-\ufad9\U00016fe4\U00016ff2-\U00016ff6\U00017000-\U00018cd5\U00018cff-\U00018d1e\U00018d80-\U00018df2\U0001b170-\U0001b2fb\U00020000-\U0002a6df\U0002a700-\U0002b81d\U0002b820-\U0002cead\U0002ceb0-\U0002ebe0\U0002ebf0-\U0002ee5d\U0002f800-\U0002fa1d\U00030000-\U0003134a\U00031350-\U00033479];
|
||||
Indic_Conjunct_Break = [\u094d\u09cd\u0acd\u0b4d\u0c4d\u0d4d\u1039\u17d2\u1a60\u1b44\u1bab\ua9c0\uaaf6\U00010a3f\U00011133\U000113d0\U0001193e\U00011a47\U00011a99\U00011f42\u0915-\u0939\u0958-\u095f\u0978-\u097f\u0995-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09dc-\u09dd\u09df\u09f0-\u09f1\u0a95-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0af9\u0b15-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b5c-\u0b5d\u0b5f\u0b71\u0c15-\u0c28\u0c2a-\u0c39\u0c58-\u0c5a\u0d15-\u0d3a\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u1780-\u17b3\u1a20-\u1a54\u1b0b-\u1b0c\u1b13-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae-\u1baf\u1bbb-\u1bbd\ua989-\ua98b\ua98f-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa60-\uaa6f\uaa71-\uaa73\uaa7a\uaa7e-\uaa7f\uaae0-\uaaea\uabc0-\uabda\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00011103-\U00011126\U00011144\U00011147\U00011380-\U00011389\U0001138b\U0001138e\U00011390-\U000113b5\U00011900-\U00011906\U00011909\U0001190c-\U00011913\U00011915-\U00011916\U00011918-\U0001192f\U00011a00\U00011a0b-\U00011a32\U00011a50\U00011a5c-\U00011a83\U00011f04-\U00011f10\U00011f12-\U00011f33\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09d7\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3e-\u0b3f\u0b41-\u0b44\u0b55-\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c04\u0c3c\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4c\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf-\u0cc0\u0cc2\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d3e\u0d41-\u0d44\u0d57\u0d62-\u0d63\u0d81\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1715\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d1\u17d3\u17dd\u180b-\u180d\u180f\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1add\u1ae0-\u1aeb\u1b00-\u1b03\u1b34-\u1b3d\u1b42-\u1b43\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1baa\u1bac-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf3\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1dff\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099-\u309a\ua66f-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua82c\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua953\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc-\ua9bd\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010d69-\U00010d6d\U00010eab-\U00010eac\U00010efa-\U00010eff\U00010f46-\U00010f50\U00010f82-\U00010f85\U00011001\U00011038-\U00011046\U00011070\U00011073-\U00011074\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U000110c2\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011132\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c0\U000111c9-\U000111cc\U000111cf\U0001122f-\U00011231\U00011234-\U00011237\U0001123e\U00011241\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U0001133e\U00011340\U0001134d\U00011357\U00011366-\U0001136c\U00011370-\U00011374\U000113b8\U000113bb-\U000113c0\U000113c2\U000113c5\U000113c7-\U000113c9\U000113ce-\U000113cf\U000113d2\U000113e1-\U000113e2\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b0\U000114b3-\U000114b8\U000114ba\U000114bd\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115af\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b7\U0001171d\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U00011930\U0001193b-\U0001193d\U00011943\U000119d4-\U000119d7\U000119da-\U000119db\U000119e0\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U0Line truncated
|
||||
Join_Control = [\u200c-\u200d];
|
||||
Logical_Order_Exception = [\u0e40-\u0e44\u0ec0-\u0ec4\u19b5-\u19b7\u19ba\uaab5-\uaab6\uaab9\uaabb-\uaabc];
|
||||
Lowercase = [\x61-\x7a\xaa\xb5\xba\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0296-\u02b8\u02c0-\u02c1\u02e0-\u02e4\u0345\u0371\u0373\u0377\u037a-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0560-\u0588\u10d0-\u10fa\u10fc-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1c8a\u1d00-\u1dbf\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u2071\u207f\u2090-\u209c\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2170-\u217f\u2184\u24d0-\u24e9\u2c30-\u2c5f\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7d\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b-\ua69d\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7af\ua7b5\ua7b7\ua7b9\ua7bb\ua7bd\ua7bf\ua7c1\ua7c3\ua7c8\ua7ca\ua7cd\ua7cf\ua7d1\ua7d3\ua7d5\ua7d7\ua7d9\ua7db\ua7f1-\ua7f4\ua7f6\ua7f8-\ua7fa\uab30-\uab5a\uab5c-\uab69\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U00010780\U00010783-\U00010785\U00010787-\U000107b0\U000107b2-\U000107ba\U00010cc0-\U00010cf2\U00010d70-\U00010d85\U000118c0-\U000118df\U00016e60-\U00016e7f\U00016ebb-\U00016ed3\U0001d41a-\U0001d433\U0001d44e-\U0001d454\U0001d456-\U0001d467\U0001d482-\U0001d49b\U0001d4b6-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d4cf\U0001d4ea-\U0001d503\U0001d51e-\U0001d537\U0001d552-\U0001d56b\U0001d586-\U0001d59f\U0001d5ba-\U0001d5d3\U0001d5ee-\U0001d607\U0001d622-\U0001d63b\U0001d656-\U0001d66f\U0001d68a-\U0001d6a5\U0001d6c2-\U0001d6da\U0001d6dc-\ULine truncated
|
||||
Math = [\x2b\x3c-\x3e\x5e\x7c\x7e\xac\xb1\xd7\xf7\u03d0-\u03d2\u03d5\u03f0-\u03f1\u03f4-\u03f6\u0606-\u0608\u2016\u2032-\u2034\u2040\u2044\u2052\u2061-\u2064\u207a-\u207e\u208a-\u208e\u20d0-\u20dc\u20e1\u20e5-\u20e6\u20eb-\u20ef\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2128-\u2129\u212c-\u212d\u212f-\u2131\u2133-\u2138\u213c-\u2149\u214b\u2190-\u21a7\u21a9-\u21ae\u21b0-\u21b1\u21b6-\u21b7\u21bc-\u21db\u21dd\u21e4-\u21e5\u21f4-\u22ff\u2308-\u230b\u2320-\u2321\u237c\u239b-\u23b5\u23b7\u23d0\u23dc-\u23e2\u25a0-\u25a1\u25ae-\u25b7\u25bc-\u25c1\u25c6-\u25c7\u25ca-\u25cb\u25cf-\u25d3\u25e2\u25e4\u25e7-\u25ec\u25f8-\u25ff\u2605-\u2606\u2640\u2642\u2660-\u2663\u266d-\u266f\u27c0-\u27ff\u2900-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe61-\ufe66\ufe68\uff0b\uff1c-\uff1e\uff3c\uff3e\uff5c\uff5e\uffe2\uffe9-\uffec\U00010d8e-\U00010d8f\U0001cef0\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d7cb\U0001d7ce-\U0001d7ff\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U0001eef0-\U0001eef1\U0001f8d0-\U0001f8d8];
|
||||
Modifier_Combining_Mark = [\u0654-\u0655\u0658\u06dc\u06e3\u06e7-\u06e8\u08ca-\u08cb\u08cd-\u08cf\u08d3\u08f3];
|
||||
Noncharacter_Code_Point = [\ufdd0-\ufdef\ufffe-\uffff\U0001fffe-\U0001ffff\U0002fffe-\U0002ffff\U0003fffe-\U0003ffff\U0004fffe-\U0004ffff\U0005fffe-\U0005ffff\U0006fffe-\U0006ffff\U0007fffe-\U0007ffff\U0008fffe-\U0008ffff\U0009fffe-\U0009ffff\U000afffe-\U000affff\U000bfffe-\U000bffff\U000cfffe-\U000cffff\U000dfffe-\U000dffff\U000efffe-\U000effff\U000ffffe-\U000fffff\U0010fffe-\U0010ffff];
|
||||
Other_Alphabetic = [\u0345\u0363-\u036f\u05b0-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u0657\u0659-\u065f\u0670\u06d6-\u06dc\u06e1-\u06e4\u06e7-\u06e8\u06ed\u0711\u0730-\u073f\u07a6-\u07b0\u0816-\u0817\u081b-\u0823\u0825-\u0827\u0829-\u082c\u0897\u08d4-\u08df\u08e3-\u08e9\u08f0-\u0903\u093a-\u093b\u093e-\u094c\u094e-\u094f\u0955-\u0957\u0962-\u0963\u0981-\u0983\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cc\u09d7\u09e2-\u09e3\u0a01-\u0a03\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4c\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a83\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acc\u0ae2-\u0ae3\u0afa-\u0afc\u0b01-\u0b03\u0b3e-\u0b44\u0b47-\u0b48\u0b4b-\u0b4c\u0b56-\u0b57\u0b62-\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4c\u0c55-\u0c56\u0c62-\u0c63\u0c81-\u0c83\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccc\u0cd5-\u0cd6\u0ce2-\u0ce3\u0cf3\u0d00-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d62-\u0d63\u0d81-\u0d83\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e31\u0e34-\u0e3a\u0e4d\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ecd\u0f71-\u0f83\u0f8d-\u0f97\u0f99-\u0fbc\u102b-\u1036\u1038\u103b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u1712-\u1713\u1732-\u1733\u1752-\u1753\u1772-\u1773\u17b6-\u17c8\u1885-\u1886\u18a9\u1920-\u192b\u1930-\u1938\u1a17-\u1a1b\u1a55-\u1a5e\u1a61-\u1a74\u1abf-\u1ac0\u1acc-\u1ace\u1b00-\u1b04\u1b35-\u1b43\u1b80-\u1b82\u1ba1-\u1ba9\u1bac-\u1bad\u1be7-\u1bf1\u1c24-\u1c36\u1dd3-\u1df4\u24b6-\u24e9\u2de0-\u2dff\ua674-\ua67b\ua69e-\ua69f\ua802\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c3\ua8c5\ua8ff\ua926-\ua92a\ua947-\ua952\ua980-\ua983\ua9b4-\ua9bf\ua9e5\uaa29-\uaa36\uaa43\uaa4c-\uaa4d\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe\uaaeb-\uaaef\uaaf5\uabe3-\uabea\ufb1e\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010d24-\U00010d27\U00010d69\U00010eab-\U00010eac\U00010efa-\U00010efc\U00011000-\U00011002\U00011038-\U00011045\U00011073-\U00011074\U00011080-\U00011082\U000110b0-\U000110b8\U000110c2\U00011100-\U00011102\U00011127-\U00011132\U00011145-\U00011146\U00011180-\U00011182\U000111b3-\U000111bf\U000111ce-\U000111cf\U0001122c-\U00011234\U00011237\U0001123e\U00011241\U000112df-\U000112e8\U00011300-\U00011303\U0001133e-\U00011344\U00011347-\U00011348\U0001134b-\U0001134c\U00011357\U00011362-\U00011363\U000113b8-\U000113c0\U000113c2\U000113c5\U000113c7-\U000113ca\U000113cc-\U000113cd\U00011435-\U00011441\U00011443-\U00011445\U000114b0-\U000114c1\U000115af-\U000115b5\U000115b8-\U000115be\U000115dc-\U000115dd\U00011630-\U0001163e\U00011640\U000116ab-\U000116b5\U0001171d-\U0001172a\U0001182c-\U00011838\U00011930-\U00011935\U00011937-\U00011938\U0001193b-\U0001193c\U00011940\U00011942\U000119d1-\U000119d7\U000119da-\U000119df\U000119e4\U00011a01-\U00011a0a\U00011a35-\U00011a39\U00011a3b-\U00011a3e\U00011a51-\U00011a5b\U00011a8a-\U00011a97\U00011b60-\U00011b67\U00011c2f-\U00011c36\U00011c38-\U00011c3e\U00011c92-\U00011ca7\U00011ca9-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d41\U00011d43\U00011d47\U00011d8a-\U00011d8e\U00011d90-\U00011d91\U00011d93-\U00011d96\U00011ef3-\U00011ef6\U00011f00-\U00011f01\U00011f03\U00011f34-\U00011f3a\U00011f3e-\U00011f40\U0001611e-\U0001612e\U00016f4f\U00016f51-\U00016f87\U00016f8f-\U00016f92\U00016ff0-\U00016ff1\U0001bc9e\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e08f\U0001e6e3\U0001e6e6\U0001e6ee-\U0001e6ef\U0001e6f5\U0001e947\U0001f130-\U0001f149\U0001f150-\U0001f169\U0001f170-\U0001f189];
|
||||
Other_Default_Ignorable_Code_Point = [\u034f\u115f-\u1160\u17b4-\u17b5\u2065\u3164\uffa0\ufff0-\ufff8\U000e0000\U000e0002-\U000e001f\U000e0080-\U000e00ff\U000e01f0-\U000e0fff];
|
||||
Other_Grapheme_Extend = [\u09be\u09d7\u0b3e\u0b57\u0bbe\u0bd7\u0cc0\u0cc2\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d3e\u0d57\u0dcf\u0ddf\u1715\u1734\u1b35\u1b3b\u1b3d\u1b43-\u1b44\u1baa\u1bf2-\u1bf3\u200c\u302e-\u302f\ua953\ua9c0\uff9e-\uff9f\U000111c0\U00011235\U0001133e\U0001134d\U00011357\U000113b8\U000113c2\U000113c5\U000113c7-\U000113c9\U000113cf\U000114b0\U000114bd\U000115af\U000116b6\U00011930\U0001193d\U00011f41\U00016ff0-\U00016ff1\U0001d165-\U0001d166\U0001d16d-\U0001d172\U000e0020-\U000e007f];
|
||||
Other_ID_Continue = [\xb7\u0387\u1369-\u1371\u19da\u200c-\u200d\u30fb\uff65];
|
||||
Other_ID_Start = [\u1885-\u1886\u2118\u212e\u309b-\u309c];
|
||||
Other_Lowercase = [\xaa\xba\u02b0-\u02b8\u02c0-\u02c1\u02e0-\u02e4\u0345\u037a\u10fc\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2170-\u217f\u24d0-\u24e9\u2c7c-\u2c7d\ua69c-\ua69d\ua770\ua7f1-\ua7f4\ua7f8-\ua7f9\uab5c-\uab5f\uab69\U00010780\U00010783-\U00010785\U00010787-\U000107b0\U000107b2-\U000107ba\U0001e030-\U0001e06d];
|
||||
Other_Math = [\x5e\u03d0-\u03d2\u03d5\u03f0-\u03f1\u03f4-\u03f5\u2016\u2032-\u2034\u2040\u2061-\u2064\u207d-\u207e\u208d-\u208e\u20d0-\u20dc\u20e1\u20e5-\u20e6\u20eb-\u20ef\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2128-\u2129\u212c-\u212d\u212f-\u2131\u2133-\u2138\u213c-\u213f\u2145-\u2149\u2195-\u2199\u219c-\u219f\u21a1-\u21a2\u21a4-\u21a5\u21a7\u21a9-\u21ad\u21b0-\u21b1\u21b6-\u21b7\u21bc-\u21cd\u21d0-\u21d1\u21d3\u21d5-\u21db\u21dd\u21e4-\u21e5\u2308-\u230b\u23b4-\u23b5\u23b7\u23d0\u23e2\u25a0-\u25a1\u25ae-\u25b6\u25bc-\u25c0\u25c6-\u25c7\u25ca-\u25cb\u25cf-\u25d3\u25e2\u25e4\u25e7-\u25ec\u2605-\u2606\u2640\u2642\u2660-\u2663\u266d-\u266e\u27c5-\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc-\u29fd\ufe61\ufe63\ufe68\uff3c\uff3e\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001d7ce-\U0001d7ff\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb];
|
||||
Other_Uppercase = [\u2160-\u216f\u24b6-\u24cf\U0001f130-\U0001f149\U0001f150-\U0001f169\U0001f170-\U0001f189];
|
||||
Pattern_Syntax = [\x21-\x2f\x3a-\x40\x5b-\x5e\x60\x7b-\x7e\xa1-\xa7\xa9\xab-\xac\xae\xb0-\xb1\xb6\xbb\xbf\xd7\xf7\u2010-\u2027\u2030-\u203e\u2041-\u2053\u2055-\u205e\u2190-\u245f\u2500-\u2775\u2794-\u2bff\u2e00-\u2e7f\u3001-\u3003\u3008-\u3020\u3030\ufd3e-\ufd3f\ufe45-\ufe46];
|
||||
Pattern_White_Space = [\x09-\x0d\x20\x85\u200e-\u200f\u2028-\u2029];
|
||||
Prepended_Concatenation_Mark = [\u0600-\u0605\u06dd\u070f\u0890-\u0891\u08e2\U000110bd\U000110cd];
|
||||
Quotation_Mark = [\x22\x27\xab\xbb\u2018-\u201f\u2039-\u203a\u2e42\u300c-\u300f\u301d-\u301f\ufe41-\ufe44\uff02\uff07\uff62-\uff63];
|
||||
Radical = [\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5];
|
||||
Regional_Indicator = [\U0001f1e6-\U0001f1ff];
|
||||
Sentence_Terminal = [\x21\x2e\x3f\u0589\u061d-\u061f\u06d4\u0700-\u0702\u07f9\u0837\u0839\u083d-\u083e\u0964-\u0965\u104a-\u104b\u1362\u1367-\u1368\u166e\u1735-\u1736\u17d4-\u17d5\u1803\u1809\u1944-\u1945\u1aa8-\u1aab\u1b4e-\u1b4f\u1b5a-\u1b5b\u1b5e-\u1b5f\u1b7d-\u1b7f\u1c3b-\u1c3c\u1c7e-\u1c7f\u2024\u203c-\u203d\u2047-\u2049\u2cf9-\u2cfb\u2e2e\u2e3c\u2e53-\u2e54\u3002\ua4ff\ua60e-\ua60f\ua6f3\ua6f7\ua876-\ua877\ua8ce-\ua8cf\ua92f\ua9c8-\ua9c9\uaa5d-\uaa5f\uaaf0-\uaaf1\uabeb\ufe12\ufe15-\ufe16\ufe52\ufe56-\ufe57\uff01\uff0e\uff1f\uff61\U00010a56-\U00010a57\U00010f55-\U00010f59\U00010f86-\U00010f89\U00011047-\U00011048\U000110be-\U000110c1\U00011141-\U00011143\U000111c5-\U000111c6\U000111cd\U000111de-\U000111df\U00011238-\U00011239\U0001123b-\U0001123c\U000112a9\U000113d4-\U000113d5\U0001144b-\U0001144c\U000115c2-\U000115c3\U000115c9-\U000115d7\U00011641-\U00011642\U0001173c-\U0001173e\U00011944\U00011946\U00011a42-\U00011a43\U00011a9b-\U00011a9c\U00011c41-\U00011c42\U00011ef7-\U00011ef8\U00011f43-\U00011f44\U00016a6e-\U00016a6f\U00016af5\U00016b37-\U00016b38\U00016b44\U00016d6e-\U00016d6f\U00016e98\U0001bc9f\U0001da88];
|
||||
Soft_Dotted = [\x69-\x6a\u012f\u0249\u0268\u029d\u02b2\u03f3\u0456\u0458\u1d62\u1d96\u1da4\u1da8\u1e2d\u1ecb\u2071\u2148-\u2149\u2c7c\U0001d422-\U0001d423\U0001d456-\U0001d457\U0001d48a-\U0001d48b\U0001d4be-\U0001d4bf\U0001d4f2-\U0001d4f3\U0001d526-\U0001d527\U0001d55a-\U0001d55b\U0001d58e-\U0001d58f\U0001d5c2-\U0001d5c3\U0001d5f6-\U0001d5f7\U0001d62a-\U0001d62b\U0001d65e-\U0001d65f\U0001d692-\U0001d693\U0001df1a\U0001e04c-\U0001e04d\U0001e068];
|
||||
Terminal_Punctuation = [\x21\x2c\x2e\x3a-\x3b\x3f\u037e\u0387\u0589\u05c3\u060c\u061b\u061d-\u061f\u06d4\u0700-\u070a\u070c\u07f8-\u07f9\u0830-\u0835\u0837-\u083e\u085e\u0964-\u0965\u0e5a-\u0e5b\u0f08\u0f0d-\u0f12\u104a-\u104b\u1361-\u1368\u166e\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17da\u1802-\u1805\u1808-\u1809\u1944-\u1945\u1aa8-\u1aab\u1b4e-\u1b4f\u1b5a-\u1b5b\u1b5d-\u1b5f\u1b7d-\u1b7f\u1c3b-\u1c3f\u1c7e-\u1c7f\u2024\u203c-\u203d\u2047-\u2049\u2cf9-\u2cfb\u2e2e\u2e3c\u2e41\u2e4c\u2e4e-\u2e4f\u2e53-\u2e54\u3001-\u3002\ua4fe-\ua4ff\ua60d-\ua60f\ua6f3-\ua6f7\ua876-\ua877\ua8ce-\ua8cf\ua92f\ua9c7-\ua9c9\uaa5d-\uaa5f\uaadf\uaaf0-\uaaf1\uabeb\ufe12\ufe15-\ufe16\ufe50-\ufe52\ufe54-\ufe57\uff01\uff0c\uff0e\uff1a-\uff1b\uff1f\uff61\uff64\U0001039f\U000103d0\U00010857\U0001091f\U00010a56-\U00010a57\U00010af0-\U00010af5\U00010b3a-\U00010b3f\U00010b99-\U00010b9c\U00010f55-\U00010f59\U00010f86-\U00010f89\U00011047-\U0001104d\U000110be-\U000110c1\U00011141-\U00011143\U000111c5-\U000111c6\U000111cd\U000111de-\U000111df\U00011238-\U0001123c\U000112a9\U000113d4-\U000113d5\U0001144b-\U0001144d\U0001145a-\U0001145b\U000115c2-\U000115c5\U000115c9-\U000115d7\U00011641-\U00011642\U0001173c-\U0001173e\U00011944\U00011946\U00011a42-\U00011a43\U00011a9b-\U00011a9c\U00011aa1-\U00011aa2\U00011c41-\U00011c43\U00011c71\U00011ef7-\U00011ef8\U00011f43-\U00011f44\U00012470-\U00012474\U00016a6e-\U00016a6f\U00016af5\U00016b37-\U00016b39\U00016b44\U00016d6e-\U00016d6f\U00016e97-\U00016e98\U0001bc9f\U0001da87-\U0001da8a];
|
||||
Unified_Ideograph = [\u3400-\u4dbf\u4e00-\u9fff\ufa0e-\ufa0f\ufa11\ufa13-\ufa14\ufa1f\ufa21\ufa23-\ufa24\ufa27-\ufa29\U00020000-\U0002a6df\U0002a700-\U0002b81d\U0002b820-\U0002cead\U0002ceb0-\U0002ebe0\U0002ebf0-\U0002ee5d\U00030000-\U0003134a\U00031350-\U00033479];
|
||||
Uppercase = [\x41-\x5a\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1c89\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2160-\u216f\u2183\u24b6-\u24cf\u2c00-\u2c2f\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\ua7ba\ua7bc\ua7be\ua7c0\ua7c2\ua7c4-\ua7c7\ua7c9\ua7cb-\ua7cc\ua7ce\ua7d0\ua7d2\ua7d4\ua7d6\ua7d8\ua7da\ua7dc\ua7f5\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010c80-\U00010cb2\U00010d50-\U00010d65\U000118a0-\U000118bf\U00016e40-\U00016e5f\U00016ea0-\U00016eb8\U0001d400-\U0001d419\U0001d434-\U0001d44d\U0001d468-\U0001d481\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b5\U0001d4d0-\U0001d4e9\U0001d504-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d538-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d56c-\U0001d585\U0001d5a0-\U0001d5b9\U0001d5d4-\U0001d5ed\U0001d608-\U0001d621\U0001d63c-\U0001d655\U0001d670-\U0001d689\U0001d6a8-\U0001d6c0\U0001d6e2-\U0001d6fa\U0001d71c-\U0001d734\U0001d756-\U0001d76e\U0001d790-\U0001d7a8\U0001d7ca\U0001e900-\U0001e921\U0001f130-\U0001f149Line truncated
|
||||
Variation_Selector = [\u180b-\u180d\u180f\ufe00-\ufe0f\U000e0100-\U000e01ef];
|
||||
White_Space = [\x09-\x0d\x20\x85\xa0\u1680\u2000-\u200a\u2028-\u2029\u202f\u205f\u3000];
|
||||
XID_Continue = [\x30-\x39\x41-\x5a\x5f\x61-\x7a\xaa\xb5\xb7\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u0870-\u0887\u0889-\u088f\u0897-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdc-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1715\u171f-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b4c\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c-\u200d\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309a\u309d-\u309f\u30a1-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua827\ua82c\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefcLine truncated
|
||||
XID_Start = [\x41-\x5a\x61-\x7a\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c-\u0c5d\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010570-\U0001057a\U0001057c-\U0001058a\U0001058c-\U00010592\U00010594-\U00010595\U00010597-\U000105a1\U000105a3-\U000105b1\U000105b3-\U000105b9\U000105bb-\U000105bc\U000105c0-\U000105f3\ULine truncated
|
||||
*/
|
||||
+2
-2
@@ -35,7 +35,7 @@ int regexec_dfa(
|
||||
|
||||
for (;;) {
|
||||
s = dfa->states[i];
|
||||
const int32_t c = *p++;
|
||||
const size_t c = static_cast<uint8_t>(*p++);
|
||||
const size_t j = preg->char2class[c];
|
||||
i = s->arcs[j];
|
||||
|
||||
@@ -102,7 +102,7 @@ subhistory_t* regparse_dfa(const regex_t* preg, const char* string, size_t nmatc
|
||||
|
||||
for (;;) {
|
||||
s = dfa->states[i];
|
||||
const int32_t c = *p++;
|
||||
const size_t c = static_cast<uint8_t>(*p++);
|
||||
const size_t j = preg->char2class[c];
|
||||
i = s->arcs[j];
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ static MpTdfaBacklink forward_pass(const regex_t* preg, const char* string, size
|
||||
|
||||
log.clear();
|
||||
for (size_t stidx = 0;;) {
|
||||
const int32_t chr = *strptr++;
|
||||
const size_t chr = static_cast<uint8_t>(*strptr++);
|
||||
const size_t cls = preg->char2class[chr];
|
||||
|
||||
const MpTdfaState* state = states[stidx];
|
||||
|
||||
+24
-5
@@ -199,6 +199,12 @@ struct CodeSwitch {
|
||||
CodeCases* cases;
|
||||
};
|
||||
|
||||
struct CodeLoop {
|
||||
const char* init;
|
||||
CodeCases* cases;
|
||||
CodeList* body;
|
||||
};
|
||||
|
||||
struct CodeBlock {
|
||||
enum class Kind: uint32_t {
|
||||
WRAPPED,
|
||||
@@ -245,6 +251,11 @@ struct CodeCgoto {
|
||||
const char* index;
|
||||
};
|
||||
|
||||
struct CodeContinue {
|
||||
const char* label;
|
||||
const char* value;
|
||||
};
|
||||
|
||||
struct CodeParam {
|
||||
const char* name;
|
||||
const char* type;
|
||||
@@ -324,6 +335,7 @@ struct Code {
|
||||
CodeSwitch swch;
|
||||
CodeBlock block;
|
||||
CodeCgoto cgoto;
|
||||
CodeContinue cont;
|
||||
CodeFnDef fndef;
|
||||
CodeFnCall fncall;
|
||||
CodeRaw raw;
|
||||
@@ -335,7 +347,7 @@ struct Code {
|
||||
CodeLabel label;
|
||||
CodeDebug debug;
|
||||
CodeTag tag;
|
||||
CodeList* loop;
|
||||
CodeLoop loop;
|
||||
CodeList* rfuncs;
|
||||
loc_t loc;
|
||||
size_t accept;
|
||||
@@ -383,15 +395,22 @@ inline Code* code_cgoto(OutAllocator& alc, const char* array, const char* base,
|
||||
return x;
|
||||
}
|
||||
|
||||
inline Code* code_continue(OutAllocator& alc, const char* target) {
|
||||
inline Code* code_continue(OutAllocator& alc, const char* label, const char* value = nullptr) {
|
||||
Code* x = new_code(alc, CodeKind::CONTINUE);
|
||||
x->target = target;
|
||||
x->cont.label = label;
|
||||
x->cont.value = value;
|
||||
return x;
|
||||
}
|
||||
|
||||
inline Code* code_loop(OutAllocator& alc, CodeList* loop) {
|
||||
inline Code* code_loop(
|
||||
OutAllocator& alc,
|
||||
CodeList* body,
|
||||
const char* init = nullptr,
|
||||
CodeCases* cases = nullptr) {
|
||||
Code* x = new_code(alc, CodeKind::LOOP);
|
||||
x->loop = loop;
|
||||
x->loop.init = init;
|
||||
x->loop.cases = cases;
|
||||
x->loop.body = body;
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
@@ -478,14 +478,33 @@ void expand_fintags(Output& output, const Tag& tag, std::vector<const char*>& fi
|
||||
}
|
||||
}
|
||||
|
||||
static void gen_continue_yyloop(Output& output, CodeList* stmts, const char* next) {
|
||||
static void gen_continue_yyswitch(Output& output, CodeList* stmts, const char* next) {
|
||||
const opt_t* opts = output.block().opts;
|
||||
OutAllocator& alc = output.allocator;
|
||||
|
||||
append(stmts, code_assign(alc, opts->var_state.c_str(), next));
|
||||
|
||||
const char* label = opts->label_loop.empty() ? nullptr : opts->label_loop.c_str();
|
||||
append(stmts, code_continue(alc, label));
|
||||
if (opts->computed_continue) {
|
||||
append(stmts, code_continue(alc, label, next));
|
||||
} else {
|
||||
append(stmts, code_assign(alc, opts->var_state.c_str(), next));
|
||||
append(stmts, code_continue(alc, label));
|
||||
}
|
||||
}
|
||||
|
||||
static const char* gen_yyswitch_state(Output& output, const Label& label) {
|
||||
const opt_t* opts = output.block().opts;
|
||||
Scratchbuf& o = output.scratchbuf;
|
||||
|
||||
if (opts->computed_continue) {
|
||||
// Computed-continue uses state labels as enum fields, so prefix them to
|
||||
// turn the numeric labels into valid identifiers.
|
||||
o.str(opts->label_prefix);
|
||||
}
|
||||
return o.label(label).flush();
|
||||
}
|
||||
|
||||
static void gen_continue_yyswitch(Output& output, CodeList* stmts, const Label& next) {
|
||||
gen_continue_yyswitch(output, stmts, gen_yyswitch_state(output, next));
|
||||
}
|
||||
|
||||
static CodeList* gen_fill_falllback(
|
||||
@@ -524,8 +543,7 @@ static CodeList* gen_fill_falllback(
|
||||
append(fallback_trans, code_goto(alc, buf.flush()));
|
||||
break;
|
||||
case CodeModel::LOOP_SWITCH:
|
||||
buf.label(*fallback->label);
|
||||
gen_continue_yyloop(output, fallback_trans, buf.flush());
|
||||
gen_continue_yyswitch(output, fallback_trans, *fallback->label);
|
||||
break;
|
||||
case CodeModel::REC_FUNC: {
|
||||
const CodeFnCommon* fn = output.block().fn_common;
|
||||
@@ -575,8 +593,7 @@ CodeList* gen_goto_after_fill(
|
||||
}
|
||||
break;
|
||||
case CodeModel::LOOP_SWITCH:
|
||||
o.u32(s->label->index);
|
||||
gen_continue_yyloop(output, resume, o.flush());
|
||||
gen_continue_yyswitch(output, resume, *s->label);
|
||||
break;
|
||||
case CodeModel::REC_FUNC: {
|
||||
const CodeFnCommon* fn = output.block().fn_common;
|
||||
@@ -704,8 +721,7 @@ static void gen_goto(
|
||||
append(transition, code_goto(alc, o.flush()));
|
||||
break;
|
||||
case CodeModel::LOOP_SWITCH:
|
||||
o.label(*jump.to->label);
|
||||
gen_continue_yyloop(output, transition, o.flush());
|
||||
gen_continue_yyswitch(output, transition, *jump.to->label);
|
||||
break;
|
||||
case CodeModel::REC_FUNC: {
|
||||
const CodeFnCommon* fn = output.block().fn_common;
|
||||
@@ -1099,9 +1115,10 @@ static void emit_rule(Output& output, CodeList* stmts, const Adfa& dfa, size_t r
|
||||
append(stmts, code_text(alc, o.flush()));
|
||||
break;
|
||||
case CodeModel::LOOP_SWITCH:
|
||||
CHECK(!opts->computed_continue);
|
||||
// loop/switch mode: set `yystate` to the start DFA state of the next condition and
|
||||
// continue to the head of the loop.
|
||||
gen_continue_yyloop(output, stmts, next_cond);
|
||||
gen_continue_yyswitch(output, stmts, next_cond);
|
||||
break;
|
||||
case CodeModel::REC_FUNC: {
|
||||
// func/rec mode: emit function call to the start of the next condition
|
||||
@@ -1875,11 +1892,10 @@ void gen_dfa_as_switch_cases(Output& output, Adfa& dfa, CodeCases* cases) {
|
||||
for (State* s = dfa.head; s; s = s->next) {
|
||||
CodeList* body = code_list(alc);
|
||||
|
||||
uint32_t label = s->label->index;
|
||||
DCHECK(label != Label::NONE);
|
||||
|
||||
const Label& state_label = *s->label;
|
||||
DCHECK(state_label.index != Label::NONE);
|
||||
// Emit current state.
|
||||
if (opts->debug) append(body, code_debug(alc, label));
|
||||
if (opts->debug) append(body, code_debug(alc, state_label.index));
|
||||
emit_state(output, dfa, s, body, nullptr);
|
||||
|
||||
// As long as the following state has no incoming transitions (its label is unused),
|
||||
@@ -1890,7 +1906,13 @@ void gen_dfa_as_switch_cases(Output& output, Adfa& dfa, CodeCases* cases) {
|
||||
emit_state(output, dfa, s, body, nullptr);
|
||||
}
|
||||
|
||||
append(cases, code_case_number(alc, body, static_cast<int32_t>(label)));
|
||||
if (opts->computed_continue) {
|
||||
const char* switch_label = gen_yyswitch_state(output, state_label);
|
||||
append(cases, code_case_string(alc, body, switch_label));
|
||||
} else {
|
||||
append(cases,
|
||||
code_case_number(alc, body, static_cast<int32_t>(state_label.index)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1899,13 +1921,19 @@ void wrap_dfas_in_loop_switch(Output& output, CodeList* stmts, CodeCases* cases)
|
||||
OutAllocator& alc = output.allocator;
|
||||
DCHECK(opts->code_model == CodeModel::LOOP_SWITCH);
|
||||
|
||||
CodeList* loop = code_list(alc);
|
||||
gen_storable_state_cases(output, cases);
|
||||
if (opts->state_abort) {
|
||||
append(cases, code_case_default(alc, gen_abort(alc)));
|
||||
if (opts->computed_continue) {
|
||||
DCHECK(!output.block().dfas.empty());
|
||||
const Label& start = *output.block().dfas[0]->head->label;
|
||||
append(stmts, code_loop(alc, nullptr, gen_yyswitch_state(output, start), cases));
|
||||
} else {
|
||||
CodeList* loop = code_list(alc);
|
||||
gen_storable_state_cases(output, cases);
|
||||
if (opts->state_abort) {
|
||||
append(cases, code_case_default(alc, gen_abort(alc)));
|
||||
}
|
||||
append(loop, code_switch(alc, opts->var_state.c_str(), cases));
|
||||
append(stmts, code_loop(alc, loop));
|
||||
}
|
||||
append(loop, code_switch(alc, opts->var_state.c_str(), cases));
|
||||
append(stmts, code_loop(alc, loop));
|
||||
}
|
||||
|
||||
static void gen_dfa_as_recursive_functions(Output& output, const Adfa& dfa, CodeList* code) {
|
||||
@@ -2075,7 +2103,11 @@ LOCAL_NODISCARD(Ret gen_block_code(Output& output, const Adfas& dfas, CodeList*
|
||||
// In the loop/switch mode append all DFA states as cases of the `yystate` switch.
|
||||
// Merge DFAs for different conditions together in one switch.
|
||||
local_decls = true;
|
||||
append(code, gen_yystate_def(output, is_cond_block));
|
||||
if (!opts->computed_continue) {
|
||||
// Computed-continue passes the next state directly to the labeled switch,
|
||||
// so the yystate variable is not needed.
|
||||
append(code, gen_yystate_def(output, is_cond_block));
|
||||
}
|
||||
|
||||
local_decls |= gen_bitmaps(output, code);
|
||||
|
||||
@@ -2147,6 +2179,9 @@ static void gen_block_dot(Output& output, const Adfas& dfas, CodeList* code) {
|
||||
.cstr(":").u32(semact->loc.line).cstr("\"]");
|
||||
append(code, code_text(alc, buf.flush()));
|
||||
}
|
||||
} else if (s->kind == StateKind::MOVE) {
|
||||
buf.label(*s->label).cstr(" [style=\"dashed\"]");
|
||||
append(code, code_text(alc, buf.flush()));
|
||||
}
|
||||
if (s->go.kind == CodeGo::Kind::DOT) {
|
||||
gen_godot(output, *dfa, s->go.godot, s, code);
|
||||
|
||||
+94
-20
@@ -549,49 +549,103 @@ class RenderSwitch : public RenderCallback {
|
||||
|
||||
class RenderLoop : public RenderCallback {
|
||||
RenderContext& rctx;
|
||||
const CodeList* code;
|
||||
const CodeLoop* code;
|
||||
const CodeCase* curr_case;
|
||||
const CodeCase* last_case;
|
||||
const Code* curr_stmt;
|
||||
const Code* last_stmt;
|
||||
size_t ncases;
|
||||
size_t nstmts;
|
||||
|
||||
public:
|
||||
RenderLoop(RenderContext& rctx, const CodeList* code)
|
||||
: rctx(rctx), code(code), curr_stmt(nullptr), last_stmt(nullptr), nstmts(0) {
|
||||
for (const Code* s = code->head; s; s = s->next) ++nstmts;
|
||||
RenderLoop(RenderContext& rctx, const CodeLoop* code)
|
||||
: rctx(rctx)
|
||||
, code(code)
|
||||
, curr_case(nullptr)
|
||||
, last_case(nullptr)
|
||||
, curr_stmt(nullptr)
|
||||
, last_stmt(nullptr)
|
||||
, ncases(0)
|
||||
, nstmts(0) {
|
||||
if (code->cases) {
|
||||
for (const CodeCase* c = code->cases->head; c; c = c->next) ++ncases;
|
||||
}
|
||||
if (code->body) {
|
||||
for (const Code* s = code->body->head; s; s = s->next) ++nstmts;
|
||||
}
|
||||
}
|
||||
|
||||
void render_var(StxVarId var) override {
|
||||
switch (var) {
|
||||
case StxVarId::LABEL: rctx.os << rctx.opts->label_loop; break;
|
||||
case StxVarId::STMT: render(rctx, curr_stmt); break;
|
||||
default: render_global_var(rctx, var); break;
|
||||
case StxVarId::LABEL:
|
||||
rctx.os << rctx.opts->label_loop;
|
||||
break;
|
||||
case StxVarId::STATE:
|
||||
DCHECK(curr_case->kind == CodeCase::Kind::STRING);
|
||||
rctx.os << curr_case->string;
|
||||
break;
|
||||
case StxVarId::VAL:
|
||||
rctx.os << code->init;
|
||||
break;
|
||||
case StxVarId::VAR:
|
||||
rctx.os << rctx.opts->var_state;
|
||||
break;
|
||||
case StxVarId::STMT:
|
||||
render(rctx, curr_stmt);
|
||||
break;
|
||||
default:
|
||||
render_global_var(rctx, var);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
size_t get_list_size(StxVarId var) const override {
|
||||
if (var == StxVarId::STMT) {
|
||||
return nstmts;
|
||||
switch (var) {
|
||||
case StxVarId::STATE:
|
||||
return ncases;
|
||||
case StxVarId::STMT: {
|
||||
if (!curr_case) return nstmts;
|
||||
size_t n = 0;
|
||||
for (const Code* s = curr_case->body->head; s; s = s->next) ++n;
|
||||
return n;
|
||||
}
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void start_list(StxVarId var, size_t lbound, size_t rbound) override {
|
||||
if (var == StxVarId::STMT) {
|
||||
DCHECK(rbound < nstmts);
|
||||
find_list_bounds(code->head, lbound, rbound, &curr_stmt, &last_stmt);
|
||||
} else {
|
||||
switch (var) {
|
||||
case StxVarId::STATE:
|
||||
DCHECK(rbound < ncases);
|
||||
find_list_bounds(code->cases->head, lbound, rbound, &curr_case, &last_case);
|
||||
break;
|
||||
case StxVarId::STMT: {
|
||||
const CodeList* stmts = curr_case ? curr_case->body : code->body;
|
||||
DCHECK(stmts);
|
||||
DCHECK(rbound < get_list_size(var));
|
||||
find_list_bounds(stmts->head, lbound, rbound, &curr_stmt, &last_stmt);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
UNREACHABLE();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool next_in_list(StxVarId var) override {
|
||||
if (var == StxVarId::STMT) {
|
||||
switch (var) {
|
||||
case StxVarId::STATE:
|
||||
curr_case = curr_case->next;
|
||||
return curr_case != last_case;
|
||||
case StxVarId::STMT:
|
||||
curr_stmt = curr_stmt->next;
|
||||
return curr_stmt != last_stmt;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
|
||||
FORBID_COPY(RenderLoop);
|
||||
@@ -615,6 +669,26 @@ class RenderJmp : public RenderCallback {
|
||||
FORBID_COPY(RenderJmp);
|
||||
};
|
||||
|
||||
class RenderContinue : public RenderCallback {
|
||||
RenderContext& rctx;
|
||||
const CodeContinue* code;
|
||||
|
||||
public:
|
||||
RenderContinue(RenderContext& rctx, const CodeContinue* code)
|
||||
: rctx(rctx), code(code) {}
|
||||
|
||||
void render_var(StxVarId var) override {
|
||||
switch (var) {
|
||||
case StxVarId::LABEL: rctx.os << code->label; break;
|
||||
case StxVarId::VAL: rctx.os << code->value; break;
|
||||
case StxVarId::VAR: rctx.os << rctx.opts->var_state; break;
|
||||
default: render_global_var(rctx, var); break;
|
||||
}
|
||||
}
|
||||
|
||||
FORBID_COPY(RenderContinue);
|
||||
};
|
||||
|
||||
class RenderCgoto : public RenderCallback {
|
||||
RenderContext& rctx;
|
||||
const CodeCgoto* code;
|
||||
@@ -1435,7 +1509,7 @@ static void render(RenderContext& rctx, const Code* code) {
|
||||
break;
|
||||
}
|
||||
case CodeKind::LOOP: {
|
||||
RenderLoop callback(rctx, code->loop);
|
||||
RenderLoop callback(rctx, &code->loop);
|
||||
rctx.opts->render_code_loop(rctx.os, callback);
|
||||
break;
|
||||
}
|
||||
@@ -1450,7 +1524,7 @@ static void render(RenderContext& rctx, const Code* code) {
|
||||
break;
|
||||
}
|
||||
case CodeKind::CONTINUE: {
|
||||
RenderJmp callback(rctx, code->target);
|
||||
RenderContinue callback(rctx, &code->cont);
|
||||
rctx.opts->render_code_continue(rctx.os, callback);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -196,6 +196,7 @@ enum class StxGOpt {
|
||||
CODE_MODEL_GOTO_LABEL,
|
||||
CODE_MODEL_LOOP_SWITCH,
|
||||
CODE_MODEL_REC_FUNC,
|
||||
COMPUTED_CONTINUE,
|
||||
START_CONDITIONS,
|
||||
STORABLE_STATE,
|
||||
DATE,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <stddef.h>
|
||||
#include <map>
|
||||
|
||||
#include "src/encoding/ebcdic.h"
|
||||
#include "src/encoding/enc.h"
|
||||
@@ -6,6 +7,10 @@
|
||||
|
||||
namespace re2c {
|
||||
|
||||
extern std::map<uint32_t, uint32_t> unicode_to_lower;
|
||||
extern std::map<uint32_t, uint32_t> unicode_to_upper;
|
||||
|
||||
|
||||
// Returns code point representation with regard to the current policy (overwrites the argument code
|
||||
// point). The code point is specified by the user; re2c validates it. A code point is invalid if it
|
||||
// exceeds maximum allowed value, or if it falls into the surrogates range. In the latter case the
|
||||
@@ -101,6 +106,62 @@ Range* Enc::full_range(RangeMgr& rm) const {
|
||||
return r;
|
||||
}
|
||||
|
||||
static inline bool is_alpha(uint32_t c) {
|
||||
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
||||
}
|
||||
|
||||
static inline uint32_t to_lower_unsafe(uint32_t c) {
|
||||
return c | 0x20u;
|
||||
}
|
||||
|
||||
static inline uint32_t to_upper_unsafe(uint32_t c) {
|
||||
return c & ~0x20u;
|
||||
}
|
||||
|
||||
uint32_t Enc::to_lower(uint32_t c) const {
|
||||
switch (type_) {
|
||||
case Type::UCS2:
|
||||
case Type::UTF16:
|
||||
case Type::UTF32:
|
||||
case Type::UTF8: {
|
||||
auto i = unicode_to_lower.find(c);
|
||||
if (i != unicode_to_lower.end()) {
|
||||
c = i->second;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Type::ASCII:
|
||||
case Type::EBCDIC:
|
||||
if (is_alpha(c)) {
|
||||
c = to_lower_unsafe(c);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
uint32_t Enc::to_upper(uint32_t c) const {
|
||||
switch (type_) {
|
||||
case Type::UCS2:
|
||||
case Type::UTF16:
|
||||
case Type::UTF32:
|
||||
case Type::UTF8: {
|
||||
auto i = unicode_to_upper.find(c);
|
||||
if (i != unicode_to_upper.end()) {
|
||||
c = i->second;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Type::ASCII:
|
||||
case Type::EBCDIC:
|
||||
if (is_alpha(c)) {
|
||||
c = to_upper_unsafe(c);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
// C++11 requres outer decl for ODR-used static constexpr data members (not needed in C++17).
|
||||
constexpr uint32_t Enc::SURR_MIN;
|
||||
constexpr uint32_t Enc::SURR_MAX;
|
||||
|
||||
Loaded 100 of 1052 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user