diff options
57 files changed, 7600 insertions, 5935 deletions
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..8212ed1 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: "CodeQL" + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + schedule: + - cron: "16 9 * * 0" + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ cpp, python ] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{ matrix.language }}" @@ -18,6 +18,7 @@ Makefile.in *.la *.pc *.log +*.trs *.dll *.lib *.exe @@ -34,6 +35,7 @@ m4/*.m4 /coverage /coverage.info /fuzzers +/.vscode # src/ /src/unicode_fold?_key.gperf diff --git a/CMakeLists.txt b/CMakeLists.txt index db6b0a7..a9a0b9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.1) project(oniguruma - VERSION 6.9.8 + VERSION 6.9.9 LANGUAGES C) set(PACKAGE onig) @@ -9,8 +9,10 @@ set(PACKAGE_VERSION ${PROJECT_VERSION}) option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(ENABLE_POSIX_API "Include POSIX API" OFF) option(ENABLE_BINARY_COMPATIBLE_POSIX_API "Include Binary compatible POSIX API" OFF) +option(ENABLE_STATISTICS "Include statistics API" OFF) option(INSTALL_DOCUMENTATION "Install documentation" ON) option(INSTALL_EXAMPLES "Install examples" OFF) +option(BUILD_TEST "Build tests" ON) if(MSVC) option(MSVC_STATIC_RUNTIME "Build with static runtime" OFF) endif() @@ -72,6 +74,10 @@ if(ENABLE_BINARY_COMPATIBLE_POSIX_API) add_definitions("-DUSE_BINARY_COMPATIBLE_POSIX_API") endif() +if(ENABLE_STATISTICS) + add_definitions("-DONIG_DEBUG_STATISTICS") +endif() + add_library(onig ${_SRCS}) target_include_directories(onig PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> @@ -160,6 +166,12 @@ configure_package_config_file( INSTALL_DESTINATION "${config_install_dir}" ) +if(CMAKE_INSTALL_LIBDIR MATCHES "^/") + set(onig_pkgconfig_libdir "${CMAKE_INSTALL_LIBDIR}") +else() + set(onig_pkgconfig_libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +endif() + # Targets: # * <prefix>/lib*/libonig.a # * header location after install: <prefix>/include/ @@ -212,8 +224,8 @@ endif() # Examples if(INSTALL_EXAMPLES) install(FILES sample/bug_fix.c sample/callback_each_match.c - sample/callout.c sample/count.c sample/crnl.c - sample/echo.c sample/encode.c sample/listcap.c + sample/callout.c sample/count.c sample/echo.c + sample/encode.c sample/listcap.c sample/names.c sample/posix.c sample/regset.c sample/scan.c sample/simple.c sample/sql.c sample/syntax.c sample/user_property.c @@ -231,3 +243,11 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/oniguruma.pc install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/onig-config DESTINATION "${CMAKE_INSTALL_BINDIR}") + +# Test +if(BUILD_TEST) + add_subdirectory(test) + if(CMAKE_COMPILER_IS_GNUCC) + add_subdirectory(windows) + endif() +endif(BUILD_TEST) @@ -1,6 +1,24 @@ History -2022/04/2X: Version 6.9.8 +2023/10/1X: Version 6.9.9 + +2023/09/17: Update to Unicode 15.1.0 +2023/07/11: Make sure oniguruma.pc is removed on distclean +2023/05/20: fix #284: .{0,99} and .* behave differently on short input +2023/03/27: fix call by number (?n), (?+n), (?-n) of ONIG_SYNTAX_PERL_NG +2023/03/27: fix #282: Dynamic library generated failed to support '(?-i)' +2022/12/30: add a new behavior ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP +2022/11/16: Changed the behavior of the FIND_LONGEST option to follow all alternatives +2022/09/16: Update to Unicode 15.0.0 +2022/08/30: add ONIG_OPTION_MATCH_WHOLE_STRING +2022/08/28: fix ctype punct in Unicode encodings +2022/08/28: fix #268: [[:punct:]] isn't matching all expected symbols. [[:punct:]] = \p{PosixPunct} = \p{P} + \p{S} +2022/06/25: Make the behavior of \p{Word} exactly the same as \w for ignorecase +2022/06/24: (?I) invalid results for charcter classes (Issue #264) +2022/06/15: fix negative POSIX bracket bug +2022/06/03: Build tests with cmake+msvc + +2022/04/29: Version 6.9.8 2022/04/11: implement whole option: (?C) 2022/04/07: implement whole option: (?L) @@ -2453,10 +2471,17 @@ cvs history -T cvs rtag "VERSION_X_X_X" oniguruma +<Homebrew install autotools> +> brew install autoconf +> brew install automake +> brew install libtool + + <GNU Autotools: bootstrap> * write Makefile.am and configure.in. +> libtoolize or glibtoolize > aclocal -> libtoolize or glibtoolize +> autoheader > automake --foreign --add-missing > autoconf > configure --with-rubydir=... CFLAGS="-O2 -Wall" diff --git a/Makefile.am b/Makefile.am index 0baab85..4158942 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,7 +14,8 @@ EXTRA_DIST = oniguruma.pc.in HISTORY README_japanese README.md \ doc/SYNTAX.md doc/UNICODE_PROPERTIES \ src/Makefile.windows src/config.h.windows.in \ src/config.h.win32 src/config.h.win64 \ - windows/testc.c + test/test.sh test/CMakeLists.txt \ + windows/testc.c windows/CMakeLists.txt bin_SCRIPTS = onig-config @@ -34,7 +35,7 @@ oniguruma.pc: $(srcdir)/oniguruma.pc.in Makefile pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = oniguruma.pc - +DISTCLEANFILES = oniguruma.pc all-test: cd test; make test @@ -1,13 +1,9 @@ -[![Build Status](https://travis-ci.org/kkos/oniguruma.svg?branch=master)](https://travis-ci.org/kkos/oniguruma) -[![Code Quality: Cpp](https://img.shields.io/lgtm/grade/cpp/g/kkos/oniguruma.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/kkos/oniguruma/context:cpp) -[![Total Alerts](https://img.shields.io/lgtm/alerts/g/kkos/oniguruma.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/kkos/oniguruma/alerts) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/oniguruma.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#oniguruma) -[![TrustInSoft CI](https://ci.trust-in-soft.com/projects/kkos/oniguruma.svg?branch=master)](https://ci.trust-in-soft.com/projects/kkos/oniguruma) Oniguruma ========= -## **For a long time, Oniguruma has been under attack on Google search in Japan.** [(Issue #234)](https://github.com/kkos/oniguruma/issues/234) +## **Since 2020, Oniguruma has been under attack on Google search in Japan.** [(Issue #234)](https://github.com/kkos/oniguruma/issues/234) https://github.com/kkos/oniguruma @@ -37,7 +33,17 @@ Notice (from 6.9.6) When using configure script, if you have the POSIX API enabled in an earlier version (disabled by default in 6.9.5) and you need application binary compatibility with the POSIX API, specify "--enable-binary-compatible-posix-api=yes" instead of "--enable-posix-api=yes". Starting in 6.9.6, "--enable-posix-api=yes" only supports source-level compatibility for 6.9.5 and earlier about POSIX API. (Issue #210) -Version 6.9.8 (== Master branch / unreleased) +Version 6.9.9 +------------- +* Update Unicode version 15.1.0 +* NEW API: ONIG_OPTION_MATCH_WHOLE_STRING +* Fixed: (?I) option was not enabled for character classes (Issue #264). +* Changed specification to check for incorrect POSIX bracket (Issue #253). +* Changed [[:punct:]] in Unicode encodings to be compatible with POSIX definition. (Issue #268) +* Fixed: ONIG_OPTION_FIND_LONGEST behavior + + +Version 6.9.8 ------------- * Update Unicode version 14.0.0 * Whole options @@ -67,53 +73,6 @@ Version 6.9.6 * Under cygwin and mingw, generate and install the libonig.def file (Issue #220) -Version 6.9.5 revised 1 ------------------------ - -* Fixed Issue #192 - - -Version 6.9.5 -------------- - -* POSIX API disabled by default for Unix (* Enabled by: configure --enable-posix-api=yes) -* Update Unicode version 13.0.0 -* NEW: Code point sequence notation \x{HHHH HHHH ...}, \o{OOOO OOOO ...} -* NEW API: retry limit in search functions -* NEW API: maximum nesting level of subexp call -* Fixed behavior of isolated options in Perl and Java syntaxes. /...(?i).../ - - -Version 6.9.4 -------------- - -* NEW API: RegSet (set of regexes) -* Fixed CVE-2019-19012 -* Fixed CVE-2019-19203 (Does not affect UTF-8, UTF-16 and UTF-32 encodings) -* Fixed CVE-2019-19204 (Affects only PosixBasic, Emacs and Grep syntaxes) -* Fixed CVE-2019-19246 -* Fixed some problems (found by libFuzzer test) - - -Version 6.9.3 (security fix release) ------------------------------------- - -* Fixed CVE-2019-13224 -* Fixed CVE-2019-13225 -* Fixed CVE-2019-16163 -* Fixed many problems (found by libFuzzer test) - - -Version 6.9.2 (Reiwa) ---------------------- - -* add doc/SYNTAX.md -* Direct threaded code (for GCC and Clang) -* Update Unicode version 12.1.0 -* NEW: Unicode Text Segment mode option (?y{g}) (?y{w}) (*original) - - - License ------- diff --git a/configure.ac b/configure.ac index 079fef9..470fa3c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(onig, 6.9.8) +AC_INIT(onig, 6.9.9) AC_CONFIG_MACRO_DIR([m4]) @@ -7,13 +7,10 @@ AM_INIT_AUTOMAKE([-Wno-portability]) AC_CONFIG_HEADERS([src/config.h]) -dnl default value for STATISTICS -STATISTICS="" AC_ARG_WITH([statistics], [AS_HELP_STRING([--with-statistics], [take matching time statistical data])], - [STATISTICS=-DONIG_DEBUG_STATISTICS]) -AC_SUBST(STATISTICS) + AS_VAR_APPEND([CFLAGS], [" -DONIG_DEBUG_STATISTICS"])) dnl check for POSIX API @@ -57,7 +54,7 @@ fi dnl Checks for programs. AC_PROG_CC LT_INIT -LTVERSION="8:0:3" +LTVERSION="9:0:4" AC_SUBST(LTVERSION) AC_PROG_INSTALL diff --git a/debian/changelog b/debian/changelog index fbbcbb7..bf6a5f5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libonig (6.9.9-1) unstable; urgency=medium + + * New upstream release. + * Add missing head lines to debian/copyright (Thanks to Phil Wyett). + + -- Jörg Frings-Fürst <debian@jff.email> Fri, 15 Dec 2023 13:59:12 +0100 + libonig (6.9.8-2) unstable; urgency=medium * debian/rules: diff --git a/debian/copyright b/debian/copyright index add1ed5..08ff4c9 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,4 +1,6 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0 +Upstream-Name: oniguruma +Upstream-Contact: K.Kosako <kkosako0@gmail.com> Source: https://github.com/kkos/oniguruma Files: * diff --git a/debian/files b/debian/files index 7c4753d..5050f32 100644 --- a/debian/files +++ b/debian/files @@ -1 +1 @@ -libonig_6.9.8-2_source.buildinfo libs extra +libonig_6.9.9-1_source.buildinfo libs extra @@ -1,4 +1,4 @@ -Oniguruma API Version 6.9.7 2021/03/03 +Oniguruma API Version 6.9.9 2022/10/28 #include <oniguruma.h> @@ -366,6 +366,8 @@ Oniguruma API Version 6.9.7 2021/03/03 The user_data specified by onig_set_callout_user_data_of_match_param() will be shared with callout. + ONIG_OPTION_MATCH_WHOLE_STRING Try to match the whole of (str), rather than returning after the first match is found. + # int onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, const UChar* range, OnigRegion* region, @@ -407,7 +409,7 @@ Oniguruma API Version 6.9.7 2021/03/03 ONIG_OPTION_NOT_END_STRING Do not regard the (end) as a string endpoint (* fail \z, \Z) ONIG_OPTION_NOT_BEGIN_POSITION Do not regard the (start) as start position of search (* fail \G) ONIG_OPTION_CALLBACK_EACH_MATCH Call back for all successful matches. - + ONIG_OPTION_MATCH_WHOLE_STRING Try to match the whole of (str), rather than returning after the first match is found. # int onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, OnigRegion* region, @@ -641,7 +643,7 @@ Oniguruma API Version 6.9.7 2021/03/03 return value normal: number of groups for the name. (ex. /(?<x>..)(?<x>..)/ ==> 2) - name not found: -1 + name not found: ONIGERR_UNDEFINED_NAME_REFERENCE arguments 1 reg: regex object. @@ -1,4 +1,4 @@ -鬼車インターフェース Version 6.9.7 2022/02/04 +鬼車インターフェース Version 6.9.9 2022/11/16 #include <oniguruma.h> @@ -361,6 +361,8 @@ onig_set_callout_user_data_of_match_param()で指定するuser_dataは、 calloutで使用されるuser_dataと共用される。 + ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求 + # int onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, const UChar* range, OnigRegion* region, @@ -400,6 +402,7 @@ ONIG_OPTION_NOT_END_STRING endを文字列終端と看做さない (\z, \Z 失敗) ONIG_OPTION_NOT_BEGIN_POSITION startを検索開始位置と看做さない (\G 失敗) ONIG_OPTION_CALLBACK_EACH_MATCH 全てのマッチ成功に対してコールバック関数が呼び出される。 + ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendになることを要求 # int onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, @@ -445,7 +448,7 @@ 引数 1 rset: regsetオブジェクトを返すためのアドレス - 2 n: 正規表現オブジェクトの個数 + 2 n: 正規表現の個数 3 regs: 正規表現オブジェクトの配列 戻り値 @@ -476,7 +479,7 @@ 引数 1 set: regsetオブジェクト 2 at: 変更する場所のインデックス - 2 reg: 正規表現オブジェクト + 3 reg: 正規表現オブジェクト 戻り値 正常終了: ONIG_NORMAL == 0 @@ -635,7 +638,7 @@ 戻り値 正常終了: 指定された名前に対するグループ数 (例 /(?<x>..)(?<x>..)/ ==> 2) - 名前に対するグループが存在しない: -1 + 名前に対するグループが存在しない: ONIGERR_UNDEFINED_NAME_REFERENCE 引数 1 reg: 正規表現オブジェクト @@ -1,4 +1,4 @@ -Oniguruma Regular Expressions Version 6.9.8 2022/04/11 +Oniguruma Regular Expressions Version 6.9.9 2023/03/27 syntax: ONIG_SYNTAX_ONIGURUMA (default syntax) @@ -246,9 +246,7 @@ syntax: ONIG_SYNTAX_ONIGURUMA (default syntax) graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate lower Lowercase_Letter print [[:graph:]] | [[:space:]] - punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | - Final_Punctuation | Initial_Punctuation | Other_Punctuation | - Open_Punctuation + punct Punctuation | Symbol space Space_Separator | Line_Separator | Paragraph_Separator | U+0009 | U+000A | U+000B | U+000C | U+000D | U+0085 upper Uppercase_Letter @@ -288,7 +286,10 @@ syntax: ONIG_SYNTAX_ONIGURUMA (default syntax) * It makes a group to the next ')' or end of the pattern. /ab(?i)c|def|gh/ == /ab(?i:c|def|gh)/ - /(?CIL).../, /(?CIL:...)/ whole opiton + * (?i) option has no effect on word types (\w, \p{Word}). However, if the word types are used within a character class, it is valid. But, this would only be a concern when word types are used with the (?W) option. + + + /(?CIL).../, /(?CIL:...)/ whole option This option must be placed in a position that affects the entire regular expression. @@ -1,4 +1,4 @@ -鬼車 正規表現 Version 6.9.8 2022/04/11 +鬼車 正規表現 Version 6.9.9 2022/08/28 使用文法: ONIG_SYNTAX_ONIGURUMA (既定値) @@ -243,9 +243,7 @@ graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate lower Lowercase_Letter print [[:graph:]] | [[:space:]] - punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | - Final_Punctuation | Initial_Punctuation | Other_Punctuation | - Open_Punctuation + punct Punctuation | Symbol space Space_Separator | Line_Separator | Paragraph_Separator | U+0009 | U+000A | U+000B | U+000C | U+000D | U+0085 upper Uppercase_Letter @@ -284,6 +282,9 @@ * これは次の')'またはパターンの終わりまでのグループを形成する /ab(?i)c|def|gh/ == /ab(?i:c|def|gh)/ + * (?i)オプションは、wordタイプ(\w, \p{Word})には有効ではない。但しwordタイプが文字クラスの中で使用された場合は有効になる。しかし、このことはwordタイプを(?W)オプションと共に使用した時にしか気にする必要はないであろう。 + + /(?CIL).../, /(?CIL:...)/ 全体オプション このオプションは、正規表現全体に影響を及ぼす位置 diff --git a/doc/UNICODE_PROPERTIES b/doc/UNICODE_PROPERTIES index 879f559..3d2dc09 100644 --- a/doc/UNICODE_PROPERTIES +++ b/doc/UNICODE_PROPERTIES @@ -1,4 +1,4 @@ -Unicode Properties (Unicode Version: 14.0.0, Emoji: 14.0) +Unicode Properties (Unicode Version: 15.1.0, Emoji: 15.1) ASCII_Hex_Digit Adlam @@ -90,10 +90,14 @@ Hiragana Hyphen IDS_Binary_Operator IDS_Trinary_Operator +IDS_Unary_Operator +ID_Compat_Math_Continue +ID_Compat_Math_Start ID_Continue ID_Start Ideographic Imperial_Aramaic +InCB Inherited Inscriptional_Pahlavi Inscriptional_Parthian @@ -102,6 +106,7 @@ Join_Control Kaithi Kannada Katakana +Kawi Kayah_Li Kharoshthi Khitan_Small_Script @@ -151,6 +156,7 @@ Multani Myanmar N Nabataean +Nag_Mundari Nandinagari Nd New_Tai_Lue @@ -352,6 +358,7 @@ Ideo IDS IDSB IDST +IDSU Initial_Punctuation Ital Java @@ -397,6 +404,7 @@ Mroo Mtei Mult Mymr +Nagm Nand Narb Nbat @@ -440,6 +448,7 @@ Phnx Plrd Private_Use Prti +punct Punctuation Qaac Qaai @@ -716,6 +725,7 @@ In_Old_Hungarian In_Hanifi_Rohingya In_Rumi_Numeral_Symbols In_Yezidi +In_Arabic_Extended_C In_Old_Sogdian In_Sogdian In_Old_Uyghur @@ -747,11 +757,13 @@ In_Zanabazar_Square In_Soyombo In_Unified_Canadian_Aboriginal_Syllabics_Extended_A In_Pau_Cin_Hau +In_Devanagari_Extended_A In_Bhaiksuki In_Marchen In_Masaram_Gondi In_Gunjala_Gondi In_Makasar +In_Kawi In_Lisu_Supplement In_Tamil_Supplement In_Cuneiform @@ -784,6 +796,7 @@ In_Znamenny_Musical_Notation In_Byzantine_Musical_Symbols In_Musical_Symbols In_Ancient_Greek_Musical_Notation +In_Kaktovik_Numerals In_Mayan_Numerals In_Tai_Xuan_Jing_Symbols In_Counting_Rod_Numerals @@ -791,9 +804,11 @@ In_Mathematical_Alphanumeric_Symbols In_Sutton_SignWriting In_Latin_Extended_G In_Glagolitic_Supplement +In_Cyrillic_Extended_D In_Nyiakeng_Puachue_Hmong In_Toto In_Wancho +In_Nag_Mundari In_Ethiopic_Extended_B In_Mende_Kikakui In_Adlam @@ -821,8 +836,10 @@ In_CJK_Unified_Ideographs_Extension_C In_CJK_Unified_Ideographs_Extension_D In_CJK_Unified_Ideographs_Extension_E In_CJK_Unified_Ideographs_Extension_F +In_CJK_Unified_Ideographs_Extension_I In_CJK_Compatibility_Ideographs_Supplement In_CJK_Unified_Ideographs_Extension_G +In_CJK_Unified_Ideographs_Extension_H In_Tags In_Variation_Selectors_Supplement In_Supplementary_Private_Use_Area_A diff --git a/harnesses/base.c b/harnesses/base.c index 78a157a..de77e4b 100644 --- a/harnesses/base.c +++ b/harnesses/base.c @@ -1,6 +1,6 @@ /* * base.c contributed by Mark Griffin - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2022 K.Kosako */ #include <stdio.h> #include <unistd.h> @@ -20,7 +20,7 @@ #define MATCH_STACK_LIMIT 10000000 #define MAX_REM_SIZE 1048576 #define MAX_SLOW_REM_SIZE 1024 -#define MAX_SLOW_REM_SIZE2 100 +#define MAX_SLOW_REM_SIZE2 80 #define SLOW_RETRY_LIMIT 2000 #define SLOW_SUBEXP_CALL_LIMIT 100 #define MAX_SLOW_BACKWARD_REM_SIZE 200 @@ -247,10 +247,6 @@ search(regex_t* reg, unsigned char* str, unsigned char* end, OnigOptionType opti len = (size_t )(end - str); retry_limit = calc_retry_limit(sl, len); -#ifdef STANDALONE - fprintf(stdout, "retry limit: %u\n", retry_limit); -#endif - onig_set_retry_limit_in_search(retry_limit); onig_set_match_stack_limit_size(MATCH_STACK_LIMIT); if (sl >= 2) @@ -258,6 +254,11 @@ search(regex_t* reg, unsigned char* str, unsigned char* end, OnigOptionType opti else onig_set_subexp_call_limit_in_search(SUBEXP_CALL_LIMIT); +#ifdef STANDALONE + fprintf(stdout, "retry limit: %u\n", retry_limit); + fprintf(stdout, "end - str: %td\n", end - str); +#endif + if (backward != 0) { start = end; range = str; @@ -315,15 +316,18 @@ static long VALID_STRING_COUNT; static int exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, - char* apattern, char* apattern_end, char* astr, UChar* end, int backward, - int sl) + char* apattern, char* apattern_end, + char* adata_pattern, char* adata_pattern_end, + char* astr, UChar* end, int backward, int sl) { int r; regex_t* reg; OnigErrorInfo einfo; - UChar* pattern = (UChar* )apattern; UChar* str = (UChar* )astr; + UChar* pattern = (UChar* )apattern; UChar* pattern_end = (UChar* )apattern_end; + UChar* data_pattern = (UChar* )adata_pattern; + UChar* data_pattern_end = (UChar* )adata_pattern_end; EXEC_COUNT++; EXEC_COUNT_INTERVAL++; @@ -357,8 +361,11 @@ exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, } REGEX_SUCCESS_COUNT++; - r = search(reg, pattern, pattern_end, options, backward, sl); - if (r == -2) return -2; + if (data_pattern == pattern || + onigenc_is_valid_mbc_string(enc, data_pattern, data_pattern_end) != 0) { + r = search(reg, data_pattern, data_pattern_end, options, backward, sl); + if (r == -2) return -2; + } if (onigenc_is_valid_mbc_string(enc, str, end) != 0) { VALID_STRING_COUNT++; @@ -371,6 +378,28 @@ exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, return 0; } +static size_t +fix_size(size_t x, OnigEncoding enc, int sl, int backward) +{ + if (x > MAX_REM_SIZE) x = MAX_REM_SIZE; + + if (sl > 0) { + if (sl >= 256) { // 256: exists heavy element + if (x > MAX_SLOW_REM_SIZE2) x = MAX_SLOW_REM_SIZE2; + } + else { + if (x > MAX_SLOW_REM_SIZE) x = MAX_SLOW_REM_SIZE; + } + } + if (backward != 0 && enc == ONIG_ENCODING_GB18030) { + if (x > MAX_SLOW_BACKWARD_REM_SIZE) + x = MAX_SLOW_BACKWARD_REM_SIZE; + } + + ADJUST_LEN(enc, x); + return x; +} + static int alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, int backward, int pattern_size, size_t rem_size, unsigned char *data) @@ -379,8 +408,11 @@ alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, int r; int sl; + int data_pattern_size; unsigned char *pattern; unsigned char *pattern_end; + unsigned char *data_pattern; + unsigned char *data_pattern_end; unsigned char *str_null_end; #ifdef TEST_PATTERN @@ -389,35 +421,35 @@ alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, pattern_end = pattern + sizeof(TestPattern); #else pattern = (unsigned char *)malloc(pattern_size != 0 ? pattern_size : 1); - memcpy(pattern, data, pattern_size); pattern_end = pattern + pattern_size; + memcpy(pattern, data, pattern_size); #endif - data += pattern_size; - rem_size -= pattern_size; - - if (rem_size > MAX_REM_SIZE) rem_size = MAX_REM_SIZE; - sl = onig_detect_can_be_slow_pattern(pattern, pattern_end, options, enc, syntax); #ifdef STANDALONE fprintf(stdout, "sl: %d\n", sl); #endif - if (sl > 0) { - if (sl >= 256) { // 256: exists heavy element - if (rem_size > MAX_SLOW_REM_SIZE2) - rem_size = MAX_SLOW_REM_SIZE2; - } - else { - if (rem_size > MAX_SLOW_REM_SIZE) - rem_size = MAX_SLOW_REM_SIZE; - } + + data_pattern_size = fix_size(pattern_size, enc, sl, backward); + + if ( +#ifdef TEST_PATTERN + 1 || +#endif + data_pattern_size != pattern_size) { + data_pattern = (unsigned char *)malloc(data_pattern_size != 0 + ? data_pattern_size : 1); + data_pattern_end = data_pattern + data_pattern_size; + memcpy(data_pattern, data, data_pattern_size); } - if (backward != 0 && enc == ONIG_ENCODING_GB18030) { - if (rem_size > MAX_SLOW_BACKWARD_REM_SIZE) - rem_size = MAX_SLOW_BACKWARD_REM_SIZE; + else { + data_pattern = pattern; + data_pattern_end = pattern_end; } - ADJUST_LEN(enc, rem_size); + data += pattern_size; + rem_size -= pattern_size; + rem_size = fix_size(rem_size, enc, sl, backward); #ifdef STANDALONE fprintf(stdout, "rem_size: %ld\n", rem_size); #endif @@ -427,8 +459,12 @@ alloc_exec(OnigEncoding enc, OnigOptionType options, OnigSyntaxType* syntax, str_null_end = str + rem_size; r = exec(enc, options, syntax, - (char *)pattern, (char *)pattern_end, - (char *)str, str_null_end, backward, sl); + (char* )pattern, (char* )pattern_end, + (char* )data_pattern, (char* )data_pattern_end, + (char* )str, str_null_end, backward, sl); + + if (data_pattern != pattern) + free(data_pattern); free(pattern); free(str); diff --git a/onig-config.cmake.in b/onig-config.cmake.in index 108194e..0a8a702 100644 --- a/onig-config.cmake.in +++ b/onig-config.cmake.in @@ -29,7 +29,7 @@ fi prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=@onig_pkgconfig_libdir@ includedir=${prefix}/include is_set_exec_prefix=no diff --git a/oniguruma.pc.cmake.in b/oniguruma.pc.cmake.in index fca6772..cb5b959 100644 --- a/oniguruma.pc.cmake.in +++ b/oniguruma.pc.cmake.in @@ -1,6 +1,6 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=@onig_pkgconfig_libdir@ includedir=${prefix}/include datarootdir=${prefix}/share datadir=${prefix}/share diff --git a/sample/callback_each_match.c b/sample/callback_each_match.c index 10ed56d..15c39dd 100644 --- a/sample/callback_each_match.c +++ b/sample/callback_each_match.c @@ -93,7 +93,7 @@ static int match(UChar* pattern, UChar* str, UChar* at, OnigOptionType options, OnigOptionType runtime_options) { int r; - unsigned char *start, *range, *end; + unsigned char *end; regex_t* reg; OnigErrorInfo einfo; OnigRegion *region; @@ -112,8 +112,6 @@ match(UChar* pattern, UChar* str, UChar* at, OnigOptionType options, OnigOptionT region = onig_region_new(); end = str + strlen((char* )str); - start = str; - range = end; mp = onig_new_match_param(); if (mp == 0) return -2; diff --git a/src/gb18030.c b/src/gb18030.c index 1da19b4..3dcfca6 100644 --- a/src/gb18030.c +++ b/src/gb18030.c @@ -2,7 +2,7 @@ gb18030.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2005-2020 KUBO Takehiro <kubo AT jiubao DOT org> + * Copyright (c) 2005-2023 KUBO Takehiro <kubo AT jiubao DOT org> * K.Kosako * All rights reserved. * @@ -180,7 +180,7 @@ gb18030_is_code_ctype(OnigCodePoint code, unsigned int ctype) enum state { S_START = 0, - S_one_C2 = 1, + S_one_C2, S_one_C4, S_one_CM, diff --git a/src/gperf_fold_key_conv.py b/src/gperf_fold_key_conv.py index c633100..d943c3e 100755 --- a/src/gperf_fold_key_conv.py +++ b/src/gperf_fold_key_conv.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # gperf_fold_key_conv.py -# Copyright (c) 2016-2018 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re @@ -52,7 +52,7 @@ def parse_line(s, key_len): return s def parse_file(f, key_len): - print "/* This file was converted by gperf_fold_key_conv.py\n from gperf output file. */" + print("/* This file was converted by gperf_fold_key_conv.py\n from gperf output file. */") while True: line = f.readline() @@ -60,7 +60,7 @@ def parse_file(f, key_len): break s = parse_line(line, key_len) - print s + print(s) # main diff --git a/src/gperf_unfold_key_conv.py b/src/gperf_unfold_key_conv.py index d999d4e..deda85d 100755 --- a/src/gperf_unfold_key_conv.py +++ b/src/gperf_unfold_key_conv.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # gperf_unfold_key_conv.py -# Copyright (c) 2016-2018 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re @@ -44,12 +44,12 @@ def parse_line(s): return s def parse_file(f): - print "/* This file was converted by gperf_unfold_key_conv.py\n from gperf output file. */" + print("/* This file was converted by gperf_unfold_key_conv.py\n from gperf output file. */") line = f.readline() while line: s = parse_line(line) - print s + print(s) line = f.readline() diff --git a/src/make_unicode_egcb.sh b/src/make_unicode_egcb.sh index 89cfa18..be60d36 100755 --- a/src/make_unicode_egcb.sh +++ b/src/make_unicode_egcb.sh @@ -2,6 +2,6 @@ NAME=unicode_egcb_data -./make_unicode_egcb_data.py > ${NAME}.c +python3 make_unicode_egcb_data.py > ${NAME}.c exit 0 diff --git a/src/make_unicode_egcb_data.py b/src/make_unicode_egcb_data.py index b6ded62..80db3f0 100755 --- a/src/make_unicode_egcb_data.py +++ b/src/make_unicode_egcb_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_egcb_data.py -# Copyright (c) 2017-2021 K.Kosako +# Copyright (c) 2017-2023 K.Kosako import sys import re @@ -29,10 +29,10 @@ def check_version_info(s): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i def dic_find_by_value(dic, v): @@ -52,7 +52,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -192,10 +192,11 @@ merge_props(PROPS, props) PROPS = sorted(PROPS) -print '/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */' +print('/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */') + COPYRIGHT = ''' /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -221,13 +222,13 @@ COPYRIGHT = ''' */ '''.strip() -print COPYRIGHT -print '' +print(COPYRIGHT) +print('') if VERSION_INFO[0] < 0: raise RuntimeError("Version is not found") -print "#define GRAPHEME_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) -print '' +print("#define GRAPHEME_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) +print('') ranges = [] for prop in PROPS: @@ -243,16 +244,16 @@ for (start, end, prop) in ranges: raise ValueError("{2}:{0} - {1} range overlap prev value {3}".format(start, end, prop, prev)) -print '/*' +print('/*') for prop in PROPS: - print "%s" % prop -print '*/' -print '' + print("%s" % prop) +print('*/') +print('') num_ranges = len(ranges) -print "static int EGCB_RANGE_NUM = %d;" % num_ranges +print("static int EGCB_RANGE_NUM = %d;" % num_ranges) -print 'static EGCB_RANGE_TYPE EGCB_RANGES[] = {' +print('static EGCB_RANGE_TYPE EGCB_RANGES[] = {') for i, (start, end, prop) in enumerate(ranges): if i == num_ranges - 1: comma = '' @@ -260,8 +261,8 @@ for i, (start, end, prop) in enumerate(ranges): comma = ',' type_name = 'EGCB_' + prop - print " {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma) + print(" {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma)) -print '};' +print('};') sys.exit(0) diff --git a/src/make_unicode_fold.sh b/src/make_unicode_fold.sh index 1d5cc1e..625b3df 100755 --- a/src/make_unicode_fold.sh +++ b/src/make_unicode_fold.sh @@ -9,19 +9,19 @@ TMP3=gperf3.tmp GPERF_OPT='-n -C -T -c -t -j1 -L ANSI-C ' -./make_unicode_fold_data.py > unicode_fold_data.c +python3 make_unicode_fold_data.py > unicode_fold_data.c ${GPERF} ${GPERF_OPT} -F,-1,0 -N onigenc_unicode_unfold_key unicode_unfold_key.gperf > ${TMP0} -./gperf_unfold_key_conv.py < ${TMP0} > unicode_unfold_key.c +python3 gperf_unfold_key_conv.py < ${TMP0} > unicode_unfold_key.c ${GPERF} ${GPERF_OPT} -F,-1 -N onigenc_unicode_fold1_key unicode_fold1_key.gperf > ${TMP1} -./gperf_fold_key_conv.py 1 < ${TMP1} > unicode_fold1_key.c +python3 gperf_fold_key_conv.py 1 < ${TMP1} > unicode_fold1_key.c ${GPERF} ${GPERF_OPT} -F,-1 -N onigenc_unicode_fold2_key unicode_fold2_key.gperf > ${TMP2} -./gperf_fold_key_conv.py 2 < ${TMP2} > unicode_fold2_key.c +python3 gperf_fold_key_conv.py 2 < ${TMP2} > unicode_fold2_key.c ${GPERF} ${GPERF_OPT} -F,-1 -N onigenc_unicode_fold3_key unicode_fold3_key.gperf > ${TMP3} -./gperf_fold_key_conv.py 3 < ${TMP3} > unicode_fold3_key.c +python3 gperf_fold_key_conv.py 3 < ${TMP3} > unicode_fold3_key.c # remove redundant EOLs before EOF perl -i -pe 'BEGIN{undef $/}s/\n\n*\z/\n/;' unicode_fold_data.c diff --git a/src/make_unicode_fold_data.py b/src/make_unicode_fold_data.py index a73a8a4..1600021 100755 --- a/src/make_unicode_fold_data.py +++ b/src/make_unicode_fold_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_fold_data.py -# Copyright (c) 2016-2021 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re @@ -30,7 +30,7 @@ LOCALE_UNFOLDS = {} COPYRIGHT = ''' /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -182,12 +182,12 @@ typedef unsigned long OnigCodePoint; def divide_by_fold_len(d): l = d.items() - l1 = filter(lambda (k,e):e.fold_len == 1, l) - l2 = filter(lambda (k,e):e.fold_len == 2, l) - l3 = filter(lambda (k,e):e.fold_len == 3, l) - sl1 = sorted(l1, key=lambda (k,e):k) - sl2 = sorted(l2, key=lambda (k,e):k) - sl3 = sorted(l3, key=lambda (k,e):k) + l1 = filter(lambda x:x[1].fold_len == 1, l) + l2 = filter(lambda x:x[1].fold_len == 2, l) + l3 = filter(lambda x:x[1].fold_len == 3, l) + sl1 = sorted(l1, key=lambda x:x[0]) + sl2 = sorted(l2, key=lambda x:x[0]) + sl3 = sorted(l3, key=lambda x:x[0]) return (sl1, sl2, sl3) def output_comment(f, s): @@ -198,7 +198,7 @@ def output_data_n1(f, n, fn, c, out_comment): e.index = c if out_comment and n > 1 and e.comment is not None: output_comment(f, e.comment) - print >> f, '' + print('', file=f) f.write(' ') f.write("/*%4d*/ " % c) @@ -226,25 +226,25 @@ def output_data_n1(f, n, fn, c, out_comment): return c def output_data_n(f, name, n, fn, lfn, out_comment): - print >> f, "OnigCodePoint %s%d[] = {" % (name, n) + print("OnigCodePoint %s%d[] = {" % (name, n), file=f) c = 0 c = output_data_n1(f, n, fn, c, out_comment) - print >> f, "#define FOLDS%d_NORMAL_END_INDEX %d" % (n, c) - print >> f, " /* ----- LOCALE ----- */" + print("#define FOLDS%d_NORMAL_END_INDEX %d" % (n, c), file=f) + print(" /* ----- LOCALE ----- */", file=f) c = output_data_n1(f, n, lfn, c, out_comment) - print >> f, "#define FOLDS%d_END_INDEX %d" % (n, c) - print >> f, "};" + print("#define FOLDS%d_END_INDEX %d" % (n, c), file=f) + print("};", file=f) def output_fold_data(f, name, out_comment): f1, f2, f3 = divide_by_fold_len(FOLDS) lf1, lf2, lf3 = divide_by_fold_len(LOCALE_FOLDS) output_data_n(f, name, 1, f1, lf1, out_comment) - print >> f, '' + print('', file=f) output_data_n(f, name, 2, f2, lf2, out_comment) - print >> f, '' + print('', file=f) output_data_n(f, name, 3, f3, lf3, out_comment) - print >> f, '' + print('', file=f) def output_macros(f, name): print >> f, "#define FOLDS1_FOLD(i) (%s1 + (i))" % name @@ -264,18 +264,18 @@ def output_macros(f, name): print >> f, "#define FOLDS3_NEXT_INDEX(i) ((i) + 4 + %s1[(i)+3])" % name def output_fold_source(f, out_comment): - print >> f, "/* This file was generated by make_unicode_fold_data.py. */" - print >> f, COPYRIGHT - print >> f, "\n" - print >> f, '#include "regenc.h"' - print >> f, '' + print("/* This file was generated by make_unicode_fold_data.py. */", file=f) + print(COPYRIGHT, file=f) + print("\n", file=f) + print('#include "regenc.h"', file=f) + print('', file=f) if VERSION_INFO[0] < 0: raise RuntimeError("Version is not found") - print "#define UNICODE_CASEFOLD_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) - print '' + print("#define UNICODE_CASEFOLD_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) + print('') #output_macros(f, DataName) - print >> f, '' + print('', file=f) #output_typedef(f) output_fold_data(f, DataName, out_comment) @@ -296,12 +296,12 @@ struct ByUnfoldKey { f.write(head) UNFOLDS.update(LOCALE_UNFOLDS) l = UNFOLDS.items() - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for k, e in sl: f.write('"%s", /*0x%04x*/ %4d, %d\n' % (form3bytes(k), k, e.index, e.fold_len)) - print >> f, '%%' + print('%%', file=f) def output_gperf_fold_key(f, key_len): head = "%{\n/* This gperf source file was generated by make_unicode_fold_data.py */\n\n" + COPYRIGHT + """\ @@ -314,13 +314,13 @@ short int """ f.write(head) l = FOLDS.items() - l = filter(lambda (k,e):e.fold_len == key_len, l) - sl = sorted(l, key=lambda (k,e):e.index) + l = filter(lambda x:x[1].fold_len == key_len, l) + sl = sorted(l, key=lambda x:x[1].index) for k, e in sl: skey = ''.join(map(lambda i: form3bytes(i), e.fold)) f.write('"%s", %4d\n' % (skey, e.index)) - print >> f, '%%' + print('%%', file=f) def output_gperf_source(): with open(GPERF_UNFOLD_KEY_FILE, 'w') as f: @@ -334,7 +334,7 @@ def output_gperf_source(): def unfolds_byte_length_check(encode): l = UNFOLDS.items() - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for unfold, e in sl: key_len = enc_len(unfold, encode) fold_len = sum(map(lambda c: enc_len(c, encode), e.fold)) @@ -345,7 +345,7 @@ def unfolds_byte_length_check(encode): def double_fold_check(): l = UNFOLDS.items() - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for unfold, e in sl: for f in e.fold: #print >> sys.stderr, ("check 0x%06x" % f) @@ -356,9 +356,9 @@ def double_fold_check(): def unfold_is_multi_code_folds_head_check(): l = UNFOLDS.items() - l2 = filter(lambda (k,e):e.fold_len == 2, l) - l3 = filter(lambda (k,e):e.fold_len == 3, l) - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + l2 = filter(lambda x:x[1].fold_len == 2, l) + l3 = filter(lambda x:x[1].fold_len == 3, l) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) for unfold, _ in sl: for k, e in l2: if e.fold[0] == unfold: @@ -454,7 +454,7 @@ def get_all_folds_expansion_max_num(): one_folds = make_one_folds(l) fold2_heads = make_foldn_heads(l, 2, one_folds) fold3_heads = make_foldn_heads(l, 3, one_folds) - sl = sorted(l, key=lambda (k,e):(e.fold_len, e.index)) + sl = sorted(l, key=lambda x:(x[1].fold_len, x[1].index)) nmax = 0 max_unfold = None for unfold, e in sl: diff --git a/src/make_unicode_property.sh b/src/make_unicode_property.sh index 1b299a5..d36484a 100755 --- a/src/make_unicode_property.sh +++ b/src/make_unicode_property.sh @@ -13,8 +13,8 @@ POOL_CAST='s/\(int *\)\(size_t *\)&\(\(struct +unicode_prop_name_pool_t *\* *\) ADD_STATIC='s/(const +struct +PoolPropertyNameCtype +\*)/static \1/' ADD_CAST='s/unsigned +int +hval *= *len/unsigned int hval = (unsigned int )len/' -./make_unicode_property_data.py > ${NAME}.gperf -./make_unicode_property_data.py -posix > ${NAME}_posix.gperf +python3 make_unicode_property_data.py > ${NAME}.gperf +python3 make_unicode_property_data.py -posix > ${NAME}_posix.gperf ${GPERF} ${GPERF_OPT} -N unicode_lookup_property_name --output-file ${TMP1} ${NAME}.gperf cat ${TMP1} | ${SED} -e 's/^#line.*$//g' | ${SED} -E "${POOL_CAST}" | ${SED} -E "${ADD_STATIC}" | ${SED} -E "${ADD_CAST}" > ${NAME}.c diff --git a/src/make_unicode_property_data.py b/src/make_unicode_property_data.py index 78ccb29..b0a8263 100755 --- a/src/make_unicode_property_data.py +++ b/src/make_unicode_property_data.py @@ -1,14 +1,15 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_property_data.py -# Copyright (c) 2016-2021 K.Kosako +# Copyright (c) 2016-2023 K.Kosako import sys import re POSIX_LIST = [ - 'NEWLINE', 'Alpha', 'Blank', 'Cntrl', 'Digit', 'Graph', 'Lower', - 'Print', 'Punct', 'Space', 'Upper', 'XDigit', 'Word', 'Alnum', 'ASCII' + 'NEWLINE', 'Alpha', 'Blank', 'Cntrl', 'Digit', 'Graph', 'Lower', + 'Print', 'PosixPunct', 'Space', 'Upper', 'XDigit', 'Word', 'Alnum', + 'ASCII' ] MAX_CODE_POINT = 0x10ffff @@ -45,31 +46,31 @@ def fix_block_name(name): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) - print len(ranges) + print(len(ranges)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i PRINT_CACHE = { } def print_property(prop, data, desc): - print '' - print "/* PROPERTY: '%s': %s */" % (prop, desc) + print('') + print("/* PROPERTY: '%s': %s */" % (prop, desc)) prev_prop = dic_find_by_value(PRINT_CACHE, data) if prev_prop is not None: - print "#define CR_%s CR_%s" % (prop, prev_prop) + print("#define CR_%s CR_%s" % (prop, prev_prop)) else: PRINT_CACHE[prop] = data - print "static const OnigCodePoint" - print "CR_%s[] = { %d," % (prop, len(data)) + print("static const OnigCodePoint") + print("CR_%s[] = { %d," % (prop, len(data))) for (start, end) in data: - print "0x%04x, 0x%04x," % (start, end) + print("0x%04x, 0x%04x," % (start, end)) - print "}; /* END of CR_%s */" % prop + print("}; /* END of CR_%s */" % prop) def dic_find_by_value(dic, v): @@ -99,7 +100,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -174,16 +175,19 @@ def merge_dic(to_dic, from_dic): from_keys = from_dic.keys() common = list(set(to_keys) & set(from_keys)) if len(common) != 0: - print >> sys.stderr, "merge_dic: collision: %s" % sorted(common) + print("merge_dic: collision: %s" % sorted(common), file=sys.stderr) to_dic.update(from_dic) -def merge_props(to_props, from_props): - common = list(set(to_props) & set(from_props)) +def merge_props(to_dic, from_dic): + to_keys = to_dic.keys() + from_keys = from_dic.keys() + common = list(set(to_keys) & set(from_keys)) if len(common) != 0: - print >> sys.stderr, "merge_props: collision: %s" % sorted(common) + print("merge_props: collision: %s" % sorted(common), file=sys.stderr) - to_props.extend(from_props) + for k in from_keys: + to_dic[k] = True def add_range_into_dic(dic, name, start, end): d = dic.get(name, None) @@ -234,7 +238,6 @@ def parse_properties(path, klass, prop_prefix = None, version_reg = None): with open(path, 'r') as f: dic = { } prop = None - props = [] for line in f: s = line.strip() if len(s) == 0: @@ -261,10 +264,9 @@ def parse_properties(path, klass, prop_prefix = None, version_reg = None): elif PR_TOTAL_REG.match(s) is not None: KDIC[prop] = klass - props.append(prop) normalize_ranges_in_dic(dic) - return (dic, props, version_match) + return (dic, version_match) def parse_property_aliases(path): a = { } @@ -384,7 +386,7 @@ def add_posix_props(dic): dic['Alpha'] = dic['Alphabetic'] dic['Upper'] = dic['Uppercase'] dic['Lower'] = dic['Lowercase'] - dic['Punct'] = dic['P'] # P == Punctuation + dic['PosixPunct'] = add_ranges(dic['P'], dic['S']) # P == Punctuation dic['Digit'] = dic['Nd'] dic['XDigit'] = [(0x0030, 0x0039), (0x0041, 0x0046), (0x0061, 0x0066)] dic['Alnum'] = alnum @@ -405,7 +407,7 @@ def set_max_prop_name(name): def entry_prop_name(name, index): set_max_prop_name(name) if OUTPUT_LIST_MODE and index >= len(POSIX_LIST): - print >> UPF, "%s" % (name) + print("%s" % (name), file=UPF) def entry_and_print_prop_and_index(name, index): entry_prop_name(name, index) @@ -413,10 +415,10 @@ def entry_and_print_prop_and_index(name, index): print_prop_and_index(nname, index) def parse_and_merge_properties(path, klass, prop_prefix = None, version_reg = None): - dic, props, ver_m = parse_properties(path, klass, prop_prefix, version_reg) + dic, ver_m = parse_properties(path, klass, prop_prefix, version_reg) merge_dic(DIC, dic) - merge_props(PROPS, props) - return dic, props, ver_m + merge_props(PROPS, dic) + return dic, ver_m ### main ### @@ -425,7 +427,7 @@ argc = len(argv) COPYRIGHT = ''' /*- - * Copyright (c) 2016-2021 K.Kosako + * Copyright (c) 2016-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -461,7 +463,7 @@ for i in range(1, argc): elif arg == '-gc': INCLUDE_GRAPHEME_CLUSTER_DATA = True else: - print >> sys.stderr, "Invalid argument: %s" % arg + print("Invalid argument: %s" % arg, file=sys.stderr) OUTPUT_LIST_MODE = not(POSIX_ONLY) @@ -471,26 +473,26 @@ with open('UnicodeData.txt', 'r') as f: DIC = dic add_primitive_props(assigned) -PROPS = DIC.keys() -PROPS = list_sub(PROPS, POSIX_LIST) +PROPS = DIC.fromkeys(DIC, True) +PROPS = {k: v for k, v in PROPS.items() if k not in POSIX_LIST} -_, _, ver_m = parse_and_merge_properties('DerivedCoreProperties.txt', 'Derived Property', None, UNICODE_VERSION_REG) +_, ver_m = parse_and_merge_properties('DerivedCoreProperties.txt', 'Derived Property', None, UNICODE_VERSION_REG) if ver_m is not None: VERSION_INFO[0] = int(ver_m.group(1)) VERSION_INFO[1] = int(ver_m.group(2)) VERSION_INFO[2] = int(ver_m.group(3)) -dic, props, _ = parse_and_merge_properties('Scripts.txt', 'Script') +dic, _ = parse_and_merge_properties('Scripts.txt', 'Script') DIC['Unknown'] = inverse_ranges(add_ranges_in_dic(dic)) parse_and_merge_properties('PropList.txt', 'Binary Property') -_, _, ver_m = parse_and_merge_properties('emoji-data.txt', 'Emoji Property', None, EMOJI_VERSION_REG) +_, ver_m = parse_and_merge_properties('emoji-data.txt', 'Emoji Property', None, EMOJI_VERSION_REG) if ver_m is not None: EMOJI_VERSION_INFO[0] = int(ver_m.group(1)) EMOJI_VERSION_INFO[1] = int(ver_m.group(2)) -PROPS.append('Unknown') +PROPS['Unknown'] = True KDIC['Unknown'] = 'Script' ALIASES = parse_property_aliases('PropertyAliases.txt') @@ -501,34 +503,39 @@ dic, BLOCKS = parse_blocks('Blocks.txt') merge_dic(DIC, dic) if INCLUDE_GRAPHEME_CLUSTER_DATA: - dic, props, _ = parse_properties('GraphemeBreakProperty.txt', - 'GraphemeBreak Property', - GRAPHEME_CLUSTER_BREAK_NAME_PREFIX) + dic, _ = parse_properties('GraphemeBreakProperty.txt', + 'GraphemeBreak Property', + GRAPHEME_CLUSTER_BREAK_NAME_PREFIX) merge_dic(DIC, dic) - merge_props(PROPS, props) + merge_props(PROPS, dic) #prop = GRAPHEME_CLUSTER_BREAK_NAME_PREFIX + 'Other' #DIC[prop] = inverse_ranges(add_ranges_in_dic(dic)) - #PROPS.append(prop) + #PROPS[prop] = True #KDIC[prop] = 'GrapemeBreak Property' add_posix_props(DIC) -PROPS = sorted(PROPS) +PROP_LIST = sorted(PROPS.keys()) s = '''%{ /* Generated by make_unicode_property_data.py. */ ''' -print s -print COPYRIGHT -print '' +print(s) +print(COPYRIGHT) +print('') for prop in POSIX_LIST: - print_property(prop, DIC[prop], "POSIX [[:%s:]]" % prop) + if prop == 'PosixPunct': + desc = "POSIX [[:punct:]]" + else: + desc = "POSIX [[:%s:]]" % prop + + print_property(prop, DIC[prop], desc) -print '' +print('') if not(POSIX_ONLY): - for prop in PROPS: + for prop in PROP_LIST: klass = KDIC.get(prop, None) if klass is None: n = len(prop) @@ -545,18 +552,18 @@ if not(POSIX_ONLY): print_property(block, DIC[block], 'Block') -print '' -print "static const OnigCodePoint*\nconst CodeRanges[] = {" +print('') +print("static const OnigCodePoint*\nconst CodeRanges[] = {") for prop in POSIX_LIST: - print " CR_%s," % prop + print(" CR_%s," % prop) if not(POSIX_ONLY): - for prop in PROPS: - print " CR_%s," % prop + for prop in PROP_LIST: + print(" CR_%s," % prop) for prop in BLOCKS: - print " CR_%s," % prop + print(" CR_%s," % prop) s = '''}; @@ -579,8 +586,8 @@ if OUTPUT_LIST_MODE: if EMOJI_VERSION_INFO[0] < 0: raise RuntimeError("Emoji Version is not found") - print >> UPF, "Unicode Properties (Unicode Version: %d.%d.%d, Emoji: %d.%d)" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2], EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]) - print >> UPF, '' + print("Unicode Properties (Unicode Version: %d.%d.%d, Emoji: %d.%d)" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2], EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]), file=UPF) + print('', file=UPF) index = -1 for prop in POSIX_LIST: @@ -588,20 +595,20 @@ for prop in POSIX_LIST: entry_and_print_prop_and_index(prop, index) if not(POSIX_ONLY): - for prop in PROPS: + for prop in PROP_LIST: index += 1 entry_and_print_prop_and_index(prop, index) - NALIASES = map(lambda (k,v):(normalize_prop_name(k), k, v), ALIASES.items()) + NALIASES = map(lambda x:(normalize_prop_name(x[0]), x[0], x[1]), ALIASES.items()) NALIASES = sorted(NALIASES) for (nk, k, v) in NALIASES: nv = normalize_prop_name(v) if PropIndex.get(nk, None) is not None: - print >> sys.stderr, "ALIASES: already exists: %s => %s" % (k, v) + print("ALIASES: already exists: %s => %s" % (k, v), file=sys.stderr) continue aindex = PropIndex.get(nv, None) if aindex is None: - #print >> sys.stderr, "ALIASES: value is not exist: %s => %s" % (k, v) + #print("ALIASES: value is not exist: %s => %s" % (k, v), file=sys.stderr) continue entry_prop_name(k, aindex) @@ -611,26 +618,26 @@ if not(POSIX_ONLY): index += 1 entry_and_print_prop_and_index(name, index) -print '%%' -print '' +print('%%') +print('') if not(POSIX_ONLY): if VERSION_INFO[0] < 0: raise RuntimeError("Unicode Version is not found") if EMOJI_VERSION_INFO[0] < 0: raise RuntimeError("Emoji Version is not found") - print "#define UNICODE_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) - print "#define UNICODE_EMOJI_VERSION %02d%02d" % (EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1]) - print '' + print("#define UNICODE_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) + print("#define UNICODE_EMOJI_VERSION %02d%02d" % (EMOJI_VERSION_INFO[0], EMOJI_VERSION_INFO[1])) + print('') -print "#define PROPERTY_NAME_MAX_SIZE %d" % (PROPERTY_NAME_MAX_LEN + 10) -print "#define CODE_RANGES_NUM %d" % (index + 1) +print("#define PROPERTY_NAME_MAX_SIZE %d" % (PROPERTY_NAME_MAX_LEN + 10)) +print("#define CODE_RANGES_NUM %d" % (index + 1)) index_props = make_reverse_dic(PropIndex) -print '' +print('') for i in range(index + 1): for p in index_props[i]: - print "#define PROP_INDEX_%s %d" % (p.upper(), i) + print("#define PROP_INDEX_%s %d" % (p.upper(), i)) if OUTPUT_LIST_MODE: UPF.close() diff --git a/src/make_unicode_wb.sh b/src/make_unicode_wb.sh index e2e98fa..61fafe5 100755 --- a/src/make_unicode_wb.sh +++ b/src/make_unicode_wb.sh @@ -2,6 +2,6 @@ NAME=unicode_wb_data -./make_unicode_wb_data.py > ${NAME}.c +python3 make_unicode_wb_data.py > ${NAME}.c exit 0 diff --git a/src/make_unicode_wb_data.py b/src/make_unicode_wb_data.py index dfa8f1e..fc7d93a 100755 --- a/src/make_unicode_wb_data.py +++ b/src/make_unicode_wb_data.py @@ -1,7 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # make_unicode_wb_data.py -# Copyright (c) 2019-2021 K.Kosako +# Copyright (c) 2019-2023 K.Kosako import sys import re @@ -29,10 +29,10 @@ def check_version_info(s): def print_ranges(ranges): for (start, end) in ranges: - print "0x%06x, 0x%06x" % (start, end) + print("0x%06x, 0x%06x" % (start, end)) def print_prop_and_index(prop, i): - print "%-35s %3d" % (prop + ',', i) + print("%-35s %3d" % (prop + ',', i)) PropIndex[prop] = i def dic_find_by_value(dic, v): @@ -52,7 +52,7 @@ def normalize_ranges(in_ranges, sort=False): r = [] prev = None for (start, end) in ranges: - if prev >= start - 1: + if prev is not None and prev >= start - 1: (pstart, pend) = r.pop() end = max(pend, end) start = pstart @@ -192,10 +192,11 @@ merge_props(PROPS, props) PROPS = sorted(PROPS) -print '/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */' +print('/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */') + COPYRIGHT = ''' /*- - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -221,13 +222,13 @@ COPYRIGHT = ''' */ '''.strip() -print COPYRIGHT -print '' +print(COPYRIGHT) +print('') if VERSION_INFO[0] < 0: raise RuntimeError("Version is not found.") -print "#define WORD_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2]) -print '' +print("#define WORD_BREAK_PROPERTY_VERSION %02d%02d%02d" % (VERSION_INFO[0], VERSION_INFO[1], VERSION_INFO[2])) +print('') ranges = [] for prop in PROPS: @@ -243,16 +244,16 @@ for (start, end, prop) in ranges: raise ValueError("{2}:{0} - {1} range overlap prev value {3}".format(start, end, prop, prev)) -print '/*' +print('/*') for prop in PROPS: - print "%s" % prop -print '*/' -print '' + print("%s" % prop) +print('*/') +print('') num_ranges = len(ranges) -print "static int WB_RANGE_NUM = %d;" % num_ranges +print("static int WB_RANGE_NUM = %d;" % num_ranges) -print 'static WB_RANGE_TYPE WB_RANGES[] = {' +print('static WB_RANGE_TYPE WB_RANGES[] = {') for i, (start, end, prop) in enumerate(ranges): if i == num_ranges - 1: comma = '' @@ -260,8 +261,8 @@ for i, (start, end, prop) in enumerate(ranges): comma = ',' type_name = 'WB_' + prop - print " {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma) + print(" {0x%06x, 0x%06x, %s }%s" % (start, end, type_name, comma)) -print '};' +print('};') sys.exit(0) diff --git a/src/mktable.c b/src/mktable.c index 5f36ee3..1a624e7 100644 --- a/src/mktable.c +++ b/src/mktable.c @@ -2,7 +2,7 @@ mktable.c **********************************************************************/ /*- - * Copyright (c) 2002-2019 K.Kosako + * Copyright (c) 2002-2022 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -638,24 +638,28 @@ static int IsPunct(int enc, int c) if (enc == ASCII) return ispunct(c); - if (enc == UNICODE_ISO_8859_1) { - if (c == 0x24 || c == 0x2b || c == 0x5e || c == 0x60 || - c == 0x7c || c == 0x7e) return 1; - if (c >= 0x3c && c <= 0x3e) return 1; - } - if (c >= 0x21 && c <= 0x2f) return 1; if (c >= 0x3a && c <= 0x40) return 1; if (c >= 0x5b && c <= 0x60) return 1; if (c >= 0x7b && c <= 0x7e) return 1; + if (enc == UNICODE_ISO_8859_1) { + if (c < 0x80) return 0; + + if (c >= 0xa1 && c <= 0xa9) return 1; + if (c >= 0xab && c <= 0xac) return 1; + if (c >= 0xae && c <= 0xb1) return 1; + if (c == 0xb4) return 1; + if (c >= 0xb6 && c <= 0xb8) return 1; + if (c == 0xbb || c == 0xbf || c == 0xd7 || c == 0xf7) return 1; + return 0; + } + switch (enc) { case ISO_8859_1: case ISO_8859_9: case ISO_8859_15: if (c == 0xad) return 1; - /* fall */ - case UNICODE_ISO_8859_1: if (c == 0xa1) return 1; if (c == 0xab) return 1; if (c == 0xb7) return 1; diff --git a/src/oniguruma.h b/src/oniguruma.h index 096ba7d..66da319 100644 --- a/src/oniguruma.h +++ b/src/oniguruma.h @@ -36,9 +36,9 @@ extern "C" { #define ONIGURUMA #define ONIGURUMA_VERSION_MAJOR 6 #define ONIGURUMA_VERSION_MINOR 9 -#define ONIGURUMA_VERSION_TEENY 8 +#define ONIGURUMA_VERSION_TEENY 9 -#define ONIGURUMA_VERSION_INT 60908 +#define ONIGURUMA_VERSION_INT 60909 #ifndef P_ #if defined(__STDC__) || defined(_WIN32) @@ -401,8 +401,9 @@ typedef unsigned int OnigOptionType; #define ONIG_OPTION_NOT_END_STRING (ONIG_OPTION_NOT_BEGIN_STRING << 1) #define ONIG_OPTION_NOT_BEGIN_POSITION (ONIG_OPTION_NOT_END_STRING << 1) #define ONIG_OPTION_CALLBACK_EACH_MATCH (ONIG_OPTION_NOT_BEGIN_POSITION << 1) +#define ONIG_OPTION_MATCH_WHOLE_STRING (ONIG_OPTION_CALLBACK_EACH_MATCH << 1) -#define ONIG_OPTION_MAXBIT ONIG_OPTION_CALLBACK_EACH_MATCH +#define ONIG_OPTION_MAXBIT ONIG_OPTION_MATCH_WHOLE_STRING #define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) #define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) @@ -532,6 +533,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND (1U<<11) /* (?<=a+|..) */ #define ONIG_SYN_PYTHON (1U<<12) /* \UHHHHHHHH */ #define ONIG_SYN_WHOLE_OPTIONS (1U<<13) /* (?Ie) */ +#define ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP (1U<<14) /* \(^abc$\) */ /* syntax (behavior) in char class [...] */ #define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ diff --git a/src/regcomp.c b/src/regcomp.c index d341c38..10da9c4 100644 --- a/src/regcomp.c +++ b/src/regcomp.c @@ -2,7 +2,7 @@ regcomp.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2022 K.Kosako + * Copyright (c) 2002-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,8 +31,8 @@ #define OPS_INIT_SIZE 8 -#define NODE_IS_REAL_IGNORECASE(node) \ - (NODE_IS_IGNORECASE(node) && !NODE_STRING_IS_CRUDE(node)) +#define ND_IS_REAL_IGNORECASE(node) \ + (ND_IS_IGNORECASE(node) && !ND_STRING_IS_CRUDE(node)) typedef struct { OnigLen min; @@ -360,7 +360,7 @@ node_swap(Node* a, Node* b) c = *a; *a = *b; *b = c; - if (NODE_TYPE(a) == NODE_STRING) { + if (ND_TYPE(a) == ND_STRING) { StrNode* sn = STR_(a); if (sn->capacity == 0) { int len = (int )(sn->end - sn->s); @@ -369,7 +369,7 @@ node_swap(Node* a, Node* b) } } - if (NODE_TYPE(b) == NODE_STRING) { + if (ND_TYPE(b) == ND_STRING) { StrNode* sn = STR_(b); if (sn->capacity == 0) { int len = (int )(sn->end - sn->s); @@ -385,8 +385,8 @@ node_list_len(Node* list) int len; len = 1; - while (IS_NOT_NULL(NODE_CDR(list))) { - list = NODE_CDR(list); + while (IS_NOT_NULL(ND_CDR(list))) { + list = ND_CDR(list); len++; } @@ -402,10 +402,10 @@ node_list_add(Node* list, Node* x) if (IS_NULL(n)) return NULL_NODE; if (IS_NOT_NULL(list)) { - while (IS_NOT_NULL(NODE_CDR(list))) - list = NODE_CDR(list); + while (IS_NOT_NULL(ND_CDR(list))) + list = ND_CDR(list); - NODE_CDR(list) = n; + ND_CDR(list) = n; } return n; @@ -416,7 +416,7 @@ node_str_node_cat(Node* node, Node* add) { int r; - if (NODE_STATUS(node) != NODE_STATUS(add)) + if (ND_STATUS(node) != ND_STATUS(add)) return ONIGERR_TYPE_BUG; if (STR_(node)->flag != STR_(add)->flag) @@ -432,8 +432,8 @@ static void node_conv_to_str_node(Node* node, Node* ref_node) { xmemset(node, 0, sizeof(*node)); - NODE_SET_TYPE(node, NODE_STRING); - NODE_STATUS(node) = NODE_STATUS(ref_node); + ND_SET_TYPE(node, ND_STRING); + ND_STATUS(node) = ND_STATUS(ref_node); STR_(node)->flag = STR_(ref_node)->flag; STR_(node)->s = STR_(node)->buf; @@ -639,12 +639,12 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, level++; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { int first = TRUE; do { - r = node_char_len1(NODE_CAR(node), reg, &tci, env, level); + r = node_char_len1(ND_CAR(node), reg, &tci, env, level); if (r < 0) break; if (first == TRUE) { *ci = tci; @@ -652,20 +652,20 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } else mmcl_add(ci, &tci); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_ALT: + case ND_ALT: { int fixed; - r = node_char_len1(NODE_CAR(node), reg, ci, env, level); + r = node_char_len1(ND_CAR(node), reg, ci, env, level); if (r < 0) break; fixed = TRUE; - while (IS_NOT_NULL(node = NODE_CDR(node))) { - r = node_char_len1(NODE_CAR(node), reg, &tci, env, level); + while (IS_NOT_NULL(node = ND_CDR(node))) { + r = node_char_len1(ND_CAR(node), reg, &tci, env, level); if (r < 0) break; if (! mmcl_fixed(&tci)) fixed = FALSE; @@ -682,13 +682,13 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } break; - case NODE_STRING: + case ND_STRING: { OnigLen clen; StrNode* sn = STR_(node); UChar *s = sn->s; - if (NODE_IS_REAL_IGNORECASE(node) && + if (ND_IS_REAL_IGNORECASE(node) && CASE_FOLD_IS_NOT_ASCII_ONLY(env->case_fold_flag)) { /* Such a case is possible. ex. /(?i)(?<=\1)(a)/ @@ -707,7 +707,7 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -716,13 +716,13 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, mmcl_set(ci, 0); } else { - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); if (r < 0) break; mmcl_multiply(ci, qn->lower); } } else { - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); if (r < 0) break; mmcl_repeat_range_multiply(ci, qn->lower, qn->upper); } @@ -730,44 +730,44 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, break; #ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) + case ND_CALL: + if (ND_IS_RECURSION(node)) mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); else - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); break; #endif - case NODE_CTYPE: - case NODE_CCLASS: + case ND_CTYPE: + case ND_CCLASS: mmcl_set(ci, 1); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_FIXED_CLEN(node)) { + if (ND_IS_FIXED_CLEN(node)) { mmcl_set_min_max(ci, en->min_char_len, en->max_char_len, - NODE_IS_FIXED_CLEN_MIN_SURE(node)); + ND_IS_FIXED_CLEN_MIN_SURE(node)); } else { - if (NODE_IS_MARK1(node)) { + if (ND_IS_MARK1(node)) { mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); } else { - NODE_STATUS_ADD(node, MARK1); - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + ND_STATUS_REMOVE(node, MARK1); if (r < 0) break; en->min_char_len = ci->min; en->max_char_len = ci->max; - NODE_STATUS_ADD(node, FIXED_CLEN); + ND_STATUS_ADD(node, FIXED_CLEN); if (ci->min_is_sure != FALSE) - NODE_STATUS_ADD(node, FIXED_CLEN_MIN_SURE); + ND_STATUS_ADD(node, FIXED_CLEN_MIN_SURE); } } /* can't optimize look-behind if capture exists. */ @@ -775,13 +775,13 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, break; case BAG_OPTION: case BAG_STOP_BACKTRACK: - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); break; case BAG_IF_ELSE: { MinMaxCharLen eci; - r = node_char_len1(NODE_BODY(node), reg, ci, env, level); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); if (r < 0) break; if (IS_NOT_NULL(en->te.Then)) { @@ -808,24 +808,24 @@ node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, } break; - case NODE_GIMMICK: + case ND_GIMMICK: mmcl_set(ci, 0); break; - case NODE_ANCHOR: + case ND_ANCHOR: zero: mmcl_set(ci, 0); /* can't optimize look-behind if anchor exists. */ ci->min_is_sure = FALSE; break; - case NODE_BACKREF: - if (NODE_IS_CHECKER(node)) + case ND_BACKREF: + if (ND_IS_CHECKER(node)) goto zero; - if (NODE_IS_RECURSION(node)) { + if (ND_IS_RECURSION(node)) { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); break; } @@ -887,7 +887,7 @@ add_op(regex_t* reg, int opcode) return 0; } -static int compile_length_tree(Node* node, regex_t* reg); +static int compile_length_tree(Node* node, regex_t* reg, ParseEnv* env); static int compile_tree(Node* node, regex_t* reg, ParseEnv* env); @@ -936,16 +936,16 @@ select_str_opcode(int mb_len, int str_len) static int is_strict_real_node(Node* node) { - switch (NODE_TYPE(node)) { - case NODE_STRING: + switch (ND_TYPE(node)) { + case ND_STRING: { StrNode* sn = STR_(node); return (sn->end != sn->s); } break; - case NODE_CCLASS: - case NODE_CTYPE: + case ND_CCLASS: + case ND_CTYPE: return 1; break; @@ -963,7 +963,7 @@ compile_quant_body_with_empty_check(QuantNode* qn, regex_t* reg, ParseEnv* env) int emptiness; Node* body; - body = NODE_BODY((Node* )qn); + body = ND_BODY((Node* )qn); emptiness = qn->emptiness; saved_num_empty_check = reg->num_empty_check; @@ -981,7 +981,7 @@ compile_quant_body_with_empty_check(QuantNode* qn, regex_t* reg, ParseEnv* env) if (emptiness == BODY_MAY_BE_EMPTY) r = add_op(reg, OP_EMPTY_CHECK_END); else if (emptiness == BODY_MAY_BE_EMPTY_MEM) { - if (NODE_IS_EMPTY_STATUS_CHECK(qn) != 0 && qn->empty_status_mem != 0) { + if (ND_IS_EMPTY_STATUS_CHECK(qn) != 0 && qn->empty_status_mem != 0) { r = add_op(reg, OP_EMPTY_CHECK_END_MEMST); if (r != 0) return r; COP(reg)->empty_check_end.empty_status_mem = qn->empty_status_mem; @@ -1019,7 +1019,7 @@ compile_call(CallNode* node, regex_t* reg, ParseEnv* env) #endif offset = COP_CURR_OFFSET_BYTES(reg, call.addr); - r = unset_addr_list_add(env->unset_addr_list, offset, NODE_CALL_BODY(node)); + r = unset_addr_list_add(env->unset_addr_list, offset, ND_CALL_BODY(node)); return r; } #endif @@ -1312,7 +1312,7 @@ static int is_anychar_infinite_greedy(QuantNode* qn) { if (qn->greedy && IS_INFINITE_REPEAT(qn->upper) && - NODE_IS_ANYCHAR(NODE_QUANT_BODY(qn))) + ND_IS_ANYCHAR(ND_QUANT_BODY(qn))) return 1; else return 0; @@ -1322,12 +1322,12 @@ is_anychar_infinite_greedy(QuantNode* qn) #define CKN_ON (ckn > 0) static int -compile_length_quantifier_node(QuantNode* qn, regex_t* reg) +compile_length_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) { int len, mod_tlen; int infinite = IS_INFINITE_REPEAT(qn->upper); enum BodyEmptyType emptiness = qn->emptiness; - int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); + int tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (tlen < 0) return tlen; if (tlen == 0) return 0; @@ -1401,7 +1401,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) int i, r, mod_tlen; int infinite = IS_INFINITE_REPEAT(qn->upper); enum BodyEmptyType emptiness = qn->emptiness; - int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); + int tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (tlen < 0) return tlen; if (tlen == 0) return 0; @@ -1410,10 +1410,10 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) (qn->lower <= 1 || len_multiply_cmp((OnigLen )tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; if (IS_NOT_NULL(qn->next_head_exact)) { - r = add_op(reg, NODE_IS_MULTILINE(NODE_QUANT_BODY(qn)) ? + r = add_op(reg, ND_IS_MULTILINE(ND_QUANT_BODY(qn)) ? OP_ANYCHAR_ML_STAR_PEEK_NEXT : OP_ANYCHAR_STAR_PEEK_NEXT); if (r != 0) return r; @@ -1421,7 +1421,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) return 0; } else { - r = add_op(reg, NODE_IS_MULTILINE(NODE_QUANT_BODY(qn)) ? + r = add_op(reg, ND_IS_MULTILINE(ND_QUANT_BODY(qn)) ? OP_ANYCHAR_ML_STAR : OP_ANYCHAR_STAR); return r; } @@ -1456,7 +1456,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) } } else { - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; } @@ -1520,7 +1520,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->jump.addr = tlen + SIZE_INC; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); } else { /* Nothing output */ @@ -1533,7 +1533,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { int n = qn->upper - qn->lower; - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; for (i = 0; i < n; i++) { @@ -1544,7 +1544,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->push.addr = v; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); if (r != 0) return r; } } @@ -1557,7 +1557,7 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->jump.addr = tlen + SIZE_INC; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); } else { r = compile_range_repeat_node(qn, mod_tlen, emptiness, reg, env); @@ -1566,11 +1566,11 @@ compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) } static int -compile_length_option_node(BagNode* node, regex_t* reg) +compile_length_option_node(BagNode* node, regex_t* reg, ParseEnv* env) { int tlen; - tlen = compile_length_tree(NODE_BAG_BODY(node), reg); + tlen = compile_length_tree(ND_BAG_BODY(node), reg, env); return tlen; } @@ -1580,22 +1580,22 @@ compile_option_node(BagNode* node, regex_t* reg, ParseEnv* env) { int r; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); return r; } static int -compile_length_bag_node(BagNode* node, regex_t* reg) +compile_length_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) { int len; int tlen; if (node->type == BAG_OPTION) - return compile_length_option_node(node, reg); + return compile_length_option_node(node, reg, env); - if (NODE_BAG_BODY(node)) { - tlen = compile_length_tree(NODE_BAG_BODY(node), reg); + if (ND_BAG_BODY(node)) { + tlen = compile_length_tree(ND_BAG_BODY(node), reg, env); if (tlen < 0) return tlen; } else @@ -1605,22 +1605,22 @@ compile_length_bag_node(BagNode* node, regex_t* reg) case BAG_MEMORY: #ifdef USE_CALL - if (node->m.regnum == 0 && NODE_IS_CALLED(node)) { + if (node->m.regnum == 0 && ND_IS_CALLED(node)) { len = tlen + OPSIZE_CALL + OPSIZE_JUMP + OPSIZE_RETURN; return len; } - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { len = OPSIZE_MEM_START_PUSH + tlen + OPSIZE_CALL + OPSIZE_JUMP + OPSIZE_RETURN; if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) - len += (NODE_IS_RECURSION(node) + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_PUSH); else - len += (NODE_IS_RECURSION(node) + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); } - else if (NODE_IS_RECURSION(node)) { + else if (ND_IS_RECURSION(node)) { len = OPSIZE_MEM_START_PUSH; len += tlen + (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum) ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_REC); @@ -1639,12 +1639,12 @@ compile_length_bag_node(BagNode* node, regex_t* reg) break; case BAG_STOP_BACKTRACK: - if (NODE_IS_STRICT_REAL_REPEAT(node)) { + if (ND_IS_STRICT_REAL_REPEAT(node)) { int v; QuantNode* qn; - qn = QUANT_(NODE_BAG_BODY(node)); - tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); + qn = QUANT_(ND_BAG_BODY(node)); + tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (tlen < 0) return tlen; v = onig_positive_int_multiply(qn->lower, tlen); @@ -1658,16 +1658,16 @@ compile_length_bag_node(BagNode* node, regex_t* reg) case BAG_IF_ELSE: { - Node* cond = NODE_BAG_BODY(node); + Node* cond = ND_BAG_BODY(node); Node* Then = node->te.Then; Node* Else = node->te.Else; - len = compile_length_tree(cond, reg); + len = compile_length_tree(cond, reg, env); if (len < 0) return len; len += OPSIZE_PUSH + OPSIZE_MARK + OPSIZE_CUT_TO_MARK; if (IS_NOT_NULL(Then)) { - tlen = compile_length_tree(Then, reg); + tlen = compile_length_tree(Then, reg, env); if (tlen < 0) return tlen; len += tlen; } @@ -1675,7 +1675,7 @@ compile_length_bag_node(BagNode* node, regex_t* reg) len += OPSIZE_JUMP + OPSIZE_CUT_TO_MARK; if (IS_NOT_NULL(Else)) { - tlen = compile_length_tree(Else, reg); + tlen = compile_length_tree(Else, reg, env); if (tlen < 0) return tlen; len += tlen; } @@ -1686,6 +1686,10 @@ compile_length_bag_node(BagNode* node, regex_t* reg) /* never come here, but set for escape warning */ len = 0; break; + + default: + return ONIGERR_TYPE_BUG; + break; } return len; @@ -1697,38 +1701,38 @@ compile_bag_memory_node(BagNode* node, regex_t* reg, ParseEnv* env) int r; #ifdef USE_CALL - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { int len; r = add_op(reg, OP_CALL); if (r != 0) return r; node->m.called_addr = COP_CURR_OFFSET(reg) + 1 + OPSIZE_JUMP; - NODE_STATUS_ADD(node, FIXED_ADDR); + ND_STATUS_ADD(node, FIXED_ADDR); COP(reg)->call.addr = (int )node->m.called_addr; if (node->m.regnum == 0) { - len = compile_length_tree(NODE_BAG_BODY(node), reg); + len = compile_length_tree(ND_BAG_BODY(node), reg, env); len += OPSIZE_RETURN; r = add_op(reg, OP_JUMP); if (r != 0) return r; COP(reg)->jump.addr = len + SIZE_INC; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_RETURN); return r; } else { - len = compile_length_tree(NODE_BAG_BODY(node), reg); + len = compile_length_tree(ND_BAG_BODY(node), reg, env); len += (OPSIZE_MEM_START_PUSH + OPSIZE_RETURN); if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) - len += (NODE_IS_RECURSION(node) + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_PUSH); else - len += (NODE_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); r = add_op(reg, OP_JUMP); if (r != 0) return r; @@ -1744,19 +1748,19 @@ compile_bag_memory_node(BagNode* node, regex_t* reg, ParseEnv* env) if (r != 0) return r; COP(reg)->memory_start.num = node->m.regnum; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); if (r != 0) return r; #ifdef USE_CALL if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) - r = add_op(reg, (NODE_IS_RECURSION(node) + r = add_op(reg, (ND_IS_RECURSION(node) ? OP_MEM_END_PUSH_REC : OP_MEM_END_PUSH)); else - r = add_op(reg, (NODE_IS_RECURSION(node) ? OP_MEM_END_REC : OP_MEM_END)); + r = add_op(reg, (ND_IS_RECURSION(node) ? OP_MEM_END_REC : OP_MEM_END)); if (r != 0) return r; COP(reg)->memory_end.num = node->m.regnum; - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { r = add_op(reg, OP_RETURN); } #else @@ -1786,19 +1790,19 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) break; case BAG_STOP_BACKTRACK: - if (NODE_IS_STRICT_REAL_REPEAT(node)) { - QuantNode* qn = QUANT_(NODE_BAG_BODY(node)); - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); + if (ND_IS_STRICT_REAL_REPEAT(node)) { + QuantNode* qn = QUANT_(ND_BAG_BODY(node)); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); if (r != 0) return r; - len = compile_length_tree(NODE_QUANT_BODY(qn), reg); + len = compile_length_tree(ND_QUANT_BODY(qn), reg, env); if (len < 0) return len; r = add_op(reg, OP_PUSH); if (r != 0) return r; COP(reg)->push.addr = SIZE_INC + len + OPSIZE_POP + OPSIZE_JUMP; - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); + r = compile_tree(ND_QUANT_BODY(qn), reg, env); if (r != 0) return r; r = add_op(reg, OP_POP); if (r != 0) return r; @@ -1816,7 +1820,7 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = 0; - r = compile_tree(NODE_BAG_BODY(node), reg, env); + r = compile_tree(ND_BAG_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_CUT_TO_MARK); if (r != 0) return r; @@ -1829,7 +1833,7 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) { int cond_len, then_len, else_len, jump_len; MemNumType mid; - Node* cond = NODE_BAG_BODY(node); + Node* cond = ND_BAG_BODY(node); Node* Then = node->te.Then; Node* Else = node->te.Else; @@ -1840,10 +1844,10 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = 0; - cond_len = compile_length_tree(cond, reg); + cond_len = compile_length_tree(cond, reg, env); if (cond_len < 0) return cond_len; if (IS_NOT_NULL(Then)) { - then_len = compile_length_tree(Then, reg); + then_len = compile_length_tree(Then, reg, env); if (then_len < 0) return then_len; } else @@ -1868,7 +1872,7 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) } if (IS_NOT_NULL(Else)) { - else_len = compile_length_tree(Else, reg); + else_len = compile_length_tree(Else, reg, env); if (else_len < 0) return else_len; } else @@ -1888,19 +1892,23 @@ compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) } } break; + + default: + return ONIGERR_TYPE_BUG; + break; } return r; } static int -compile_length_anchor_node(AnchorNode* node, regex_t* reg) +compile_length_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) { int len; int tlen = 0; - if (IS_NOT_NULL(NODE_ANCHOR_BODY(node))) { - tlen = compile_length_tree(NODE_ANCHOR_BODY(node), reg); + if (IS_NOT_NULL(ND_ANCHOR_BODY(node))) { + tlen = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); if (tlen < 0) return tlen; } @@ -1918,11 +1926,14 @@ compile_length_anchor_node(AnchorNode* node, regex_t* reg) len = OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR + OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_UPDATE_VAR + OPSIZE_FAIL + OPSIZE_JUMP + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + tlen + OPSIZE_CHECK_POSITION + OPSIZE_CUT_TO_MARK + OPSIZE_UPDATE_VAR; if (IS_NOT_NULL(node->lead_node)) { - int llen = compile_length_tree(node->lead_node, reg); + int llen = compile_length_tree(node->lead_node, reg, env); if (llen < 0) return llen; len += OPSIZE_MOVE + llen; } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + len += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; } break; case ANCR_LOOK_BEHIND_NOT: @@ -1932,11 +1943,14 @@ compile_length_anchor_node(AnchorNode* node, regex_t* reg) len = OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR + OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + tlen + OPSIZE_CHECK_POSITION + OPSIZE_POP_TO_MARK + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_FAIL + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_POP; if (IS_NOT_NULL(node->lead_node)) { - int llen = compile_length_tree(node->lead_node, reg); + int llen = compile_length_tree(node->lead_node, reg, env); if (llen < 0) return llen; len += OPSIZE_MOVE + llen; } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + len += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; } break; @@ -1982,7 +1996,7 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->step_back_start.remaining = 0; COP(reg)->step_back_start.addr = 1; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_CUT_TO_MARK); @@ -1991,8 +2005,9 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->cut_to_mark.restore_pos = FALSE; } else { - MemNumType mid1, mid2; OnigLen diff; + MemNumType mid1, mid2; + MemNumType mid3 = 0; /* ignore uninitialized warning */ if (IS_NOT_NULL(node->lead_node)) { MinMaxCharLen ci; @@ -2038,6 +2053,14 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) r = add_op(reg, OP_FAIL); if (r != 0) return r; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + ID_ENTRY(env, mid3); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid3; + } + r = add_op(reg, OP_STEP_BACK_START); if (r != 0) return r; @@ -2053,9 +2076,17 @@ compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) r = add_op(reg, OP_STEP_BACK_NEXT); if (r != 0) return r; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid3; + COP(reg)->update_var.clear = FALSE; + } + r = add_op(reg, OP_CHECK_POSITION); if (r != 0) return r; COP(reg)->check_position.type = CHECK_POSITION_CURRENT_RIGHT_RANGE; @@ -2082,7 +2113,7 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, int r; int len; - len = compile_length_tree(NODE_ANCHOR_BODY(node), reg); + len = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); if (node->char_min_len == node->char_max_len) { MemNumType mid; @@ -2103,7 +2134,7 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, COP(reg)->step_back_start.remaining = 0; COP(reg)->step_back_start.addr = 1; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_POP_TO_MARK); @@ -2114,8 +2145,9 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, r = add_op(reg, OP_POP); } else { - MemNumType mid1, mid2; OnigLen diff; + MemNumType mid1, mid2; + MemNumType mid3 = 0; /* ignore uninitialized warning */ ID_ENTRY(env, mid1); r = add_op(reg, OP_SAVE_VAL); @@ -2135,13 +2167,16 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, r = add_op(reg, OP_PUSH); if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + len + OPSIZE_CHECK_POSITION + OPSIZE_POP_TO_MARK + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_FAIL; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + COP(reg)->push.addr += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; if (IS_NOT_NULL(node->lead_node)) { int clen; MinMaxCharLen ci; - clen = compile_length_tree(node->lead_node, reg); + clen = compile_length_tree(node->lead_node, reg, env); COP(reg)->push.addr += OPSIZE_MOVE + clen; r = node_char_len(node->lead_node, reg, &ci, env); @@ -2154,6 +2189,14 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, if (r != 0) return r; } + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + ID_ENTRY(env, mid3); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid3; + } + r = add_op(reg, OP_STEP_BACK_START); if (r != 0) return r; @@ -2169,9 +2212,17 @@ compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, r = add_op(reg, OP_STEP_BACK_NEXT); if (r != 0) return r; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid3; + COP(reg)->update_var.clear = FALSE; + } + r = add_op(reg, OP_CHECK_POSITION); if (r != 0) return r; COP(reg)->check_position.type = CHECK_POSITION_CURRENT_RIGHT_RANGE; @@ -2254,7 +2305,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) type = EXTENDED_GRAPHEME_CLUSTER_BOUNDARY; #ifdef USE_UNICODE_WORD_BREAK - if (NODE_IS_TEXT_SEGMENT_WORD(node)) + if (ND_IS_TEXT_SEGMENT_WORD(node)) type = WORD_BOUNDARY; #endif @@ -2272,7 +2323,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = TRUE; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_CUT_TO_MARK); @@ -2284,7 +2335,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) case ANCR_PREC_READ_NOT: { - len = compile_length_tree(NODE_ANCHOR_BODY(node), reg); + len = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); if (len < 0) return len; ID_ENTRY(env, mid); @@ -2298,7 +2349,7 @@ compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) COP(reg)->mark.id = mid; COP(reg)->mark.save_pos = FALSE; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); if (r != 0) return r; r = add_op(reg, OP_POP_TO_MARK); @@ -2416,78 +2467,82 @@ compile_length_gimmick_node(GimmickNode* node, regex_t* reg) } break; #endif + + default: + return ONIGERR_TYPE_BUG; + break; } return len; } static int -compile_length_tree(Node* node, regex_t* reg) +compile_length_tree(Node* node, regex_t* reg, ParseEnv* env) { int len, r; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: len = 0; do { - r = compile_length_tree(NODE_CAR(node), reg); + r = compile_length_tree(ND_CAR(node), reg, env); if (r < 0) return r; len += r; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); r = len; break; - case NODE_ALT: + case ND_ALT: { int n; n = r = 0; do { - r += compile_length_tree(NODE_CAR(node), reg); + r += compile_length_tree(ND_CAR(node), reg, env); n++; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); r += (OPSIZE_PUSH + OPSIZE_JUMP) * (n - 1); } break; - case NODE_STRING: - if (NODE_STRING_IS_CRUDE(node)) + case ND_STRING: + if (ND_STRING_IS_CRUDE(node)) r = compile_length_string_crude_node(STR_(node), reg); else r = compile_length_string_node(node, reg); break; - case NODE_CCLASS: + case ND_CCLASS: r = compile_length_cclass_node(CCLASS_(node), reg); break; - case NODE_CTYPE: + case ND_CTYPE: r = SIZE_OPCODE; break; - case NODE_BACKREF: + case ND_BACKREF: r = OPSIZE_BACKREF; break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: r = OPSIZE_CALL; break; #endif - case NODE_QUANT: - r = compile_length_quantifier_node(QUANT_(node), reg); + case ND_QUANT: + r = compile_length_quantifier_node(QUANT_(node), reg, env); break; - case NODE_BAG: - r = compile_length_bag_node(BAG_(node), reg); + case ND_BAG: + r = compile_length_bag_node(BAG_(node), reg, env); break; - case NODE_ANCHOR: - r = compile_length_anchor_node(ANCHOR_(node), reg); + case ND_ANCHOR: + r = compile_length_anchor_node(ANCHOR_(node), reg, env); break; - case NODE_GIMMICK: + case ND_GIMMICK: r = compile_length_gimmick_node(GIMMICK_(node), reg); break; @@ -2504,63 +2559,63 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) { int n, len, pos, r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: do { - r = compile_tree(NODE_CAR(node), reg, env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = compile_tree(ND_CAR(node), reg, env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ALT: + case ND_ALT: { Node* x = node; len = 0; do { - len += compile_length_tree(NODE_CAR(x), reg); - if (IS_NOT_NULL(NODE_CDR(x))) { + len += compile_length_tree(ND_CAR(x), reg, env); + if (IS_NOT_NULL(ND_CDR(x))) { len += OPSIZE_PUSH + OPSIZE_JUMP; } - } while (IS_NOT_NULL(x = NODE_CDR(x))); + } while (IS_NOT_NULL(x = ND_CDR(x))); pos = COP_CURR_OFFSET(reg) + 1 + len; /* goal position */ do { - len = compile_length_tree(NODE_CAR(node), reg); - if (IS_NOT_NULL(NODE_CDR(node))) { - enum OpCode push = NODE_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH; + len = compile_length_tree(ND_CAR(node), reg, env); + if (IS_NOT_NULL(ND_CDR(node))) { + enum OpCode push = ND_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH; r = add_op(reg, push); if (r != 0) break; COP(reg)->push.addr = SIZE_INC + len + OPSIZE_JUMP; } - r = compile_tree(NODE_CAR(node), reg, env); + r = compile_tree(ND_CAR(node), reg, env); if (r != 0) break; - if (IS_NOT_NULL(NODE_CDR(node))) { + if (IS_NOT_NULL(ND_CDR(node))) { len = pos - (COP_CURR_OFFSET(reg) + 1); r = add_op(reg, OP_JUMP); if (r != 0) break; COP(reg)->jump.addr = len; } - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_STRING: - if (NODE_STRING_IS_CRUDE(node)) + case ND_STRING: + if (ND_STRING_IS_CRUDE(node)) r = compile_string_crude_node(STR_(node), reg); else r = compile_string_node(node, reg); break; - case NODE_CCLASS: + case ND_CCLASS: r = compile_cclass_node(CCLASS_(node), reg); break; - case NODE_CTYPE: + case ND_CTYPE: { int op; switch (CTYPE_(node)->ctype) { case CTYPE_ANYCHAR: - r = add_op(reg, NODE_IS_MULTILINE(node) ? OP_ANYCHAR_ML : OP_ANYCHAR); + r = add_op(reg, ND_IS_MULTILINE(node) ? OP_ANYCHAR_ML : OP_ANYCHAR); break; case ONIGENC_CTYPE_WORD: @@ -2580,13 +2635,13 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) } break; - case NODE_BACKREF: + case ND_BACKREF: { BackRefNode* br = BACKREF_(node); - if (NODE_IS_CHECKER(node)) { + if (ND_IS_CHECKER(node)) { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { r = add_op(reg, OP_BACKREF_CHECK_WITH_LEVEL); if (r != 0) return r; COP(reg)->backref_general.nest_level = br->nest_level; @@ -2601,8 +2656,8 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) } else { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { - if (NODE_IS_IGNORECASE(node)) + if (ND_IS_NEST_LEVEL(node)) { + if (ND_IS_IGNORECASE(node)) r = add_op(reg, OP_BACKREF_WITH_LEVEL_IC); else r = add_op(reg, OP_BACKREF_WITH_LEVEL); @@ -2615,7 +2670,7 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) #endif if (br->back_num == 1) { n = br->back_static[0]; - if (NODE_IS_IGNORECASE(node)) { + if (ND_IS_IGNORECASE(node)) { r = add_op(reg, OP_BACKREF_N_IC); if (r != 0) return r; COP(reg)->backref_n.n1 = n; @@ -2636,7 +2691,7 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) int num; int* p; - r = add_op(reg, NODE_IS_IGNORECASE(node) ? + r = add_op(reg, ND_IS_IGNORECASE(node) ? OP_BACKREF_MULTI_IC : OP_BACKREF_MULTI); if (r != 0) return r; @@ -2664,30 +2719,30 @@ compile_tree(Node* node, regex_t* reg, ParseEnv* env) break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: r = compile_call(CALL_(node), reg, env); break; #endif - case NODE_QUANT: + case ND_QUANT: r = compile_quantifier_node(QUANT_(node), reg, env); break; - case NODE_BAG: + case ND_BAG: r = compile_bag_node(BAG_(node), reg, env); break; - case NODE_ANCHOR: + case ND_ANCHOR: r = compile_anchor_node(ANCHOR_(node), reg, env); break; - case NODE_GIMMICK: + case ND_GIMMICK: r = compile_gimmick_node(GIMMICK_(node), reg); break; default: #ifdef ONIG_DEBUG - fprintf(DBGFP, "compile_tree: undefined node type %d\n", NODE_TYPE(node)); + fprintf(DBGFP, "compile_tree: undefined node type %d\n", ND_TYPE(node)); #endif break; } @@ -2701,40 +2756,40 @@ make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) int r; Node* node = *plink; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = make_named_capture_number_map(&(NODE_CAR(node)), map, counter); - } while (r >= 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = make_named_capture_number_map(&(ND_CAR(node)), map, counter); + } while (r >= 0 && IS_NOT_NULL(node = ND_CDR(node))); if (r < 0) return r; break; - case NODE_QUANT: + case ND_QUANT: { - Node** ptarget = &(NODE_BODY(node)); + Node** ptarget = &(ND_BODY(node)); r = make_named_capture_number_map(ptarget, map, counter); if (r < 0) return r; - if (r == 1 && NODE_TYPE(*ptarget) == NODE_QUANT) { + if (r == 1 && ND_TYPE(*ptarget) == ND_QUANT) { return onig_reduce_nested_quantifier(node); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_NAMED_GROUP(node)) { + if (ND_IS_NAMED_GROUP(node)) { (*counter)++; map[en->m.regnum].new_val = *counter; en->m.regnum = *counter; - r = make_named_capture_number_map(&(NODE_BODY(node)), map, counter); + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); if (r < 0) return r; } else { - *plink = NODE_BODY(node); - NODE_BODY(node) = NULL_NODE; + *plink = ND_BODY(node); + ND_BODY(node) = NULL_NODE; onig_node_free(node); r = make_named_capture_number_map(plink, map, counter); if (r < 0) return r; @@ -2742,7 +2797,7 @@ make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) } } else if (en->type == BAG_IF_ELSE) { - r = make_named_capture_number_map(&(NODE_BAG_BODY(en)), map, counter); + r = make_named_capture_number_map(&(ND_BAG_BODY(en)), map, counter); if (r < 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = make_named_capture_number_map(&(en->te.Then), map, counter); @@ -2754,15 +2809,15 @@ make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) } } else { - r = make_named_capture_number_map(&(NODE_BODY(node)), map, counter); + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); if (r < 0) return r; } } break; - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) { - r = make_named_capture_number_map(&(NODE_BODY(node)), map, counter); + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) { + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); if (r < 0) return r; } break; @@ -2781,7 +2836,7 @@ renumber_backref_node(Node* node, GroupNumMap* map) int *backs; BackRefNode* bn = BACKREF_(node); - if (! NODE_IS_BY_NAME(node)) + if (! ND_IS_BY_NAME(node)) return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; old_num = bn->back_num; @@ -2807,23 +2862,23 @@ renumber_backref_traverse(Node* node, GroupNumMap* map) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = renumber_backref_traverse(NODE_CAR(node), map); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = renumber_backref_traverse(ND_CAR(node), map); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - r = renumber_backref_traverse(NODE_BODY(node), map); + case ND_QUANT: + r = renumber_backref_traverse(ND_BODY(node), map); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = renumber_backref_traverse(NODE_BODY(node), map); + r = renumber_backref_traverse(ND_BODY(node), map); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -2839,13 +2894,13 @@ renumber_backref_traverse(Node* node, GroupNumMap* map) } break; - case NODE_BACKREF: + case ND_BACKREF: r = renumber_backref_node(node, map); break; - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) - r = renumber_backref_traverse(NODE_BODY(node), map); + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) + r = renumber_backref_traverse(ND_BODY(node), map); break; default: @@ -2860,27 +2915,27 @@ numbered_ref_check(Node* node) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = numbered_ref_check(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = numbered_ref_check(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: - if (IS_NULL(NODE_BODY(node))) + case ND_ANCHOR: + if (IS_NULL(ND_BODY(node))) break; /* fall */ - case NODE_QUANT: - r = numbered_ref_check(NODE_BODY(node)); + case ND_QUANT: + r = numbered_ref_check(ND_BODY(node)); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = numbered_ref_check(NODE_BODY(node)); + r = numbered_ref_check(ND_BODY(node)); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -2897,8 +2952,8 @@ numbered_ref_check(Node* node) break; - case NODE_BACKREF: - if (! NODE_IS_BY_NAME(node)) + case ND_BACKREF: + if (! ND_IS_BY_NAME(node)) return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; break; @@ -2959,8 +3014,8 @@ fix_unset_addr_list(UnsetAddrList* uslist, regex_t* reg) AbsAddrType* paddr; for (i = 0; i < uslist->num; i++) { - if (! NODE_IS_FIXED_ADDR(uslist->us[i].target)) { - if (NODE_IS_CALLED(uslist->us[i].target)) + if (! ND_IS_FIXED_ADDR(uslist->us[i].target)) { + if (ND_IS_CALLED(uslist->us[i].target)) return ONIGERR_PARSER_BUG; else { /* CASE: called node doesn't have called address. @@ -2993,16 +3048,16 @@ is_exclusive(Node* x, Node* y, regex_t* reg) NodeType ytype; retry: - ytype = NODE_TYPE(y); - switch (NODE_TYPE(x)) { - case NODE_CTYPE: + ytype = ND_TYPE(y); + switch (ND_TYPE(x)) { + case ND_CTYPE: { if (CTYPE_(x)->ctype == CTYPE_ANYCHAR || CTYPE_(y)->ctype == CTYPE_ANYCHAR) break; switch (ytype) { - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(y)->ctype == CTYPE_(x)->ctype && CTYPE_(y)->not != CTYPE_(x)->not && CTYPE_(y)->ascii_mode == CTYPE_(x)->ascii_mode) @@ -3011,7 +3066,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) return 0; break; - case NODE_CCLASS: + case ND_CCLASS: swap: { Node* tmp; @@ -3020,7 +3075,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: goto swap; break; @@ -3030,13 +3085,13 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_CCLASS: + case ND_CCLASS: { int range; CClassNode* xc = CCLASS_(x); switch (ytype) { - case NODE_CTYPE: + case ND_CTYPE: switch (CTYPE_(y)->ctype) { case CTYPE_ANYCHAR: return 0; @@ -3078,7 +3133,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_CCLASS: + case ND_CCLASS: { int v; CClassNode* yc = CCLASS_(y); @@ -3099,7 +3154,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: goto swap; break; @@ -3109,15 +3164,15 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: { StrNode* xs = STR_(x); - if (NODE_STRING_LEN(x) == 0) + if (ND_STRING_LEN(x) == 0) break; switch (ytype) { - case NODE_CTYPE: + case ND_CTYPE: switch (CTYPE_(y)->ctype) { case CTYPE_ANYCHAR: break; @@ -3141,7 +3196,7 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_CCLASS: + case ND_CCLASS: { CClassNode* cc = CCLASS_(y); @@ -3151,13 +3206,13 @@ is_exclusive(Node* x, Node* y, regex_t* reg) } break; - case NODE_STRING: + case ND_STRING: { UChar *q; StrNode* ys = STR_(y); - len = NODE_STRING_LEN(x); - if (len > NODE_STRING_LEN(y)) len = NODE_STRING_LEN(y); + len = ND_STRING_LEN(x); + if (len > ND_STRING_LEN(y)) len = ND_STRING_LEN(y); for (i = 0, p = ys->s, q = xs->s; i < len; i++, p++, q++) { if (*p != *q) return 1; @@ -3183,73 +3238,74 @@ get_tree_head_literal(Node* node, int exact, regex_t* reg) { Node* n = NULL_NODE; - switch (NODE_TYPE(node)) { - case NODE_BACKREF: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_BACKREF: + case ND_ALT: #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: #endif break; - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) break; /* fall */ - case NODE_CCLASS: + case ND_CCLASS: if (exact == 0) { n = node; } break; - case NODE_LIST: - n = get_tree_head_literal(NODE_CAR(node), exact, reg); + case ND_LIST: + n = get_tree_head_literal(ND_CAR(node), exact, reg); break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); if (sn->end <= sn->s) break; - if (exact == 0 || !NODE_IS_REAL_IGNORECASE(node)) { + if (exact == 0 || !ND_IS_REAL_IGNORECASE(node)) { n = node; } } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->lower > 0) { if (IS_NOT_NULL(qn->head_exact)) n = qn->head_exact; else - n = get_tree_head_literal(NODE_BODY(node), exact, reg); + n = get_tree_head_literal(ND_BODY(node), exact, reg); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_OPTION: case BAG_MEMORY: case BAG_STOP_BACKTRACK: - case BAG_IF_ELSE: - n = get_tree_head_literal(NODE_BODY(node), exact, reg); + n = get_tree_head_literal(ND_BODY(node), exact, reg); + break; + default: break; } } break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_(node)->type == ANCR_PREC_READ) - n = get_tree_head_literal(NODE_BODY(node), exact, reg); + n = get_tree_head_literal(ND_BODY(node), exact, reg); break; - case NODE_GIMMICK: + case ND_GIMMICK: default: break; } @@ -3275,37 +3331,37 @@ get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) return GET_VALUE_NONE; } - switch (NODE_TYPE(node)) { - case NODE_LIST: - if (IS_NULL(NODE_CDR(node))) { - r = get_tree_tail_literal(NODE_CAR(node), rnode, reg, nest_level); + switch (ND_TYPE(node)) { + case ND_LIST: + if (IS_NULL(ND_CDR(node))) { + r = get_tree_tail_literal(ND_CAR(node), rnode, reg, nest_level); } else { - r = get_tree_tail_literal(NODE_CDR(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_CDR(node), rnode, reg, nest_level); if (r == GET_VALUE_IGNORE) { - r = get_tree_tail_literal(NODE_CAR(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_CAR(node), rnode, reg, nest_level); } } break; #ifdef USE_CALL - case NODE_CALL: - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); + case ND_CALL: + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); break; #endif - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) { r = GET_VALUE_NONE; break; } /* fall */ - case NODE_CCLASS: + case ND_CCLASS: *rnode = node; r = GET_VALUE_FOUND; break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); @@ -3314,7 +3370,7 @@ get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) break; } - if (NODE_IS_REAL_IGNORECASE(node)) { + if (ND_IS_REAL_IGNORECASE(node)) { r = GET_VALUE_NONE; break; } @@ -3324,43 +3380,43 @@ get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->lower != 0) { - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); } else r = GET_VALUE_NONE; } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) r = GET_VALUE_NONE; else { - NODE_STATUS_ADD(node, MARK1); - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); + ND_STATUS_REMOVE(node, MARK1); } } else { - r = get_tree_tail_literal(NODE_BODY(node), rnode, reg, nest_level); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); } } break; - case NODE_ANCHOR: - case NODE_GIMMICK: + case ND_ANCHOR: + case ND_GIMMICK: r = GET_VALUE_IGNORE; break; - case NODE_ALT: - case NODE_BACKREF: + case ND_ALT: + case ND_BACKREF: default: r = GET_VALUE_NONE; break; @@ -3376,33 +3432,33 @@ check_called_node_in_look_behind(Node* node, int not) r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = check_called_node_in_look_behind(NODE_CAR(node), not); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = check_called_node_in_look_behind(ND_CAR(node), not); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - r = check_called_node_in_look_behind(NODE_BODY(node), not); + case ND_QUANT: + r = check_called_node_in_look_behind(ND_BODY(node), not); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) return 0; else { - NODE_STATUS_ADD(node, MARK1); - r = check_called_node_in_look_behind(NODE_BODY(node), not); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + r = check_called_node_in_look_behind(ND_BODY(node), not); + ND_STATUS_REMOVE(node, MARK1); } } else { - r = check_called_node_in_look_behind(NODE_BODY(node), not); + r = check_called_node_in_look_behind(ND_BODY(node), not); if (r == 0 && en->type == BAG_IF_ELSE) { if (IS_NOT_NULL(en->te.Then)) { r = check_called_node_in_look_behind(en->te.Then, not); @@ -3416,13 +3472,13 @@ check_called_node_in_look_behind(Node* node, int not) } break; - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) - r = check_called_node_in_look_behind(NODE_BODY(node), not); + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) + r = check_called_node_in_look_behind(ND_BODY(node), not); break; - case NODE_GIMMICK: - if (NODE_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) + case ND_GIMMICK: + if (ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) return 1; break; @@ -3435,9 +3491,9 @@ check_called_node_in_look_behind(Node* node, int not) /* allowed node types in look-behind */ #define ALLOWED_TYPE_IN_LB \ - ( NODE_BIT_LIST | NODE_BIT_ALT | NODE_BIT_STRING | NODE_BIT_CCLASS \ - | NODE_BIT_CTYPE | NODE_BIT_ANCHOR | NODE_BIT_BAG | NODE_BIT_QUANT \ - | NODE_BIT_CALL | NODE_BIT_BACKREF | NODE_BIT_GIMMICK) + ( ND_BIT_LIST | ND_BIT_ALT | ND_BIT_STRING | ND_BIT_CCLASS \ + | ND_BIT_CTYPE | ND_BIT_ANCHOR | ND_BIT_BAG | ND_BIT_QUANT \ + | ND_BIT_CALL | ND_BIT_BACKREF | ND_BIT_GIMMICK) #define ALLOWED_BAG_IN_LB ( 1<<BAG_MEMORY | 1<<BAG_OPTION | 1<<BAG_STOP_BACKTRACK | 1<<BAG_IF_ELSE ) #define ALLOWED_BAG_IN_LB_NOT ( 1<<BAG_OPTION | 1<<BAG_STOP_BACKTRACK | 1<<BAG_IF_ELSE ) @@ -3467,34 +3523,34 @@ check_node_in_look_behind(Node* node, int not, int* used) NodeType type; int r = 0; - type = NODE_TYPE(node); - if ((NODE_TYPE2BIT(type) & ALLOWED_TYPE_IN_LB) == 0) + type = ND_TYPE(node); + if ((ND_TYPE2BIT(type) & ALLOWED_TYPE_IN_LB) == 0) return 1; switch (type) { - case NODE_LIST: - case NODE_ALT: + case ND_LIST: + case ND_ALT: do { - r = check_node_in_look_behind(NODE_CAR(node), not, used); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = check_node_in_look_behind(ND_CAR(node), not, used); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - r = check_node_in_look_behind(NODE_BODY(node), not, used); + case ND_QUANT: + r = check_node_in_look_behind(ND_BODY(node), not, used); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (((1<<en->type) & bag_mask[not]) == 0) return 1; - r = check_node_in_look_behind(NODE_BODY(node), not, used); + r = check_node_in_look_behind(ND_BODY(node), not, used); if (r != 0) break; if (en->type == BAG_MEMORY) { - if (NODE_IS_BACKREF(node) || NODE_IS_CALLED(node) - || NODE_IS_REFERENCED(node)) + if (ND_IS_BACKREF(node) || ND_IS_CALLED(node) + || ND_IS_REFERENCED(node)) *used = TRUE; } else if (en->type == BAG_IF_ELSE) { @@ -3509,17 +3565,17 @@ check_node_in_look_behind(Node* node, int not, int* used) } break; - case NODE_ANCHOR: + case ND_ANCHOR: type = ANCHOR_(node)->type; if ((type & anchor_mask[not]) == 0) return 1; - if (IS_NOT_NULL(NODE_BODY(node))) - r = check_node_in_look_behind(NODE_BODY(node), not, used); + if (IS_NOT_NULL(ND_BODY(node))) + r = check_node_in_look_behind(ND_BODY(node), not, used); break; - case NODE_GIMMICK: - if (NODE_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) + case ND_GIMMICK: + if (ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) return 1; { @@ -3529,14 +3585,14 @@ check_node_in_look_behind(Node* node, int not, int* used) } break; - case NODE_CALL: - if (NODE_IS_RECURSION(node)) { + case ND_CALL: + if (ND_IS_RECURSION(node)) { /* fix: Issue 38040 in oss-fuzz */ /* This node should be removed before recursive call check. */ *used = TRUE; } else - r = check_called_node_in_look_behind(NODE_BODY(node), not); + r = check_called_node_in_look_behind(ND_BODY(node), not); break; default: @@ -3552,14 +3608,14 @@ node_min_byte_len(Node* node, ParseEnv* env) OnigLen tmin; len = 0; - switch (NODE_TYPE(node)) { - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { + switch (ND_TYPE(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { int i; int* backs; MemEnv* mem_env = PARSEENV_MEMENV(env); BackRefNode* br = BACKREF_(node); - if (NODE_IS_RECURSION(node)) break; + if (ND_IS_RECURSION(node)) break; backs = BACKREFS_P(br); len = node_min_byte_len(mem_env[backs[0]].mem_node, env); @@ -3571,10 +3627,10 @@ node_min_byte_len(Node* node, ParseEnv* env) break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: { - Node* t = NODE_BODY(node); - if (NODE_IS_FIXED_MIN(t)) + Node* t = ND_BODY(node); + if (ND_IS_FIXED_MIN(t)) len = BAG_(t)->min_len; else len = node_min_byte_len(t, env); @@ -3582,79 +3638,79 @@ node_min_byte_len(Node* node, ParseEnv* env) break; #endif - case NODE_LIST: + case ND_LIST: do { - tmin = node_min_byte_len(NODE_CAR(node), env); + tmin = node_min_byte_len(ND_CAR(node), env); len = distance_add(len, tmin); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ALT: + case ND_ALT: { Node *x, *y; y = node; do { - x = NODE_CAR(y); + x = ND_CAR(y); tmin = node_min_byte_len(x, env); if (y == node) len = tmin; else if (len > tmin) len = tmin; - } while (IS_NOT_NULL(y = NODE_CDR(y))); + } while (IS_NOT_NULL(y = ND_CDR(y))); } break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); len = (int )(sn->end - sn->s); } break; - case NODE_CTYPE: - case NODE_CCLASS: + case ND_CTYPE: + case ND_CCLASS: len = ONIGENC_MBC_MINLEN(env->enc); break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->lower > 0) { - len = node_min_byte_len(NODE_BODY(node), env); + len = node_min_byte_len(ND_BODY(node), env); len = distance_multiply(len, qn->lower); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_FIXED_MIN(node)) + if (ND_IS_FIXED_MIN(node)) len = en->min_len; else { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) len = 0; /* recursive */ else { - NODE_STATUS_ADD(node, MARK1); - len = node_min_byte_len(NODE_BODY(node), env); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + len = node_min_byte_len(ND_BODY(node), env); + ND_STATUS_REMOVE(node, MARK1); en->min_len = len; - NODE_STATUS_ADD(node, FIXED_MIN); + ND_STATUS_ADD(node, FIXED_MIN); } } break; case BAG_OPTION: case BAG_STOP_BACKTRACK: - len = node_min_byte_len(NODE_BODY(node), env); + len = node_min_byte_len(ND_BODY(node), env); break; case BAG_IF_ELSE: { OnigLen elen; - len = node_min_byte_len(NODE_BODY(node), env); + len = node_min_byte_len(ND_BODY(node), env); if (IS_NOT_NULL(en->te.Then)) len += node_min_byte_len(en->te.Then, env); if (IS_NOT_NULL(en->te.Else)) @@ -3668,7 +3724,7 @@ node_min_byte_len(Node* node, ParseEnv* env) } break; - case NODE_GIMMICK: + case ND_GIMMICK: { GimmickNode* g = GIMMICK_(node); if (g->type == GIMMICK_FAIL) { @@ -3677,7 +3733,7 @@ node_min_byte_len(Node* node, ParseEnv* env) } } /* fall */ - case NODE_ANCHOR: + case ND_ANCHOR: default: break; } @@ -3690,26 +3746,26 @@ check_backrefs(Node* node, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = check_backrefs(NODE_CAR(node), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = check_backrefs(ND_CAR(node), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { r = 0; break; } /* fall */ - case NODE_QUANT: - r = check_backrefs(NODE_BODY(node), env); + case ND_QUANT: + r = check_backrefs(ND_BODY(node), env); break; - case NODE_BAG: - r = check_backrefs(NODE_BODY(node), env); + case ND_BAG: + r = check_backrefs(ND_BODY(node), env); { BagNode* en = BAG_(node); @@ -3726,7 +3782,7 @@ check_backrefs(Node* node, ParseEnv* env) } break; - case NODE_BACKREF: + case ND_BACKREF: { int i; BackRefNode* br = BACKREF_(node); @@ -3737,7 +3793,7 @@ check_backrefs(Node* node, ParseEnv* env) if (backs[i] > env->num_mem) return ONIGERR_INVALID_BACKREF; - NODE_STATUS_ADD(mem_env[backs[i]].mem_node, BACKREF); + ND_STATUS_ADD(mem_env[backs[i]].mem_node, BACKREF); } r = 0; } @@ -3756,15 +3812,15 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = set_empty_repeat_node_trav(NODE_CAR(node), empty, env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = set_empty_repeat_node_trav(ND_CAR(node), empty, env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); @@ -3781,22 +3837,22 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) default: break; } - r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->emptiness != BODY_IS_NOT_EMPTY) empty = node; - r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); } break; - case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) { - r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) { + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); if (r != 0) return r; } { @@ -3804,7 +3860,7 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) r = 0; if (en->type == BAG_MEMORY) { - if (NODE_IS_BACKREF(node)) { + if (ND_IS_BACKREF(node)) { if (IS_NOT_NULL(empty)) PARSEENV_MEMENV(env)[en->m.regnum].empty_repeat_node = empty; } @@ -3834,7 +3890,7 @@ is_ancestor_node(Node* node, Node* me) { Node* parent; - while ((parent = NODE_PARENT(me)) != NULL_NODE) { + while ((parent = ND_PARENT(me)) != NULL_NODE) { if (parent == node) return 1; me = parent; } @@ -3844,30 +3900,30 @@ is_ancestor_node(Node* node, Node* me) static void set_empty_status_check_trav(Node* node, ParseEnv* env) { - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - set_empty_status_check_trav(NODE_CAR(node), env); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + set_empty_status_check_trav(ND_CAR(node), env); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); if (! ANCHOR_HAS_BODY(an)) break; - set_empty_status_check_trav(NODE_BODY(node), env); + set_empty_status_check_trav(ND_BODY(node), env); } break; - case NODE_QUANT: - set_empty_status_check_trav(NODE_BODY(node), env); + case ND_QUANT: + set_empty_status_check_trav(ND_BODY(node), env); break; - case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) - set_empty_status_check_trav(NODE_BODY(node), env); + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) + set_empty_status_check_trav(ND_BODY(node), env); { BagNode* en = BAG_(node); @@ -3882,7 +3938,7 @@ set_empty_status_check_trav(Node* node, ParseEnv* env) } break; - case NODE_BACKREF: + case ND_BACKREF: { int i; int* backs; @@ -3894,8 +3950,8 @@ set_empty_status_check_trav(Node* node, ParseEnv* env) if (IS_NOT_NULL(ernode)) { if (! is_ancestor_node(ernode, node)) { MEM_STATUS_LIMIT_ON(QUANT_(ernode)->empty_status_mem, backs[i]); - NODE_STATUS_ADD(ernode, EMPTY_STATUS_CHECK); - NODE_STATUS_ADD(mem_env[backs[i]].mem_node, EMPTY_STATUS_CHECK); + ND_STATUS_ADD(ernode, EMPTY_STATUS_CHECK); + ND_STATUS_ADD(mem_env[backs[i]].mem_node, EMPTY_STATUS_CHECK); } } } @@ -3910,28 +3966,28 @@ set_empty_status_check_trav(Node* node, ParseEnv* env) static void set_parent_node_trav(Node* node, Node* parent) { - NODE_PARENT(node) = parent; + ND_PARENT(node) = parent; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - set_parent_node_trav(NODE_CAR(node), node); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + set_parent_node_trav(ND_CAR(node), node); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) break; - set_parent_node_trav(NODE_BODY(node), node); + set_parent_node_trav(ND_BODY(node), node); break; - case NODE_QUANT: - set_parent_node_trav(NODE_BODY(node), node); + case ND_QUANT: + set_parent_node_trav(ND_BODY(node), node); break; - case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) - set_parent_node_trav(NODE_BODY(node), node); + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) + set_parent_node_trav(ND_BODY(node), node); { BagNode* en = BAG_(node); @@ -3963,45 +4019,45 @@ infinite_recursive_call_check(Node* node, ParseEnv* env, int head) int ret; int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { Node *x; OnigLen min; x = node; do { - ret = infinite_recursive_call_check(NODE_CAR(x), env, head); + ret = infinite_recursive_call_check(ND_CAR(x), env, head); if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; r |= ret; if (head != 0) { - min = node_min_byte_len(NODE_CAR(x), env); + min = node_min_byte_len(ND_CAR(x), env); if (min != 0) head = 0; } - } while (IS_NOT_NULL(x = NODE_CDR(x))); + } while (IS_NOT_NULL(x = ND_CDR(x))); } break; - case NODE_ALT: + case ND_ALT: { int must; must = RECURSION_MUST; do { - ret = infinite_recursive_call_check(NODE_CAR(node), env, head); + ret = infinite_recursive_call_check(ND_CAR(node), env, head); if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; r |= (ret & RECURSION_EXIST); must &= ret; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); r |= must; } break; - case NODE_QUANT: + case ND_QUANT: if (QUANT_(node)->upper == 0) break; - r = infinite_recursive_call_check(NODE_BODY(node), env, head); + r = infinite_recursive_call_check(ND_BODY(node), env, head); if (r < 0) return r; if ((r & RECURSION_MUST) != 0) { if (QUANT_(node)->lower == 0) @@ -4009,40 +4065,40 @@ infinite_recursive_call_check(Node* node, ParseEnv* env, int head) } break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) break; /* fall */ - case NODE_CALL: - r = infinite_recursive_call_check(NODE_BODY(node), env, head); + case ND_CALL: + r = infinite_recursive_call_check(ND_BODY(node), env, head); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK2(node)) + if (ND_IS_MARK2(node)) return 0; - else if (NODE_IS_MARK1(node)) + else if (ND_IS_MARK1(node)) return (head == 0 ? RECURSION_EXIST | RECURSION_MUST : RECURSION_EXIST | RECURSION_MUST | RECURSION_INFINITE); else { - NODE_STATUS_ADD(node, MARK2); - r = infinite_recursive_call_check(NODE_BODY(node), env, head); - NODE_STATUS_REMOVE(node, MARK2); + ND_STATUS_ADD(node, MARK2); + r = infinite_recursive_call_check(ND_BODY(node), env, head); + ND_STATUS_REMOVE(node, MARK2); } } else if (en->type == BAG_IF_ELSE) { int eret; - ret = infinite_recursive_call_check(NODE_BODY(node), env, head); + ret = infinite_recursive_call_check(ND_BODY(node), env, head); if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; r |= ret; if (IS_NOT_NULL(en->te.Then)) { OnigLen min; if (head != 0) { - min = node_min_byte_len(NODE_BODY(node), env); + min = node_min_byte_len(ND_BODY(node), env); } else min = 0; @@ -4062,7 +4118,7 @@ infinite_recursive_call_check(Node* node, ParseEnv* env, int head) } } else { - r = infinite_recursive_call_check(NODE_BODY(node), env, head); + r = infinite_recursive_call_check(ND_BODY(node), env, head); } } break; @@ -4079,40 +4135,40 @@ infinite_recursive_call_check_trav(Node* node, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = infinite_recursive_call_check_trav(NODE_CAR(node), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = infinite_recursive_call_check_trav(ND_CAR(node), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { r = 0; break; } /* fall */ - case NODE_QUANT: - r = infinite_recursive_call_check_trav(NODE_BODY(node), env); + case ND_QUANT: + r = infinite_recursive_call_check_trav(ND_BODY(node), env); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_RECURSION(node) && NODE_IS_CALLED(node)) { + if (ND_IS_RECURSION(node) && ND_IS_CALLED(node)) { int ret; - NODE_STATUS_ADD(node, MARK1); + ND_STATUS_ADD(node, MARK1); - ret = infinite_recursive_call_check(NODE_BODY(node), env, 1); + ret = infinite_recursive_call_check(ND_BODY(node), env, 1); if (ret < 0) return ret; else if ((ret & (RECURSION_MUST | RECURSION_INFINITE)) != 0) return ONIGERR_NEVER_ENDING_RECURSION; - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_REMOVE(node, MARK1); } } else if (en->type == BAG_IF_ELSE) { @@ -4127,7 +4183,7 @@ infinite_recursive_call_check_trav(Node* node, ParseEnv* env) } } - r = infinite_recursive_call_check_trav(NODE_BODY(node), env); + r = infinite_recursive_call_check_trav(ND_BODY(node), env); break; default: @@ -4143,46 +4199,46 @@ recursive_call_check(Node* node) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: r = 0; do { - r |= recursive_call_check(NODE_CAR(node)); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + r |= recursive_call_check(ND_CAR(node)); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { r = 0; break; } /* fall */ - case NODE_QUANT: - r = recursive_call_check(NODE_BODY(node)); + case ND_QUANT: + r = recursive_call_check(ND_BODY(node)); break; - case NODE_CALL: - r = recursive_call_check(NODE_BODY(node)); + case ND_CALL: + r = recursive_call_check(ND_BODY(node)); if (r != 0) { - if (NODE_IS_MARK1(NODE_BODY(node))) - NODE_STATUS_ADD(node, RECURSION); + if (ND_IS_MARK1(ND_BODY(node))) + ND_STATUS_ADD(node, RECURSION); } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK2(node)) + if (ND_IS_MARK2(node)) return 0; - else if (NODE_IS_MARK1(node)) + else if (ND_IS_MARK1(node)) return 1; /* recursion */ else { - NODE_STATUS_ADD(node, MARK2); - r = recursive_call_check(NODE_BODY(node)); - NODE_STATUS_REMOVE(node, MARK2); + ND_STATUS_ADD(node, MARK2); + r = recursive_call_check(ND_BODY(node)); + ND_STATUS_REMOVE(node, MARK2); } } else if (en->type == BAG_IF_ELSE) { @@ -4193,10 +4249,10 @@ recursive_call_check(Node* node) if (IS_NOT_NULL(en->te.Else)) { r |= recursive_call_check(en->te.Else); } - r |= recursive_call_check(NODE_BODY(node)); + r |= recursive_call_check(ND_BODY(node)); } else { - r = recursive_call_check(NODE_BODY(node)); + r = recursive_call_check(ND_BODY(node)); } } break; @@ -4217,65 +4273,65 @@ recursive_call_check_trav(Node* node, ParseEnv* env, int state) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: { int ret; do { - ret = recursive_call_check_trav(NODE_CAR(node), env, state); + ret = recursive_call_check_trav(ND_CAR(node), env, state); if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE; else if (ret < 0) return ret; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_QUANT: - r = recursive_call_check_trav(NODE_BODY(node), env, state); + case ND_QUANT: + r = recursive_call_check_trav(ND_BODY(node), env, state); if (QUANT_(node)->upper == 0) { if (r == FOUND_CALLED_NODE) QUANT_(node)->include_referred = 1; } break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); if (ANCHOR_HAS_BODY(an)) - r = recursive_call_check_trav(NODE_ANCHOR_BODY(an), env, state); + r = recursive_call_check_trav(ND_ANCHOR_BODY(an), env, state); } break; - case NODE_BAG: + case ND_BAG: { int ret; int state1; BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { r = FOUND_CALLED_NODE; goto check_recursion; } else if ((state & IN_RECURSION) != 0) { check_recursion: - if (! NODE_IS_RECURSION(node)) { - NODE_STATUS_ADD(node, MARK1); - ret = recursive_call_check(NODE_BODY(node)); + if (! ND_IS_RECURSION(node)) { + ND_STATUS_ADD(node, MARK1); + ret = recursive_call_check(ND_BODY(node)); if (ret != 0) { - NODE_STATUS_ADD(node, RECURSION); + ND_STATUS_ADD(node, RECURSION); MEM_STATUS_ON(env->backtrack_mem, en->m.regnum); } - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_REMOVE(node, MARK1); } } } state1 = state; - if (NODE_IS_RECURSION(node)) + if (ND_IS_RECURSION(node)) state1 |= IN_RECURSION; - ret = recursive_call_check_trav(NODE_BODY(node), env, state1); + ret = recursive_call_check_trav(ND_BODY(node), env, state1); if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE; @@ -4306,10 +4362,10 @@ recursive_call_check_trav(Node* node, ParseEnv* env, int state) static void remove_from_list(Node* prev, Node* a) { - if (NODE_CDR(prev) != a) return ; + if (ND_CDR(prev) != a) return ; - NODE_CDR(prev) = NODE_CDR(a); - NODE_CDR(a) = NULL_NODE; + ND_CDR(prev) = ND_CDR(a); + ND_CDR(a) = NULL_NODE; } static int @@ -4317,8 +4373,8 @@ reduce_string_list(Node* node, OnigEncoding enc) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { Node* prev; Node* curr; @@ -4327,12 +4383,12 @@ reduce_string_list(Node* node, OnigEncoding enc) prev = NULL_NODE; do { - next_node = NODE_CDR(node); - curr = NODE_CAR(node); - if (NODE_TYPE(curr) == NODE_STRING) { + next_node = ND_CDR(node); + curr = ND_CAR(node); + if (ND_TYPE(curr) == ND_STRING) { if (IS_NULL(prev) || STR_(curr)->flag != STR_(prev)->flag - || NODE_STATUS(curr) != NODE_STATUS(prev)) { + || ND_STATUS(curr) != ND_STATUS(prev)) { prev = curr; prev_node = node; } @@ -4370,14 +4426,14 @@ reduce_string_list(Node* node, OnigEncoding enc) } break; - case NODE_ALT: + case ND_ALT: do { - r = reduce_string_list(NODE_CAR(node), enc); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = reduce_string_list(ND_CAR(node), enc); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; #ifdef USE_CHECK_VALIDITY_OF_STRING_IN_TREE - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); if (! ONIGENC_IS_VALID_MBC_STRING(enc, sn->s, sn->end)) @@ -4386,19 +4442,19 @@ reduce_string_list(Node* node, OnigEncoding enc) break; #endif - case NODE_ANCHOR: - if (IS_NULL(NODE_BODY(node))) + case ND_ANCHOR: + if (IS_NULL(ND_BODY(node))) break; /* fall */ - case NODE_QUANT: - r = reduce_string_list(NODE_BODY(node), enc); + case ND_QUANT: + r = reduce_string_list(ND_BODY(node), enc); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = reduce_string_list(NODE_BODY(node), enc); + r = reduce_string_list(ND_BODY(node), enc); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -4447,26 +4503,26 @@ divide_look_behind_alternatives(Node* node) an = ANCHOR_(node); anc_type = an->type; - head = NODE_ANCHOR_BODY(an); - np = NODE_CAR(head); + head = ND_ANCHOR_BODY(an); + np = ND_CAR(head); node_swap(node, head); - NODE_CAR(node) = head; - NODE_BODY(head) = np; + ND_CAR(node) = head; + ND_BODY(head) = np; np = node; - while (IS_NOT_NULL(np = NODE_CDR(np))) { + while (IS_NOT_NULL(np = ND_CDR(np))) { r = onig_node_copy(&insert_node, head); if (r != 0) return r; CHECK_NULL_RETURN_MEMERR(insert_node); - NODE_BODY(insert_node) = NODE_CAR(np); - NODE_CAR(np) = insert_node; + ND_BODY(insert_node) = ND_CAR(np); + ND_CAR(np) = insert_node; } if (anc_type == ANCR_LOOK_BEHIND_NOT) { np = node; do { - NODE_SET_TYPE(np, NODE_LIST); /* alt -> list */ - } while (IS_NOT_NULL(np = NODE_CDR(np))); + ND_SET_TYPE(np, ND_LIST); /* alt -> list */ + } while (IS_NOT_NULL(np = ND_CDR(np))); } return 0; } @@ -4477,12 +4533,12 @@ node_reduce_in_look_behind(Node* node) NodeType type; Node* body; - if (NODE_TYPE(node) != NODE_QUANT) return 0; + if (ND_TYPE(node) != ND_QUANT) return 0; - body = NODE_BODY(node); - type = NODE_TYPE(body); - if (type == NODE_STRING || type == NODE_CTYPE || - type == NODE_CCLASS || type == NODE_BACKREF) { + body = ND_BODY(node); + type = ND_TYPE(body); + if (type == ND_STRING || type == ND_CTYPE || + type == ND_CCLASS || type == ND_BACKREF) { QuantNode* qn = QUANT_(node); qn->upper = qn->lower; if (qn->upper == 0) @@ -4497,17 +4553,17 @@ list_reduce_in_look_behind(Node* node) { int r; - switch (NODE_TYPE(node)) { - case NODE_QUANT: + switch (ND_TYPE(node)) { + case ND_QUANT: r = node_reduce_in_look_behind(node); if (r > 0) r = 0; break; - case NODE_LIST: + case ND_LIST: do { - r = node_reduce_in_look_behind(NODE_CAR(node)); + r = node_reduce_in_look_behind(ND_CAR(node)); if (r <= 0) break; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; default: @@ -4523,11 +4579,11 @@ alt_reduce_in_look_behind(Node* node, regex_t* reg, ParseEnv* env) { int r; - switch (NODE_TYPE(node)) { - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_ALT: do { - r = list_reduce_in_look_behind(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = list_reduce_in_look_behind(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; default: @@ -4551,7 +4607,7 @@ tune_look_behind(Node* node, regex_t* reg, int state, ParseEnv* env) AnchorNode* an = ANCHOR_(node); used = FALSE; - r = check_node_in_look_behind(NODE_ANCHOR_BODY(an), + r = check_node_in_look_behind(ND_ANCHOR_BODY(an), an->type == ANCR_LOOK_BEHIND_NOT ? 1 : 0, &used); if (r < 0) return r; @@ -4562,7 +4618,7 @@ tune_look_behind(Node* node, regex_t* reg, int state, ParseEnv* env) else state1 = state | IN_LOOK_BEHIND; - body = NODE_ANCHOR_BODY(an); + body = ND_ANCHOR_BODY(an); /* Execute tune_tree(body) before call node_char_len(). Because case-fold expansion must be done before node_char_len(). */ @@ -4642,8 +4698,8 @@ tune_next(Node* node, Node* next_node, regex_t* reg) called = FALSE; retry: - type = NODE_TYPE(node); - if (type == NODE_QUANT) { + type = ND_TYPE(node); + if (type == ND_QUANT) { QuantNode* qn = QUANT_(node); if (qn->greedy && IS_INFINITE_REPEAT(qn->upper)) { #ifdef USE_QUANT_PEEK_NEXT @@ -4657,29 +4713,29 @@ tune_next(Node* node, Node* next_node, regex_t* reg) #endif /* automatic posseivation a*b ==> (?>a*)b */ if (qn->lower <= 1) { - if (is_strict_real_node(NODE_BODY(node))) { + if (is_strict_real_node(ND_BODY(node))) { Node *x, *y; - x = get_tree_head_literal(NODE_BODY(node), 0, reg); + x = get_tree_head_literal(ND_BODY(node), 0, reg); if (IS_NOT_NULL(x)) { y = get_tree_head_literal(next_node, 0, reg); if (IS_NOT_NULL(y) && is_exclusive(x, y, reg)) { Node* en = onig_node_new_bag(BAG_STOP_BACKTRACK); CHECK_NULL_RETURN_MEMERR(en); - NODE_STATUS_ADD(en, STRICT_REAL_REPEAT); + ND_STATUS_ADD(en, STRICT_REAL_REPEAT); node_swap(node, en); - NODE_BODY(node) = en; + ND_BODY(node) = en; } } } } } } - else if (type == NODE_BAG) { + else if (type == ND_BAG) { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_CALLED(node)) + if (ND_IS_CALLED(node)) called = TRUE; - node = NODE_BODY(node); + node = ND_BODY(node); goto retry; } } @@ -4846,7 +4902,7 @@ unravel_cf_string_alt_or_cc_add(Node** rlist, int n, return ONIGERR_MEMORY; } - NODE_CDR(curr) = alt; + ND_CDR(curr) = alt; curr = alt; } } @@ -4914,9 +4970,9 @@ unravel_case_fold_string(Node* node, regex_t* reg, int state) OnigEncoding enc; OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; - if (NODE_STRING_IS_CASE_EXPANDED(node)) return 0; + if (ND_STRING_IS_CASE_EXPANDED(node)) return 0; - NODE_STATUS_REMOVE(node, IGNORECASE); + ND_STATUS_REMOVE(node, IGNORECASE); snode = STR_(node); start = snode->s; end = snode->end; @@ -4974,7 +5030,7 @@ unravel_case_fold_string(Node* node, regex_t* reg, int state) if (IS_NOT_NULL(list)) { if (node_list_len(list) == 1) { - node_swap(node, NODE_CAR(list)); + node_swap(node, ND_CAR(list)); } else { node_swap(node, list); @@ -5002,43 +5058,43 @@ quantifiers_memory_node_info(Node* node) { int r = BODY_MAY_BE_EMPTY; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: { int v; do { - v = quantifiers_memory_node_info(NODE_CAR(node)); + v = quantifiers_memory_node_info(ND_CAR(node)); if (v > r) r = v; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); } break; #ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) { + case ND_CALL: + if (ND_IS_RECURSION(node)) { return BODY_MAY_BE_EMPTY_REC; /* tiny version */ } else - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); break; #endif - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->upper != 0) { - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); } } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_RECURSION(node)) { + if (ND_IS_RECURSION(node)) { return BODY_MAY_BE_EMPTY_REC; } return BODY_MAY_BE_EMPTY_MEM; @@ -5046,12 +5102,12 @@ quantifiers_memory_node_info(Node* node) case BAG_OPTION: case BAG_STOP_BACKTRACK: - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); break; case BAG_IF_ELSE: { int v; - r = quantifiers_memory_node_info(NODE_BODY(node)); + r = quantifiers_memory_node_info(ND_BODY(node)); if (IS_NOT_NULL(en->te.Then)) { v = quantifiers_memory_node_info(en->te.Then); if (v > r) r = v; @@ -5066,12 +5122,12 @@ quantifiers_memory_node_info(Node* node) } break; - case NODE_BACKREF: - case NODE_STRING: - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_ANCHOR: - case NODE_GIMMICK: + case ND_BACKREF: + case ND_STRING: + case ND_CTYPE: + case ND_CCLASS: + case ND_ANCHOR: + case ND_GIMMICK: default: break; } @@ -5107,14 +5163,14 @@ check_call_reference(CallNode* cn, ParseEnv* env, int state) } set_call_attr: - NODE_CALL_BODY(cn) = mem_env[cn->called_gnum].mem_node; - if (IS_NULL(NODE_CALL_BODY(cn))) { + ND_CALL_BODY(cn) = mem_env[cn->called_gnum].mem_node; + if (IS_NULL(ND_CALL_BODY(cn))) { onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, cn->name, cn->name_end); return ONIGERR_UNDEFINED_NAME_REFERENCE; } - NODE_STATUS_ADD(NODE_CALL_BODY(cn), REFERENCED); + ND_STATUS_ADD(ND_CALL_BODY(cn), REFERENCED); } else { int *refs; @@ -5148,22 +5204,22 @@ check_whole_options_position(Node* node /* root */) is_list = FALSE; start: - switch (NODE_TYPE(node)) { - case NODE_LIST: - if (IS_NOT_NULL(NODE_CDR(node))) + switch (ND_TYPE(node)) { + case ND_LIST: + if (IS_NOT_NULL(ND_CDR(node))) is_list = TRUE; - node = NODE_CAR(node); + node = ND_CAR(node); goto start; break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_OPTION) { - if (NODE_IS_WHOLE_OPTIONS(node)) { - if (is_list == TRUE && IS_NOT_NULL(NODE_BODY(node))) + if (ND_IS_WHOLE_OPTIONS(node)) { + if (is_list == TRUE && IS_NOT_NULL(ND_BODY(node))) break; return 0; @@ -5183,61 +5239,61 @@ check_whole_options_position(Node* node /* root */) static void tune_call2_call(Node* node) { - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - tune_call2_call(NODE_CAR(node)); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + tune_call2_call(ND_CAR(node)); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: - tune_call2_call(NODE_BODY(node)); + case ND_QUANT: + tune_call2_call(ND_BODY(node)); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_HAS_BODY(ANCHOR_(node))) - tune_call2_call(NODE_BODY(node)); + tune_call2_call(ND_BODY(node)); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (! NODE_IS_MARK1(node)) { - NODE_STATUS_ADD(node, MARK1); - tune_call2_call(NODE_BODY(node)); - NODE_STATUS_REMOVE(node, MARK1); + if (! ND_IS_MARK1(node)) { + ND_STATUS_ADD(node, MARK1); + tune_call2_call(ND_BODY(node)); + ND_STATUS_REMOVE(node, MARK1); } } else if (en->type == BAG_IF_ELSE) { - tune_call2_call(NODE_BODY(node)); + tune_call2_call(ND_BODY(node)); if (IS_NOT_NULL(en->te.Then)) tune_call2_call(en->te.Then); if (IS_NOT_NULL(en->te.Else)) tune_call2_call(en->te.Else); } else { - tune_call2_call(NODE_BODY(node)); + tune_call2_call(ND_BODY(node)); } } break; - case NODE_CALL: - if (! NODE_IS_MARK1(node)) { - NODE_STATUS_ADD(node, MARK1); + case ND_CALL: + if (! ND_IS_MARK1(node)) { + ND_STATUS_ADD(node, MARK1); { CallNode* cn = CALL_(node); - Node* called = NODE_CALL_BODY(cn); + Node* called = ND_CALL_BODY(cn); cn->entry_count++; - NODE_STATUS_ADD(called, CALLED); + ND_STATUS_ADD(called, CALLED); BAG_(called)->m.entry_count++; tune_call2_call(called); } - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_REMOVE(node, MARK1); } break; @@ -5251,41 +5307,41 @@ tune_call(Node* node, ParseEnv* env, int state) { int r; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = tune_call(NODE_CAR(node), env, state); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = tune_call(ND_CAR(node), env, state); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: if (QUANT_(node)->upper == 0) state |= IN_ZERO_REPEAT; - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); else r = 0; break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { if ((state & IN_ZERO_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_ZERO_REPEAT); + ND_STATUS_ADD(node, IN_ZERO_REPEAT); BAG_(node)->m.entry_count--; } - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); } else if (en->type == BAG_IF_ELSE) { - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); if (r != 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = tune_call(en->te.Then, env, state); @@ -5295,13 +5351,13 @@ tune_call(Node* node, ParseEnv* env, int state) r = tune_call(en->te.Else, env, state); } else - r = tune_call(NODE_BODY(node), env, state); + r = tune_call(ND_BODY(node), env, state); } break; - case NODE_CALL: + case ND_CALL: if ((state & IN_ZERO_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_ZERO_REPEAT); + ND_STATUS_ADD(node, IN_ZERO_REPEAT); CALL_(node)->entry_count--; } @@ -5321,27 +5377,27 @@ tune_call2(Node* node) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = tune_call2(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = tune_call2(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: if (QUANT_(node)->upper != 0) - r = tune_call2(NODE_BODY(node)); + r = tune_call2(ND_BODY(node)); break; - case NODE_ANCHOR: + case ND_ANCHOR: if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = tune_call2(NODE_BODY(node)); + r = tune_call2(ND_BODY(node)); break; - case NODE_BAG: - if (! NODE_IS_IN_ZERO_REPEAT(node)) - r = tune_call2(NODE_BODY(node)); + case ND_BAG: + if (! ND_IS_IN_ZERO_REPEAT(node)) + r = tune_call2(ND_BODY(node)); { BagNode* en = BAG_(node); @@ -5358,8 +5414,8 @@ tune_call2(Node* node) } break; - case NODE_CALL: - if (! NODE_IS_IN_ZERO_REPEAT(node)) { + case ND_CALL: + if (! ND_IS_IN_ZERO_REPEAT(node)) { tune_call2_call(node); } break; @@ -5375,17 +5431,17 @@ tune_call2(Node* node) static void tune_called_state_call(Node* node, int state) { - switch (NODE_TYPE(node)) { - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_ALT: state |= IN_ALT; /* fall */ - case NODE_LIST: + case ND_LIST: do { - tune_called_state_call(NODE_CAR(node), state); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + tune_called_state_call(ND_CAR(node), state); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -5394,13 +5450,13 @@ tune_called_state_call(Node* node, int state) if (qn->lower != qn->upper) state |= IN_VAR_REPEAT; if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); - tune_called_state_call(NODE_QUANT_BODY(qn), state); + tune_called_state_call(ND_QUANT_BODY(qn), state); } break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); @@ -5408,12 +5464,12 @@ tune_called_state_call(Node* node, int state) case ANCR_PREC_READ_NOT: case ANCR_LOOK_BEHIND_NOT: state |= (IN_NOT | IN_PEEK); - tune_called_state_call(NODE_ANCHOR_BODY(an), state); + tune_called_state_call(ND_ANCHOR_BODY(an), state); break; case ANCR_PREC_READ: case ANCR_LOOK_BEHIND: state |= IN_PEEK; - tune_called_state_call(NODE_ANCHOR_BODY(an), state); + tune_called_state_call(ND_ANCHOR_BODY(an), state); break; default: break; @@ -5421,27 +5477,27 @@ tune_called_state_call(Node* node, int state) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) { + if (ND_IS_MARK1(node)) { if ((~en->m.called_state & state) != 0) { en->m.called_state |= state; - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); } } else { - NODE_STATUS_ADD(node, MARK1); + ND_STATUS_ADD(node, MARK1); en->m.called_state |= state; - tune_called_state_call(NODE_BODY(node), state); - NODE_STATUS_REMOVE(node, MARK1); + tune_called_state_call(ND_BODY(node), state); + ND_STATUS_REMOVE(node, MARK1); } } else if (en->type == BAG_IF_ELSE) { state |= IN_ALT; - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); if (IS_NOT_NULL(en->te.Then)) { tune_called_state_call(en->te.Then, state); } @@ -5449,18 +5505,18 @@ tune_called_state_call(Node* node, int state) tune_called_state_call(en->te.Else, state); } else { - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); } } break; - case NODE_CALL: + case ND_CALL: if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); if ((state & IN_REAL_REPEAT) != 0) - NODE_STATUS_ADD(node, IN_REAL_REPEAT); + ND_STATUS_ADD(node, IN_REAL_REPEAT); - tune_called_state_call(NODE_BODY(node), state); + tune_called_state_call(ND_BODY(node), state); break; default: @@ -5471,28 +5527,28 @@ tune_called_state_call(Node* node, int state) static void tune_called_state(Node* node, int state) { - switch (NODE_TYPE(node)) { - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_ALT: state |= IN_ALT; /* fall */ - case NODE_LIST: + case ND_LIST: do { - tune_called_state(NODE_CAR(node), state); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + tune_called_state(ND_CAR(node), state); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); if ((state & IN_REAL_REPEAT) != 0) - NODE_STATUS_ADD(node, IN_REAL_REPEAT); + ND_STATUS_ADD(node, IN_REAL_REPEAT); tune_called_state_call(node, state); break; #endif - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); @@ -5505,11 +5561,11 @@ tune_called_state(Node* node, int state) /* fall */ case BAG_OPTION: case BAG_STOP_BACKTRACK: - tune_called_state(NODE_BODY(node), state); + tune_called_state(ND_BODY(node), state); break; case BAG_IF_ELSE: state |= IN_ALT; - tune_called_state(NODE_BODY(node), state); + tune_called_state(ND_BODY(node), state); if (IS_NOT_NULL(en->te.Then)) tune_called_state(en->te.Then, state); if (IS_NOT_NULL(en->te.Else)) @@ -5519,7 +5575,7 @@ tune_called_state(Node* node, int state) } break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -5528,13 +5584,13 @@ tune_called_state(Node* node, int state) if (qn->lower != qn->upper) state |= IN_VAR_REPEAT; if ((state & IN_PEEK) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); - tune_called_state(NODE_QUANT_BODY(qn), state); + tune_called_state(ND_QUANT_BODY(qn), state); } break; - case NODE_ANCHOR: + case ND_ANCHOR: { AnchorNode* an = ANCHOR_(node); @@ -5542,12 +5598,12 @@ tune_called_state(Node* node, int state) case ANCR_PREC_READ_NOT: case ANCR_LOOK_BEHIND_NOT: state |= (IN_NOT | IN_PEEK); - tune_called_state(NODE_ANCHOR_BODY(an), state); + tune_called_state(ND_ANCHOR_BODY(an), state); break; case ANCR_PREC_READ: case ANCR_LOOK_BEHIND: state |= IN_PEEK; - tune_called_state(NODE_ANCHOR_BODY(an), state); + tune_called_state(ND_ANCHOR_BODY(an), state); break; default: break; @@ -5555,11 +5611,11 @@ tune_called_state(Node* node, int state) } break; - case NODE_BACKREF: - case NODE_STRING: - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_GIMMICK: + case ND_BACKREF: + case ND_STRING: + case ND_CTYPE: + case ND_CCLASS: + case ND_GIMMICK: default: break; } @@ -5579,10 +5635,10 @@ tune_anchor(Node* node, regex_t* reg, int state, ParseEnv* env) switch (an->type) { case ANCR_PREC_READ: - r = tune_tree(NODE_ANCHOR_BODY(an), reg, (state | IN_PREC_READ), env); + r = tune_tree(ND_ANCHOR_BODY(an), reg, (state | IN_PREC_READ), env); break; case ANCR_PREC_READ_NOT: - r = tune_tree(NODE_ANCHOR_BODY(an), reg, (state | IN_PREC_READ | IN_NOT), + r = tune_tree(ND_ANCHOR_BODY(an), reg, (state | IN_PREC_READ | IN_NOT), env); break; @@ -5607,13 +5663,13 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) { int r; QuantNode* qn = QUANT_(node); - Node* body = NODE_BODY(node); + Node* body = ND_BODY(node); if ((state & IN_REAL_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_REAL_REPEAT); + ND_STATUS_ADD(node, IN_REAL_REPEAT); } if ((state & IN_MULTI_ENTRY) != 0) { - NODE_STATUS_ADD(node, IN_MULTI_ENTRY); + ND_STATUS_ADD(node, IN_MULTI_ENTRY); } if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 1) { @@ -5637,10 +5693,10 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) /* expand string */ #define EXPAND_STRING_MAX_LENGTH 100 - if (NODE_TYPE(body) == NODE_STRING) { + if (ND_TYPE(body) == ND_STRING) { if (!IS_INFINITE_REPEAT(qn->lower) && qn->lower == qn->upper && qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) { - int len = NODE_STRING_LEN(body); + int len = ND_STRING_LEN(body); if (len * qn->lower <= EXPAND_STRING_MAX_LENGTH) { int i, n = qn->lower; @@ -5656,7 +5712,7 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) } if (qn->greedy && (qn->emptiness == BODY_IS_NOT_EMPTY)) { - if (NODE_TYPE(body) == NODE_QUANT) { + if (ND_TYPE(body) == ND_QUANT) { QuantNode* tqn = QUANT_(body); if (IS_NOT_NULL(tqn->head_exact)) { qn->head_exact = tqn->head_exact; @@ -5664,7 +5720,7 @@ tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) } } else { - qn->head_exact = get_tree_head_literal(NODE_BODY(node), 1, reg); + qn->head_exact = get_tree_head_literal(ND_BODY(node), 1, reg); } } @@ -5684,33 +5740,33 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) { int r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { Node* prev = NULL_NODE; do { - r = tune_tree(NODE_CAR(node), reg, state, env); + r = tune_tree(ND_CAR(node), reg, state, env); if (IS_NOT_NULL(prev) && r == 0) { - r = tune_next(prev, NODE_CAR(node), reg); + r = tune_next(prev, ND_CAR(node), reg); } - prev = NODE_CAR(node); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + prev = ND_CAR(node); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); } break; - case NODE_ALT: + case ND_ALT: do { - r = tune_tree(NODE_CAR(node), reg, (state | IN_ALT), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); + r = tune_tree(ND_CAR(node), reg, (state | IN_ALT), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_STRING: - if (NODE_IS_REAL_IGNORECASE(node)) { + case ND_STRING: + if (ND_IS_REAL_IGNORECASE(node)) { r = unravel_case_fold_string(node, reg, state); } break; - case NODE_BACKREF: + case ND_BACKREF: { int i; int* p; @@ -5721,7 +5777,7 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) MEM_STATUS_ON(env->backrefed_mem, p[i]); #if 0 #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { MEM_STATUS_ON(env->backtrack_mem, p[i]); } #endif @@ -5735,7 +5791,7 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); @@ -5744,7 +5800,7 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) { OnigOptionType options = reg->options; reg->options = BAG_(node)->o.options; - r = tune_tree(NODE_BODY(node), reg, state, env); + r = tune_tree(ND_BODY(node), reg, state, env); reg->options = options; } break; @@ -5755,29 +5811,29 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) #endif if ((state & (IN_ALT | IN_NOT | IN_VAR_REPEAT | IN_MULTI_ENTRY)) != 0 - || NODE_IS_RECURSION(node)) { + || ND_IS_RECURSION(node)) { MEM_STATUS_ON(env->backtrack_mem, en->m.regnum); } - r = tune_tree(NODE_BODY(node), reg, state, env); + r = tune_tree(ND_BODY(node), reg, state, env); break; case BAG_STOP_BACKTRACK: { - Node* target = NODE_BODY(node); + Node* target = ND_BODY(node); r = tune_tree(target, reg, state, env); - if (NODE_TYPE(target) == NODE_QUANT) { + if (ND_TYPE(target) == ND_QUANT) { QuantNode* tqn = QUANT_(target); if (IS_INFINITE_REPEAT(tqn->upper) && tqn->lower <= 1 && tqn->greedy != 0) { /* (?>a*), a*+ etc... */ - if (is_strict_real_node(NODE_BODY(target))) - NODE_STATUS_ADD(node, STRICT_REAL_REPEAT); + if (is_strict_real_node(ND_BODY(target))) + ND_STATUS_ADD(node, STRICT_REAL_REPEAT); } } } break; case BAG_IF_ELSE: - r = tune_tree(NODE_BODY(node), reg, (state | IN_ALT), env); + r = tune_tree(ND_BODY(node), reg, (state | IN_ALT), env); if (r != 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = tune_tree(en->te.Then, reg, (state | IN_ALT), env); @@ -5790,23 +5846,23 @@ tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) } break; - case NODE_QUANT: + case ND_QUANT: if ((state & (IN_PREC_READ | IN_LOOK_BEHIND)) != 0) - NODE_STATUS_ADD(node, INPEEK); + ND_STATUS_ADD(node, INPEEK); r = tune_quant(node, reg, state, env); break; - case NODE_ANCHOR: + case ND_ANCHOR: r = tune_anchor(node, reg, state, env); break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: #endif - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_GIMMICK: + case ND_CTYPE: + case ND_CCLASS: + case ND_GIMMICK: default: break; } @@ -6427,42 +6483,42 @@ node_max_byte_len(Node* node, ParseEnv* env) OnigLen tmax; len = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: do { - tmax = node_max_byte_len(NODE_CAR(node), env); + tmax = node_max_byte_len(ND_CAR(node), env); len = distance_add(len, tmax); - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_ALT: + case ND_ALT: do { - tmax = node_max_byte_len(NODE_CAR(node), env); + tmax = node_max_byte_len(ND_CAR(node), env); if (len < tmax) len = tmax; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); len = (OnigLen )(sn->end - sn->s); } break; - case NODE_CTYPE: - case NODE_CCLASS: + case ND_CTYPE: + case ND_CCLASS: len = ONIGENC_MBC_MAXLEN_DIST(env->enc); break; - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { int i; int* backs; MemEnv* mem_env = PARSEENV_MEMENV(env); BackRefNode* br = BACKREF_(node); - if (NODE_IS_RECURSION(node)) { + if (ND_IS_RECURSION(node)) { #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { len = INFINITE_LEN; } #endif @@ -6477,20 +6533,20 @@ node_max_byte_len(Node* node, ParseEnv* env) break; #ifdef USE_CALL - case NODE_CALL: - if (! NODE_IS_RECURSION(node)) - len = node_max_byte_len(NODE_BODY(node), env); + case ND_CALL: + if (! ND_IS_RECURSION(node)) + len = node_max_byte_len(ND_BODY(node), env); else len = INFINITE_LEN; break; #endif - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); if (qn->upper != 0) { - len = node_max_byte_len(NODE_BODY(node), env); + len = node_max_byte_len(ND_BODY(node), env); if (len != 0) { if (! IS_INFINITE_REPEAT(qn->upper)) len = distance_multiply(len, qn->upper); @@ -6501,36 +6557,36 @@ node_max_byte_len(Node* node, ParseEnv* env) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_MEMORY: - if (NODE_IS_FIXED_MAX(node)) + if (ND_IS_FIXED_MAX(node)) len = en->max_len; else { - if (NODE_IS_MARK1(node)) + if (ND_IS_MARK1(node)) len = INFINITE_LEN; else { - NODE_STATUS_ADD(node, MARK1); - len = node_max_byte_len(NODE_BODY(node), env); - NODE_STATUS_REMOVE(node, MARK1); + ND_STATUS_ADD(node, MARK1); + len = node_max_byte_len(ND_BODY(node), env); + ND_STATUS_REMOVE(node, MARK1); en->max_len = len; - NODE_STATUS_ADD(node, FIXED_MAX); + ND_STATUS_ADD(node, FIXED_MAX); } } break; case BAG_OPTION: case BAG_STOP_BACKTRACK: - len = node_max_byte_len(NODE_BODY(node), env); + len = node_max_byte_len(ND_BODY(node), env); break; case BAG_IF_ELSE: { OnigLen tlen, elen; - len = node_max_byte_len(NODE_BODY(node), env); + len = node_max_byte_len(ND_BODY(node), env); if (IS_NOT_NULL(en->te.Then)) { tlen = node_max_byte_len(en->te.Then, env); len = distance_add(len, tlen); @@ -6546,8 +6602,8 @@ node_max_byte_len(Node* node, ParseEnv* env) } break; - case NODE_ANCHOR: - case NODE_GIMMICK: + case ND_ANCHOR: + case ND_GIMMICK: default: break; } @@ -6555,7 +6611,7 @@ node_max_byte_len(Node* node, ParseEnv* env) return len; } -#define MAX_NODE_OPT_INFO_REF_COUNT 5 +#define MAX_ND_OPT_INFO_REF_COUNT 5 static int optimize_nodes(Node* node, OptNode* opt, OptEnv* env) @@ -6570,38 +6626,38 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) clear_node_opt_info(opt); set_bound_node_opt_info(opt, &env->mm); - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { OptEnv nenv; Node* nd = node; copy_opt_env(&nenv, env); do { - r = optimize_nodes(NODE_CAR(nd), &xo, &nenv); + r = optimize_nodes(ND_CAR(nd), &xo, &nenv); if (r == 0) { mml_add(&nenv.mm, &xo.len); concat_left_node_opt_info(enc, opt, &xo); } - } while (r == 0 && IS_NOT_NULL(nd = NODE_CDR(nd))); + } while (r == 0 && IS_NOT_NULL(nd = ND_CDR(nd))); } break; - case NODE_ALT: + case ND_ALT: { Node* nd = node; do { - r = optimize_nodes(NODE_CAR(nd), &xo, env); + r = optimize_nodes(ND_CAR(nd), &xo, env); if (r == 0) { if (nd == node) copy_node_opt_info(opt, &xo); else alt_merge_node_opt_info(opt, &xo, env); } - } while ((r == 0) && IS_NOT_NULL(nd = NODE_CDR(nd))); + } while ((r == 0) && IS_NOT_NULL(nd = ND_CDR(nd))); } break; - case NODE_STRING: + case ND_STRING: { StrNode* sn = STR_(node); int slen = (int )(sn->end - sn->s); @@ -6614,7 +6670,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_CCLASS: + case ND_CCLASS: { int z; CClassNode* cc = CCLASS_(node); @@ -6639,7 +6695,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_CTYPE: + case ND_CTYPE: { int min, max; int range; @@ -6682,7 +6738,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_ANCHOR: + case ND_ANCHOR: switch (ANCHOR_(node)->type) { case ANCR_BEGIN_BUF: case ANCR_BEGIN_POSITION: @@ -6697,7 +6753,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) case ANCR_PREC_READ: { - r = optimize_nodes(NODE_BODY(node), &xo, env); + r = optimize_nodes(ND_BODY(node), &xo, env); if (r == 0) { if (xo.sb.len > 0) copy_opt_exact(&opt->spr, &xo.sb); @@ -6717,8 +6773,8 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { OnigLen min, max; min = node_min_byte_len(node, env->scan_env); @@ -6728,16 +6784,16 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) break; #ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) + case ND_CALL: + if (ND_IS_RECURSION(node)) mml_set_min_max(&opt->len, 0, INFINITE_LEN); else { - r = optimize_nodes(NODE_BODY(node), opt, env); + r = optimize_nodes(ND_BODY(node), opt, env); } break; #endif - case NODE_QUANT: + case ND_QUANT: { OnigLen min, max; QuantNode* qn = QUANT_(node); @@ -6756,7 +6812,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) break; } - r = optimize_nodes(NODE_BODY(node), &xo, env); + r = optimize_nodes(ND_BODY(node), &xo, env); if (r != 0) break; if (qn->lower > 0) { @@ -6781,8 +6837,8 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) if (IS_INFINITE_REPEAT(qn->upper)) { if (env->mm.max == 0 && - NODE_IS_ANYCHAR(NODE_BODY(node)) && qn->greedy != 0) { - if (NODE_IS_MULTILINE(NODE_QUANT_BODY(qn))) + ND_IS_ANYCHAR(ND_BODY(node)) && qn->greedy != 0) { + if (ND_IS_MULTILINE(ND_QUANT_BODY(qn))) add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_ML); else add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF); @@ -6799,32 +6855,32 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); switch (en->type) { case BAG_STOP_BACKTRACK: case BAG_OPTION: - r = optimize_nodes(NODE_BODY(node), opt, env); + r = optimize_nodes(ND_BODY(node), opt, env); break; case BAG_MEMORY: #ifdef USE_CALL en->opt_count++; - if (en->opt_count > MAX_NODE_OPT_INFO_REF_COUNT) { + if (en->opt_count > MAX_ND_OPT_INFO_REF_COUNT) { OnigLen min, max; min = 0; max = INFINITE_LEN; - if (NODE_IS_FIXED_MIN(node)) min = en->min_len; - if (NODE_IS_FIXED_MAX(node)) max = en->max_len; + if (ND_IS_FIXED_MIN(node)) min = en->min_len; + if (ND_IS_FIXED_MAX(node)) max = en->max_len; mml_set_min_max(&opt->len, min, max); } else #endif { - r = optimize_nodes(NODE_BODY(node), opt, env); + r = optimize_nodes(ND_BODY(node), opt, env); if (is_set_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK)) { if (MEM_STATUS_AT0(env->scan_env->backrefed_mem, en->m.regnum)) remove_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK); @@ -6838,7 +6894,7 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) if (IS_NOT_NULL(en->te.Else)) { copy_opt_env(&nenv, env); - r = optimize_nodes(NODE_BAG_BODY(en), &xo, &nenv); + r = optimize_nodes(ND_BAG_BODY(en), &xo, &nenv); if (r == 0) { mml_add(&nenv.mm, &xo.len); concat_left_node_opt_info(enc, opt, &xo); @@ -6860,12 +6916,12 @@ optimize_nodes(Node* node, OptNode* opt, OptEnv* env) } break; - case NODE_GIMMICK: + case ND_GIMMICK: break; default: #ifdef ONIG_DEBUG - fprintf(DBGFP, "optimize_nodes: undefined node type %d\n", NODE_TYPE(node)); + fprintf(DBGFP, "optimize_nodes: undefined node type %d\n", ND_TYPE(node)); #endif r = ONIGERR_TYPE_BUG; break; @@ -7018,10 +7074,12 @@ clear_optimize_info(regex_t* reg) } } -#ifdef ONIG_DEBUG +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) -static void print_enc_string(FILE* fp, OnigEncoding enc, - const UChar *s, const UChar *end) +static void +print_enc_string(FILE* fp, OnigEncoding enc, + const UChar *s, const UChar *end) { if (ONIGENC_MBC_MINLEN(enc) > 1) { const UChar *p; @@ -7042,7 +7100,17 @@ static void print_enc_string(FILE* fp, OnigEncoding enc, } else { while (s < end) { - fputc((int )*s, fp); + if (ONIGENC_MBC_MAXLEN(enc) == 1) { + if (*s >= 0x80) { + fprintf(fp, "\\x%02x", (unsigned int )*s); + } + else { + fputc((int )*s, fp); + } + } + else { /* for UTF-8 */ + fputc((int )*s, fp); + } s++; } } @@ -7077,7 +7145,7 @@ print_options(FILE* fp, OnigOptionType o) if ((o & ONIG_OPTION_CALLBACK_EACH_MATCH) != 0) fprintf(fp, " CALLBACK_EACH_MATCH"); } -#endif /* ONIG_DEBUG */ +#endif #if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) @@ -7426,7 +7494,8 @@ onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, UnsetAddrList uslist = {0}; #endif -#ifdef ONIG_DEBUG +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) fprintf(DBGFP, "\nPATTERN: /"); print_enc_string(DBGFP, reg->enc, pattern, pattern_end); fprintf(DBGFP, "/\n"); @@ -7836,30 +7905,30 @@ mostly_just_anychar(Node* node, int in_reluctant) MJ_RESULT r; r = MJ_NO; - switch (NODE_TYPE(node)) { - case NODE_LIST: + switch (ND_TYPE(node)) { + case ND_LIST: { int found = FALSE; do { - r = mostly_just_anychar(NODE_CAR(node), in_reluctant); + r = mostly_just_anychar(ND_CAR(node), in_reluctant); if (r == MJ_NO) break; if (r == MJ_YES) found = TRUE; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); if (r == MJ_IGNORE) { if (found == TRUE) r = MJ_YES; } } break; - case NODE_ALT: + case ND_ALT: r = MJ_IGNORE; do { - r = mostly_just_anychar(NODE_CAR(node), in_reluctant); + r = mostly_just_anychar(ND_CAR(node), in_reluctant); if (r == MJ_YES) break; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: { QuantNode* qn = QUANT_(node); @@ -7873,12 +7942,12 @@ mostly_just_anychar(Node* node, int in_reluctant) in_reluctant = TRUE; } } - r = mostly_just_anychar(NODE_BODY(node), in_reluctant); + r = mostly_just_anychar(ND_BODY(node), in_reluctant); } } break; - case NODE_ANCHOR: + case ND_ANCHOR: switch (ANCHOR_(node)->type) { case ANCR_PREC_READ: case ANCR_PREC_READ_NOT: @@ -7892,7 +7961,7 @@ mostly_just_anychar(Node* node, int in_reluctant) } break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); @@ -7906,34 +7975,34 @@ mostly_just_anychar(Node* node, int in_reluctant) } } else { - r = mostly_just_anychar(NODE_BODY(node), in_reluctant); + r = mostly_just_anychar(ND_BODY(node), in_reluctant); } } break; - case NODE_CTYPE: + case ND_CTYPE: if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) r = MJ_YES; else r = MJ_NO; break; - case NODE_STRING: - if (NODE_STRING_LEN(node) == 0) { + case ND_STRING: + if (ND_STRING_LEN(node) == 0) { r = MJ_IGNORE; break; } /* fall */ - case NODE_CCLASS: + case ND_CCLASS: r = MJ_NO; break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: /* ignore call */ #endif - case NODE_BACKREF: - case NODE_GIMMICK: + case ND_BACKREF: + case ND_GIMMICK: r = MJ_IGNORE; break; @@ -7965,23 +8034,23 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) int r; r = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: do { - r = detect_can_be_slow(NODE_CAR(node), ct, ncall, calls); + r = detect_can_be_slow(ND_CAR(node), ct, ncall, calls); if (r != 0) return r; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + } while (IS_NOT_NULL(node = ND_CDR(node))); break; - case NODE_QUANT: + case ND_QUANT: { - int prev_heavy_element; QuantNode* qn; Node* body; + int prev_heavy_element = 0; qn = QUANT_(node); - body = NODE_BODY(node); + body = ND_BODY(node); if (qn->emptiness != BODY_IS_NOT_EMPTY) { prev_heavy_element = ct->heavy_element; @@ -7989,8 +8058,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) if (ct->empty_check_nest_level > ct->max_empty_check_nest_level) ct->max_empty_check_nest_level = ct->empty_check_nest_level; } - else if (IS_INFINITE_REPEAT(qn->upper) || - qn->upper > MANY_REPEAT_OF_ANYCHAR) { + else if (IS_INFINITE_REPEAT(qn->upper) || qn->upper > 0) { MJ_RESULT mr = mostly_just_anychar(body, (qn->greedy == 0)); if (mr == MJ_YES) ct->anychar_reluctant_many++; @@ -7999,7 +8067,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) r = detect_can_be_slow(body, ct, ncall, calls); if (qn->emptiness != BODY_IS_NOT_EMPTY) { - if (NODE_IS_INPEEK(node)) { + if (ND_IS_INPEEK(node)) { if (ct->empty_check_nest_level > 2) { if (prev_heavy_element == ct->heavy_element) ct->heavy_element++; @@ -8010,7 +8078,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) } break; - case NODE_ANCHOR: + case ND_ANCHOR: switch (ANCHOR_(node)->type) { case ANCR_PREC_READ: case ANCR_PREC_READ_NOT: @@ -8025,14 +8093,14 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) } if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = detect_can_be_slow(NODE_BODY(node), ct, ncall, calls); + r = detect_can_be_slow(ND_BODY(node), ct, ncall, calls); break; - case NODE_BAG: + case ND_BAG: { BagNode* en = BAG_(node); - r = detect_can_be_slow(NODE_BODY(node), ct, ncall, calls); + r = detect_can_be_slow(ND_BODY(node), ct, ncall, calls); if (r != 0) return r; if (en->type == BAG_IF_ELSE) { @@ -8049,8 +8117,8 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) break; #ifdef USE_BACKREF_WITH_LEVEL - case NODE_BACKREF: - if (NODE_IS_NEST_LEVEL(node)) + case ND_BACKREF: + if (ND_IS_NEST_LEVEL(node)) ct->heavy_element++; else ct->backref++; @@ -8058,7 +8126,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) #endif #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: { int i; int found; @@ -8067,8 +8135,8 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) gnum = CALL_(node)->called_gnum; ct->call++; - if (NODE_IS_RECURSION(node) && NODE_IS_INPEEK(node) && - NODE_IS_IN_REAL_REPEAT(node)) { + if (ND_IS_RECURSION(node) && ND_IS_INPEEK(node) && + ND_IS_IN_REAL_REPEAT(node)) { ct->heavy_element += 10; } @@ -8083,7 +8151,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) if (! found) { if (ncall + 1 < MAX_CALLS_IN_DETECT) { calls[ncall] = gnum; - r = detect_can_be_slow(NODE_BODY(node), ct, ncall + 1, calls); + r = detect_can_be_slow(ND_BODY(node), ct, ncall + 1, calls); } else { ct->heavy_element++; @@ -8092,7 +8160,7 @@ detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) } break; #endif - case NODE_GIMMICK: + case ND_GIMMICK: { GimmickNode* g = GIMMICK_(node); if (g->type == GIMMICK_SAVE && g->detail_type == SAVE_KEEP) @@ -8236,33 +8304,33 @@ print_indent_tree(FILE* f, Node* node, int indent) exit(0); } - type = NODE_TYPE(node); + type = ND_TYPE(node); switch (type) { - case NODE_LIST: - case NODE_ALT: - if (type == NODE_LIST) + case ND_LIST: + case ND_ALT: + if (type == ND_LIST) fprintf(f, "<list:%p>\n", node); else fprintf(f, "<alt:%p>\n", node); - print_indent_tree(f, NODE_CAR(node), indent + add); - while (IS_NOT_NULL(node = NODE_CDR(node))) { - if (NODE_TYPE(node) != type) { - fprintf(f, "ERROR: list/alt right is not a cons. %d\n", NODE_TYPE(node)); + print_indent_tree(f, ND_CAR(node), indent + add); + while (IS_NOT_NULL(node = ND_CDR(node))) { + if (ND_TYPE(node) != type) { + fprintf(f, "ERROR: list/alt right is not a cons. %d\n", ND_TYPE(node)); exit(0); } - print_indent_tree(f, NODE_CAR(node), indent + add); + print_indent_tree(f, ND_CAR(node), indent + add); } break; - case NODE_STRING: + case ND_STRING: { char* str; char* mode; - if (NODE_STRING_IS_CRUDE(node)) + if (ND_STRING_IS_CRUDE(node)) mode = "-crude"; - else if (NODE_IS_IGNORECASE(node)) + else if (ND_IS_IGNORECASE(node)) mode = "-ignorecase"; else mode = ""; @@ -8283,7 +8351,7 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_CCLASS: + case ND_CCLASS: #define CCLASS_MBUF_MAX_OUTPUT_NUM 10 fprintf(f, "<cclass:%p>", node); @@ -8299,7 +8367,7 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_CTYPE: + case ND_CTYPE: fprintf(f, "<ctype:%p> ", node); switch (CTYPE_(node)->ctype) { case CTYPE_ANYCHAR: @@ -8323,7 +8391,7 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_ANCHOR: + case ND_ANCHOR: fprintf(f, "<anchor:%p> ", node); switch (ANCHOR_(node)->type) { case ANCR_BEGIN_BUF: fputs("begin buf", f); break; @@ -8345,19 +8413,19 @@ print_indent_tree(FILE* f, Node* node, int indent) fputs("no text-segment boundary", f); break; case ANCR_PREC_READ: fprintf(f, "prec read\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; case ANCR_PREC_READ_NOT: fprintf(f, "prec read not\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; case ANCR_LOOK_BEHIND: fprintf(f, "look behind\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; case ANCR_LOOK_BEHIND_NOT: fprintf(f, "look behind not\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); break; default: @@ -8366,18 +8434,18 @@ print_indent_tree(FILE* f, Node* node, int indent) } break; - case NODE_BACKREF: + case ND_BACKREF: { int* p; BackRefNode* br = BACKREF_(node); p = BACKREFS_P(br); - fprintf(f, "<backref%s:%p>", NODE_IS_CHECKER(node) ? "-checker" : "", node); + fprintf(f, "<backref%s:%p>", ND_IS_CHECKER(node) ? "-checker" : "", node); for (i = 0; i < br->back_num; i++) { if (i > 0) fputs(", ", f); fprintf(f, "%d", p[i]); } #ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { + if (ND_IS_NEST_LEVEL(node)) { fprintf(f, ", level: %d", br->nest_level); } #endif @@ -8385,33 +8453,33 @@ print_indent_tree(FILE* f, Node* node, int indent) break; #ifdef USE_CALL - case NODE_CALL: + case ND_CALL: { CallNode* cn = CALL_(node); fprintf(f, "<call:%p>", node); fprintf(f, " num: %d, name", cn->called_gnum); p_string(f, cn->name_end - cn->name, cn->name); - if (NODE_IS_RECURSION(node)) fprintf(f, ", recursion"); - if (NODE_IS_INPEEK(node)) fprintf(f, ", in-peek"); - if (NODE_IS_IN_REAL_REPEAT(node)) fprintf(f, ", in-real-repeat"); + if (ND_IS_RECURSION(node)) fprintf(f, ", recursion"); + if (ND_IS_INPEEK(node)) fprintf(f, ", in-peek"); + if (ND_IS_IN_REAL_REPEAT(node)) fprintf(f, ", in-real-repeat"); } break; #endif - case NODE_QUANT: + case ND_QUANT: { fprintf(f, "<quantifier:%p>{%d,%d}%s%s%s", node, QUANT_(node)->lower, QUANT_(node)->upper, (QUANT_(node)->greedy ? "" : "?"), QUANT_(node)->include_referred == 0 ? "" : " referred", emptiness_name[QUANT_(node)->emptiness]); - if (NODE_IS_INPEEK(node)) fprintf(f, ", in-peek"); + if (ND_IS_INPEEK(node)) fprintf(f, ", in-peek"); fprintf(f, "\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); } break; - case NODE_BAG: + case ND_BAG: { BagNode* bn = BAG_(node); fprintf(f, "<bag:%p> ", node); @@ -8420,7 +8488,7 @@ print_indent_tree(FILE* f, Node* node, int indent) Node* Else; fprintf(f, "if-else\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); Then = bn->te.Then; Else = bn->te.Else; @@ -8445,15 +8513,15 @@ print_indent_tree(FILE* f, Node* node, int indent) break; case BAG_MEMORY: fprintf(f, "memory:%d", bn->m.regnum); - if (NODE_IS_CALLED(node)) { + if (ND_IS_CALLED(node)) { fprintf(f, ", called"); - if (NODE_IS_RECURSION(node)) + if (ND_IS_RECURSION(node)) fprintf(f, ", recursion"); } - else if (NODE_IS_REFERENCED(node)) + else if (ND_IS_REFERENCED(node)) fprintf(f, ", referenced"); - if (NODE_IS_FIXED_ADDR(node)) + if (ND_IS_FIXED_ADDR(node)) fprintf(f, ", fixed-addr"); if ((bn->m.called_state & IN_PEEK) != 0) fprintf(f, ", in-peek"); @@ -8465,12 +8533,12 @@ print_indent_tree(FILE* f, Node* node, int indent) break; } fprintf(f, "\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); + print_indent_tree(f, ND_BODY(node), indent + add); } } break; - case NODE_GIMMICK: + case ND_GIMMICK: fprintf(f, "<gimmick:%p> ", node); switch (GIMMICK_(node)->type) { case GIMMICK_FAIL: @@ -8497,12 +8565,12 @@ print_indent_tree(FILE* f, Node* node, int indent) break; default: - fprintf(f, "print_indent_tree: undefined node type %d\n", NODE_TYPE(node)); + fprintf(f, "print_indent_tree: undefined node type %d\n", ND_TYPE(node)); break; } - if (type != NODE_LIST && type != NODE_ALT && type != NODE_QUANT && - type != NODE_BAG) + if (type != ND_LIST && type != ND_ALT && type != ND_QUANT && + type != ND_BAG) fprintf(f, "\n"); fflush(f); } diff --git a/src/regexec.c b/src/regexec.c index cb8e620..496da3b 100644 --- a/src/regexec.c +++ b/src/regexec.c @@ -180,19 +180,7 @@ typedef struct { } MatchArg; -#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) - -/* arguments type */ -typedef enum { - ARG_SPECIAL = -1, - ARG_NON = 0, - ARG_RELADDR = 1, - ARG_ABSADDR = 2, - ARG_LENGTH = 3, - ARG_MEMNUM = 4, - ARG_OPTION = 5, - ARG_MODE = 6 -} OpArgType; +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) || defined(ONIG_DEBUG_STATISTICS) typedef struct { short int opcode; @@ -299,6 +287,22 @@ static OpInfoType OpInfo[] = { { -1, ""} }; +#endif + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) + +/* arguments type */ +typedef enum { + ARG_SPECIAL = -1, + ARG_NON = 0, + ARG_RELADDR = 1, + ARG_ABSADDR = 2, + ARG_LENGTH = 3, + ARG_MEMNUM = 4, + ARG_OPTION = 5, + ARG_MODE = 6 +} OpArgType; + static char* op2name(int opcode) { @@ -2808,7 +2812,7 @@ typedef struct { #define MATCH_COUNTER_OUT(title) do {\ int i;\ - fprintf(DBGFP, "%s (%ld): retry limit: %8lu, subexp_call: %8lu\n", (title), (sstart - str), retry_in_match_counter, msa->subexp_call_in_search_counter); \ + fprintf(DBGFP, "%s (%ld): retry limit: %8lu/%8lu, subexp_call: %8lu\n", (title), (sstart - str), retry_in_match_counter, retry_limit_in_match, msa->subexp_call_in_search_counter); \ fprintf(DBGFP, " ");\ for (i = 0; i < MAX_SUBEXP_CALL_COUNTERS; i++) {\ fprintf(DBGFP, " %6lu", subexp_call_counters[i]);\ @@ -3038,39 +3042,43 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, BYTECODE_INTERPRETER_START { CASE_OP(END) + if (OPTON_MATCH_WHOLE_STRING(options)) { + if (! ON_STR_END(s)) goto fail; + } + n = (int )(s - sstart); if (n == 0 && OPTON_FIND_NOT_EMPTY(options)) { best_len = ONIG_MISMATCH; goto fail; /* for retry */ } - if (n > best_len) { #ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - if (OPTON_FIND_LONGEST(options)) { + if (OPTON_FIND_LONGEST(options)) { + if (n > best_len) { if (n > msa->best_len) { + best_len = n; msa->best_len = n; msa->best_s = (UChar* )sstart; - if (s >= in_right_range) { - best_len = msa->best_len; /* end of find */ - } } else { if (s >= in_right_range && msa->best_s == sstart) { - best_len = msa->best_len; /* end of find */ + goto op_end_out; } else { - SOP_OUT; goto fail; /* for retry */ } } } else { - best_len = n; + goto fail; /* for retry */ } -#else + } + else { best_len = n; -#endif } +#else + best_len = n; +#endif /* set region */ region = msa->region; @@ -3135,14 +3143,14 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, #endif } /* if (region) */ - SOP_OUT; - if (OPTON_CALLBACK_EACH_MATCH(options) && IS_NOT_NULL(CallbackEachMatch)) { i = CallbackEachMatch(str, end, sstart, region, msa->mp->callout_user_data); - if (i < 0) MATCH_AT_ERROR_RETURN(i); - + if (i < 0) { + SOP_OUT; + MATCH_AT_ERROR_RETURN(i); + } #ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE if (! OPTON_FIND_LONGEST(options)) #endif @@ -3151,7 +3159,13 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, goto fail; } +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) goto fail; +#endif + + op_end_out: /* default behavior: return first-matching result. */ + SOP_OUT; goto match_at_end; CASE_OP(STR_1) @@ -4398,6 +4412,11 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, #endif CASE_OP(FINISH) +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) { + best_len = ONIG_MISMATCH; + } +#endif goto match_at_end; #ifdef ONIG_DEBUG_STATISTICS @@ -5455,7 +5474,6 @@ search_in_range(regex_t* reg, const UChar* str, const UChar* end, else goto finish; /* error */ \ } - /* anchor optimize: resume search range */ if (reg->anchor != 0 && str < end) { UChar *min_semi_end, *max_semi_end; diff --git a/src/regint.h b/src/regint.h index ee6b02b..32018e3 100644 --- a/src/regint.h +++ b/src/regint.h @@ -4,7 +4,7 @@ regint.h - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2021 K.Kosako + * Copyright (c) 2002-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -408,6 +408,7 @@ typedef unsigned int MemStatusType; #define OPTON_NOT_BEGIN_STRING(option) ((option) & ONIG_OPTION_NOT_BEGIN_STRING) #define OPTON_NOT_END_STRING(option) ((option) & ONIG_OPTION_NOT_END_STRING) #define OPTON_NOT_BEGIN_POSITION(option) ((option) & ONIG_OPTION_NOT_BEGIN_POSITION) +#define OPTON_MATCH_WHOLE_STRING(option) ((option) & ONIG_OPTION_MATCH_WHOLE_STRING) #define INFINITE_REPEAT -1 @@ -469,8 +470,8 @@ typedef Bits* BitSetRef; /* operation code */ enum OpCode { OP_FINISH = 0, /* matching process terminator (no more alternative) */ - OP_END = 1, /* pattern code terminator (success end) */ - OP_STR_1 = 2, /* single byte, N = 1 */ + OP_END, /* pattern code terminator (success end) */ + OP_STR_1, /* single byte, N = 1 */ OP_STR_2, /* single byte, N = 2 */ OP_STR_3, /* single byte, N = 3 */ OP_STR_4, /* single byte, N = 4 */ diff --git a/src/regparse.c b/src/regparse.c index b8f08ab..d7d188a 100644 --- a/src/regparse.c +++ b/src/regparse.c @@ -2,7 +2,7 @@ regparse.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2022 K.Kosako + * Copyright (c) 2002-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,7 +27,7 @@ * SUCH DAMAGE. */ -#ifdef DEBUG_NODE_FREE +#ifdef DEBUG_ND_FREE #ifndef NEED_TO_INCLUDE_STDIO #define NEED_TO_INCLUDE_STDIO #endif @@ -486,6 +486,7 @@ onig_strcpy(UChar* dest, const UChar* src, const UChar* end) #define PFETCH_READY UChar* pfetch_prev #define PEND (p < end ? 0 : 1) #define PUNFETCH p = pfetch_prev +#define PPREV pfetch_prev #define PINC do { \ pfetch_prev = p; \ p += ONIGENC_MBC_ENC_LEN(enc, p); \ @@ -547,8 +548,10 @@ typedef struct { } st_str_end_key; static int -str_end_cmp(st_str_end_key* x, st_str_end_key* y) +str_end_cmp(st_data_t ax, st_data_t ay) { + st_str_end_key* x = (st_str_end_key* )ax; + st_str_end_key* y = (st_str_end_key* )ay; UChar *p, *q; int c; @@ -568,8 +571,9 @@ str_end_cmp(st_str_end_key* x, st_str_end_key* y) } static int -str_end_hash(st_str_end_key* x) +str_end_hash(st_data_t ax) { + st_str_end_key* x = (st_str_end_key* )ax; UChar *p; unsigned val = 0; @@ -634,8 +638,10 @@ typedef struct { } st_callout_name_key; static int -callout_name_table_cmp(st_callout_name_key* x, st_callout_name_key* y) +callout_name_table_cmp(st_data_t ax, st_data_t ay) { + st_callout_name_key* x = (st_callout_name_key* )ax; + st_callout_name_key* y = (st_callout_name_key* )ay; UChar *p, *q; int c; @@ -657,8 +663,9 @@ callout_name_table_cmp(st_callout_name_key* x, st_callout_name_key* y) } static int -callout_name_table_hash(st_callout_name_key* x) +callout_name_table_hash(st_data_t ax) { + st_callout_name_key* x = (st_callout_name_key* )ax; UChar *p; unsigned int val = 0; @@ -2149,27 +2156,27 @@ node_free_body(Node* node) { if (IS_NULL(node)) return ; - switch (NODE_TYPE(node)) { - case NODE_STRING: + switch (ND_TYPE(node)) { + case ND_STRING: if (STR_(node)->capacity != 0 && IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) { xfree(STR_(node)->s); } break; - case NODE_LIST: - case NODE_ALT: - onig_node_free(NODE_CAR(node)); - node = NODE_CDR(node); + case ND_LIST: + case ND_ALT: + onig_node_free(ND_CAR(node)); + node = ND_CDR(node); while (IS_NOT_NULL(node)) { - Node* next = NODE_CDR(node); - onig_node_free(NODE_CAR(node)); + Node* next = ND_CDR(node); + onig_node_free(ND_CAR(node)); xfree(node); node = next; } break; - case NODE_CCLASS: + case ND_CCLASS: { CClassNode* cc = CCLASS_(node); @@ -2178,14 +2185,14 @@ node_free_body(Node* node) } break; - case NODE_BACKREF: + case ND_BACKREF: if (IS_NOT_NULL(BACKREF_(node)->back_dynamic)) xfree(BACKREF_(node)->back_dynamic); break; - case NODE_BAG: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); + case ND_BAG: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); { BagNode* en = BAG_(node); @@ -2196,21 +2203,21 @@ node_free_body(Node* node) } break; - case NODE_QUANT: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); + case ND_QUANT: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); break; - case NODE_ANCHOR: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); + case ND_ANCHOR: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); if (IS_NOT_NULL(ANCHOR_(node)->lead_node)) onig_node_free(ANCHOR_(node)->lead_node); break; - case NODE_CTYPE: - case NODE_CALL: - case NODE_GIMMICK: + case ND_CTYPE: + case ND_CALL: + case ND_GIMMICK: break; } } @@ -2220,7 +2227,7 @@ onig_node_free(Node* node) { if (IS_NULL(node)) return ; -#ifdef DEBUG_NODE_FREE +#ifdef DEBUG_ND_FREE fprintf(stderr, "onig_node_free: %p\n", node); #endif @@ -2231,8 +2238,8 @@ onig_node_free(Node* node) static void cons_node_free_alone(Node* node) { - NODE_CAR(node) = 0; - NODE_CDR(node) = 0; + ND_CAR(node) = 0; + ND_CDR(node) = 0; onig_node_free(node); } @@ -2245,7 +2252,7 @@ node_new(void) CHECK_NULL_RETURN(node); xmemset(node, 0, sizeof(*node)); -#ifdef DEBUG_NODE_FREE +#ifdef DEBUG_ND_FREE fprintf(stderr, "node_new: %p\n", node); #endif return node; @@ -2259,15 +2266,15 @@ onig_node_copy(Node** rcopy, Node* from) *rcopy = NULL_NODE; - switch (NODE_TYPE(from)) { - case NODE_LIST: - case NODE_ALT: - case NODE_ANCHOR: + switch (ND_TYPE(from)) { + case ND_LIST: + case ND_ALT: + case ND_ANCHOR: /* These node's link to other nodes are processed by caller. */ break; - case NODE_STRING: - case NODE_CCLASS: - case NODE_CTYPE: + case ND_STRING: + case ND_CCLASS: + case ND_CTYPE: /* Fixed contents after copy. */ break; default: @@ -2280,8 +2287,8 @@ onig_node_copy(Node** rcopy, Node* from) CHECK_NULL_RETURN_MEMERR(copy); xmemcpy(copy, from, sizeof(*copy)); - switch (NODE_TYPE(copy)) { - case NODE_STRING: + switch (ND_TYPE(copy)) { + case ND_STRING: r = onig_node_str_set(copy, STR_(from)->s, STR_(from)->end, FALSE); if (r != 0) { err: @@ -2290,7 +2297,7 @@ onig_node_copy(Node** rcopy, Node* from) } break; - case NODE_CCLASS: + case ND_CCLASS: { CClassNode *fcc, *tcc; @@ -2326,7 +2333,7 @@ node_new_cclass(void) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_CCLASS); + ND_SET_TYPE(node, ND_CCLASS); initialize_cclass(CCLASS_(node)); return node; } @@ -2337,7 +2344,7 @@ node_new_ctype(int type, int not, OnigOptionType options) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_CTYPE); + ND_SET_TYPE(node, ND_CTYPE); CTYPE_(node)->ctype = type; CTYPE_(node)->not = not; CTYPE_(node)->ascii_mode = OPTON_IS_ASCII_MODE_CTYPE(type, options); @@ -2353,7 +2360,7 @@ node_new_anychar(OnigOptionType options) CHECK_NULL_RETURN(node); if (OPTON_MULTILINE(options)) - NODE_STATUS_ADD(node, MULTILINE); + ND_STATUS_ADD(node, MULTILINE); return node; } @@ -2385,9 +2392,9 @@ node_new_list(Node* left, Node* right) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_LIST); - NODE_CAR(node) = left; - NODE_CDR(node) = right; + ND_SET_TYPE(node, ND_LIST); + ND_CAR(node) = left; + ND_CDR(node) = right; return node; } @@ -2403,9 +2410,9 @@ onig_node_new_alt(Node* left, Node* right) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_ALT); - NODE_CAR(node) = left; - NODE_CDR(node) = right; + ND_SET_TYPE(node, ND_ALT); + ND_CAR(node) = left; + ND_CDR(node) = right; return node; } @@ -2419,9 +2426,9 @@ make_list_or_alt(NodeType type, int n, Node* ns[]) if (n == 1) { r = node_new(); CHECK_NULL_RETURN(r); - NODE_SET_TYPE(r, type); - NODE_CAR(r) = ns[0]; - NODE_CDR(r) = NULL_NODE; + ND_SET_TYPE(r, type); + ND_CAR(r) = ns[0]; + ND_CDR(r) = NULL_NODE; } else { Node* right; @@ -2435,9 +2442,9 @@ make_list_or_alt(NodeType type, int n, Node* ns[]) return NULL_NODE; } - NODE_SET_TYPE(r, type); - NODE_CAR(r) = ns[0]; - NODE_CDR(r) = right; + ND_SET_TYPE(r, type); + ND_CAR(r) = ns[0]; + ND_CDR(r) = right; } return r; @@ -2446,13 +2453,13 @@ make_list_or_alt(NodeType type, int n, Node* ns[]) static Node* make_list(int n, Node* ns[]) { - return make_list_or_alt(NODE_LIST, n, ns); + return make_list_or_alt(ND_LIST, n, ns); } static Node* make_alt(int n, Node* ns[]) { - return make_list_or_alt(NODE_ALT, n, ns); + return make_list_or_alt(ND_ALT, n, ns); } static Node* @@ -2463,7 +2470,7 @@ node_new_anchor(int type) node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_ANCHOR); + ND_SET_TYPE(node, ND_ANCHOR); ANCHOR_(node)->type = type; ANCHOR_(node)->char_min_len = 0; ANCHOR_(node)->char_max_len = INFINITE_LEN; @@ -2487,7 +2494,7 @@ node_new_anchor_with_options(int type, OnigOptionType options) if (type == ANCR_TEXT_SEGMENT_BOUNDARY || type == ANCR_NO_TEXT_SEGMENT_BOUNDARY) { if (OPTON_TEXT_SEGMENT_WORD(options)) - NODE_STATUS_ADD(node, TEXT_SEGMENT_WORD); + ND_STATUS_ADD(node, TEXT_SEGMENT_WORD); } return node; @@ -2506,18 +2513,18 @@ node_new_backref(int back_num, int* backrefs, int by_name, node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_BACKREF); + ND_SET_TYPE(node, ND_BACKREF); BACKREF_(node)->back_num = back_num; BACKREF_(node)->back_dynamic = (int* )NULL; if (by_name != 0) - NODE_STATUS_ADD(node, BY_NAME); + ND_STATUS_ADD(node, BY_NAME); if (OPTON_IGNORECASE(env->options)) - NODE_STATUS_ADD(node, IGNORECASE); + ND_STATUS_ADD(node, IGNORECASE); #ifdef USE_BACKREF_WITH_LEVEL if (exist_level != 0) { - NODE_STATUS_ADD(node, NEST_LEVEL); + ND_STATUS_ADD(node, NEST_LEVEL); BACKREF_(node)->nest_level = nest_level; } #endif @@ -2525,12 +2532,12 @@ node_new_backref(int back_num, int* backrefs, int by_name, for (i = 0; i < back_num; i++) { if (backrefs[i] <= env->num_mem && IS_NULL(PARSEENV_MEMENV(env)[backrefs[i]].mem_node)) { - NODE_STATUS_ADD(node, RECURSION); /* /...(\1).../ */ + ND_STATUS_ADD(node, RECURSION); /* /...(\1).../ */ break; } } - if (back_num <= NODE_BACKREFS_SIZE) { + if (back_num <= ND_BACKREFS_SIZE) { for (i = 0; i < back_num; i++) BACKREF_(node)->back_static[i] = backrefs[i]; } @@ -2565,7 +2572,7 @@ node_new_backref_checker(int back_num, int* backrefs, int by_name, env); CHECK_NULL_RETURN(node); - NODE_STATUS_ADD(node, CHECKER); + ND_STATUS_ADD(node, CHECKER); return node; } @@ -2576,7 +2583,7 @@ node_new_call(UChar* name, UChar* name_end, int gnum, int by_number) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_CALL); + ND_SET_TYPE(node, ND_CALL); CALL_(node)->by_number = by_number; CALL_(node)->name = name; CALL_(node)->name_end = name_end; @@ -2592,7 +2599,7 @@ node_new_quantifier(int lower, int upper, int by_number) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_QUANT); + ND_SET_TYPE(node, ND_QUANT); QUANT_(node)->lower = lower; QUANT_(node)->upper = upper; QUANT_(node)->greedy = 1; @@ -2602,7 +2609,7 @@ node_new_quantifier(int lower, int upper, int by_number) QUANT_(node)->include_referred = 0; QUANT_(node)->empty_status_mem = 0; if (by_number != 0) - NODE_STATUS_ADD(node, BY_NUMBER); + ND_STATUS_ADD(node, BY_NUMBER); return node; } @@ -2613,7 +2620,7 @@ node_new_bag(enum BagType type) Node* node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_BAG); + ND_SET_TYPE(node, ND_BAG); BAG_(node)->type = type; switch (type) { @@ -2654,7 +2661,7 @@ node_new_bag_if_else(Node* cond, Node* Then, Node* Else) n = node_new_bag(BAG_IF_ELSE); CHECK_NULL_RETURN(n); - NODE_BODY(n) = cond; + ND_BODY(n) = cond; BAG_(n)->te.Then = Then; BAG_(n)->te.Else = Else; return n; @@ -2666,7 +2673,7 @@ node_new_memory(int is_named) Node* node = node_new_bag(BAG_MEMORY); CHECK_NULL_RETURN(node); if (is_named != 0) - NODE_STATUS_ADD(node, NAMED_GROUP); + ND_STATUS_ADD(node, NAMED_GROUP); return node; } @@ -2687,9 +2694,9 @@ node_new_group(Node* content) node = node_new(); CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_LIST); - NODE_CAR(node) = content; - NODE_CDR(node) = NULL_NODE; + ND_SET_TYPE(node, ND_LIST); + ND_CAR(node) = content; + ND_CDR(node) = NULL_NODE; return node; } @@ -2699,8 +2706,8 @@ node_drop_group(Node* group) { Node* content; - content = NODE_CAR(group); - NODE_CAR(group) = NULL_NODE; + content = ND_CAR(group); + ND_CAR(group) = NULL_NODE; onig_node_free(group); return content; } @@ -2708,7 +2715,7 @@ node_drop_group(Node* group) static int node_set_fail(Node* node) { - NODE_SET_TYPE(node, NODE_GIMMICK); + ND_SET_TYPE(node, ND_GIMMICK); GIMMICK_(node)->type = GIMMICK_FAIL; return ONIG_NORMAL; } @@ -2739,7 +2746,7 @@ node_new_save_gimmick(Node** node, enum SaveType save_type, ParseEnv* env) *node = node_new(); CHECK_NULL_RETURN_MEMERR(*node); - NODE_SET_TYPE(*node, NODE_GIMMICK); + ND_SET_TYPE(*node, ND_GIMMICK); GIMMICK_(*node)->id = id; GIMMICK_(*node)->type = GIMMICK_SAVE; GIMMICK_(*node)->detail_type = (int )save_type; @@ -2754,7 +2761,7 @@ node_new_update_var_gimmick(Node** node, enum UpdateVarType update_var_type, *node = node_new(); CHECK_NULL_RETURN_MEMERR(*node); - NODE_SET_TYPE(*node, NODE_GIMMICK); + ND_SET_TYPE(*node, ND_GIMMICK); GIMMICK_(*node)->id = id; GIMMICK_(*node)->type = GIMMICK_UPDATE_VAR; GIMMICK_(*node)->detail_type = (int )update_var_type; @@ -2874,7 +2881,7 @@ node_new_callout(Node** node, OnigCalloutOf callout_of, int num, int id, *node = node_new(); CHECK_NULL_RETURN_MEMERR(*node); - NODE_SET_TYPE(*node, NODE_GIMMICK); + ND_SET_TYPE(*node, ND_GIMMICK); GIMMICK_(*node)->id = id; GIMMICK_(*node)->num = num; GIMMICK_(*node)->type = GIMMICK_CALLOUT; @@ -2911,7 +2918,7 @@ make_text_segment(Node** node, ParseEnv* env) x = node_new_quantifier(0, INFINITE_REPEAT, TRUE); if (IS_NULL(x)) goto err; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; ns[0] = NULL_NODE; ns[1] = x; @@ -2927,7 +2934,7 @@ make_text_segment(Node** node, ParseEnv* env) x = node_new_bag(BAG_STOP_BACKTRACK); if (IS_NULL(x)) goto err; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; *node = x; return ONIG_NORMAL; @@ -2963,7 +2970,7 @@ make_absent_engine(Node** node, int pre_save_right_id, Node* absent, if (r != 0) goto err; if (is_range_cutter != 0) - NODE_STATUS_ADD(ns[2], ABSENT_WITH_SIDE_EFFECTS); + ND_STATUS_ADD(ns[2], ABSENT_WITH_SIDE_EFFECTS); r = node_new_fail(&ns[3], env); if (r != 0) goto err; @@ -2983,14 +2990,14 @@ make_absent_engine(Node** node, int pre_save_right_id, Node* absent, x = node_new_quantifier(lower, upper, FALSE); if (IS_NULL(x)) goto err0; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; ns[0] = x; if (possessive != 0) { x = node_new_bag(BAG_STOP_BACKTRACK); if (IS_NULL(x)) goto err0; - NODE_BODY(x) = ns[0]; + ND_BODY(x) = ns[0]; ns[0] = x; } @@ -3010,7 +3017,7 @@ make_absent_engine(Node** node, int pre_save_right_id, Node* absent, if (IS_NULL(x)) goto err0; if (is_range_cutter != FALSE) - NODE_STATUS_ADD(x, SUPER); + ND_STATUS_ADD(x, SUPER); *node = x; return ONIG_NORMAL; @@ -3104,12 +3111,12 @@ make_range_clear(Node** node, ParseEnv* env) r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT, ID_NOT_USED_DONT_CARE_ME, env); if (r != 0) goto err; - NODE_STATUS_ADD(ns[0], ABSENT_WITH_SIDE_EFFECTS); + ND_STATUS_ADD(ns[0], ABSENT_WITH_SIDE_EFFECTS); x = make_alt(2, ns); if (IS_NULL(x)) goto err0; - NODE_STATUS_ADD(x, SUPER); + ND_STATUS_ADD(x, SUPER); ns[0] = save; ns[1] = x; @@ -3139,16 +3146,16 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, *rquant = *rbody = 0; *is_possessive = 0; - if (NODE_TYPE(node) == NODE_QUANT) { + if (ND_TYPE(node) == ND_QUANT) { quant = node; } else { - if (NODE_TYPE(node) == NODE_BAG) { + if (ND_TYPE(node) == ND_BAG) { BagNode* en = BAG_(node); if (en->type == BAG_STOP_BACKTRACK) { *is_possessive = 1; - quant = NODE_BAG_BODY(en); - if (NODE_TYPE(quant) != NODE_QUANT) + quant = ND_BAG_BODY(en); + if (ND_TYPE(quant) != ND_QUANT) return 0; } else @@ -3161,9 +3168,9 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, if (QUANT_(quant)->greedy == 0) return 0; - body = NODE_BODY(quant); - switch (NODE_TYPE(body)) { - case NODE_STRING: + body = ND_BODY(quant); + switch (ND_TYPE(body)) { + case ND_STRING: { int len; StrNode* sn = STR_(body); @@ -3178,7 +3185,7 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, return 0; } - case NODE_CCLASS: + case ND_CCLASS: break; default: @@ -3187,10 +3194,10 @@ is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, } if (node != quant) { - NODE_BODY(node) = 0; + ND_BODY(node) = 0; onig_node_free(node); } - NODE_BODY(quant) = NULL_NODE; + ND_BODY(quant) = NULL_NODE; *rquant = quant; *rbody = body; return 1; @@ -3346,9 +3353,9 @@ onig_node_str_cat(Node* node, const UChar* s, const UChar* end) if (addlen > 0) { int len = (int )(STR_(node)->end - STR_(node)->s); - if (STR_(node)->capacity > 0 || (len + addlen > NODE_STRING_BUF_SIZE - 1)) { + if (STR_(node)->capacity > 0 || (len + addlen > ND_STRING_BUF_SIZE - 1)) { UChar* p; - int capa = len + addlen + NODE_STRING_MARGIN; + int capa = len + addlen + ND_STRING_MARGIN; if (capa <= STR_(node)->capacity) { onig_strcpy(STR_(node)->s + len, s, end); @@ -3410,7 +3417,7 @@ node_set_str(Node* node, const UChar* s, const UChar* end) { int r; - NODE_SET_TYPE(node, NODE_STRING); + ND_SET_TYPE(node, ND_STRING); STR_(node)->flag = 0; STR_(node)->s = STR_(node)->buf; STR_(node)->end = STR_(node)->buf; @@ -3463,7 +3470,7 @@ node_new_str_with_options(const UChar* s, const UChar* end, node = node_new_str(s, end); if (OPTON_IGNORECASE(options)) - NODE_STATUS_ADD(node, IGNORECASE); + ND_STATUS_ADD(node, IGNORECASE); return node; } @@ -3473,7 +3480,7 @@ node_new_str_crude(UChar* s, UChar* end, OnigOptionType options) { Node* node = node_new_str_with_options(s, end, options); CHECK_NULL_RETURN(node); - NODE_STRING_SET_CRUDE(node); + ND_STRING_SET_CRUDE(node); return node; } @@ -3492,9 +3499,10 @@ node_new_str_crude_char(UChar c, OnigOptionType options) p[0] = c; node = node_new_str_crude(p, p + 1, options); + CHECK_NULL_RETURN(node); /* clear buf tail */ - for (i = 1; i < NODE_STRING_BUF_SIZE; i++) + for (i = 1; i < ND_STRING_BUF_SIZE; i++) STR_(node)->buf[i] = '\0'; return node; @@ -3517,7 +3525,7 @@ str_node_split_last_char(Node* node, OnigEncoding enc) sn->end = (UChar* )p; STR_(rn)->flag = sn->flag; - NODE_STATUS(rn) = NODE_STATUS(node); + ND_STATUS(rn) = ND_STATUS(node); } } @@ -4276,28 +4284,28 @@ conv_backslash_value(OnigCodePoint c, ParseEnv* env) static int is_invalid_quantifier_target(Node* node) { - switch (NODE_TYPE(node)) { - case NODE_ANCHOR: - case NODE_GIMMICK: + switch (ND_TYPE(node)) { + case ND_ANCHOR: + case ND_GIMMICK: return 1; break; - case NODE_BAG: + case ND_BAG: /* allow enclosed elements */ - /* return is_invalid_quantifier_target(NODE_BODY(node)); */ + /* return is_invalid_quantifier_target(ND_BODY(node)); */ break; - case NODE_LIST: + case ND_LIST: do { - if (! is_invalid_quantifier_target(NODE_CAR(node))) return 0; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + if (! is_invalid_quantifier_target(ND_CAR(node))) return 0; + } while (IS_NOT_NULL(node = ND_CDR(node))); return 0; break; - case NODE_ALT: + case ND_ALT: do { - if (is_invalid_quantifier_target(NODE_CAR(node))) return 1; - } while (IS_NOT_NULL(node = NODE_CDR(node))); + if (is_invalid_quantifier_target(ND_CAR(node))) return 1; + } while (IS_NOT_NULL(node = ND_CDR(node))); break; default: @@ -4334,7 +4342,7 @@ quantifier_type_num(QuantNode* q) enum ReduceType { RQ_ASIS = 0, /* as is */ - RQ_DEL = 1, /* delete parent */ + RQ_DEL, /* delete parent */ RQ_A, /* to '*' */ RQ_P, /* to '+' */ RQ_AQ, /* to '*?' */ @@ -4358,7 +4366,7 @@ onig_reduce_nested_quantifier(Node* pnode) QuantNode *p, *c; Node* cnode; - cnode = NODE_BODY(pnode); + cnode = ND_BODY(pnode); p = QUANT_(pnode); c = QUANT_(cnode); @@ -4370,7 +4378,7 @@ onig_reduce_nested_quantifier(Node* pnode) if (n < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; p->lower = p->upper = n; - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); goto remove_cnode; } @@ -4383,22 +4391,22 @@ onig_reduce_nested_quantifier(Node* pnode) goto remove_cnode; break; case RQ_A: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 1; goto remove_cnode; break; case RQ_P: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 1; p->upper = INFINITE_REPEAT; p->greedy = 1; goto remove_cnode; break; case RQ_AQ: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 0; goto remove_cnode; break; case RQ_QQ: - NODE_BODY(pnode) = NODE_BODY(cnode); + ND_BODY(pnode) = ND_BODY(cnode); p->lower = 0; p->upper = 1; p->greedy = 0; goto remove_cnode; break; @@ -4413,7 +4421,7 @@ onig_reduce_nested_quantifier(Node* pnode) return 0; remove_cnode: - NODE_BODY(cnode) = NULL_NODE; + ND_BODY(cnode) = NULL_NODE; onig_node_free(cnode); return 0; } @@ -4471,7 +4479,7 @@ node_new_general_newline(Node** node, ParseEnv* env) enum TokenSyms { TK_EOT = 0, /* end of token */ - TK_CRUDE_BYTE = 1, + TK_CRUDE_BYTE, TK_CHAR, TK_STRING, TK_CODE_POINT, @@ -5103,41 +5111,96 @@ find_str_position(OnigCodePoint s[], int n, UChar* from, UChar* to, } static int -str_exist_check_with_esc(OnigCodePoint s[], int n, UChar* from, UChar* to, - OnigCodePoint bad, OnigEncoding enc, OnigSyntaxType* syn) +is_head_of_bre_subexp(UChar* p, UChar* end, OnigEncoding enc, ParseEnv* env) { - int i, in_esc; - OnigCodePoint x; - UChar *q; - UChar *p = from; + UChar* start; + OnigCodePoint code; - in_esc = 0; - while (p < to) { - if (in_esc) { - in_esc = 0; - p += enclen(enc, p); - } - else { - x = ONIGENC_MBC_TO_CODE(enc, p, to); - q = p + enclen(enc, p); - if (x == s[0]) { - for (i = 1; i < n && q < to; i++) { - x = ONIGENC_MBC_TO_CODE(enc, q, to); - if (x != s[i]) break; - q += enclen(enc, q); + start = env->pattern; + if (p > start) { + p = onigenc_get_prev_char_head(enc, start, p); + if (p > start) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == '(' || + (code == '|' && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_VBAR_ALT))) { + p = onigenc_get_prev_char_head(enc, start, p); + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (IS_MC_ESC_CODE(code, env->syntax)) { + int count = 0; + while (p > start) { + p = onigenc_get_prev_char_head(enc, start, p); + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (! IS_MC_ESC_CODE(code, env->syntax)) break; + count++; + } + return (count % 2 == 0); } - if (i >= n) return 1; - p += enclen(enc, p); } - else { + } + return FALSE; + } + else { + return TRUE; + } +} + +static int +is_end_of_bre_subexp(UChar* p, UChar* end, OnigEncoding enc, ParseEnv* env) +{ + OnigCodePoint code; + + if (p == end) return TRUE; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (IS_MC_ESC_CODE(code, env->syntax)) { + p += ONIGENC_MBC_ENC_LEN(enc, p); + if (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == ')' || + (code == '|' && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_VBAR_ALT))) + return TRUE; + } + } + + return FALSE; +} + +static int +is_posix_bracket_start(UChar* from, UChar* to, OnigEncoding enc) +{ + int n; + OnigCodePoint x; + UChar *p; + + n = 0; + p = from; + while (p < to) { + x = ONIGENC_MBC_TO_CODE(enc, p, to); + p += enclen(enc, p); + if (x == ':') { + if (p < to) { x = ONIGENC_MBC_TO_CODE(enc, p, to); - if (x == bad) return 0; - else if (x == MC_ESC(syn)) in_esc = 1; - p = q; + if (x == ']') { + if (n == 0) return FALSE; + else return TRUE; + } } + + return FALSE; + } + else if (x == '^' && n == 0) { + ; } + else if (! ONIGENC_IS_CODE_ALPHA(enc, x)) { + break; + } + + n += 1; } - return 0; + + return FALSE; } static int @@ -5392,11 +5455,9 @@ fetch_token_cc(PToken* tok, UChar** src, UChar* end, ParseEnv* env, int state) } else if (c == '[') { if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_POSIX_BRACKET) && (PPEEK_IS(':'))) { - OnigCodePoint send[] = { (OnigCodePoint )':', (OnigCodePoint )']' }; tok->backp = p; /* point at '[' is read */ PINC; - if (str_exist_check_with_esc(send, 2, p, end, - (OnigCodePoint )']', enc, syn)) { + if (is_posix_bracket_start(p, end, enc)) { tok->type = TK_CC_POSIX_BRACKET_OPEN; } else { @@ -6163,8 +6224,20 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) case '-': case '+': - goto lparen_qmark_num; + if (! PEND) { + PINC; + if (! PEND) { + c = PPEEK; + if (ONIGENC_IS_CODE_DIGIT(enc, c)) { + PUNFETCH; + goto lparen_qmark_num; + } + } + } + p = prev; + goto lparen_qmark_end2; break; + default: if (! ONIGENC_IS_CODE_DIGIT(enc, c)) goto lparen_qmark_end; @@ -6197,6 +6270,7 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) } break; } + break; } else if (c == 'P' && IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME)) { @@ -6238,6 +6312,9 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) case '^': if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; + if (IS_SYNTAX_BV(syn, ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP)) { + if (! is_head_of_bre_subexp(PPREV, end, enc, env)) break; + } tok->type = TK_ANCHOR; tok->u.subtype = (OPTON_SINGLELINE(env->options) ? ANCR_BEGIN_BUF : ANCR_BEGIN_LINE); @@ -6245,6 +6322,9 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) case '$': if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; + if (IS_SYNTAX_BV(syn, ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP)) { + if (! is_end_of_bre_subexp(p, end, enc, env)) break; + } tok->type = TK_ANCHOR; tok->u.subtype = (OPTON_SINGLELINE(env->options) ? ANCR_SEMI_END_BUF : ANCR_END_LINE); @@ -6560,9 +6640,6 @@ add_ctype_to_cc(CClassNode* cc, int ctype, int not, ParseEnv* env) static int prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) { -#define POSIX_BRACKET_CHECK_LIMIT_LENGTH 20 -#define POSIX_BRACKET_NAME_MIN_LEN 4 - static PosixBracketEntryType PBS[] = { { (UChar* )"alnum", ONIGENC_CTYPE_ALNUM, 5 }, { (UChar* )"alpha", ONIGENC_CTYPE_ALPHA, 5 }, @@ -6582,8 +6659,7 @@ prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) }; PosixBracketEntryType *pb; - int not, i, r; - OnigCodePoint c; + int not, r; OnigEncoding enc = env->enc; UChar *p = *src; @@ -6594,14 +6670,11 @@ prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) else not = 0; - if (onigenc_strlen(enc, p, end) < POSIX_BRACKET_NAME_MIN_LEN + 3) - goto not_posix_bracket; - for (pb = PBS; IS_NOT_NULL(pb->name); pb++) { if (onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) { p = (UChar* )onigenc_step(enc, p, end, pb->len); if (onigenc_with_ascii_strncmp(enc, p, end, (UChar* )":]", 2) != 0) - return ONIGERR_INVALID_POSIX_BRACKET_TYPE; + break; r = add_ctype_to_cc(cc, pb->ctype, not, env); if (r != 0) return r; @@ -6612,23 +6685,7 @@ prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) } } - not_posix_bracket: - c = 0; - i = 0; - while (!PEND && ((c = PPEEK) != ':') && c != ']') { - PINC_S; - if (++i > POSIX_BRACKET_CHECK_LIMIT_LENGTH) break; - } - if (c == ':' && ! PEND) { - PINC_S; - if (! PEND) { - PFETCH_S(c); - if (c == ']') - return ONIGERR_INVALID_POSIX_BRACKET_TYPE; - } - } - - return 1; /* 1: is not POSIX bracket, but no error. */ + return ONIGERR_INVALID_POSIX_BRACKET_TYPE; } static int @@ -6676,6 +6733,12 @@ prs_char_property(Node** np, PToken* tok, UChar** src, UChar* end, ctype = fetch_char_property_to_ctype(src, end, env); if (ctype < 0) return ctype; + if (ctype == ONIGENC_CTYPE_WORD) { + *np = node_new_ctype(ctype, tok->u.prop.not, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + return 0; + } + *np = node_new_cclass(); CHECK_NULL_RETURN_MEMERR(*np); cc = CCLASS_(*np); @@ -6912,6 +6975,11 @@ prs_cc(Node** np, PToken* tok, UChar** src, UChar* end, ParseEnv* env) goto crude_single; } else { + if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, buf, buf + len)) { + r = ONIGERR_INVALID_WIDE_CHAR_VALUE; + goto err; + } + in_code = ONIGENC_MBC_TO_CODE(env->enc, buf, bufe); in_type = CV_MB; } @@ -7675,6 +7743,37 @@ prs_callout_of_name(Node** np, int cterm, UChar** src, UChar* end, } #endif +#ifdef USE_WHOLE_OPTIONS +static int +set_whole_options(OnigOptionType option, ParseEnv* env) +{ + if ((env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) + return ONIGERR_INVALID_GROUP_OPTION; + + env->flags |= PE_FLAG_HAS_WHOLE_OPTIONS; + + if (OPTON_DONT_CAPTURE_GROUP(option)) { + env->reg->options |= ONIG_OPTION_DONT_CAPTURE_GROUP; + if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) + return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; + } + + if ((option & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) { + env->reg->case_fold_flag &= + ~(INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR | + ONIGENC_CASE_FOLD_TURKISH_AZERI); + env->reg->case_fold_flag |= ONIGENC_CASE_FOLD_ASCII_ONLY; + env->reg->options |= ONIG_OPTION_IGNORECASE_IS_ASCII; + } + + if (OPTON_FIND_LONGEST(option)) { + env->reg->options |= ONIG_OPTION_FIND_LONGEST; + } + + return 0; +} +#endif + static int prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, ParseEnv* env) @@ -7794,6 +7893,7 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, PINC; r = make_range_clear(np, env); if (r != 0) return r; + env->flags |= PE_FLAG_HAS_ABSENT_STOPPER; goto end; } } @@ -7812,21 +7912,21 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, is_range_cutter = 0; if (head_bar != 0) { Node* top = absent; - if (NODE_TYPE(top) != NODE_ALT || IS_NULL(NODE_CDR(top))) { + if (ND_TYPE(top) != ND_ALT || IS_NULL(ND_CDR(top))) { expr = NULL_NODE; is_range_cutter = 1; - /* return ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN; */ + env->flags |= PE_FLAG_HAS_ABSENT_STOPPER; } else { - absent = NODE_CAR(top); - expr = NODE_CDR(top); - NODE_CAR(top) = NULL_NODE; - NODE_CDR(top) = NULL_NODE; + absent = ND_CAR(top); + expr = ND_CDR(top); + ND_CAR(top) = NULL_NODE; + ND_CDR(top) = NULL_NODE; onig_node_free(top); - if (IS_NULL(NODE_CDR(expr))) { + if (IS_NULL(ND_CDR(expr))) { top = expr; - expr = NODE_CAR(top); - NODE_CAR(top) = NULL_NODE; + expr = ND_CAR(top); + ND_CAR(top) = NULL_NODE; onig_node_free(top); } } @@ -8034,14 +8134,14 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, Else = target; } else { - if (NODE_TYPE(target) == NODE_ALT) { - Then = NODE_CAR(target); - if (NODE_CDR(NODE_CDR(target)) == NULL_NODE) { - Else = NODE_CAR(NODE_CDR(target)); - cons_node_free_alone(NODE_CDR(target)); + if (ND_TYPE(target) == ND_ALT) { + Then = ND_CAR(target); + if (ND_CDR(ND_CDR(target)) == NULL_NODE) { + Else = ND_CAR(ND_CDR(target)); + cons_node_free_alone(ND_CDR(target)); } else { - Else = NODE_CDR(target); + Else = ND_CDR(target); } cons_node_free_alone(target); } @@ -8274,43 +8374,27 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, if (c == ')') { *np = node_new_option(option); CHECK_NULL_RETURN_MEMERR(*np); - r = 2; /* option only */ #ifdef USE_WHOLE_OPTIONS - set_whole_options: if (whole_options == TRUE) { - if ((env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) - return ONIGERR_INVALID_GROUP_OPTION; - - env->flags |= PE_FLAG_HAS_WHOLE_OPTIONS; - NODE_STATUS_ADD(*np, WHOLE_OPTIONS); - - if (OPTON_DONT_CAPTURE_GROUP(option)) { - env->reg->options |= ONIG_OPTION_DONT_CAPTURE_GROUP; - if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) - return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; - } - - if ((option & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) { - env->reg->case_fold_flag &= - ~(INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR | - ONIGENC_CASE_FOLD_TURKISH_AZERI); - env->reg->case_fold_flag |= ONIGENC_CASE_FOLD_ASCII_ONLY; - env->reg->options |= ONIG_OPTION_IGNORECASE_IS_ASCII; - } - - if (OPTON_FIND_LONGEST(option)) { - env->reg->options |= ONIG_OPTION_FIND_LONGEST; - } + r = set_whole_options(option, env); + if (r != 0) return r; + ND_STATUS_ADD(*np, WHOLE_OPTIONS); } #endif *src = p; - return r; + return 2; /* option only */ } else if (c == ':') { OnigOptionType prev = env->options; env->options = option; +#ifdef USE_WHOLE_OPTIONS + if (whole_options == TRUE) { + r = set_whole_options(option, env); + if (r != 0) return r; + } +#endif r = fetch_token(tok, &p, end, env); if (r < 0) return r; r = prs_alts(&target, tok, term, &p, end, env, FALSE); @@ -8319,16 +8403,12 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(target); return r; } + *np = node_new_option(option); CHECK_NULL_RETURN_MEMERR(*np); - NODE_BODY(*np) = target; + ND_BODY(*np) = target; + ND_STATUS_ADD(*np, WHOLE_OPTIONS); -#ifdef USE_WHOLE_OPTIONS - if (whole_options == TRUE) { - r = 0; - goto set_whole_options; - } -#endif *src = p; return 0; } @@ -8373,9 +8453,9 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, return r; } - NODE_BODY(*np) = target; + ND_BODY(*np) = target; - if (NODE_TYPE(*np) == NODE_BAG) { + if (ND_TYPE(*np) == ND_BAG) { if (BAG_(*np)->type == BAG_MEMORY) { /* Don't move this to previous of prs_alts() */ r = scan_env_set_mem_node(env, BAG_(*np)->m.regnum, *np); @@ -8405,20 +8485,20 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) if (qn->lower == 1 && qn->upper == 1) return 1; - switch (NODE_TYPE(target)) { - case NODE_STRING: + switch (ND_TYPE(target)) { + case ND_STRING: if (group == 0) { if (str_node_can_be_split(target, env->enc)) { Node* n = str_node_split_last_char(target, env->enc); if (IS_NOT_NULL(n)) { - NODE_BODY(qnode) = n; + ND_BODY(qnode) = n; return 2; } } } break; - case NODE_QUANT: + case ND_QUANT: { /* check redundant double repeat. */ /* verbose warn (?:.?)? etc... but not warn (.?)? etc... */ QuantNode* qnt = QUANT_(target); @@ -8471,7 +8551,7 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) else { int r; - NODE_BODY(qnode) = target; + ND_BODY(qnode) = target; r = onig_reduce_nested_quantifier(qnode); return r; } @@ -8482,7 +8562,7 @@ assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) break; } - NODE_BODY(qnode) = target; + ND_BODY(qnode) = target; return 0; } @@ -8628,14 +8708,14 @@ i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, } else { len = ONIGENC_CODE_TO_MBC(enc, to[i], buf); - if (n == 0 || NODE_TYPE(ns[n-1]) != NODE_STRING) { + if (n == 0 || ND_TYPE(ns[n-1]) != ND_STRING) { csnode = node_new_str(buf, buf + len); if (IS_NULL(csnode)) goto err_free_ns; if (index == 0) - NODE_STATUS_ADD(csnode, IGNORECASE); + ND_STATUS_ADD(csnode, IGNORECASE); else - NODE_STRING_SET_CASE_EXPANDED(csnode); + ND_STRING_SET_CASE_EXPANDED(csnode); ns[n++] = csnode; } @@ -8656,7 +8736,7 @@ i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, onig_node_free(list_node); return ONIGERR_MEMORY; } - iarg->ptail = &(NODE_CDR((*(iarg->ptail)))); + iarg->ptail = &(ND_CDR((*(iarg->ptail)))); } } @@ -8726,7 +8806,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(target); return r; } - NODE_BODY(*np) = target; + ND_BODY(*np) = target; } return tok->type; } @@ -8790,7 +8870,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, STR_(*np)->s, STR_(*np)->end)) return ONIGERR_INVALID_WIDE_CHAR_VALUE; - NODE_STRING_CLEAR_CRUDE(*np); + ND_STRING_CLEAR_CRUDE(*np); goto string_end; } break; @@ -8883,7 +8963,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, iarg.alt_root = NULL_NODE; iarg.ptail = &(iarg.alt_root); - r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->case_fold_flag, + r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->reg->case_fold_flag, i_apply_case_fold, &iarg); if (r != 0) { onig_node_free(iarg.alt_root); @@ -8911,7 +8991,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, CHECK_NULL_RETURN_MEMERR(*np); qn = node_new_quantifier(0, INFINITE_REPEAT, FALSE); CHECK_NULL_RETURN_MEMERR(qn); - NODE_BODY(qn) = *np; + ND_BODY(qn) = *np; *np = qn; break; @@ -9035,7 +9115,7 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(qn); return ONIGERR_MEMORY; } - NODE_BODY(en) = qn; + ND_BODY(en) = qn; qn = en; } @@ -9054,12 +9134,12 @@ prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, onig_node_free(qn); return ONIGERR_MEMORY; } - tmp = NODE_CDR(*tp) = node_new_list(qn, NULL); + tmp = ND_CDR(*tp) = node_new_list(qn, NULL); if (IS_NULL(tmp)) { onig_node_free(qn); return ONIGERR_MEMORY; } - tp = &(NODE_CAR(tmp)); + tp = &(ND_CAR(tmp)); } group = 0; goto re_entry; @@ -9096,7 +9176,7 @@ prs_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, return ONIGERR_MEMORY; } - headp = &(NODE_CDR(*top)); + headp = &(ND_CDR(*top)); while (r != TK_EOT && r != term && r != TK_ALT) { r = prs_exp(&node, tok, term, src, end, env, FALSE); if (r < 0) { @@ -9104,15 +9184,15 @@ prs_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, return r; } - if (NODE_TYPE(node) == NODE_LIST) { + if (ND_TYPE(node) == ND_LIST) { *headp = node; - while (IS_NOT_NULL(NODE_CDR(node))) node = NODE_CDR(node); - headp = &(NODE_CDR(node)); + while (IS_NOT_NULL(ND_CDR(node))) node = ND_CDR(node); + headp = &(ND_CDR(node)); } else { *headp = node_new_list(node, NULL); if (IS_NULL(*headp)) goto mem_err; - headp = &(NODE_CDR(*headp)); + headp = &(ND_CDR(*headp)); } } } @@ -9150,7 +9230,7 @@ prs_alts(Node** top, PToken* tok, int term, UChar** src, UChar* end, return ONIGERR_MEMORY; } - headp = &(NODE_CDR(*top)); + headp = &(ND_CDR(*top)); while (r == TK_ALT) { r = fetch_token(tok, src, end, env); if (r < 0) return r; @@ -9163,10 +9243,11 @@ prs_alts(Node** top, PToken* tok, int term, UChar** src, UChar* end, if (IS_NULL(*headp)) { onig_node_free(node); onig_node_free(*top); + *top = NULL_NODE; return ONIGERR_MEMORY; } - headp = &(NODE_CDR(*headp)); + headp = &(ND_CDR(*headp)); } if (tok->type != (enum TokenSyms )term) @@ -9210,7 +9291,7 @@ make_call_zero_body(Node* node, ParseEnv* env, Node** rnode) Node* x = node_new_memory(0 /* 0: is not named */); CHECK_NULL_RETURN_MEMERR(x); - NODE_BODY(x) = node; + ND_BODY(x) = node; BAG_(x)->m.regnum = 0; r = scan_env_set_mem_node(env, 0, x); if (r != 0) { diff --git a/src/regparse.h b/src/regparse.h index 5421252..adcf00e 100644 --- a/src/regparse.h +++ b/src/regparse.h @@ -31,23 +31,23 @@ #include "regint.h" -#define NODE_STRING_MARGIN 16 -#define NODE_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */ -#define NODE_BACKREFS_SIZE 6 +#define ND_STRING_MARGIN 16 +#define ND_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */ +#define ND_BACKREFS_SIZE 6 /* node type */ typedef enum { - NODE_STRING = 0, - NODE_CCLASS = 1, - NODE_CTYPE = 2, - NODE_BACKREF = 3, - NODE_QUANT = 4, - NODE_BAG = 5, - NODE_ANCHOR = 6, - NODE_LIST = 7, - NODE_ALT = 8, - NODE_CALL = 9, - NODE_GIMMICK = 10 + ND_STRING = 0, + ND_CCLASS = 1, + ND_CTYPE = 2, + ND_BACKREF = 3, + ND_QUANT = 4, + ND_BAG = 5, + ND_ANCHOR = 6, + ND_LIST = 7, + ND_ALT = 8, + ND_CALL = 9, + ND_GIMMICK = 10 } NodeType; enum BagType { @@ -91,7 +91,7 @@ typedef struct { UChar* s; UChar* end; unsigned int flag; - UChar buf[NODE_STRING_BUF_SIZE]; + UChar buf[ND_STRING_BUF_SIZE]; int capacity; /* (allocated size - 1) or 0: use buf[] */ } StrNode; @@ -186,7 +186,7 @@ typedef struct { struct _Node* parent; int back_num; - int back_static[NODE_BACKREFS_SIZE]; + int back_static[ND_BACKREFS_SIZE]; int* back_dynamic; int nest_level; } BackRefNode; @@ -267,22 +267,22 @@ typedef struct { /* node type bit */ -#define NODE_TYPE2BIT(type) (1<<(type)) - -#define NODE_BIT_STRING NODE_TYPE2BIT(NODE_STRING) -#define NODE_BIT_CCLASS NODE_TYPE2BIT(NODE_CCLASS) -#define NODE_BIT_CTYPE NODE_TYPE2BIT(NODE_CTYPE) -#define NODE_BIT_BACKREF NODE_TYPE2BIT(NODE_BACKREF) -#define NODE_BIT_QUANT NODE_TYPE2BIT(NODE_QUANT) -#define NODE_BIT_BAG NODE_TYPE2BIT(NODE_BAG) -#define NODE_BIT_ANCHOR NODE_TYPE2BIT(NODE_ANCHOR) -#define NODE_BIT_LIST NODE_TYPE2BIT(NODE_LIST) -#define NODE_BIT_ALT NODE_TYPE2BIT(NODE_ALT) -#define NODE_BIT_CALL NODE_TYPE2BIT(NODE_CALL) -#define NODE_BIT_GIMMICK NODE_TYPE2BIT(NODE_GIMMICK) - -#define NODE_TYPE(node) ((node)->u.base.node_type) -#define NODE_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype) +#define ND_TYPE2BIT(type) (1<<(type)) + +#define ND_BIT_STRING ND_TYPE2BIT(ND_STRING) +#define ND_BIT_CCLASS ND_TYPE2BIT(ND_CCLASS) +#define ND_BIT_CTYPE ND_TYPE2BIT(ND_CTYPE) +#define ND_BIT_BACKREF ND_TYPE2BIT(ND_BACKREF) +#define ND_BIT_QUANT ND_TYPE2BIT(ND_QUANT) +#define ND_BIT_BAG ND_TYPE2BIT(ND_BAG) +#define ND_BIT_ANCHOR ND_TYPE2BIT(ND_ANCHOR) +#define ND_BIT_LIST ND_TYPE2BIT(ND_LIST) +#define ND_BIT_ALT ND_TYPE2BIT(ND_ALT) +#define ND_BIT_CALL ND_TYPE2BIT(ND_CALL) +#define ND_BIT_GIMMICK ND_TYPE2BIT(ND_GIMMICK) + +#define ND_TYPE(node) ((node)->u.base.node_type) +#define ND_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype) #define STR_(node) (&((node)->u.str)) #define CCLASS_(node) (&((node)->u.cclass)) @@ -295,107 +295,107 @@ typedef struct { #define CALL_(node) (&((node)->u.call)) #define GIMMICK_(node) (&((node)->u.gimmick)) -#define NODE_CAR(node) (CONS_(node)->car) -#define NODE_CDR(node) (CONS_(node)->cdr) +#define ND_CAR(node) (CONS_(node)->car) +#define ND_CDR(node) (CONS_(node)->cdr) #define CTYPE_ANYCHAR -1 -#define NODE_IS_ANYCHAR(node) \ - (NODE_TYPE(node) == NODE_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR) +#define ND_IS_ANYCHAR(node) \ + (ND_TYPE(node) == ND_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR) #define ANCR_ANYCHAR_INF_MASK (ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML) #define ANCR_END_BUF_MASK (ANCR_END_BUF | ANCR_SEMI_END_BUF) -#define NODE_STRING_CRUDE (1<<0) -#define NODE_STRING_CASE_EXPANDED (1<<1) +#define ND_STRING_CRUDE (1<<0) +#define ND_STRING_CASE_EXPANDED (1<<1) -#define NODE_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s) -#define NODE_STRING_SET_CRUDE(node) (node)->u.str.flag |= NODE_STRING_CRUDE -#define NODE_STRING_CLEAR_CRUDE(node) (node)->u.str.flag &= ~NODE_STRING_CRUDE -#define NODE_STRING_SET_CASE_EXPANDED(node) (node)->u.str.flag |= NODE_STRING_CASE_EXPANDED -#define NODE_STRING_IS_CRUDE(node) \ - (((node)->u.str.flag & NODE_STRING_CRUDE) != 0) -#define NODE_STRING_IS_CASE_EXPANDED(node) \ - (((node)->u.str.flag & NODE_STRING_CASE_EXPANDED) != 0) +#define ND_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s) +#define ND_STRING_SET_CRUDE(node) (node)->u.str.flag |= ND_STRING_CRUDE +#define ND_STRING_CLEAR_CRUDE(node) (node)->u.str.flag &= ~ND_STRING_CRUDE +#define ND_STRING_SET_CASE_EXPANDED(node) (node)->u.str.flag |= ND_STRING_CASE_EXPANDED +#define ND_STRING_IS_CRUDE(node) \ + (((node)->u.str.flag & ND_STRING_CRUDE) != 0) +#define ND_STRING_IS_CASE_EXPANDED(node) \ + (((node)->u.str.flag & ND_STRING_CASE_EXPANDED) != 0) #define BACKREFS_P(br) \ (IS_NOT_NULL((br)->back_dynamic) ? (br)->back_dynamic : (br)->back_static) /* node status bits */ -#define NODE_ST_FIXED_MIN (1<<0) -#define NODE_ST_FIXED_MAX (1<<1) -#define NODE_ST_FIXED_CLEN (1<<2) -#define NODE_ST_MARK1 (1<<3) -#define NODE_ST_MARK2 (1<<4) -#define NODE_ST_STRICT_REAL_REPEAT (1<<5) -#define NODE_ST_RECURSION (1<<6) -#define NODE_ST_CALLED (1<<7) -#define NODE_ST_FIXED_ADDR (1<<8) -#define NODE_ST_NAMED_GROUP (1<<9) -#define NODE_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */ -#define NODE_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */ -#define NODE_ST_IN_MULTI_ENTRY (1<<12) -#define NODE_ST_NEST_LEVEL (1<<13) -#define NODE_ST_BY_NUMBER (1<<14) /* {n,m} */ -#define NODE_ST_BY_NAME (1<<15) /* backref by name */ -#define NODE_ST_BACKREF (1<<16) -#define NODE_ST_CHECKER (1<<17) -#define NODE_ST_PROHIBIT_RECURSION (1<<18) -#define NODE_ST_SUPER (1<<19) -#define NODE_ST_EMPTY_STATUS_CHECK (1<<20) -#define NODE_ST_IGNORECASE (1<<21) -#define NODE_ST_MULTILINE (1<<22) -#define NODE_ST_TEXT_SEGMENT_WORD (1<<23) -#define NODE_ST_ABSENT_WITH_SIDE_EFFECTS (1<<24) /* stopper or clear */ -#define NODE_ST_FIXED_CLEN_MIN_SURE (1<<25) -#define NODE_ST_REFERENCED (1<<26) -#define NODE_ST_INPEEK (1<<27) -#define NODE_ST_WHOLE_OPTIONS (1<<28) - - -#define NODE_STATUS(node) (((Node* )node)->u.base.status) -#define NODE_STATUS_ADD(node,f) (NODE_STATUS(node) |= (NODE_ST_ ## f)) -#define NODE_STATUS_REMOVE(node,f) (NODE_STATUS(node) &= ~(NODE_ST_ ## f)) - -#define NODE_IS_BY_NUMBER(node) ((NODE_STATUS(node) & NODE_ST_BY_NUMBER) != 0) -#define NODE_IS_IN_REAL_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_REAL_REPEAT) != 0) -#define NODE_IS_CALLED(node) ((NODE_STATUS(node) & NODE_ST_CALLED) != 0) -#define NODE_IS_IN_MULTI_ENTRY(node) ((NODE_STATUS(node) & NODE_ST_IN_MULTI_ENTRY) != 0) -#define NODE_IS_RECURSION(node) ((NODE_STATUS(node) & NODE_ST_RECURSION) != 0) -#define NODE_IS_IN_ZERO_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_ZERO_REPEAT) != 0) -#define NODE_IS_NAMED_GROUP(node) ((NODE_STATUS(node) & NODE_ST_NAMED_GROUP) != 0) -#define NODE_IS_FIXED_ADDR(node) ((NODE_STATUS(node) & NODE_ST_FIXED_ADDR) != 0) -#define NODE_IS_FIXED_CLEN(node) ((NODE_STATUS(node) & NODE_ST_FIXED_CLEN) != 0) -#define NODE_IS_FIXED_MIN(node) ((NODE_STATUS(node) & NODE_ST_FIXED_MIN) != 0) -#define NODE_IS_FIXED_MAX(node) ((NODE_STATUS(node) & NODE_ST_FIXED_MAX) != 0) -#define NODE_IS_MARK1(node) ((NODE_STATUS(node) & NODE_ST_MARK1) != 0) -#define NODE_IS_MARK2(node) ((NODE_STATUS(node) & NODE_ST_MARK2) != 0) -#define NODE_IS_NEST_LEVEL(node) ((NODE_STATUS(node) & NODE_ST_NEST_LEVEL) != 0) -#define NODE_IS_BY_NAME(node) ((NODE_STATUS(node) & NODE_ST_BY_NAME) != 0) -#define NODE_IS_BACKREF(node) ((NODE_STATUS(node) & NODE_ST_BACKREF) != 0) -#define NODE_IS_CHECKER(node) ((NODE_STATUS(node) & NODE_ST_CHECKER) != 0) -#define NODE_IS_SUPER(node) ((NODE_STATUS(node) & NODE_ST_SUPER) != 0) -#define NODE_IS_PROHIBIT_RECURSION(node) \ - ((NODE_STATUS(node) & NODE_ST_PROHIBIT_RECURSION) != 0) -#define NODE_IS_STRICT_REAL_REPEAT(node) \ - ((NODE_STATUS(node) & NODE_ST_STRICT_REAL_REPEAT) != 0) -#define NODE_IS_EMPTY_STATUS_CHECK(node) \ - ((NODE_STATUS(node) & NODE_ST_EMPTY_STATUS_CHECK) != 0) -#define NODE_IS_IGNORECASE(node) ((NODE_STATUS(node) & NODE_ST_IGNORECASE) != 0) -#define NODE_IS_MULTILINE(node) ((NODE_STATUS(node) & NODE_ST_MULTILINE) != 0) -#define NODE_IS_TEXT_SEGMENT_WORD(node) ((NODE_STATUS(node) & NODE_ST_TEXT_SEGMENT_WORD) != 0) -#define NODE_IS_ABSENT_WITH_SIDE_EFFECTS(node) ((NODE_STATUS(node) & NODE_ST_ABSENT_WITH_SIDE_EFFECTS) != 0) -#define NODE_IS_FIXED_CLEN_MIN_SURE(node) ((NODE_STATUS(node) & NODE_ST_FIXED_CLEN_MIN_SURE) != 0) -#define NODE_IS_REFERENCED(node) ((NODE_STATUS(node) & NODE_ST_REFERENCED) != 0) -#define NODE_IS_INPEEK(node) ((NODE_STATUS(node) & NODE_ST_INPEEK) != 0) -#define NODE_IS_WHOLE_OPTIONS(node) ((NODE_STATUS(node) & NODE_ST_WHOLE_OPTIONS) != 0) - -#define NODE_PARENT(node) ((node)->u.base.parent) -#define NODE_BODY(node) ((node)->u.base.body) -#define NODE_QUANT_BODY(node) ((node)->body) -#define NODE_BAG_BODY(node) ((node)->body) -#define NODE_CALL_BODY(node) ((node)->body) -#define NODE_ANCHOR_BODY(node) ((node)->body) +#define ND_ST_FIXED_MIN (1<<0) +#define ND_ST_FIXED_MAX (1<<1) +#define ND_ST_FIXED_CLEN (1<<2) +#define ND_ST_MARK1 (1<<3) +#define ND_ST_MARK2 (1<<4) +#define ND_ST_STRICT_REAL_REPEAT (1<<5) +#define ND_ST_RECURSION (1<<6) +#define ND_ST_CALLED (1<<7) +#define ND_ST_FIXED_ADDR (1<<8) +#define ND_ST_NAMED_GROUP (1<<9) +#define ND_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */ +#define ND_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */ +#define ND_ST_IN_MULTI_ENTRY (1<<12) +#define ND_ST_NEST_LEVEL (1<<13) +#define ND_ST_BY_NUMBER (1<<14) /* {n,m} */ +#define ND_ST_BY_NAME (1<<15) /* backref by name */ +#define ND_ST_BACKREF (1<<16) +#define ND_ST_CHECKER (1<<17) +#define ND_ST_PROHIBIT_RECURSION (1<<18) +#define ND_ST_SUPER (1<<19) +#define ND_ST_EMPTY_STATUS_CHECK (1<<20) +#define ND_ST_IGNORECASE (1<<21) +#define ND_ST_MULTILINE (1<<22) +#define ND_ST_TEXT_SEGMENT_WORD (1<<23) +#define ND_ST_ABSENT_WITH_SIDE_EFFECTS (1<<24) /* stopper or clear */ +#define ND_ST_FIXED_CLEN_MIN_SURE (1<<25) +#define ND_ST_REFERENCED (1<<26) +#define ND_ST_INPEEK (1<<27) +#define ND_ST_WHOLE_OPTIONS (1<<28) + + +#define ND_STATUS(node) (((Node* )node)->u.base.status) +#define ND_STATUS_ADD(node,f) (ND_STATUS(node) |= (ND_ST_ ## f)) +#define ND_STATUS_REMOVE(node,f) (ND_STATUS(node) &= ~(ND_ST_ ## f)) + +#define ND_IS_BY_NUMBER(node) ((ND_STATUS(node) & ND_ST_BY_NUMBER) != 0) +#define ND_IS_IN_REAL_REPEAT(node) ((ND_STATUS(node) & ND_ST_IN_REAL_REPEAT) != 0) +#define ND_IS_CALLED(node) ((ND_STATUS(node) & ND_ST_CALLED) != 0) +#define ND_IS_IN_MULTI_ENTRY(node) ((ND_STATUS(node) & ND_ST_IN_MULTI_ENTRY) != 0) +#define ND_IS_RECURSION(node) ((ND_STATUS(node) & ND_ST_RECURSION) != 0) +#define ND_IS_IN_ZERO_REPEAT(node) ((ND_STATUS(node) & ND_ST_IN_ZERO_REPEAT) != 0) +#define ND_IS_NAMED_GROUP(node) ((ND_STATUS(node) & ND_ST_NAMED_GROUP) != 0) +#define ND_IS_FIXED_ADDR(node) ((ND_STATUS(node) & ND_ST_FIXED_ADDR) != 0) +#define ND_IS_FIXED_CLEN(node) ((ND_STATUS(node) & ND_ST_FIXED_CLEN) != 0) +#define ND_IS_FIXED_MIN(node) ((ND_STATUS(node) & ND_ST_FIXED_MIN) != 0) +#define ND_IS_FIXED_MAX(node) ((ND_STATUS(node) & ND_ST_FIXED_MAX) != 0) +#define ND_IS_MARK1(node) ((ND_STATUS(node) & ND_ST_MARK1) != 0) +#define ND_IS_MARK2(node) ((ND_STATUS(node) & ND_ST_MARK2) != 0) +#define ND_IS_NEST_LEVEL(node) ((ND_STATUS(node) & ND_ST_NEST_LEVEL) != 0) +#define ND_IS_BY_NAME(node) ((ND_STATUS(node) & ND_ST_BY_NAME) != 0) +#define ND_IS_BACKREF(node) ((ND_STATUS(node) & ND_ST_BACKREF) != 0) +#define ND_IS_CHECKER(node) ((ND_STATUS(node) & ND_ST_CHECKER) != 0) +#define ND_IS_SUPER(node) ((ND_STATUS(node) & ND_ST_SUPER) != 0) +#define ND_IS_PROHIBIT_RECURSION(node) \ + ((ND_STATUS(node) & ND_ST_PROHIBIT_RECURSION) != 0) +#define ND_IS_STRICT_REAL_REPEAT(node) \ + ((ND_STATUS(node) & ND_ST_STRICT_REAL_REPEAT) != 0) +#define ND_IS_EMPTY_STATUS_CHECK(node) \ + ((ND_STATUS(node) & ND_ST_EMPTY_STATUS_CHECK) != 0) +#define ND_IS_IGNORECASE(node) ((ND_STATUS(node) & ND_ST_IGNORECASE) != 0) +#define ND_IS_MULTILINE(node) ((ND_STATUS(node) & ND_ST_MULTILINE) != 0) +#define ND_IS_TEXT_SEGMENT_WORD(node) ((ND_STATUS(node) & ND_ST_TEXT_SEGMENT_WORD) != 0) +#define ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) ((ND_STATUS(node) & ND_ST_ABSENT_WITH_SIDE_EFFECTS) != 0) +#define ND_IS_FIXED_CLEN_MIN_SURE(node) ((ND_STATUS(node) & ND_ST_FIXED_CLEN_MIN_SURE) != 0) +#define ND_IS_REFERENCED(node) ((ND_STATUS(node) & ND_ST_REFERENCED) != 0) +#define ND_IS_INPEEK(node) ((ND_STATUS(node) & ND_ST_INPEEK) != 0) +#define ND_IS_WHOLE_OPTIONS(node) ((ND_STATUS(node) & ND_ST_WHOLE_OPTIONS) != 0) + +#define ND_PARENT(node) ((node)->u.base.parent) +#define ND_BODY(node) ((node)->u.base.body) +#define ND_QUANT_BODY(node) ((node)->body) +#define ND_BAG_BODY(node) ((node)->body) +#define ND_CALL_BODY(node) ((node)->body) +#define ND_ANCHOR_BODY(node) ((node)->body) #define PARSEENV_MEMENV_SIZE 8 #define PARSEENV_MEMENV(senv) \ @@ -456,6 +456,7 @@ typedef struct { #define PE_FLAG_HAS_CALL_ZERO (1<<0) #define PE_FLAG_HAS_WHOLE_OPTIONS (1<<1) +#define PE_FLAG_HAS_ABSENT_STOPPER (1<<2) extern int onig_renumber_name_table P_((regex_t* reg, GroupNumMap* map)); diff --git a/src/regsyntax.c b/src/regsyntax.c index 8e1c313..d9cbfb3 100644 --- a/src/regsyntax.c +++ b/src/regsyntax.c @@ -49,7 +49,7 @@ OnigSyntaxType OnigSyntaxPosixBasic = { ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_ESC_LPAREN_SUBEXP | ONIG_SYN_OP_ESC_BRACE_INTERVAL ) , 0 - , 0 + , ( ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP ) , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE ) , { @@ -113,7 +113,8 @@ OnigSyntaxType OnigSyntaxGrep = { ONIG_SYN_OP_ESC_W_WORD | ONIG_SYN_OP_ESC_B_WORD_BOUND | ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_DECIMAL_BACKREF ) , 0 - , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC ) + , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC | + ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP ) , ONIG_OPTION_NONE , { @@ -32,18 +32,18 @@ struct st_table_entry { * */ -static int numcmp(long, long); -static int numhash(long); +static int numcmp(st_data_t, st_data_t); +static int numhash(st_data_t); static struct st_hash_type type_numhash = { numcmp, numhash, }; -/* extern int strcmp(const char *, const char *); */ -static int strhash(const char *); +static int str_cmp(st_data_t, st_data_t); +static int str_hash(st_data_t); static struct st_hash_type type_strhash = { - strcmp, - strhash, + str_cmp, + str_hash, }; static void rehash(st_table *); @@ -97,9 +97,7 @@ static const long primes[] = { 0 }; -static int -new_size(size) - int size; +static int new_size(int size) { int i; @@ -136,10 +134,8 @@ stat_col(void) } #endif -st_table* -st_init_table_with_size(type, size) - struct st_hash_type *type; - int size; +extern st_table* +st_init_table_with_size(struct st_hash_type* type, int size) { st_table *tbl; @@ -168,42 +164,38 @@ st_init_table_with_size(type, size) return tbl; } -st_table* -st_init_table(type) - struct st_hash_type *type; +extern st_table* +st_init_table(struct st_hash_type* type) { return st_init_table_with_size(type, 0); } -st_table* +extern st_table* st_init_numtable(void) { return st_init_table(&type_numhash); } -st_table* -st_init_numtable_with_size(size) - int size; +extern st_table* +st_init_numtable_with_size(int size) { return st_init_table_with_size(&type_numhash, size); } -st_table* +extern st_table* st_init_strtable(void) { return st_init_table(&type_strhash); } -st_table* -st_init_strtable_with_size(size) - int size; +extern st_table* +st_init_strtable_with_size(int size) { return st_init_table_with_size(&type_strhash, size); } -void -st_free_table(table) - st_table *table; +extern void +st_free_table(st_table* table) { register st_table_entry *ptr, *next; int i; @@ -241,11 +233,8 @@ st_free_table(table) }\ } while (0) -int -st_lookup(table, key, value) - st_table *table; - register st_data_t key; - st_data_t *value; +extern int +st_lookup(st_table* table, register st_data_t key, st_data_t* value) { unsigned int hash_val, bin_pos; register st_table_entry *ptr; @@ -279,11 +268,8 @@ do {\ table->num_entries++;\ } while (0) -int -st_insert(table, key, value) - register st_table *table; - register st_data_t key; - st_data_t value; +extern int +st_insert(register st_table* table, register st_data_t key, st_data_t value) { unsigned int hash_val, bin_pos; register st_table_entry *ptr; @@ -301,11 +287,8 @@ st_insert(table, key, value) } } -void -st_add_direct(table, key, value) - st_table *table; - st_data_t key; - st_data_t value; +extern void +st_add_direct(st_table* table, st_data_t key, st_data_t value) { unsigned int hash_val, bin_pos; @@ -315,8 +298,7 @@ st_add_direct(table, key, value) } static void -rehash(table) - register st_table *table; +rehash(register st_table* table) { register st_table_entry *ptr, *next, **new_bins; int i, new_num_bins, old_num_bins; @@ -346,9 +328,8 @@ rehash(table) table->bins = new_bins; } -st_table* -st_copy(old_table) - st_table *old_table; +extern st_table* +st_copy(st_table* old_table) { st_table *new_table; st_table_entry *ptr, *entry; @@ -387,11 +368,8 @@ st_copy(old_table) return new_table; } -int -st_delete(table, key, value) - register st_table *table; - register st_data_t *key; - st_data_t *value; +extern int +st_delete(register st_table* table, register st_data_t* key, st_data_t* value) { unsigned int hash_val; st_table_entry *tmp; @@ -429,12 +407,8 @@ st_delete(table, key, value) return 0; } -int -st_delete_safe(table, key, value, never) - register st_table *table; - register st_data_t *key; - st_data_t *value; - st_data_t never; +extern int +st_delete_safe(register st_table* table, register st_data_t* key, st_data_t* value, st_data_t never) { unsigned int hash_val; register st_table_entry *ptr; @@ -465,18 +439,15 @@ static int delete_never(st_data_t key __attribute__ ((unused)), st_data_t value, st_data_t never) #else -delete_never(key, value, never) - st_data_t key, value, never; +delete_never(st_data_t key, st_data_t value, st_data_t never) #endif { if (value == never) return ST_DELETE; return ST_CONTINUE; } -void -st_cleanup_safe(table, never) - st_table *table; - st_data_t never; +extern void +st_cleanup_safe(st_table* table, st_data_t never) { int num_entries = table->num_entries; @@ -484,11 +455,8 @@ st_cleanup_safe(table, never) table->num_entries = num_entries; } -int -st_foreach(table, func, arg) - st_table *table; - int (*func)(); - st_data_t arg; +extern int +st_foreach(st_table* table, int (*func)(st_data_t, st_data_t, st_data_t), st_data_t arg) { st_table_entry *ptr, *last, *tmp; enum st_retval retval; @@ -535,9 +503,17 @@ st_foreach(table, func, arg) } static int -strhash(string) - register const char *string; +str_cmp(st_data_t a1, st_data_t a2) +{ + const char* s1 = (const char* )a1; + const char* s2 = (const char* )a2; + return strcmp(s1, s2); +} + +static int +str_hash(st_data_t astring) { + const char* string = (const char* )astring; register int c; #ifdef HASH_ELFHASH @@ -574,15 +550,13 @@ strhash(string) } static int -numcmp(x, y) - long x, y; +numcmp(st_data_t x, st_data_t y) { return x != y; } static int -numhash(n) - long n; +numhash(st_data_t n) { return n; } @@ -16,8 +16,8 @@ typedef unsigned long long st_data_t; typedef struct st_table st_table; struct st_hash_type { - int (*compare)(); - int (*hash)(); + int (*compare)(st_data_t, st_data_t); + int (*hash)(st_data_t); }; struct st_table { diff --git a/src/unicode.c b/src/unicode.c index efe5f73..11ce874 100644 --- a/src/unicode.c +++ b/src/unicode.c @@ -58,17 +58,17 @@ static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = { 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, - 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0, - 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, - 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x0284, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, 0x00a8, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, + 0x01a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, - 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, - 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 }; diff --git a/src/unicode_egcb_data.c b/src/unicode_egcb_data.c index fc17c65..6df122b 100644 --- a/src/unicode_egcb_data.c +++ b/src/unicode_egcb_data.c @@ -1,6 +1,6 @@ /* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ * SUCH DAMAGE. */ -#define GRAPHEME_BREAK_PROPERTY_VERSION 140000 +#define GRAPHEME_BREAK_PROPERTY_VERSION 150100 /* CR @@ -43,7 +43,7 @@ V ZWJ */ -static int EGCB_RANGE_NUM = 1355; +static int EGCB_RANGE_NUM = 1371; static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000000, 0x000009, EGCB_Control }, {0x00000a, 0x00000a, EGCB_LF }, @@ -173,6 +173,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000ccc, 0x000ccd, EGCB_Extend }, {0x000cd5, 0x000cd6, EGCB_Extend }, {0x000ce2, 0x000ce3, EGCB_Extend }, + {0x000cf3, 0x000cf3, EGCB_SpacingMark }, {0x000d00, 0x000d01, EGCB_Extend }, {0x000d02, 0x000d03, EGCB_SpacingMark }, {0x000d3b, 0x000d3c, EGCB_Extend }, @@ -202,7 +203,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x000eb1, 0x000eb1, EGCB_Extend }, {0x000eb3, 0x000eb3, EGCB_SpacingMark }, {0x000eb4, 0x000ebc, EGCB_Extend }, - {0x000ec8, 0x000ecd, EGCB_Extend }, + {0x000ec8, 0x000ece, EGCB_Extend }, {0x000f18, 0x000f19, EGCB_Extend }, {0x000f35, 0x000f35, EGCB_Extend }, {0x000f37, 0x000f37, EGCB_Extend }, @@ -1197,6 +1198,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x010ae5, 0x010ae6, EGCB_Extend }, {0x010d24, 0x010d27, EGCB_Extend }, {0x010eab, 0x010eac, EGCB_Extend }, + {0x010efd, 0x010eff, EGCB_Extend }, {0x010f46, 0x010f50, EGCB_Extend }, {0x010f82, 0x010f85, EGCB_Extend }, {0x011000, 0x011000, EGCB_SpacingMark }, @@ -1236,6 +1238,7 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x011235, 0x011235, EGCB_SpacingMark }, {0x011236, 0x011237, EGCB_Extend }, {0x01123e, 0x01123e, EGCB_Extend }, + {0x011241, 0x011241, EGCB_Extend }, {0x0112df, 0x0112df, EGCB_Extend }, {0x0112e0, 0x0112e2, EGCB_SpacingMark }, {0x0112e3, 0x0112ea, EGCB_Extend }, @@ -1355,7 +1358,18 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x011d97, 0x011d97, EGCB_Extend }, {0x011ef3, 0x011ef4, EGCB_Extend }, {0x011ef5, 0x011ef6, EGCB_SpacingMark }, - {0x013430, 0x013438, EGCB_Control }, + {0x011f00, 0x011f01, EGCB_Extend }, + {0x011f02, 0x011f02, EGCB_Prepend }, + {0x011f03, 0x011f03, EGCB_SpacingMark }, + {0x011f34, 0x011f35, EGCB_SpacingMark }, + {0x011f36, 0x011f3a, EGCB_Extend }, + {0x011f3e, 0x011f3f, EGCB_SpacingMark }, + {0x011f40, 0x011f40, EGCB_Extend }, + {0x011f41, 0x011f41, EGCB_SpacingMark }, + {0x011f42, 0x011f42, EGCB_Extend }, + {0x013430, 0x01343f, EGCB_Control }, + {0x013440, 0x013440, EGCB_Extend }, + {0x013447, 0x013455, EGCB_Extend }, {0x016af0, 0x016af4, EGCB_Extend }, {0x016b30, 0x016b36, EGCB_Extend }, {0x016f4f, 0x016f4f, EGCB_Extend }, @@ -1388,9 +1402,11 @@ static EGCB_RANGE_TYPE EGCB_RANGES[] = { {0x01e01b, 0x01e021, EGCB_Extend }, {0x01e023, 0x01e024, EGCB_Extend }, {0x01e026, 0x01e02a, EGCB_Extend }, + {0x01e08f, 0x01e08f, EGCB_Extend }, {0x01e130, 0x01e136, EGCB_Extend }, {0x01e2ae, 0x01e2ae, EGCB_Extend }, {0x01e2ec, 0x01e2ef, EGCB_Extend }, + {0x01e4ec, 0x01e4ef, EGCB_Extend }, {0x01e8d0, 0x01e8d6, EGCB_Extend }, {0x01e944, 0x01e94a, EGCB_Extend }, {0x01f1e6, 0x01f1ff, EGCB_Regional_Indicator }, diff --git a/src/unicode_fold1_key.c b/src/unicode_fold1_key.c index 58ff13e..d35f6ce 100644 --- a/src/unicode_fold1_key.c +++ b/src/unicode_fold1_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/unicode_fold2_key.c b/src/unicode_fold2_key.c index 225335f..9754922 100644 --- a/src/unicode_fold2_key.c +++ b/src/unicode_fold2_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/unicode_fold3_key.c b/src/unicode_fold3_key.c index 932308a..431ca78 100644 --- a/src/unicode_fold3_key.c +++ b/src/unicode_fold3_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/unicode_fold_data.c b/src/unicode_fold_data.c index 2629570..cf906e6 100644 --- a/src/unicode_fold_data.c +++ b/src/unicode_fold_data.c @@ -1,6 +1,6 @@ /* This file was generated by make_unicode_fold_data.py. */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,7 +28,7 @@ #include "regenc.h" -#define UNICODE_CASEFOLD_VERSION 140000 +#define UNICODE_CASEFOLD_VERSION 150100 OnigCodePoint OnigUnicodeFolds1[] = { diff --git a/src/unicode_property_data.c b/src/unicode_property_data.c index ddca083..931e6c5 100644 --- a/src/unicode_property_data.c +++ b/src/unicode_property_data.c @@ -34,7 +34,7 @@ /* Generated by make_unicode_property_data.py. */ /*- - * Copyright (c) 2016-2021 K.Kosako + * Copyright (c) 2016-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -68,7 +68,7 @@ CR_NEWLINE[] = { 1, /* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ static const OnigCodePoint -CR_Alpha[] = { 722, +CR_Alpha[] = { 733, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -203,8 +203,7 @@ CR_Alpha[] = { 722, 0x0bca, 0x0bcc, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -227,7 +226,7 @@ CR_Alpha[] = { 722, 0x0cd5, 0x0cd6, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -265,7 +264,7 @@ CR_Alpha[] = { 722, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -567,7 +566,7 @@ CR_Alpha[] = { 722, 0x10fe0, 0x10ff6, 0x11000, 0x11045, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x11100, 0x11132, @@ -582,7 +581,7 @@ CR_Alpha[] = { 722, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -662,12 +661,16 @@ CR_Alpha[] = { 722, 0x11d93, 0x11d96, 0x11d98, 0x11d98, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -691,7 +694,9 @@ CR_Alpha[] = { 722, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -730,16 +735,20 @@ CR_Alpha[] = { 722, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -785,12 +794,14 @@ CR_Alpha[] = { 722, 0x1f150, 0x1f169, 0x1f170, 0x1f189, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alpha */ /* PROPERTY: 'Blank': POSIX [[:Blank:]] */ @@ -815,7 +826,7 @@ CR_Cntrl[] = { 2, /* PROPERTY: 'Digit': POSIX [[:Digit:]] */ static const OnigCodePoint -CR_Digit[] = { 62, +CR_Digit[] = { 64, 0x0030, 0x0039, 0x0660, 0x0669, 0x06f0, 0x06f9, @@ -870,19 +881,21 @@ CR_Digit[] = { 62, 0x11c50, 0x11c59, 0x11d50, 0x11d59, 0x11da0, 0x11da9, +0x11f50, 0x11f59, 0x16a60, 0x16a69, 0x16ac0, 0x16ac9, 0x16b50, 0x16b59, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, 0x1e950, 0x1e959, 0x1fbf0, 0x1fbf9, }; /* END of CR_Digit */ /* PROPERTY: 'Graph': POSIX [[:Graph:]] */ static const OnigCodePoint -CR_Graph[] = { 703, +CR_Graph[] = { 713, 0x0021, 0x007e, 0x00a1, 0x0377, 0x037a, 0x037f, @@ -1005,7 +1018,7 @@ CR_Graph[] = { 703, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -1035,7 +1048,7 @@ CR_Graph[] = { 703, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -1157,14 +1170,14 @@ CR_Graph[] = { 703, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3001, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31e3, -0x31f0, 0x321e, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -1310,7 +1323,7 @@ CR_Graph[] = { 703, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10efd, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -1327,7 +1340,7 @@ CR_Graph[] = { 703, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -1380,6 +1393,7 @@ CR_Graph[] = { 703, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -1401,6 +1415,9 @@ CR_Graph[] = { 703, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -1408,8 +1425,7 @@ CR_Graph[] = { 703, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -1436,7 +1452,9 @@ CR_Graph[] = { 703, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -1451,6 +1469,7 @@ CR_Graph[] = { 703, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -1478,11 +1497,14 @@ CR_Graph[] = { 703, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -1490,6 +1512,7 @@ CR_Graph[] = { 703, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -1548,10 +1571,10 @@ CR_Graph[] = { 703, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -1562,25 +1585,25 @@ CR_Graph[] = { 703, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -1590,7 +1613,7 @@ CR_Graph[] = { 703, /* PROPERTY: 'Lower': POSIX [[:Lower:]] */ static const OnigCodePoint -CR_Lower[] = { 668, +CR_Lower[] = { 671, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, @@ -1867,7 +1890,7 @@ CR_Lower[] = { 668, 0x052f, 0x052f, 0x0560, 0x0588, 0x10d0, 0x10fa, -0x10fd, 0x10ff, +0x10fc, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1d00, 0x1dbf, @@ -2207,10 +2230,11 @@ CR_Lower[] = { 668, 0xa7d5, 0xa7d5, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7f2, 0xa7f4, 0xa7f6, 0xa7f6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, -0xab5c, 0xab68, +0xab5c, 0xab69, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, @@ -2258,12 +2282,14 @@ CR_Lower[] = { 668, 0x1d7cb, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e922, 0x1e943, }; /* END of CR_Lower */ /* PROPERTY: 'Print': POSIX [[:Print:]] */ static const OnigCodePoint -CR_Print[] = { 700, +CR_Print[] = { 709, 0x0020, 0x007e, 0x00a0, 0x0377, 0x037a, 0x037f, @@ -2386,7 +2412,7 @@ CR_Print[] = { 700, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -2416,7 +2442,7 @@ CR_Print[] = { 700, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -2535,14 +2561,13 @@ CR_Print[] = { 700, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, +0x2ff0, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31e3, -0x31f0, 0x321e, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -2688,7 +2713,7 @@ CR_Print[] = { 700, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10efd, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -2705,7 +2730,7 @@ CR_Print[] = { 700, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -2758,6 +2783,7 @@ CR_Print[] = { 700, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -2779,6 +2805,9 @@ CR_Print[] = { 700, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -2786,8 +2815,7 @@ CR_Print[] = { 700, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -2814,7 +2842,9 @@ CR_Print[] = { 700, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -2829,6 +2859,7 @@ CR_Print[] = { 700, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -2856,11 +2887,14 @@ CR_Print[] = { 700, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -2868,6 +2902,7 @@ CR_Print[] = { 700, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -2926,10 +2961,10 @@ CR_Print[] = { 700, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -2940,25 +2975,25 @@ CR_Print[] = { 700, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -2966,113 +3001,182 @@ CR_Print[] = { 700, 0x100000, 0x10fffd, }; /* END of CR_Print */ -/* PROPERTY: 'Punct': POSIX [[:Punct:]] */ +/* PROPERTY: 'PosixPunct': POSIX [[:punct:]] */ static const OnigCodePoint -CR_Punct[] = { 189, -0x0021, 0x0023, -0x0025, 0x002a, -0x002c, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005b, 0x005d, -0x005f, 0x005f, -0x007b, 0x007b, -0x007d, 0x007d, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00ab, 0x00ab, -0x00b6, 0x00b7, +CR_PosixPunct[] = { 339, +0x0021, 0x002f, +0x003a, 0x0040, +0x005b, 0x0060, +0x007b, 0x007e, +0x00a1, 0x00a9, +0x00ab, 0x00ac, +0x00ae, 0x00b1, +0x00b4, 0x00b4, +0x00b6, 0x00b8, 0x00bb, 0x00bb, 0x00bf, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, 0x037e, 0x037e, +0x0384, 0x0385, 0x0387, 0x0387, +0x03f6, 0x03f6, +0x0482, 0x0482, 0x055a, 0x055f, 0x0589, 0x058a, +0x058d, 0x058f, 0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05c6, 0x05c6, 0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, +0x0606, 0x060f, 0x061b, 0x061b, 0x061d, 0x061f, 0x066a, 0x066d, 0x06d4, 0x06d4, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, 0x0700, 0x070d, -0x07f7, 0x07f9, +0x07f6, 0x07f9, +0x07fe, 0x07ff, 0x0830, 0x083e, 0x085e, 0x085e, +0x0888, 0x0888, 0x0964, 0x0965, 0x0970, 0x0970, +0x09f2, 0x09f3, +0x09fa, 0x09fb, 0x09fd, 0x09fd, 0x0a76, 0x0a76, -0x0af0, 0x0af0, +0x0af0, 0x0af1, +0x0b70, 0x0b70, +0x0bf3, 0x0bfa, 0x0c77, 0x0c77, +0x0c7f, 0x0c7f, 0x0c84, 0x0c84, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, 0x0df4, 0x0df4, +0x0e3f, 0x0e3f, 0x0e4f, 0x0e4f, 0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, +0x0f01, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, 0x0f3a, 0x0f3d, 0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fda, 0x104a, 0x104f, +0x109e, 0x109f, 0x10fb, 0x10fb, 0x1360, 0x1368, +0x1390, 0x1399, 0x1400, 0x1400, -0x166e, 0x166e, +0x166d, 0x166e, 0x169b, 0x169c, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x17d4, 0x17d6, -0x17d8, 0x17da, +0x17d8, 0x17db, 0x1800, 0x180a, +0x1940, 0x1940, 0x1944, 0x1945, +0x19de, 0x19ff, 0x1a1e, 0x1a1f, 0x1aa0, 0x1aa6, 0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1b7d, 0x1b7e, +0x1b5a, 0x1b6a, +0x1b74, 0x1b7e, 0x1bfc, 0x1bff, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, 0x1cc0, 0x1cc7, 0x1cd3, 0x1cd3, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, 0x2010, 0x2027, -0x2030, 0x2043, -0x2045, 0x2051, -0x2053, 0x205e, -0x207d, 0x207e, -0x208d, 0x208e, -0x2308, 0x230b, -0x2329, 0x232a, -0x2768, 0x2775, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, +0x2030, 0x205e, +0x207a, 0x207e, +0x208a, 0x208e, +0x20a0, 0x20c0, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2118, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x2140, 0x2144, +0x214a, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2190, 0x2426, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x2775, +0x2794, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, 0x2cf9, 0x2cfc, 0x2cfe, 0x2cff, 0x2d70, 0x2d70, 0x2e00, 0x2e2e, -0x2e30, 0x2e4f, -0x2e52, 0x2e5d, -0x3001, 0x3003, -0x3008, 0x3011, -0x3014, 0x301f, +0x2e30, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3001, 0x3004, +0x3008, 0x3020, 0x3030, 0x3030, -0x303d, 0x303d, +0x3036, 0x3037, +0x303d, 0x303f, +0x309b, 0x309c, 0x30a0, 0x30a0, 0x30fb, 0x30fb, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e3, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, 0xa4fe, 0xa4ff, 0xa60d, 0xa60f, 0xa673, 0xa673, 0xa67e, 0xa67e, 0xa6f2, 0xa6f7, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xa828, 0xa82b, +0xa836, 0xa839, 0xa874, 0xa877, 0xa8ce, 0xa8cf, 0xa8f8, 0xa8fa, @@ -3082,35 +3186,45 @@ CR_Punct[] = { 189, 0xa9c1, 0xa9cd, 0xa9de, 0xa9df, 0xaa5c, 0xaa5f, +0xaa77, 0xaa79, 0xaade, 0xaadf, 0xaaf0, 0xaaf1, +0xab5b, 0xab5b, +0xab6a, 0xab6b, 0xabeb, 0xabeb, -0xfd3e, 0xfd3f, +0xfb29, 0xfb29, +0xfbb2, 0xfbc2, +0xfd3e, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfc, 0xfdff, 0xfe10, 0xfe19, 0xfe30, 0xfe52, -0xfe54, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff0a, -0xff0c, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3b, 0xff3d, -0xff3f, 0xff3f, -0xff5b, 0xff5b, -0xff5d, 0xff5d, -0xff5f, 0xff65, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xff01, 0xff0f, +0xff1a, 0xff20, +0xff3b, 0xff40, +0xff5b, 0xff65, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, 0x10100, 0x10102, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, 0x1039f, 0x1039f, 0x103d0, 0x103d0, 0x1056f, 0x1056f, 0x10857, 0x10857, +0x10877, 0x10878, 0x1091f, 0x1091f, 0x1093f, 0x1093f, 0x10a50, 0x10a58, 0x10a7f, 0x10a7f, +0x10ac8, 0x10ac8, 0x10af0, 0x10af6, 0x10b39, 0x10b3f, 0x10b99, 0x10b9c, @@ -3136,29 +3250,100 @@ CR_Punct[] = { 189, 0x11641, 0x11643, 0x11660, 0x1166c, 0x116b9, 0x116b9, -0x1173c, 0x1173e, +0x1173c, 0x1173f, 0x1183b, 0x1183b, 0x11944, 0x11946, 0x119e2, 0x119e2, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, +0x11b00, 0x11b09, 0x11c41, 0x11c45, 0x11c70, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fd5, 0x11ff1, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x12ff1, 0x12ff2, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, +0x16b37, 0x16b3f, +0x16b44, 0x16b45, 0x16e97, 0x16e9a, 0x16fe2, 0x16fe2, +0x1bc9c, 0x1bc9c, 0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da8b, +0x1e14f, 0x1e14f, +0x1e2ff, 0x1e2ff, 0x1e95e, 0x1e95f, -}; /* END of CR_Punct */ +0x1ecac, 0x1ecac, +0x1ecb0, 0x1ecb0, +0x1ed2e, 0x1ed2e, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8b1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbca, +}; /* END of CR_PosixPunct */ /* PROPERTY: 'Space': POSIX [[:Space:]] */ static const OnigCodePoint @@ -3841,7 +4026,7 @@ CR_XDigit[] = { 3, /* PROPERTY: 'Word': POSIX [[:Word:]] */ static const OnigCodePoint -CR_Word[] = { 758, +CR_Word[] = { 771, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -3999,7 +4184,7 @@ CR_Word[] = { 758, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -4032,7 +4217,7 @@ CR_Word[] = { 758, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -4345,7 +4530,7 @@ CR_Word[] = { 758, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10efd, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -4368,7 +4553,7 @@ CR_Word[] = { 758, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -4449,12 +4634,17 @@ CR_Word[] = { 758, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -4482,7 +4672,9 @@ CR_Word[] = { 758, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -4536,17 +4728,21 @@ CR_Word[] = { 758, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -4593,18 +4789,20 @@ CR_Word[] = { 758, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_Word */ /* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ static const OnigCodePoint -CR_Alnum[] = { 760, +CR_Alnum[] = { 773, 0x0030, 0x0039, 0x0041, 0x005a, 0x0061, 0x007a, @@ -4743,8 +4941,7 @@ CR_Alnum[] = { 760, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bef, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -4769,7 +4966,7 @@ CR_Alnum[] = { 760, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -4812,7 +5009,7 @@ CR_Alnum[] = { 760, 0x0f20, 0x0f29, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -5122,7 +5319,7 @@ CR_Alnum[] = { 760, 0x11000, 0x11045, 0x11066, 0x1106f, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x110f0, 0x110f9, @@ -5138,7 +5335,7 @@ CR_Alnum[] = { 760, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -5228,12 +5425,17 @@ CR_Alnum[] = { 760, 0x11d98, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -5260,7 +5462,9 @@ CR_Alnum[] = { 760, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -5300,11 +5504,14 @@ CR_Alnum[] = { 760, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, @@ -5312,6 +5519,8 @@ CR_Alnum[] = { 760, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -5359,12 +5568,14 @@ CR_Alnum[] = { 760, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alnum */ /* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ @@ -5410,7 +5621,7 @@ CR_Any[] = { 1, /* PROPERTY: 'Arabic': Script */ static const OnigCodePoint -CR_Arabic[] = { 57, +CR_Arabic[] = { 58, 0x0600, 0x0604, 0x0606, 0x060b, 0x060d, 0x061a, @@ -5434,6 +5645,7 @@ CR_Arabic[] = { 57, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0x10e60, 0x10e7e, +0x10efd, 0x10eff, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, @@ -5481,7 +5693,7 @@ CR_Armenian[] = { 4, /* PROPERTY: 'Assigned': - */ static const OnigCodePoint -CR_Assigned[] = { 698, +CR_Assigned[] = { 707, 0x0000, 0x0377, 0x037a, 0x037f, 0x0384, 0x038a, @@ -5603,7 +5815,7 @@ CR_Assigned[] = { 698, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -5633,7 +5845,7 @@ CR_Assigned[] = { 698, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -5751,14 +5963,13 @@ CR_Assigned[] = { 698, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, +0x2ff0, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31e3, -0x31f0, 0x321e, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -5904,7 +6115,7 @@ CR_Assigned[] = { 698, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10efd, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -5921,7 +6132,7 @@ CR_Assigned[] = { 698, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -5974,6 +6185,7 @@ CR_Assigned[] = { 698, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -5995,6 +6207,9 @@ CR_Assigned[] = { 698, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -6002,8 +6217,7 @@ CR_Assigned[] = { 698, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -6030,7 +6244,9 @@ CR_Assigned[] = { 698, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -6045,6 +6261,7 @@ CR_Assigned[] = { 698, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -6072,11 +6289,14 @@ CR_Assigned[] = { 698, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -6084,6 +6304,7 @@ CR_Assigned[] = { 698, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -6142,10 +6363,10 @@ CR_Assigned[] = { 698, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -6156,25 +6377,25 @@ CR_Assigned[] = { 698, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -6291,7 +6512,7 @@ CR_Buhid[] = { 1, /* PROPERTY: 'C': Major Category */ static const OnigCodePoint -CR_C[] = { 701, +CR_C[] = { 712, 0x0000, 0x001f, 0x007f, 0x009f, 0x00ad, 0x00ad, @@ -6418,7 +6639,7 @@ CR_C[] = { 701, 0x0cdf, 0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, +0x0cf4, 0x0cff, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, @@ -6448,7 +6669,7 @@ CR_C[] = { 701, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, +0x0ecf, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, @@ -6569,13 +6790,12 @@ CR_C[] = { 701, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, -0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, -0x31e4, 0x31ef, +0x31e4, 0x31ee, 0x321f, 0x321f, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, @@ -6720,7 +6940,7 @@ CR_C[] = { 701, 0x10e7f, 0x10e7f, 0x10eaa, 0x10eaa, 0x10eae, 0x10eaf, -0x10eb2, 0x10eff, +0x10eb2, 0x10efc, 0x10f28, 0x10f2f, 0x10f5a, 0x10f6f, 0x10f8a, 0x10faf, @@ -6738,7 +6958,7 @@ CR_C[] = { 701, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, -0x1123f, 0x1127f, +0x11242, 0x1127f, 0x11287, 0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, @@ -6790,7 +7010,8 @@ CR_C[] = { 701, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11aaf, -0x11af9, 0x11bff, +0x11af9, 0x11aff, +0x11b0a, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37, 0x11c46, 0x11c4f, @@ -6811,7 +7032,10 @@ CR_C[] = { 701, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, -0x11ef9, 0x11faf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5a, 0x11faf, 0x11fb1, 0x11fbf, 0x11ff2, 0x11ffe, 0x1239a, 0x123ff, @@ -6819,7 +7043,8 @@ CR_C[] = { 701, 0x12475, 0x1247f, 0x12544, 0x12f8f, 0x12ff3, 0x12fff, -0x1342f, 0x143ff, +0x13430, 0x1343f, +0x13456, 0x143ff, 0x14647, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f, 0x16a5f, @@ -6845,8 +7070,10 @@ CR_C[] = { 701, 0x1aff4, 0x1aff4, 0x1affc, 0x1affc, 0x1afff, 0x1afff, -0x1b123, 0x1b14f, -0x1b153, 0x1b163, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, 0x1b168, 0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, @@ -6861,7 +7088,8 @@ CR_C[] = { 701, 0x1d127, 0x1d128, 0x1d173, 0x1d17a, 0x1d1eb, 0x1d1ff, -0x1d246, 0x1d2df, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, @@ -6888,19 +7116,23 @@ CR_C[] = { 701, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1deff, -0x1df1f, 0x1dfff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, 0x1e007, 0x1e007, 0x1e019, 0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e28f, 0x1e2af, 0x1e2bf, 0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e7df, 0x1e7e7, 0x1e7e7, 0x1e7ec, 0x1e7ec, 0x1e7ef, 0x1e7ef, @@ -6958,11 +7190,11 @@ CR_C[] = { 701, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, -0x1f6d8, 0x1f6dc, +0x1f6d8, 0x1f6db, 0x1f6ed, 0x1f6ef, 0x1f6fd, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, 0x1f7ec, 0x1f7ef, 0x1f7f1, 0x1f7ff, 0x1f80c, 0x1f80f, @@ -6973,25 +7205,25 @@ CR_C[] = { 701, 0x1f8b2, 0x1f8ff, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, -0x1fa75, 0x1fa77, 0x1fa7d, 0x1fa7f, -0x1fa87, 0x1fa8f, -0x1faad, 0x1faaf, -0x1fabb, 0x1fabf, -0x1fac6, 0x1facf, -0x1fada, 0x1fadf, -0x1fae8, 0x1faef, -0x1faf7, 0x1faff, +0x1fa89, 0x1fa8f, +0x1fabe, 0x1fabe, +0x1fac6, 0x1facd, +0x1fadc, 0x1fadf, +0x1fae9, 0x1faef, +0x1faf9, 0x1faff, 0x1fb93, 0x1fb93, 0x1fbcb, 0x1fbef, 0x1fbfa, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2b739, 0x2b73f, +0x2b73a, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, 0x2fa1e, 0x2ffff, -0x3134b, 0xe00ff, +0x3134b, 0x3134f, +0x323b0, 0xe00ff, 0xe01f0, 0x10ffff, }; /* END of CR_C */ @@ -7011,7 +7243,7 @@ CR_Carian[] = { 1, /* PROPERTY: 'Case_Ignorable': Derived Property */ static const OnigCodePoint -CR_Case_Ignorable[] = { 427, +CR_Case_Ignorable[] = { 437, 0x0027, 0x0027, 0x002e, 0x002e, 0x003a, 0x003a, @@ -7125,7 +7357,7 @@ CR_Case_Ignorable[] = { 427, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -7314,6 +7546,7 @@ CR_Case_Ignorable[] = { 427, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, 0x10eab, 0x10eac, +0x10efd, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11001, 0x11001, @@ -7338,6 +7571,7 @@ CR_Case_Ignorable[] = { 427, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300, 0x11301, @@ -7399,7 +7633,12 @@ CR_Case_Ignorable[] = { 427, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, -0x13430, 0x13438, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x13430, 0x13440, +0x13447, 0x13455, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16b40, 0x16b43, @@ -7430,9 +7669,12 @@ CR_Case_Ignorable[] = { 427, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e130, 0x1e13d, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4eb, 0x1e4ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94b, 0x1f3fb, 0x1f3ff, @@ -7443,7 +7685,7 @@ CR_Case_Ignorable[] = { 427, /* PROPERTY: 'Cased': Derived Property */ static const OnigCodePoint -CR_Cased[] = { 155, +CR_Cased[] = { 157, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -7475,7 +7717,7 @@ CR_Cased[] = { 155, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa, -0x10fd, 0x10ff, +0x10fc, 0x10ff, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1c80, 0x1c88, @@ -7535,10 +7777,10 @@ CR_Cased[] = { 155, 0xa7d0, 0xa7d1, 0xa7d3, 0xa7d3, 0xa7d5, 0xa7d9, -0xa7f5, 0xa7f6, +0xa7f2, 0xa7f6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, -0xab5c, 0xab68, +0xab5c, 0xab69, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, @@ -7595,6 +7837,8 @@ CR_Cased[] = { 155, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e900, 0x1e943, 0x1f130, 0x1f149, 0x1f150, 0x1f169, @@ -7630,7 +7874,7 @@ CR_Cf[] = { 21, 0xfff9, 0xfffb, 0x110bd, 0x110bd, 0x110cd, 0x110cd, -0x13430, 0x13438, +0x13430, 0x1343f, 0x1bca0, 0x1bca3, 0x1d173, 0x1d17a, 0xe0001, 0xe0001, @@ -10309,7 +10553,7 @@ CR_Chorasmian[] = { 1, /* PROPERTY: 'Cn': General Category */ static const OnigCodePoint -CR_Cn[] = { 698, +CR_Cn[] = { 707, 0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, @@ -10431,7 +10675,7 @@ CR_Cn[] = { 698, 0x0cdf, 0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, +0x0cf4, 0x0cff, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, @@ -10461,7 +10705,7 @@ CR_Cn[] = { 698, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, +0x0ecf, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, @@ -10579,13 +10823,12 @@ CR_Cn[] = { 698, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, -0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, -0x31e4, 0x31ef, +0x31e4, 0x31ee, 0x321f, 0x321f, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, @@ -10731,7 +10974,7 @@ CR_Cn[] = { 698, 0x10e7f, 0x10e7f, 0x10eaa, 0x10eaa, 0x10eae, 0x10eaf, -0x10eb2, 0x10eff, +0x10eb2, 0x10efc, 0x10f28, 0x10f2f, 0x10f5a, 0x10f6f, 0x10f8a, 0x10faf, @@ -10749,7 +10992,7 @@ CR_Cn[] = { 698, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, -0x1123f, 0x1127f, +0x11242, 0x1127f, 0x11287, 0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, @@ -10801,7 +11044,8 @@ CR_Cn[] = { 698, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11aaf, -0x11af9, 0x11bff, +0x11af9, 0x11aff, +0x11b0a, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37, 0x11c46, 0x11c4f, @@ -10822,7 +11066,10 @@ CR_Cn[] = { 698, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, -0x11ef9, 0x11faf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5a, 0x11faf, 0x11fb1, 0x11fbf, 0x11ff2, 0x11ffe, 0x1239a, 0x123ff, @@ -10830,8 +11077,7 @@ CR_Cn[] = { 698, 0x12475, 0x1247f, 0x12544, 0x12f8f, 0x12ff3, 0x12fff, -0x1342f, 0x1342f, -0x13439, 0x143ff, +0x13456, 0x143ff, 0x14647, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f, 0x16a5f, @@ -10857,8 +11103,10 @@ CR_Cn[] = { 698, 0x1aff4, 0x1aff4, 0x1affc, 0x1affc, 0x1afff, 0x1afff, -0x1b123, 0x1b14f, -0x1b153, 0x1b163, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, 0x1b168, 0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, @@ -10872,7 +11120,8 @@ CR_Cn[] = { 698, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1eb, 0x1d1ff, -0x1d246, 0x1d2df, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, @@ -10899,19 +11148,23 @@ CR_Cn[] = { 698, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1deff, -0x1df1f, 0x1dfff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, 0x1e007, 0x1e007, 0x1e019, 0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e28f, 0x1e2af, 0x1e2bf, 0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e7df, 0x1e7e7, 0x1e7e7, 0x1e7ec, 0x1e7ec, 0x1e7ef, 0x1e7ef, @@ -10969,11 +11222,11 @@ CR_Cn[] = { 698, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, -0x1f6d8, 0x1f6dc, +0x1f6d8, 0x1f6db, 0x1f6ed, 0x1f6ef, 0x1f6fd, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, 0x1f7ec, 0x1f7ef, 0x1f7f1, 0x1f7ff, 0x1f80c, 0x1f80f, @@ -10984,25 +11237,25 @@ CR_Cn[] = { 698, 0x1f8b2, 0x1f8ff, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, -0x1fa75, 0x1fa77, 0x1fa7d, 0x1fa7f, -0x1fa87, 0x1fa8f, -0x1faad, 0x1faaf, -0x1fabb, 0x1fabf, -0x1fac6, 0x1facf, -0x1fada, 0x1fadf, -0x1fae8, 0x1faef, -0x1faf7, 0x1faff, +0x1fa89, 0x1fa8f, +0x1fabe, 0x1fabe, +0x1fac6, 0x1facd, +0x1fadc, 0x1fadf, +0x1fae9, 0x1faef, +0x1faf9, 0x1faff, 0x1fb93, 0x1fb93, 0x1fbcb, 0x1fbef, 0x1fbfa, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2b739, 0x2b73f, +0x2b73a, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, 0x2fa1e, 0x2ffff, -0x3134b, 0xe0000, +0x3134b, 0x3134f, +0x323b0, 0xe0000, 0xe0002, 0xe001f, 0xe0080, 0xe00ff, 0xe01f0, 0xeffff, @@ -11020,7 +11273,7 @@ CR_Co[] = { 3, /* PROPERTY: 'Common': Script */ static const OnigCodePoint -CR_Common[] = { 174, +CR_Common[] = { 173, 0x0000, 0x0040, 0x005b, 0x0060, 0x007b, 0x00a9, @@ -11075,8 +11328,7 @@ CR_Common[] = { 174, 0x2b76, 0x2b95, 0x2b97, 0x2bff, 0x2e00, 0x2e5d, -0x2ff0, 0x2ffb, -0x3000, 0x3004, +0x2ff0, 0x3004, 0x3006, 0x3006, 0x3008, 0x3020, 0x3030, 0x3037, @@ -11086,6 +11338,7 @@ CR_Common[] = { 174, 0x30fb, 0x30fc, 0x3190, 0x319f, 0x31c0, 0x31e3, +0x31ef, 0x31ef, 0x3220, 0x325f, 0x327f, 0x32cf, 0x32ff, 0x32ff, @@ -11127,6 +11380,7 @@ CR_Common[] = { 174, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1ea, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -11167,10 +11421,10 @@ CR_Common[] = { 174, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -11181,15 +11435,13 @@ CR_Common[] = { 174, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, @@ -11239,7 +11491,7 @@ CR_Cypro_Minoan[] = { 1, /* PROPERTY: 'Cyrillic': Script */ static const OnigCodePoint -CR_Cyrillic[] = { 8, +CR_Cyrillic[] = { 10, 0x0400, 0x0484, 0x0487, 0x052f, 0x1c80, 0x1c88, @@ -11248,6 +11500,8 @@ CR_Cyrillic[] = { 8, 0x2de0, 0x2dff, 0xa640, 0xa69f, 0xfe2e, 0xfe2f, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, }; /* END of CR_Cyrillic */ /* PROPERTY: 'Dash': Binary Property */ @@ -11321,16 +11575,17 @@ CR_Deseret[] = { 1, /* PROPERTY: 'Devanagari': Script */ static const OnigCodePoint -CR_Devanagari[] = { 4, +CR_Devanagari[] = { 5, 0x0900, 0x0950, 0x0955, 0x0963, 0x0966, 0x097f, 0xa8e0, 0xa8ff, +0x11b00, 0x11b09, }; /* END of CR_Devanagari */ /* PROPERTY: 'Diacritic': Binary Property */ static const OnigCodePoint -CR_Diacritic[] = { 192, +CR_Diacritic[] = { 195, 0x005e, 0x005e, 0x0060, 0x0060, 0x00a8, 0x00a8, @@ -11470,6 +11725,7 @@ CR_Diacritic[] = { 192, 0x107b2, 0x107ba, 0x10ae5, 0x10ae6, 0x10d22, 0x10d27, +0x10efd, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11046, 0x11046, @@ -11503,6 +11759,7 @@ CR_Diacritic[] = { 192, 0x11d42, 0x11d42, 0x11d44, 0x11d45, 0x11d97, 0x11d97, +0x13447, 0x13455, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f8f, 0x16f9f, @@ -11517,6 +11774,7 @@ CR_Diacritic[] = { 192, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, +0x1e030, 0x1e06d, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, @@ -11556,9 +11814,8 @@ CR_Duployan[] = { 5, /* PROPERTY: 'Egyptian_Hieroglyphs': Script */ static const OnigCodePoint -CR_Egyptian_Hieroglyphs[] = { 2, -0x13000, 0x1342e, -0x13430, 0x13438, +CR_Egyptian_Hieroglyphs[] = { 1, +0x13000, 0x13455, }; /* END of CR_Egyptian_Hieroglyphs */ /* PROPERTY: 'Elbasan': Script */ @@ -11575,7 +11832,7 @@ CR_Elymaic[] = { 1, /* PROPERTY: 'Emoji': Emoji Property */ static const OnigCodePoint -CR_Emoji[] = { 153, +CR_Emoji[] = { 151, 0x0023, 0x0023, 0x002a, 0x002a, 0x0030, 0x0039, @@ -11710,7 +11967,7 @@ CR_Emoji[] = { 153, 0x1f680, 0x1f6c5, 0x1f6cb, 0x1f6d2, 0x1f6d5, 0x1f6d7, -0x1f6dd, 0x1f6e5, +0x1f6dc, 0x1f6e5, 0x1f6e9, 0x1f6e9, 0x1f6eb, 0x1f6ec, 0x1f6f0, 0x1f6f0, @@ -11720,15 +11977,13 @@ CR_Emoji[] = { 153, 0x1f90c, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1f9ff, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, }; /* END of CR_Emoji */ /* PROPERTY: 'Emoji_Component': Emoji Property */ @@ -11794,12 +12049,12 @@ CR_Emoji_Modifier_Base[] = { 40, 0x1f9cd, 0x1f9cf, 0x1f9d1, 0x1f9dd, 0x1fac3, 0x1fac5, -0x1faf0, 0x1faf6, +0x1faf0, 0x1faf8, }; /* END of CR_Emoji_Modifier_Base */ /* PROPERTY: 'Emoji_Presentation': Emoji Property */ static const OnigCodePoint -CR_Emoji_Presentation[] = { 83, +CR_Emoji_Presentation[] = { 81, 0x231a, 0x231b, 0x23e9, 0x23ec, 0x23f0, 0x23f0, @@ -11866,7 +12121,7 @@ CR_Emoji_Presentation[] = { 83, 0x1f6cc, 0x1f6cc, 0x1f6d0, 0x1f6d2, 0x1f6d5, 0x1f6d7, -0x1f6dd, 0x1f6df, +0x1f6dc, 0x1f6df, 0x1f6eb, 0x1f6ec, 0x1f6f4, 0x1f6fc, 0x1f7e0, 0x1f7eb, @@ -11874,15 +12129,13 @@ CR_Emoji_Presentation[] = { 83, 0x1f90c, 0x1f93a, 0x1f93c, 0x1f945, 0x1f947, 0x1f9ff, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, }; /* END of CR_Emoji_Presentation */ /* PROPERTY: 'Ethiopic': Script */ @@ -12101,7 +12354,7 @@ CR_Grantha[] = { 15, /* PROPERTY: 'Grapheme_Base': Derived Property */ static const OnigCodePoint -CR_Grapheme_Base[] = { 861, +CR_Grapheme_Base[] = { 875, 0x0020, 0x007e, 0x00a0, 0x00ac, 0x00ae, 0x02ff, @@ -12251,7 +12504,7 @@ CR_Grapheme_Base[] = { 861, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce1, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d02, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -12454,15 +12707,14 @@ CR_Grapheme_Base[] = { 861, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x3029, +0x2ff0, 0x3029, 0x3030, 0x303f, 0x3041, 0x3096, 0x309b, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31e3, -0x31f0, 0x321e, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -12670,6 +12922,7 @@ CR_Grapheme_Base[] = { 861, 0x11232, 0x11233, 0x11235, 0x11235, 0x11238, 0x1123d, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -12756,6 +13009,7 @@ CR_Grapheme_Base[] = { 861, 0x11a97, 0x11a97, 0x11a9a, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, 0x11c00, 0x11c08, 0x11c0a, 0x11c2f, 0x11c3e, 0x11c3e, @@ -12779,6 +13033,11 @@ CR_Grapheme_Base[] = { 861, 0x11da0, 0x11da9, 0x11ee0, 0x11ef2, 0x11ef5, 0x11ef8, +0x11f02, 0x11f10, +0x11f12, 0x11f35, +0x11f3e, 0x11f3f, +0x11f41, 0x11f41, +0x11f43, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -12786,7 +13045,8 @@ CR_Grapheme_Base[] = { 861, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -12814,7 +13074,9 @@ CR_Grapheme_Base[] = { 861, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -12834,6 +13096,7 @@ CR_Grapheme_Base[] = { 861, 0x1d1ae, 0x1d1ea, 0x1d200, 0x1d241, 0x1d245, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -12863,6 +13126,8 @@ CR_Grapheme_Base[] = { 861, 0x1da76, 0x1da83, 0x1da85, 0x1da8b, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, @@ -12871,6 +13136,8 @@ CR_Grapheme_Base[] = { 861, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -12930,10 +13197,10 @@ CR_Grapheme_Base[] = { 861, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -12944,30 +13211,30 @@ CR_Grapheme_Base[] = { 861, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Grapheme_Base */ /* PROPERTY: 'Grapheme_Extend': Derived Property */ static const OnigCodePoint -CR_Grapheme_Extend[] = { 353, +CR_Grapheme_Extend[] = { 363, 0x0300, 0x036f, 0x0483, 0x0489, 0x0591, 0x05bd, @@ -13070,7 +13337,7 @@ CR_Grapheme_Extend[] = { 353, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -13199,6 +13466,7 @@ CR_Grapheme_Extend[] = { 353, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, 0x10eab, 0x10eac, +0x10efd, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11001, 0x11001, @@ -13221,6 +13489,7 @@ CR_Grapheme_Extend[] = { 353, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300, 0x11301, @@ -13288,6 +13557,12 @@ CR_Grapheme_Extend[] = { 353, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x13440, 0x13440, +0x13447, 0x13455, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, @@ -13314,9 +13589,11 @@ CR_Grapheme_Extend[] = { 353, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0020, 0xe007f, @@ -13325,7 +13602,7 @@ CR_Grapheme_Extend[] = { 353, /* PROPERTY: 'Grapheme_Link': Derived Property */ static const OnigCodePoint -CR_Grapheme_Link[] = { 55, +CR_Grapheme_Link[] = { 56, 0x094d, 0x094d, 0x09cd, 0x09cd, 0x0a4d, 0x0a4d, @@ -13381,6 +13658,7 @@ CR_Grapheme_Link[] = { 55, 0x11c3f, 0x11c3f, 0x11d44, 0x11d45, 0x11d97, 0x11d97, +0x11f41, 0x11f42, }; /* END of CR_Grapheme_Link */ /* PROPERTY: 'Greek': Script */ @@ -13477,7 +13755,7 @@ CR_Gurmukhi[] = { 16, /* PROPERTY: 'Han': Script */ static const OnigCodePoint -CR_Han[] = { 20, +CR_Han[] = { 22, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, @@ -13492,12 +13770,14 @@ CR_Han[] = { 20, 0x16fe2, 0x16fe3, 0x16ff0, 0x16ff1, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Han */ /* PROPERTY: 'Hangul': Script */ @@ -13567,10 +13847,11 @@ CR_Hex_Digit[] = { 6, /* PROPERTY: 'Hiragana': Script */ static const OnigCodePoint -CR_Hiragana[] = { 5, +CR_Hiragana[] = { 6, 0x3041, 0x3096, 0x309d, 0x309f, 0x1b001, 0x1b11f, +0x1b132, 0x1b132, 0x1b150, 0x1b152, 0x1f200, 0x1f200, }; /* END of CR_Hiragana */ @@ -13592,9 +13873,10 @@ CR_Hyphen[] = { 10, /* PROPERTY: 'IDS_Binary_Operator': Binary Property */ static const OnigCodePoint -CR_IDS_Binary_Operator[] = { 2, +CR_IDS_Binary_Operator[] = { 3, 0x2ff0, 0x2ff1, -0x2ff4, 0x2ffb, +0x2ff4, 0x2ffd, +0x31ef, 0x31ef, }; /* END of CR_IDS_Binary_Operator */ /* PROPERTY: 'IDS_Trinary_Operator': Binary Property */ @@ -13603,9 +13885,56 @@ CR_IDS_Trinary_Operator[] = { 1, 0x2ff2, 0x2ff3, }; /* END of CR_IDS_Trinary_Operator */ +/* PROPERTY: 'IDS_Unary_Operator': Binary Property */ +static const OnigCodePoint +CR_IDS_Unary_Operator[] = { 1, +0x2ffe, 0x2fff, +}; /* END of CR_IDS_Unary_Operator */ + +/* PROPERTY: 'ID_Compat_Math_Continue': Binary Property */ +static const OnigCodePoint +CR_ID_Compat_Math_Continue[] = { 18, +0x00b2, 0x00b3, +0x00b9, 0x00b9, +0x2070, 0x2070, +0x2074, 0x207e, +0x2080, 0x208e, +0x2202, 0x2202, +0x2207, 0x2207, +0x221e, 0x221e, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +}; /* END of CR_ID_Compat_Math_Continue */ + +/* PROPERTY: 'ID_Compat_Math_Start': Binary Property */ +static const OnigCodePoint +CR_ID_Compat_Math_Start[] = { 13, +0x2202, 0x2202, +0x2207, 0x2207, +0x221e, 0x221e, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +}; /* END of CR_ID_Compat_Math_Start */ + /* PROPERTY: 'ID_Continue': Derived Property */ static const OnigCodePoint -CR_ID_Continue[] = { 756, +CR_ID_Continue[] = { 769, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -13764,7 +14093,7 @@ CR_ID_Continue[] = { 756, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -13797,7 +14126,7 @@ CR_ID_Continue[] = { 756, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -13906,6 +14235,7 @@ CR_ID_Continue[] = { 756, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, +0x200c, 0x200d, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, @@ -13950,8 +14280,7 @@ CR_ID_Continue[] = { 756, 0x3038, 0x303c, 0x3041, 0x3096, 0x3099, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, +0x30a1, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31bf, @@ -14029,7 +14358,7 @@ CR_ID_Continue[] = { 756, 0xff21, 0xff3a, 0xff3f, 0xff3f, 0xff41, 0xff5a, -0xff66, 0xffbe, +0xff65, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, @@ -14110,7 +14439,7 @@ CR_ID_Continue[] = { 756, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10efd, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -14133,7 +14462,7 @@ CR_ID_Continue[] = { 756, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -14214,12 +14543,17 @@ CR_ID_Continue[] = { 756, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -14247,7 +14581,9 @@ CR_ID_Continue[] = { 756, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -14301,17 +14637,21 @@ CR_ID_Continue[] = { 756, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -14355,18 +14695,20 @@ CR_ID_Continue[] = { 756, 0x1eeab, 0x1eebb, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_ID_Continue */ /* PROPERTY: 'ID_Start': Derived Property */ static const OnigCodePoint -CR_ID_Start[] = { 648, +CR_ID_Start[] = { 660, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -14835,6 +15177,7 @@ CR_ID_Start[] = { 648, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -14897,12 +15240,16 @@ CR_ID_Start[] = { 648, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -14925,7 +15272,9 @@ CR_ID_Start[] = { 648, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -14963,11 +15312,14 @@ CR_ID_Start[] = { 648, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -15009,17 +15361,19 @@ CR_ID_Start[] = { 648, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_ID_Start */ /* PROPERTY: 'Ideographic': Binary Property */ static const OnigCodePoint -CR_Ideographic[] = { 19, +CR_Ideographic[] = { 21, 0x3006, 0x3007, 0x3021, 0x3029, 0x3038, 0x303a, @@ -15033,12 +15387,14 @@ CR_Ideographic[] = { 19, 0x18d00, 0x18d08, 0x1b170, 0x1b2fb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Ideographic */ /* PROPERTY: 'Imperial_Aramaic': Script */ @@ -15048,6 +15404,148 @@ CR_Imperial_Aramaic[] = { 2, 0x10857, 0x1085f, }; /* END of CR_Imperial_Aramaic */ +/* PROPERTY: 'InCB': Derived Property */ +static const OnigCodePoint +CR_InCB[] = { 137, +0x094d, 0x094d, +0x09cd, 0x09cd, +0x0acd, 0x0acd, +0x0b4d, 0x0b4d, +0x0c4d, 0x0c4d, +0x0d4d, 0x0d4d, +0x0e38, 0x0e3a, +0x0e48, 0x0e4b, +0x0eb8, 0x0eba, +0x0ec8, 0x0ecb, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f71, 0x0f72, +0x0f74, 0x0f74, +0x0f7a, 0x0f7d, +0x0f80, 0x0f80, +0x0f82, 0x0f84, +0x0f86, 0x0f87, +0x0fc6, 0x0fc6, +0x1037, 0x1037, +0x1039, 0x103a, +0x108d, 0x108d, +0x135d, 0x135f, +0x1714, 0x1714, +0x17d2, 0x17d2, +0x17dd, 0x17dd, +0x18a9, 0x18a9, +0x1939, 0x193b, +0x1a17, 0x1a18, +0x1a60, 0x1a60, +0x1a75, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1abd, +0x1abf, 0x1ace, +0x1b34, 0x1b34, +0x1b6b, 0x1b73, +0x1bab, 0x1bab, +0x1be6, 0x1be6, +0x1c37, 0x1c37, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1dc0, 0x1dff, +0x200d, 0x200d, +0x20d0, 0x20dc, +0x20e1, 0x20e1, +0x20e5, 0x20f0, +0x2cef, 0x2cf1, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x302a, 0x302f, +0x3099, 0x309a, +0xa66f, 0xa66f, +0xa674, 0xa67d, +0xa69e, 0xa69f, +0xa6f0, 0xa6f1, +0xa82c, 0xa82c, +0xa8e0, 0xa8f1, +0xa92b, 0xa92d, +0xa9b3, 0xa9b3, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaaf6, 0xaaf6, +0xabed, 0xabed, +0xfb1e, 0xfb1e, +0xfe20, 0xfe2f, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10a0d, 0x10a0d, +0x10a0f, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10eab, 0x10eac, +0x10efd, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11070, 0x11070, +0x1107f, 0x1107f, +0x110ba, 0x110ba, +0x11100, 0x11102, +0x11133, 0x11134, +0x11173, 0x11173, +0x111ca, 0x111ca, +0x11236, 0x11236, +0x112e9, 0x112ea, +0x1133b, 0x1133c, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11446, 0x11446, +0x1145e, 0x1145e, +0x114c3, 0x114c3, +0x115c0, 0x115c0, +0x116b7, 0x116b7, +0x1172b, 0x1172b, +0x1183a, 0x1183a, +0x1193e, 0x1193e, +0x11943, 0x11943, +0x11a34, 0x11a34, +0x11a47, 0x11a47, +0x11a99, 0x11a99, +0x11d42, 0x11d42, +0x11d44, 0x11d45, +0x11d97, 0x11d97, +0x11f42, 0x11f42, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x1bc9e, 0x1bc9e, +0x1d165, 0x1d165, +0x1d167, 0x1d169, +0x1d16e, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94a, +}; /* END of CR_InCB */ + /* PROPERTY: 'Inherited': Script */ static const OnigCodePoint CR_Inherited[] = { 29, @@ -15132,12 +15630,12 @@ CR_Kannada[] = { 13, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, }; /* END of CR_Kannada */ /* PROPERTY: 'Katakana': Script */ static const OnigCodePoint -CR_Katakana[] = { 13, +CR_Katakana[] = { 14, 0x30a1, 0x30fa, 0x30fd, 0x30ff, 0x31f0, 0x31ff, @@ -15150,9 +15648,18 @@ CR_Katakana[] = { 13, 0x1affd, 0x1affe, 0x1b000, 0x1b000, 0x1b120, 0x1b122, +0x1b155, 0x1b155, 0x1b164, 0x1b167, }; /* END of CR_Katakana */ +/* PROPERTY: 'Kawi': Script */ +static const OnigCodePoint +CR_Kawi[] = { 3, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f59, +}; /* END of CR_Kawi */ + /* PROPERTY: 'Kayah_Li': Script */ static const OnigCodePoint CR_Kayah_Li[] = { 2, @@ -15193,7 +15700,7 @@ CR_Khmer[] = { 4, static const OnigCodePoint CR_Khojki[] = { 2, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, }; /* END of CR_Khojki */ /* PROPERTY: 'Khudawadi': Script */ @@ -15205,7 +15712,7 @@ CR_Khudawadi[] = { 2, /* PROPERTY: 'L': Major Category */ static const OnigCodePoint -CR_L[] = { 648, +CR_L[] = { 660, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -15675,6 +16182,7 @@ CR_L[] = { 648, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -15737,11 +16245,15 @@ CR_L[] = { 648, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -15764,7 +16276,9 @@ CR_L[] = { 648, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -15802,11 +16316,14 @@ CR_L[] = { 648, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -15848,17 +16365,19 @@ CR_L[] = { 648, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_L */ /* PROPERTY: 'LC': General Category */ static const OnigCodePoint -CR_LC[] = { 142, +CR_LC[] = { 143, 0x0041, 0x005a, 0x0061, 0x007a, 0x00b5, 0x00b5, @@ -16000,6 +16519,7 @@ CR_LC[] = { 142, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, 0x1e900, 0x1e943, }; /* END of CR_LC */ @@ -16014,14 +16534,14 @@ CR_Lao[] = { 11, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, }; /* END of CR_Lao */ /* PROPERTY: 'Latin': Script */ static const OnigCodePoint -CR_Latin[] = { 38, +CR_Latin[] = { 39, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -16060,6 +16580,7 @@ CR_Latin[] = { 38, 0x10787, 0x107b0, 0x107b2, 0x107ba, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, }; /* END of CR_Latin */ /* PROPERTY: 'Lepcha': Script */ @@ -16109,7 +16630,7 @@ CR_Lisu[] = { 2, /* PROPERTY: 'Ll': General Category */ static const OnigCodePoint -CR_Ll[] = { 657, +CR_Ll[] = { 658, 0x0061, 0x007a, 0x00b5, 0x00b5, 0x00df, 0x00f6, @@ -16766,12 +17287,13 @@ CR_Ll[] = { 657, 0x1d7cb, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, 0x1e922, 0x1e943, }; /* END of CR_Ll */ /* PROPERTY: 'Lm': General Category */ static const OnigCodePoint -CR_Lm[] = { 69, +CR_Lm[] = { 71, 0x02b0, 0x02c1, 0x02c6, 0x02d1, 0x02e0, 0x02e4, @@ -16839,13 +17361,15 @@ CR_Lm[] = { 69, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, +0x1e030, 0x1e06d, 0x1e137, 0x1e13d, +0x1e4eb, 0x1e4eb, 0x1e94b, 0x1e94b, }; /* END of CR_Lm */ /* PROPERTY: 'Lo': General Category */ static const OnigCodePoint -CR_Lo[] = { 501, +CR_Lo[] = { 511, 0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x01bb, 0x01bb, @@ -17210,6 +17734,7 @@ CR_Lo[] = { 501, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -17271,11 +17796,15 @@ CR_Lo[] = { 501, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -17290,7 +17819,9 @@ CR_Lo[] = { 501, 0x18800, 0x18cd5, 0x18d00, 0x18d08, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -17302,6 +17833,7 @@ CR_Lo[] = { 501, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4ea, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -17341,12 +17873,14 @@ CR_Lo[] = { 501, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Lo */ /* PROPERTY: 'Logical_Order_Exception': Binary Property */ @@ -18045,7 +18579,7 @@ CR_Lydian[] = { 2, /* PROPERTY: 'M': Major Category */ static const OnigCodePoint -CR_M[] = { 299, +CR_M[] = { 310, 0x0300, 0x036f, 0x0483, 0x0489, 0x0591, 0x05bd, @@ -18126,6 +18660,7 @@ CR_M[] = { 299, 0x0cca, 0x0ccd, 0x0cd5, 0x0cd6, 0x0ce2, 0x0ce3, +0x0cf3, 0x0cf3, 0x0d00, 0x0d03, 0x0d3b, 0x0d3c, 0x0d3e, 0x0d44, @@ -18144,7 +18679,7 @@ CR_M[] = { 299, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -18246,6 +18781,7 @@ CR_M[] = { 299, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, 0x10eab, 0x10eac, +0x10efd, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11000, 0x11002, @@ -18265,6 +18801,7 @@ CR_M[] = { 299, 0x111ce, 0x111cf, 0x1122c, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112ea, 0x11300, 0x11303, 0x1133b, 0x1133c, @@ -18312,6 +18849,12 @@ CR_M[] = { 299, 0x11d90, 0x11d91, 0x11d93, 0x11d97, 0x11ef3, 0x11ef6, +0x11f00, 0x11f01, +0x11f03, 0x11f03, +0x11f34, 0x11f3a, +0x11f3e, 0x11f42, +0x13440, 0x13440, +0x13447, 0x13455, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, @@ -18339,9 +18882,11 @@ CR_M[] = { 299, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0100, 0xe01ef, @@ -18550,7 +19095,7 @@ CR_Math[] = { 138, /* PROPERTY: 'Mc': General Category */ static const OnigCodePoint -CR_Mc[] = { 177, +CR_Mc[] = { 182, 0x0903, 0x0903, 0x093b, 0x093b, 0x093e, 0x0940, @@ -18586,6 +19131,7 @@ CR_Mc[] = { 177, 0x0cc7, 0x0cc8, 0x0cca, 0x0ccb, 0x0cd5, 0x0cd6, +0x0cf3, 0x0cf3, 0x0d02, 0x0d03, 0x0d3e, 0x0d40, 0x0d46, 0x0d48, @@ -18724,6 +19270,10 @@ CR_Mc[] = { 177, 0x11d93, 0x11d94, 0x11d96, 0x11d96, 0x11ef5, 0x11ef6, +0x11f03, 0x11f03, +0x11f34, 0x11f35, +0x11f3e, 0x11f3f, +0x11f41, 0x11f41, 0x16f51, 0x16f87, 0x16ff0, 0x16ff1, 0x1d165, 0x1d166, @@ -18785,7 +19335,7 @@ CR_Miao[] = { 3, /* PROPERTY: 'Mn': General Category */ static const OnigCodePoint -CR_Mn[] = { 336, +CR_Mn[] = { 346, 0x0300, 0x036f, 0x0483, 0x0487, 0x0591, 0x05bd, @@ -18878,7 +19428,7 @@ CR_Mn[] = { 336, 0x0e47, 0x0e4e, 0x0eb1, 0x0eb1, 0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0f18, 0x0f19, 0x0f35, 0x0f35, 0x0f37, 0x0f37, @@ -19009,6 +19559,7 @@ CR_Mn[] = { 336, 0x10ae5, 0x10ae6, 0x10d24, 0x10d27, 0x10eab, 0x10eac, +0x10efd, 0x10eff, 0x10f46, 0x10f50, 0x10f82, 0x10f85, 0x11001, 0x11001, @@ -19031,6 +19582,7 @@ CR_Mn[] = { 336, 0x11234, 0x11234, 0x11236, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112df, 0x112e3, 0x112ea, 0x11300, 0x11301, @@ -19092,6 +19644,12 @@ CR_Mn[] = { 336, 0x11d95, 0x11d95, 0x11d97, 0x11d97, 0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x13440, 0x13440, +0x13447, 0x13455, 0x16af0, 0x16af4, 0x16b30, 0x16b36, 0x16f4f, 0x16f4f, @@ -19116,9 +19674,11 @@ CR_Mn[] = { 336, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e130, 0x1e136, 0x1e2ae, 0x1e2ae, 0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, 0x1e8d0, 0x1e8d6, 0x1e944, 0x1e94a, 0xe0100, 0xe01ef, @@ -19170,7 +19730,7 @@ CR_Myanmar[] = { 3, /* PROPERTY: 'N': Major Category */ static const OnigCodePoint -CR_N[] = { 134, +CR_N[] = { 137, 0x0030, 0x0039, 0x00b2, 0x00b3, 0x00b9, 0x00b9, @@ -19284,6 +19844,7 @@ CR_N[] = { 134, 0x11c50, 0x11c6c, 0x11d50, 0x11d59, 0x11da0, 0x11da9, +0x11f50, 0x11f59, 0x11fc0, 0x11fd4, 0x12400, 0x1246e, 0x16a60, 0x16a69, @@ -19291,11 +19852,13 @@ CR_N[] = { 134, 0x16b50, 0x16b59, 0x16b5b, 0x16b61, 0x16e80, 0x16e96, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d360, 0x1d378, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, 0x1e8c7, 0x1e8cf, 0x1e950, 0x1e959, 0x1ec71, 0x1ecab, @@ -19314,6 +19877,12 @@ CR_Nabataean[] = { 2, 0x108a7, 0x108af, }; /* END of CR_Nabataean */ +/* PROPERTY: 'Nag_Mundari': Script */ +static const OnigCodePoint +CR_Nag_Mundari[] = { 1, +0x1e4d0, 0x1e4f9, +}; /* END of CR_Nag_Mundari */ + /* PROPERTY: 'Nandinagari': Script */ static const OnigCodePoint CR_Nandinagari[] = { 3, @@ -19367,7 +19936,7 @@ CR_Nl[] = { 12, /* PROPERTY: 'No': General Category */ static const OnigCodePoint -CR_No[] = { 71, +CR_No[] = { 72, 0x00b2, 0x00b3, 0x00b9, 0x00b9, 0x00bc, 0x00be, @@ -19430,6 +19999,7 @@ CR_No[] = { 71, 0x11fc0, 0x11fd4, 0x16b5b, 0x16b61, 0x16e80, 0x16e96, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d360, 0x1d378, 0x1e8c7, 0x1e8cf, @@ -19585,7 +20155,7 @@ CR_Osmanya[] = { 2, /* PROPERTY: 'Other_Alphabetic': Binary Property */ static const OnigCodePoint -CR_Other_Alphabetic[] = { 233, +CR_Other_Alphabetic[] = { 240, 0x0345, 0x0345, 0x05b0, 0x05bd, 0x05bf, 0x05bf, @@ -19645,7 +20215,7 @@ CR_Other_Alphabetic[] = { 233, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcc, 0x0bd7, 0x0bd7, -0x0c00, 0x0c03, +0x0c00, 0x0c04, 0x0c3e, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, @@ -19657,6 +20227,7 @@ CR_Other_Alphabetic[] = { 233, 0x0cca, 0x0ccc, 0x0cd5, 0x0cd6, 0x0ce2, 0x0ce3, +0x0cf3, 0x0cf3, 0x0d00, 0x0d03, 0x0d3e, 0x0d44, 0x0d46, 0x0d48, @@ -19675,7 +20246,7 @@ CR_Other_Alphabetic[] = { 233, 0x0eb4, 0x0eb9, 0x0ebb, 0x0ebc, 0x0ecd, 0x0ecd, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f8d, 0x0f97, 0x0f99, 0x0fbc, 0x102b, 0x1036, @@ -19748,7 +20319,7 @@ CR_Other_Alphabetic[] = { 233, 0x11000, 0x11002, 0x11038, 0x11045, 0x11073, 0x11074, -0x11082, 0x11082, +0x11080, 0x11082, 0x110b0, 0x110b8, 0x110c2, 0x110c2, 0x11100, 0x11102, @@ -19760,6 +20331,7 @@ CR_Other_Alphabetic[] = { 233, 0x1122c, 0x11234, 0x11237, 0x11237, 0x1123e, 0x1123e, +0x11241, 0x11241, 0x112df, 0x112e8, 0x11300, 0x11303, 0x1133e, 0x11344, @@ -19805,6 +20377,10 @@ CR_Other_Alphabetic[] = { 233, 0x11d90, 0x11d91, 0x11d93, 0x11d96, 0x11ef3, 0x11ef6, +0x11f00, 0x11f01, +0x11f03, 0x11f03, +0x11f34, 0x11f3a, +0x11f3e, 0x11f40, 0x16f4f, 0x16f4f, 0x16f51, 0x16f87, 0x16f8f, 0x16f92, @@ -19815,6 +20391,7 @@ CR_Other_Alphabetic[] = { 233, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, 0x1e947, 0x1e947, 0x1f130, 0x1f149, 0x1f150, 0x1f169, @@ -19869,11 +20446,14 @@ CR_Other_Grapheme_Extend[] = { 25, /* PROPERTY: 'Other_ID_Continue': Binary Property */ static const OnigCodePoint -CR_Other_ID_Continue[] = { 4, +CR_Other_ID_Continue[] = { 7, 0x00b7, 0x00b7, 0x0387, 0x0387, 0x1369, 0x1371, 0x19da, 0x19da, +0x200c, 0x200d, +0x30fb, 0x30fb, +0xff65, 0xff65, }; /* END of CR_Other_ID_Continue */ /* PROPERTY: 'Other_ID_Start': Binary Property */ @@ -19887,7 +20467,7 @@ CR_Other_ID_Start[] = { 4, /* PROPERTY: 'Other_Lowercase': Binary Property */ static const OnigCodePoint -CR_Other_Lowercase[] = { 24, +CR_Other_Lowercase[] = { 28, 0x00aa, 0x00aa, 0x00ba, 0x00ba, 0x02b0, 0x02b8, @@ -19895,6 +20475,7 @@ CR_Other_Lowercase[] = { 24, 0x02e0, 0x02e4, 0x0345, 0x0345, 0x037a, 0x037a, +0x10fc, 0x10fc, 0x1d2c, 0x1d6a, 0x1d78, 0x1d78, 0x1d9b, 0x1dbf, @@ -19906,12 +20487,15 @@ CR_Other_Lowercase[] = { 24, 0x2c7c, 0x2c7d, 0xa69c, 0xa69d, 0xa770, 0xa770, +0xa7f2, 0xa7f4, 0xa7f8, 0xa7f9, 0xab5c, 0xab5f, +0xab69, 0xab69, 0x10780, 0x10780, 0x10783, 0x10785, 0x10787, 0x107b0, 0x107b2, 0x107ba, +0x1e030, 0x1e06d, }; /* END of CR_Other_Lowercase */ /* PROPERTY: 'Other_Math': Binary Property */ @@ -20064,7 +20648,200 @@ CR_Other_Uppercase[] = { 5, }; /* END of CR_Other_Uppercase */ /* PROPERTY: 'P': Major Category */ -#define CR_P CR_Punct +static const OnigCodePoint +CR_P[] = { 191, +0x0021, 0x0023, +0x0025, 0x002a, +0x002c, 0x002f, +0x003a, 0x003b, +0x003f, 0x0040, +0x005b, 0x005d, +0x005f, 0x005f, +0x007b, 0x007b, +0x007d, 0x007d, +0x00a1, 0x00a1, +0x00a7, 0x00a7, +0x00ab, 0x00ab, +0x00b6, 0x00b7, +0x00bb, 0x00bb, +0x00bf, 0x00bf, +0x037e, 0x037e, +0x0387, 0x0387, +0x055a, 0x055f, +0x0589, 0x058a, +0x05be, 0x05be, +0x05c0, 0x05c0, +0x05c3, 0x05c3, +0x05c6, 0x05c6, +0x05f3, 0x05f4, +0x0609, 0x060a, +0x060c, 0x060d, +0x061b, 0x061b, +0x061d, 0x061f, +0x066a, 0x066d, +0x06d4, 0x06d4, +0x0700, 0x070d, +0x07f7, 0x07f9, +0x0830, 0x083e, +0x085e, 0x085e, +0x0964, 0x0965, +0x0970, 0x0970, +0x09fd, 0x09fd, +0x0a76, 0x0a76, +0x0af0, 0x0af0, +0x0c77, 0x0c77, +0x0c84, 0x0c84, +0x0df4, 0x0df4, +0x0e4f, 0x0e4f, +0x0e5a, 0x0e5b, +0x0f04, 0x0f12, +0x0f14, 0x0f14, +0x0f3a, 0x0f3d, +0x0f85, 0x0f85, +0x0fd0, 0x0fd4, +0x0fd9, 0x0fda, +0x104a, 0x104f, +0x10fb, 0x10fb, +0x1360, 0x1368, +0x1400, 0x1400, +0x166e, 0x166e, +0x169b, 0x169c, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x17d4, 0x17d6, +0x17d8, 0x17da, +0x1800, 0x180a, +0x1944, 0x1945, +0x1a1e, 0x1a1f, +0x1aa0, 0x1aa6, +0x1aa8, 0x1aad, +0x1b5a, 0x1b60, +0x1b7d, 0x1b7e, +0x1bfc, 0x1bff, +0x1c3b, 0x1c3f, +0x1c7e, 0x1c7f, +0x1cc0, 0x1cc7, +0x1cd3, 0x1cd3, +0x2010, 0x2027, +0x2030, 0x2043, +0x2045, 0x2051, +0x2053, 0x205e, +0x207d, 0x207e, +0x208d, 0x208e, +0x2308, 0x230b, +0x2329, 0x232a, +0x2768, 0x2775, +0x27c5, 0x27c6, +0x27e6, 0x27ef, +0x2983, 0x2998, +0x29d8, 0x29db, +0x29fc, 0x29fd, +0x2cf9, 0x2cfc, +0x2cfe, 0x2cff, +0x2d70, 0x2d70, +0x2e00, 0x2e2e, +0x2e30, 0x2e4f, +0x2e52, 0x2e5d, +0x3001, 0x3003, +0x3008, 0x3011, +0x3014, 0x301f, +0x3030, 0x3030, +0x303d, 0x303d, +0x30a0, 0x30a0, +0x30fb, 0x30fb, +0xa4fe, 0xa4ff, +0xa60d, 0xa60f, +0xa673, 0xa673, +0xa67e, 0xa67e, +0xa6f2, 0xa6f7, +0xa874, 0xa877, +0xa8ce, 0xa8cf, +0xa8f8, 0xa8fa, +0xa8fc, 0xa8fc, +0xa92e, 0xa92f, +0xa95f, 0xa95f, +0xa9c1, 0xa9cd, +0xa9de, 0xa9df, +0xaa5c, 0xaa5f, +0xaade, 0xaadf, +0xaaf0, 0xaaf1, +0xabeb, 0xabeb, +0xfd3e, 0xfd3f, +0xfe10, 0xfe19, +0xfe30, 0xfe52, +0xfe54, 0xfe61, +0xfe63, 0xfe63, +0xfe68, 0xfe68, +0xfe6a, 0xfe6b, +0xff01, 0xff03, +0xff05, 0xff0a, +0xff0c, 0xff0f, +0xff1a, 0xff1b, +0xff1f, 0xff20, +0xff3b, 0xff3d, +0xff3f, 0xff3f, +0xff5b, 0xff5b, +0xff5d, 0xff5d, +0xff5f, 0xff65, +0x10100, 0x10102, +0x1039f, 0x1039f, +0x103d0, 0x103d0, +0x1056f, 0x1056f, +0x10857, 0x10857, +0x1091f, 0x1091f, +0x1093f, 0x1093f, +0x10a50, 0x10a58, +0x10a7f, 0x10a7f, +0x10af0, 0x10af6, +0x10b39, 0x10b3f, +0x10b99, 0x10b9c, +0x10ead, 0x10ead, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x1104d, +0x110bb, 0x110bc, +0x110be, 0x110c1, +0x11140, 0x11143, +0x11174, 0x11175, +0x111c5, 0x111c8, +0x111cd, 0x111cd, +0x111db, 0x111db, +0x111dd, 0x111df, +0x11238, 0x1123d, +0x112a9, 0x112a9, +0x1144b, 0x1144f, +0x1145a, 0x1145b, +0x1145d, 0x1145d, +0x114c6, 0x114c6, +0x115c1, 0x115d7, +0x11641, 0x11643, +0x11660, 0x1166c, +0x116b9, 0x116b9, +0x1173c, 0x1173e, +0x1183b, 0x1183b, +0x11944, 0x11946, +0x119e2, 0x119e2, +0x11a3f, 0x11a46, +0x11a9a, 0x11a9c, +0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11c41, 0x11c45, +0x11c70, 0x11c71, +0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fff, 0x11fff, +0x12470, 0x12474, +0x12ff1, 0x12ff2, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b3b, +0x16b44, 0x16b44, +0x16e97, 0x16e9a, +0x16fe2, 0x16fe2, +0x1bc9f, 0x1bc9f, +0x1da87, 0x1da8b, +0x1e95e, 0x1e95f, +}; /* END of CR_P */ /* PROPERTY: 'Pahawh_Hmong': Script */ static const OnigCodePoint @@ -20293,7 +21070,7 @@ CR_Pi[] = { 11, /* PROPERTY: 'Po': General Category */ static const OnigCodePoint -CR_Po[] = { 185, +CR_Po[] = { 187, 0x0021, 0x0023, 0x0025, 0x0027, 0x002a, 0x002a, @@ -20464,9 +21241,11 @@ CR_Po[] = { 185, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, +0x11b00, 0x11b09, 0x11c41, 0x11c45, 0x11c70, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x12ff1, 0x12ff2, @@ -20633,7 +21412,7 @@ CR_Runic[] = { 2, /* PROPERTY: 'S': Major Category */ static const OnigCodePoint -CR_S[] = { 234, +CR_S[] = { 233, 0x0024, 0x0024, 0x002b, 0x002b, 0x003c, 0x003e, @@ -20741,7 +21520,7 @@ CR_S[] = { 234, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3004, 0x3004, 0x3012, 0x3013, 0x3020, 0x3020, @@ -20751,6 +21530,7 @@ CR_S[] = { 234, 0x3190, 0x3191, 0x3196, 0x319f, 0x31c0, 0x31e3, +0x31ef, 0x31ef, 0x3200, 0x321e, 0x322a, 0x3247, 0x3250, 0x3250, @@ -20843,10 +21623,10 @@ CR_S[] = { 234, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -20857,15 +21637,13 @@ CR_S[] = { 234, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, }; /* END of CR_S */ @@ -20912,7 +21690,7 @@ CR_Sc[] = { 21, /* PROPERTY: 'Sentence_Terminal': Binary Property */ static const OnigCodePoint -CR_Sentence_Terminal[] = { 79, +CR_Sentence_Terminal[] = { 81, 0x0021, 0x0021, 0x002e, 0x002e, 0x003f, 0x003f, @@ -20930,6 +21708,7 @@ CR_Sentence_Terminal[] = { 79, 0x1367, 0x1368, 0x166e, 0x166e, 0x1735, 0x1736, +0x17d4, 0x17d5, 0x1803, 0x1803, 0x1809, 0x1809, 0x1944, 0x1945, @@ -20985,6 +21764,7 @@ CR_Sentence_Terminal[] = { 79, 0x11a9b, 0x11a9c, 0x11c41, 0x11c42, 0x11ef7, 0x11ef8, +0x11f43, 0x11f44, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, 0x16b37, 0x16b38, @@ -21146,7 +21926,7 @@ CR_Sm[] = { 64, /* PROPERTY: 'So': General Category */ static const OnigCodePoint -CR_So[] = { 186, +CR_So[] = { 185, 0x00a6, 0x00a6, 0x00a9, 0x00a9, 0x00ae, 0x00ae, @@ -21233,7 +22013,7 @@ CR_So[] = { 186, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3004, 0x3004, 0x3012, 0x3013, 0x3020, 0x3020, @@ -21242,6 +22022,7 @@ CR_So[] = { 186, 0x3190, 0x3191, 0x3196, 0x319f, 0x31c0, 0x31e3, +0x31ef, 0x31ef, 0x3200, 0x321e, 0x322a, 0x3247, 0x3250, 0x3250, @@ -21308,10 +22089,10 @@ CR_So[] = { 186, 0x1f260, 0x1f265, 0x1f300, 0x1f3fa, 0x1f400, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -21322,22 +22103,20 @@ CR_So[] = { 186, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, }; /* END of CR_So */ /* PROPERTY: 'Soft_Dotted': Binary Property */ static const OnigCodePoint -CR_Soft_Dotted[] = { 32, +CR_Soft_Dotted[] = { 34, 0x0069, 0x006a, 0x012f, 0x012f, 0x0249, 0x0249, @@ -21370,6 +22149,8 @@ CR_Soft_Dotted[] = { 32, 0x1d65e, 0x1d65f, 0x1d692, 0x1d693, 0x1df1a, 0x1df1a, +0x1e04c, 0x1e04d, +0x1e068, 0x1e068, }; /* END of CR_Soft_Dotted */ /* PROPERTY: 'Sogdian': Script */ @@ -21518,7 +22299,7 @@ CR_Telugu[] = { 13, /* PROPERTY: 'Terminal_Punctuation': Binary Property */ static const OnigCodePoint -CR_Terminal_Punctuation[] = { 107, +CR_Terminal_Punctuation[] = { 108, 0x0021, 0x0021, 0x002c, 0x002c, 0x002e, 0x002e, @@ -21618,6 +22399,7 @@ CR_Terminal_Punctuation[] = { 107, 0x11c41, 0x11c43, 0x11c71, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f44, 0x12470, 0x12474, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, @@ -21683,7 +22465,7 @@ CR_Ugaritic[] = { 2, /* PROPERTY: 'Unified_Ideograph': Binary Property */ static const OnigCodePoint -CR_Unified_Ideograph[] = { 15, +CR_Unified_Ideograph[] = { 17, 0x3400, 0x4dbf, 0x4e00, 0x9fff, 0xfa0e, 0xfa0f, @@ -21694,16 +22476,18 @@ CR_Unified_Ideograph[] = { 15, 0xfa23, 0xfa24, 0xfa27, 0xfa29, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Unified_Ideograph */ /* PROPERTY: 'Unknown': Script */ static const OnigCodePoint -CR_Unknown[] = { 696, +CR_Unknown[] = { 705, 0x0378, 0x0379, 0x0380, 0x0383, 0x038b, 0x038b, @@ -21825,7 +22609,7 @@ CR_Unknown[] = { 696, 0x0cdf, 0x0cdf, 0x0ce4, 0x0ce5, 0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, +0x0cf4, 0x0cff, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d45, 0x0d45, @@ -21855,7 +22639,7 @@ CR_Unknown[] = { 696, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, +0x0ecf, 0x0ecf, 0x0eda, 0x0edb, 0x0ee0, 0x0eff, 0x0f48, 0x0f48, @@ -21973,13 +22757,12 @@ CR_Unknown[] = { 696, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, -0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x3130, 0x3130, 0x318f, 0x318f, -0x31e4, 0x31ef, +0x31e4, 0x31ee, 0x321f, 0x321f, 0xa48d, 0xa48f, 0xa4c7, 0xa4cf, @@ -22125,7 +22908,7 @@ CR_Unknown[] = { 696, 0x10e7f, 0x10e7f, 0x10eaa, 0x10eaa, 0x10eae, 0x10eaf, -0x10eb2, 0x10eff, +0x10eb2, 0x10efc, 0x10f28, 0x10f2f, 0x10f5a, 0x10f6f, 0x10f8a, 0x10faf, @@ -22143,7 +22926,7 @@ CR_Unknown[] = { 696, 0x111e0, 0x111e0, 0x111f5, 0x111ff, 0x11212, 0x11212, -0x1123f, 0x1127f, +0x11242, 0x1127f, 0x11287, 0x11287, 0x11289, 0x11289, 0x1128e, 0x1128e, @@ -22195,7 +22978,8 @@ CR_Unknown[] = { 696, 0x119e5, 0x119ff, 0x11a48, 0x11a4f, 0x11aa3, 0x11aaf, -0x11af9, 0x11bff, +0x11af9, 0x11aff, +0x11b0a, 0x11bff, 0x11c09, 0x11c09, 0x11c37, 0x11c37, 0x11c46, 0x11c4f, @@ -22216,7 +23000,10 @@ CR_Unknown[] = { 696, 0x11d92, 0x11d92, 0x11d99, 0x11d9f, 0x11daa, 0x11edf, -0x11ef9, 0x11faf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5a, 0x11faf, 0x11fb1, 0x11fbf, 0x11ff2, 0x11ffe, 0x1239a, 0x123ff, @@ -22224,8 +23011,7 @@ CR_Unknown[] = { 696, 0x12475, 0x1247f, 0x12544, 0x12f8f, 0x12ff3, 0x12fff, -0x1342f, 0x1342f, -0x13439, 0x143ff, +0x13456, 0x143ff, 0x14647, 0x167ff, 0x16a39, 0x16a3f, 0x16a5f, 0x16a5f, @@ -22251,8 +23037,10 @@ CR_Unknown[] = { 696, 0x1aff4, 0x1aff4, 0x1affc, 0x1affc, 0x1afff, 0x1afff, -0x1b123, 0x1b14f, -0x1b153, 0x1b163, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, 0x1b168, 0x1b16f, 0x1b2fc, 0x1bbff, 0x1bc6b, 0x1bc6f, @@ -22266,7 +23054,8 @@ CR_Unknown[] = { 696, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d128, 0x1d1eb, 0x1d1ff, -0x1d246, 0x1d2df, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, 0x1d2f4, 0x1d2ff, 0x1d357, 0x1d35f, 0x1d379, 0x1d3ff, @@ -22293,19 +23082,23 @@ CR_Unknown[] = { 696, 0x1da8c, 0x1da9a, 0x1daa0, 0x1daa0, 0x1dab0, 0x1deff, -0x1df1f, 0x1dfff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, 0x1e007, 0x1e007, 0x1e019, 0x1e01a, 0x1e022, 0x1e022, 0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, 0x1e12d, 0x1e12f, 0x1e13e, 0x1e13f, 0x1e14a, 0x1e14d, 0x1e150, 0x1e28f, 0x1e2af, 0x1e2bf, 0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e7df, 0x1e7e7, 0x1e7e7, 0x1e7ec, 0x1e7ec, 0x1e7ef, 0x1e7ef, @@ -22363,11 +23156,11 @@ CR_Unknown[] = { 696, 0x1f249, 0x1f24f, 0x1f252, 0x1f25f, 0x1f266, 0x1f2ff, -0x1f6d8, 0x1f6dc, +0x1f6d8, 0x1f6db, 0x1f6ed, 0x1f6ef, 0x1f6fd, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, 0x1f7ec, 0x1f7ef, 0x1f7f1, 0x1f7ff, 0x1f80c, 0x1f80f, @@ -22378,25 +23171,25 @@ CR_Unknown[] = { 696, 0x1f8b2, 0x1f8ff, 0x1fa54, 0x1fa5f, 0x1fa6e, 0x1fa6f, -0x1fa75, 0x1fa77, 0x1fa7d, 0x1fa7f, -0x1fa87, 0x1fa8f, -0x1faad, 0x1faaf, -0x1fabb, 0x1fabf, -0x1fac6, 0x1facf, -0x1fada, 0x1fadf, -0x1fae8, 0x1faef, -0x1faf7, 0x1faff, +0x1fa89, 0x1fa8f, +0x1fabe, 0x1fabe, +0x1fac6, 0x1facd, +0x1fadc, 0x1fadf, +0x1fae9, 0x1faef, +0x1faf9, 0x1faff, 0x1fb93, 0x1fb93, 0x1fbcb, 0x1fbef, 0x1fbfa, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2b739, 0x2b73f, +0x2b73a, 0x2b73f, 0x2b81e, 0x2b81f, 0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, 0x2fa1e, 0x2ffff, -0x3134b, 0xe0000, +0x3134b, 0x3134f, +0x323b0, 0xe0000, 0xe0002, 0xe001f, 0xe0080, 0xe00ff, 0xe01f0, 0x10ffff, @@ -22452,7 +23245,7 @@ CR_Warang_Citi[] = { 2, /* PROPERTY: 'XID_Continue': Derived Property */ static const OnigCodePoint -CR_XID_Continue[] = { 763, +CR_XID_Continue[] = { 776, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -22611,7 +23404,7 @@ CR_XID_Continue[] = { 763, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -22644,7 +23437,7 @@ CR_XID_Continue[] = { 763, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -22753,6 +23546,7 @@ CR_XID_Continue[] = { 763, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, +0x200c, 0x200d, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, @@ -22798,8 +23592,7 @@ CR_XID_Continue[] = { 763, 0x3041, 0x3096, 0x3099, 0x309a, 0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, +0x30a1, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31bf, @@ -22883,7 +23676,7 @@ CR_XID_Continue[] = { 763, 0xff21, 0xff3a, 0xff3f, 0xff3f, 0xff41, 0xff5a, -0xff66, 0xffbe, +0xff65, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, @@ -22964,7 +23757,7 @@ CR_XID_Continue[] = { 763, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10efd, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -22987,7 +23780,7 @@ CR_XID_Continue[] = { 763, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -23068,12 +23861,17 @@ CR_XID_Continue[] = { 763, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -23101,7 +23899,9 @@ CR_XID_Continue[] = { 763, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -23155,17 +23955,21 @@ CR_XID_Continue[] = { 763, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -23209,18 +24013,20 @@ CR_XID_Continue[] = { 763, 0x1eeab, 0x1eebb, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_XID_Continue */ /* PROPERTY: 'XID_Start': Derived Property */ static const OnigCodePoint -CR_XID_Start[] = { 655, +CR_XID_Start[] = { 667, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -23696,6 +24502,7 @@ CR_XID_Start[] = { 655, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, +0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -23758,12 +24565,16 @@ CR_XID_Start[] = { 655, 0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -23786,7 +24597,9 @@ CR_XID_Start[] = { 655, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -23824,11 +24637,14 @@ CR_XID_Start[] = { 655, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -23870,12 +24686,14 @@ CR_XID_Start[] = { 655, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_XID_Start */ /* PROPERTY: 'Yezidi': Script */ @@ -25163,6 +25981,12 @@ CR_In_Yezidi[] = { 1, 0x10e80, 0x10ebf, }; /* END of CR_In_Yezidi */ +/* PROPERTY: 'In_Arabic_Extended_C': Block */ +static const OnigCodePoint +CR_In_Arabic_Extended_C[] = { 1, +0x10ec0, 0x10eff, +}; /* END of CR_In_Arabic_Extended_C */ + /* PROPERTY: 'In_Old_Sogdian': Block */ static const OnigCodePoint CR_In_Old_Sogdian[] = { 1, @@ -25346,6 +26170,12 @@ CR_In_Pau_Cin_Hau[] = { 1, 0x11ac0, 0x11aff, }; /* END of CR_In_Pau_Cin_Hau */ +/* PROPERTY: 'In_Devanagari_Extended_A': Block */ +static const OnigCodePoint +CR_In_Devanagari_Extended_A[] = { 1, +0x11b00, 0x11b5f, +}; /* END of CR_In_Devanagari_Extended_A */ + /* PROPERTY: 'In_Bhaiksuki': Block */ static const OnigCodePoint CR_In_Bhaiksuki[] = { 1, @@ -25376,6 +26206,12 @@ CR_In_Makasar[] = { 1, 0x11ee0, 0x11eff, }; /* END of CR_In_Makasar */ +/* PROPERTY: 'In_Kawi': Block */ +static const OnigCodePoint +CR_In_Kawi[] = { 1, +0x11f00, 0x11f5f, +}; /* END of CR_In_Kawi */ + /* PROPERTY: 'In_Lisu_Supplement': Block */ static const OnigCodePoint CR_In_Lisu_Supplement[] = { 1, @@ -25421,7 +26257,7 @@ CR_In_Egyptian_Hieroglyphs[] = { 1, /* PROPERTY: 'In_Egyptian_Hieroglyph_Format_Controls': Block */ static const OnigCodePoint CR_In_Egyptian_Hieroglyph_Format_Controls[] = { 1, -0x13430, 0x1343f, +0x13430, 0x1345f, }; /* END of CR_In_Egyptian_Hieroglyph_Format_Controls */ /* PROPERTY: 'In_Anatolian_Hieroglyphs': Block */ @@ -25568,6 +26404,12 @@ CR_In_Ancient_Greek_Musical_Notation[] = { 1, 0x1d200, 0x1d24f, }; /* END of CR_In_Ancient_Greek_Musical_Notation */ +/* PROPERTY: 'In_Kaktovik_Numerals': Block */ +static const OnigCodePoint +CR_In_Kaktovik_Numerals[] = { 1, +0x1d2c0, 0x1d2df, +}; /* END of CR_In_Kaktovik_Numerals */ + /* PROPERTY: 'In_Mayan_Numerals': Block */ static const OnigCodePoint CR_In_Mayan_Numerals[] = { 1, @@ -25610,6 +26452,12 @@ CR_In_Glagolitic_Supplement[] = { 1, 0x1e000, 0x1e02f, }; /* END of CR_In_Glagolitic_Supplement */ +/* PROPERTY: 'In_Cyrillic_Extended_D': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Extended_D[] = { 1, +0x1e030, 0x1e08f, +}; /* END of CR_In_Cyrillic_Extended_D */ + /* PROPERTY: 'In_Nyiakeng_Puachue_Hmong': Block */ static const OnigCodePoint CR_In_Nyiakeng_Puachue_Hmong[] = { 1, @@ -25628,6 +26476,12 @@ CR_In_Wancho[] = { 1, 0x1e2c0, 0x1e2ff, }; /* END of CR_In_Wancho */ +/* PROPERTY: 'In_Nag_Mundari': Block */ +static const OnigCodePoint +CR_In_Nag_Mundari[] = { 1, +0x1e4d0, 0x1e4ff, +}; /* END of CR_In_Nag_Mundari */ + /* PROPERTY: 'In_Ethiopic_Extended_B': Block */ static const OnigCodePoint CR_In_Ethiopic_Extended_B[] = { 1, @@ -25790,6 +26644,12 @@ CR_In_CJK_Unified_Ideographs_Extension_F[] = { 1, 0x2ceb0, 0x2ebef, }; /* END of CR_In_CJK_Unified_Ideographs_Extension_F */ +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_I': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_I[] = { 1, +0x2ebf0, 0x2ee5f, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_I */ + /* PROPERTY: 'In_CJK_Compatibility_Ideographs_Supplement': Block */ static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs_Supplement[] = { 1, @@ -25802,6 +26662,12 @@ CR_In_CJK_Unified_Ideographs_Extension_G[] = { 1, 0x30000, 0x3134f, }; /* END of CR_In_CJK_Unified_Ideographs_Extension_G */ +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_H': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_H[] = { 1, +0x31350, 0x323af, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_H */ + /* PROPERTY: 'In_Tags': Block */ static const OnigCodePoint CR_In_Tags[] = { 1, @@ -25840,7 +26706,6 @@ CR_In_No_Block[] = { 51, 0x10bb0, 0x10bff, 0x10c50, 0x10c7f, 0x10d40, 0x10e5f, -0x10ec0, 0x10eff, 0x11250, 0x1127f, 0x11380, 0x113ff, 0x114e0, 0x1157f, @@ -25848,12 +26713,12 @@ CR_In_No_Block[] = { 51, 0x11750, 0x117ff, 0x11850, 0x1189f, 0x11960, 0x1199f, -0x11b00, 0x11bff, +0x11b60, 0x11bff, 0x11cc0, 0x11cff, 0x11db0, 0x11edf, -0x11f00, 0x11faf, +0x11f60, 0x11faf, 0x12550, 0x12f8f, -0x13440, 0x143ff, +0x13460, 0x143ff, 0x14680, 0x167ff, 0x16b90, 0x16e3f, 0x16ea0, 0x16eff, @@ -25862,12 +26727,13 @@ CR_In_No_Block[] = { 51, 0x1b300, 0x1bbff, 0x1bcb0, 0x1ceff, 0x1cfd0, 0x1cfff, -0x1d250, 0x1d2df, +0x1d250, 0x1d2bf, 0x1d380, 0x1d3ff, 0x1dab0, 0x1deff, -0x1e030, 0x1e0ff, +0x1e090, 0x1e0ff, 0x1e150, 0x1e28f, -0x1e300, 0x1e7df, +0x1e300, 0x1e4cf, +0x1e500, 0x1e7df, 0x1e8e0, 0x1e8ff, 0x1e960, 0x1ec6f, 0x1ecc0, 0x1ecff, @@ -25875,9 +26741,9 @@ CR_In_No_Block[] = { 51, 0x1ef00, 0x1efff, 0x1fc00, 0x1ffff, 0x2a6e0, 0x2a6ff, -0x2ebf0, 0x2f7ff, +0x2ee60, 0x2f7ff, 0x2fa20, 0x2ffff, -0x31350, 0xdffff, +0x323b0, 0xdffff, 0xe0080, 0xe00ff, 0xe01f0, 0xeffff, }; /* END of CR_In_No_Block */ @@ -25892,7 +26758,7 @@ const CodeRanges[] = { CR_Graph, CR_Lower, CR_Print, - CR_Punct, + CR_PosixPunct, CR_Space, CR_Upper, CR_XDigit, @@ -25989,10 +26855,14 @@ const CodeRanges[] = { CR_Hyphen, CR_IDS_Binary_Operator, CR_IDS_Trinary_Operator, + CR_IDS_Unary_Operator, + CR_ID_Compat_Math_Continue, + CR_ID_Compat_Math_Start, CR_ID_Continue, CR_ID_Start, CR_Ideographic, CR_Imperial_Aramaic, + CR_InCB, CR_Inherited, CR_Inscriptional_Pahlavi, CR_Inscriptional_Parthian, @@ -26001,6 +26871,7 @@ const CodeRanges[] = { CR_Kaithi, CR_Kannada, CR_Katakana, + CR_Kawi, CR_Kayah_Li, CR_Kharoshthi, CR_Khitan_Small_Script, @@ -26050,6 +26921,7 @@ const CodeRanges[] = { CR_Myanmar, CR_N, CR_Nabataean, + CR_Nag_Mundari, CR_Nandinagari, CR_Nd, CR_New_Tai_Lue, @@ -26369,6 +27241,7 @@ const CodeRanges[] = { CR_In_Hanifi_Rohingya, CR_In_Rumi_Numeral_Symbols, CR_In_Yezidi, + CR_In_Arabic_Extended_C, CR_In_Old_Sogdian, CR_In_Sogdian, CR_In_Old_Uyghur, @@ -26400,11 +27273,13 @@ const CodeRanges[] = { CR_In_Soyombo, CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A, CR_In_Pau_Cin_Hau, + CR_In_Devanagari_Extended_A, CR_In_Bhaiksuki, CR_In_Marchen, CR_In_Masaram_Gondi, CR_In_Gunjala_Gondi, CR_In_Makasar, + CR_In_Kawi, CR_In_Lisu_Supplement, CR_In_Tamil_Supplement, CR_In_Cuneiform, @@ -26437,6 +27312,7 @@ const CodeRanges[] = { CR_In_Byzantine_Musical_Symbols, CR_In_Musical_Symbols, CR_In_Ancient_Greek_Musical_Notation, + CR_In_Kaktovik_Numerals, CR_In_Mayan_Numerals, CR_In_Tai_Xuan_Jing_Symbols, CR_In_Counting_Rod_Numerals, @@ -26444,9 +27320,11 @@ const CodeRanges[] = { CR_In_Sutton_SignWriting, CR_In_Latin_Extended_G, CR_In_Glagolitic_Supplement, + CR_In_Cyrillic_Extended_D, CR_In_Nyiakeng_Puachue_Hmong, CR_In_Toto, CR_In_Wancho, + CR_In_Nag_Mundari, CR_In_Ethiopic_Extended_B, CR_In_Mende_Kikakui, CR_In_Adlam, @@ -26474,8 +27352,10 @@ const CodeRanges[] = { CR_In_CJK_Unified_Ideographs_Extension_D, CR_In_CJK_Unified_Ideographs_Extension_E, CR_In_CJK_Unified_Ideographs_Extension_F, + CR_In_CJK_Unified_Ideographs_Extension_I, CR_In_CJK_Compatibility_Ideographs_Supplement, CR_In_CJK_Unified_Ideographs_Extension_G, + CR_In_CJK_Unified_Ideographs_Extension_H, CR_In_Tags, CR_In_Variation_Selectors_Supplement, CR_In_Supplementary_Private_Use_Area_A, @@ -26486,12 +27366,12 @@ const CodeRanges[] = { #define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s) -#define TOTAL_KEYWORDS 843 +#define TOTAL_KEYWORDS 860 #define MIN_WORD_LENGTH 1 #define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 10 -#define MAX_HASH_VALUE 6176 -/* maximum key range = 6167, duplicates = 0 */ +#define MIN_HASH_VALUE 8 +#define MAX_HASH_VALUE 5964 +/* maximum key range = 5957, duplicates = 0 */ #ifndef GPERF_DOWNCASE #define GPERF_DOWNCASE 1 @@ -26550,32 +27430,32 @@ hash (register const char *str, register size_t len) { static const unsigned short asso_values[] = { - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 0, 1338, 136, 400, 19, - 1593, 1119, 864, 7, 1377, 8, 528, 103, 3, 16, - 1430, 1254, 56, 181, 326, 637, 1293, 794, 1313, 1449, - 10, 4, 7, 6177, 6177, 6177, 6177, 0, 1338, 136, - 400, 19, 1593, 1119, 864, 7, 1377, 8, 528, 103, - 3, 16, 1430, 1254, 56, 181, 326, 637, 1293, 794, - 1313, 1449, 10, 4, 7, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, - 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177 + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 0, 1145, 116, 464, 32, + 1682, 1221, 1093, 3, 1789, 8, 527, 93, 6, 13, + 1433, 873, 42, 155, 276, 634, 1788, 1480, 1004, 1251, + 29, 0, 8, 5965, 5965, 5965, 5965, 0, 1145, 116, + 464, 32, 1682, 1221, 1093, 3, 1789, 8, 527, 93, + 6, 13, 1433, 873, 42, 155, 276, 634, 1788, 1480, + 1004, 1251, 29, 0, 8, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965, + 5965, 5965, 5965, 5965, 5965, 5965, 5965, 5965 }; register unsigned int hval = (unsigned int )len; @@ -26617,1695 +27497,1729 @@ hash (register const char *str, register size_t len) struct unicode_prop_name_pool_t { - char unicode_prop_name_pool_str10[sizeof("lana")]; - char unicode_prop_name_pool_str17[sizeof("lina")]; - char unicode_prop_name_pool_str18[sizeof("z")]; - char unicode_prop_name_pool_str20[sizeof("yi")]; - char unicode_prop_name_pool_str24[sizeof("mn")]; - char unicode_prop_name_pool_str27[sizeof("cn")]; - char unicode_prop_name_pool_str28[sizeof("maka")]; - char unicode_prop_name_pool_str29[sizeof("yiii")]; - char unicode_prop_name_pool_str30[sizeof("mani")]; - char unicode_prop_name_pool_str34[sizeof("inkannada")]; - char unicode_prop_name_pool_str35[sizeof("ci")]; - char unicode_prop_name_pool_str37[sizeof("lo")]; - char unicode_prop_name_pool_str38[sizeof("lao")]; - char unicode_prop_name_pool_str39[sizeof("laoo")]; - char unicode_prop_name_pool_str41[sizeof("zzzz")]; - char unicode_prop_name_pool_str43[sizeof("miao")]; - char unicode_prop_name_pool_str44[sizeof("yezi")]; + char unicode_prop_name_pool_str8[sizeof("yi")]; + char unicode_prop_name_pool_str13[sizeof("yiii")]; + char unicode_prop_name_pool_str16[sizeof("lana")]; + char unicode_prop_name_pool_str19[sizeof("lina")]; + char unicode_prop_name_pool_str25[sizeof("maka")]; + char unicode_prop_name_pool_str26[sizeof("mani")]; + char unicode_prop_name_pool_str27[sizeof("mn")]; + char unicode_prop_name_pool_str33[sizeof("miao")]; + char unicode_prop_name_pool_str34[sizeof("lo")]; + char unicode_prop_name_pool_str35[sizeof("lao")]; + char unicode_prop_name_pool_str36[sizeof("laoo")]; + char unicode_prop_name_pool_str38[sizeof("z")]; + char unicode_prop_name_pool_str40[sizeof("ci")]; + char unicode_prop_name_pool_str43[sizeof("inkannada")]; + char unicode_prop_name_pool_str46[sizeof("cn")]; + char unicode_prop_name_pool_str50[sizeof("pi")]; char unicode_prop_name_pool_str51[sizeof("innko")]; - char unicode_prop_name_pool_str53[sizeof("co")]; - char unicode_prop_name_pool_str56[sizeof("me")]; - char unicode_prop_name_pool_str60[sizeof("loe")]; - char unicode_prop_name_pool_str70[sizeof("gran")]; - char unicode_prop_name_pool_str72[sizeof("pi")]; - char unicode_prop_name_pool_str76[sizeof("lineara")]; - char unicode_prop_name_pool_str84[sizeof("mark")]; - char unicode_prop_name_pool_str86[sizeof("cari")]; - char unicode_prop_name_pool_str87[sizeof("carian")]; - char unicode_prop_name_pool_str90[sizeof("po")]; - char unicode_prop_name_pool_str91[sizeof("mendekikakui")]; - char unicode_prop_name_pool_str94[sizeof("grek")]; - char unicode_prop_name_pool_str96[sizeof("pe")]; - char unicode_prop_name_pool_str99[sizeof("meeteimayek")]; - char unicode_prop_name_pool_str101[sizeof("inkharoshthi")]; - char unicode_prop_name_pool_str102[sizeof("geor")]; - char unicode_prop_name_pool_str103[sizeof("greek")]; - char unicode_prop_name_pool_str107[sizeof("mro")]; - char unicode_prop_name_pool_str108[sizeof("mroo")]; - char unicode_prop_name_pool_str110[sizeof("kana")]; - char unicode_prop_name_pool_str111[sizeof("mero")]; - char unicode_prop_name_pool_str120[sizeof("m")]; - char unicode_prop_name_pool_str133[sizeof("gonm")]; - char unicode_prop_name_pool_str134[sizeof("cakm")]; - char unicode_prop_name_pool_str139[sizeof("inosmanya")]; - char unicode_prop_name_pool_str142[sizeof("inmanichaean")]; - char unicode_prop_name_pool_str146[sizeof("inarmenian")]; - char unicode_prop_name_pool_str151[sizeof("inmro")]; - char unicode_prop_name_pool_str152[sizeof("inmiao")]; - char unicode_prop_name_pool_str156[sizeof("c")]; - char unicode_prop_name_pool_str163[sizeof("inchakma")]; - char unicode_prop_name_pool_str166[sizeof("common")]; - char unicode_prop_name_pool_str169[sizeof("mandaic")]; - char unicode_prop_name_pool_str182[sizeof("inmyanmar")]; - char unicode_prop_name_pool_str187[sizeof("inmakasar")]; - char unicode_prop_name_pool_str192[sizeof("qaai")]; - char unicode_prop_name_pool_str200[sizeof("inideographicsymbolsandpunctuation")]; - char unicode_prop_name_pool_str204[sizeof("inkhmer")]; - char unicode_prop_name_pool_str207[sizeof("cans")]; - char unicode_prop_name_pool_str209[sizeof("prependedconcatenationmark")]; - char unicode_prop_name_pool_str211[sizeof("lm")]; - char unicode_prop_name_pool_str212[sizeof("marc")]; - char unicode_prop_name_pool_str219[sizeof("connectorpunctuation")]; - char unicode_prop_name_pool_str220[sizeof("inrunic")]; - char unicode_prop_name_pool_str221[sizeof("incarian")]; - char unicode_prop_name_pool_str223[sizeof("inavestan")]; - char unicode_prop_name_pool_str225[sizeof("combiningmark")]; - char unicode_prop_name_pool_str226[sizeof("incuneiformnumbersandpunctuation")]; - char unicode_prop_name_pool_str231[sizeof("merc")]; - char unicode_prop_name_pool_str237[sizeof("inchorasmian")]; - char unicode_prop_name_pool_str238[sizeof("perm")]; - char unicode_prop_name_pool_str239[sizeof("inahom")]; - char unicode_prop_name_pool_str240[sizeof("inipaextensions")]; - char unicode_prop_name_pool_str251[sizeof("incherokee")]; - char unicode_prop_name_pool_str257[sizeof("insharada")]; - char unicode_prop_name_pool_str268[sizeof("makasar")]; - char unicode_prop_name_pool_str272[sizeof("inarrows")]; - char unicode_prop_name_pool_str277[sizeof("lc")]; - char unicode_prop_name_pool_str279[sizeof("masaramgondi")]; - char unicode_prop_name_pool_str283[sizeof("incuneiform")]; - char unicode_prop_name_pool_str290[sizeof("mc")]; - char unicode_prop_name_pool_str293[sizeof("cc")]; - char unicode_prop_name_pool_str297[sizeof("inzanabazarsquare")]; - char unicode_prop_name_pool_str298[sizeof("lineseparator")]; - char unicode_prop_name_pool_str302[sizeof("armn")]; - char unicode_prop_name_pool_str305[sizeof("qmark")]; - char unicode_prop_name_pool_str306[sizeof("armi")]; - char unicode_prop_name_pool_str309[sizeof("insamaritan")]; - char unicode_prop_name_pool_str316[sizeof("armenian")]; - char unicode_prop_name_pool_str318[sizeof("inmarchen")]; - char unicode_prop_name_pool_str319[sizeof("inmasaramgondi")]; - char unicode_prop_name_pool_str321[sizeof("qaac")]; - char unicode_prop_name_pool_str330[sizeof("pc")]; - char unicode_prop_name_pool_str335[sizeof("inscriptionalparthian")]; - char unicode_prop_name_pool_str336[sizeof("latn")]; - char unicode_prop_name_pool_str340[sizeof("latin")]; - char unicode_prop_name_pool_str342[sizeof("ri")]; - char unicode_prop_name_pool_str345[sizeof("inthaana")]; - char unicode_prop_name_pool_str352[sizeof("inkhmersymbols")]; - char unicode_prop_name_pool_str355[sizeof("inkatakana")]; - char unicode_prop_name_pool_str356[sizeof("incyrillic")]; - char unicode_prop_name_pool_str357[sizeof("inthai")]; - char unicode_prop_name_pool_str359[sizeof("incham")]; - char unicode_prop_name_pool_str367[sizeof("inkaithi")]; - char unicode_prop_name_pool_str371[sizeof("zs")]; - char unicode_prop_name_pool_str372[sizeof("mtei")]; - char unicode_prop_name_pool_str379[sizeof("initialpunctuation")]; - char unicode_prop_name_pool_str383[sizeof("cs")]; - char unicode_prop_name_pool_str399[sizeof("insyriac")]; - char unicode_prop_name_pool_str401[sizeof("pcm")]; - char unicode_prop_name_pool_str415[sizeof("intakri")]; - char unicode_prop_name_pool_str420[sizeof("ps")]; - char unicode_prop_name_pool_str423[sizeof("mand")]; - char unicode_prop_name_pool_str437[sizeof("inkanaextendeda")]; - char unicode_prop_name_pool_str442[sizeof("mend")]; - char unicode_prop_name_pool_str443[sizeof("modi")]; - char unicode_prop_name_pool_str445[sizeof("katakana")]; - char unicode_prop_name_pool_str447[sizeof("ideo")]; - char unicode_prop_name_pool_str449[sizeof("prti")]; - char unicode_prop_name_pool_str453[sizeof("yezidi")]; - char unicode_prop_name_pool_str456[sizeof("inideographicdescriptioncharacters")]; - char unicode_prop_name_pool_str466[sizeof("xidcontinue")]; - char unicode_prop_name_pool_str467[sizeof("brai")]; - char unicode_prop_name_pool_str472[sizeof("ascii")]; - char unicode_prop_name_pool_str474[sizeof("privateuse")]; - char unicode_prop_name_pool_str477[sizeof("arabic")]; - char unicode_prop_name_pool_str480[sizeof("inmyanmarextendeda")]; - char unicode_prop_name_pool_str481[sizeof("inruminumeralsymbols")]; - char unicode_prop_name_pool_str485[sizeof("letter")]; - char unicode_prop_name_pool_str493[sizeof("innandinagari")]; - char unicode_prop_name_pool_str499[sizeof("inmeeteimayek")]; - char unicode_prop_name_pool_str506[sizeof("inoldnortharabian")]; - char unicode_prop_name_pool_str509[sizeof("incjkcompatibilityforms")]; - char unicode_prop_name_pool_str510[sizeof("knda")]; - char unicode_prop_name_pool_str513[sizeof("kannada")]; - char unicode_prop_name_pool_str514[sizeof("incjkcompatibilityideographs")]; - char unicode_prop_name_pool_str532[sizeof("l")]; - char unicode_prop_name_pool_str534[sizeof("inmodi")]; - char unicode_prop_name_pool_str538[sizeof("inspecials")]; - char unicode_prop_name_pool_str545[sizeof("intransportandmapsymbols")]; - char unicode_prop_name_pool_str546[sizeof("inmendekikakui")]; - char unicode_prop_name_pool_str547[sizeof("letternumber")]; - char unicode_prop_name_pool_str556[sizeof("inmedefaidrin")]; - char unicode_prop_name_pool_str557[sizeof("xidc")]; - char unicode_prop_name_pool_str558[sizeof("inchesssymbols")]; - char unicode_prop_name_pool_str564[sizeof("inemoticons")]; - char unicode_prop_name_pool_str570[sizeof("inlineara")]; - char unicode_prop_name_pool_str576[sizeof("inlao")]; - char unicode_prop_name_pool_str579[sizeof("brahmi")]; - char unicode_prop_name_pool_str581[sizeof("inolditalic")]; - char unicode_prop_name_pool_str588[sizeof("inmiscellaneousmathematicalsymbolsa")]; - char unicode_prop_name_pool_str591[sizeof("mongolian")]; - char unicode_prop_name_pool_str602[sizeof("xids")]; - char unicode_prop_name_pool_str603[sizeof("psalterpahlavi")]; - char unicode_prop_name_pool_str616[sizeof("grlink")]; - char unicode_prop_name_pool_str621[sizeof("kits")]; - char unicode_prop_name_pool_str625[sizeof("insundanese")]; - char unicode_prop_name_pool_str626[sizeof("inoldsogdian")]; - char unicode_prop_name_pool_str634[sizeof("gothic")]; - char unicode_prop_name_pool_str635[sizeof("inancientsymbols")]; - char unicode_prop_name_pool_str639[sizeof("meroiticcursive")]; - char unicode_prop_name_pool_str642[sizeof("kali")]; - char unicode_prop_name_pool_str645[sizeof("control")]; - char unicode_prop_name_pool_str648[sizeof("patternwhitespace")]; - char unicode_prop_name_pool_str649[sizeof("inadlam")]; - char unicode_prop_name_pool_str655[sizeof("sk")]; - char unicode_prop_name_pool_str657[sizeof("lt")]; - char unicode_prop_name_pool_str662[sizeof("inmandaic")]; - char unicode_prop_name_pool_str668[sizeof("incommonindicnumberforms")]; - char unicode_prop_name_pool_str669[sizeof("incjkcompatibilityideographssupplement")]; - char unicode_prop_name_pool_str671[sizeof("so")]; - char unicode_prop_name_pool_str683[sizeof("idc")]; - char unicode_prop_name_pool_str684[sizeof("inoldsoutharabian")]; - char unicode_prop_name_pool_str691[sizeof("palm")]; - char unicode_prop_name_pool_str693[sizeof("inlycian")]; - char unicode_prop_name_pool_str701[sizeof("intoto")]; - char unicode_prop_name_pool_str707[sizeof("idsbinaryoperator")]; - char unicode_prop_name_pool_str709[sizeof("inkanasupplement")]; - char unicode_prop_name_pool_str710[sizeof("incjkstrokes")]; - char unicode_prop_name_pool_str713[sizeof("sora")]; - char unicode_prop_name_pool_str714[sizeof("bamum")]; - char unicode_prop_name_pool_str718[sizeof("inopticalcharacterrecognition")]; - char unicode_prop_name_pool_str734[sizeof("indominotiles")]; - char unicode_prop_name_pool_str738[sizeof("batk")]; - char unicode_prop_name_pool_str739[sizeof("grext")]; - char unicode_prop_name_pool_str747[sizeof("batak")]; - char unicode_prop_name_pool_str749[sizeof("patws")]; - char unicode_prop_name_pool_str756[sizeof("inmalayalam")]; - char unicode_prop_name_pool_str758[sizeof("inmodifiertoneletters")]; - char unicode_prop_name_pool_str765[sizeof("insmallkanaextension")]; - char unicode_prop_name_pool_str766[sizeof("bass")]; - char unicode_prop_name_pool_str773[sizeof("ids")]; - char unicode_prop_name_pool_str776[sizeof("print")]; - char unicode_prop_name_pool_str779[sizeof("inlinearbideograms")]; - char unicode_prop_name_pool_str782[sizeof("intaitham")]; - char unicode_prop_name_pool_str783[sizeof("inmusicalsymbols")]; - char unicode_prop_name_pool_str789[sizeof("inznamennymusicalnotation")]; - char unicode_prop_name_pool_str800[sizeof("samr")]; - char unicode_prop_name_pool_str812[sizeof("insylotinagri")]; - char unicode_prop_name_pool_str814[sizeof("innewa")]; - char unicode_prop_name_pool_str815[sizeof("samaritan")]; - char unicode_prop_name_pool_str819[sizeof("s")]; - char unicode_prop_name_pool_str828[sizeof("joinc")]; - char unicode_prop_name_pool_str829[sizeof("incontrolpictures")]; - char unicode_prop_name_pool_str832[sizeof("lisu")]; - char unicode_prop_name_pool_str833[sizeof("pauc")]; - char unicode_prop_name_pool_str834[sizeof("inmiscellaneoussymbols")]; - char unicode_prop_name_pool_str842[sizeof("inancientgreekmusicalnotation")]; - char unicode_prop_name_pool_str843[sizeof("inmiscellaneoussymbolsandarrows")]; - char unicode_prop_name_pool_str845[sizeof("sm")]; - char unicode_prop_name_pool_str848[sizeof("inmiscellaneoussymbolsandpictographs")]; - char unicode_prop_name_pool_str850[sizeof("inugaritic")]; - char unicode_prop_name_pool_str858[sizeof("pd")]; - char unicode_prop_name_pool_str866[sizeof("ital")]; - char unicode_prop_name_pool_str878[sizeof("alnum")]; - char unicode_prop_name_pool_str885[sizeof("zinh")]; - char unicode_prop_name_pool_str887[sizeof("inwarangciti")]; - char unicode_prop_name_pool_str891[sizeof("inlatinextendeda")]; - char unicode_prop_name_pool_str897[sizeof("insaurashtra")]; - char unicode_prop_name_pool_str898[sizeof("intaile")]; - char unicode_prop_name_pool_str900[sizeof("inoldturkic")]; - char unicode_prop_name_pool_str902[sizeof("idcontinue")]; - char unicode_prop_name_pool_str908[sizeof("inhanifirohingya")]; - char unicode_prop_name_pool_str911[sizeof("sc")]; - char unicode_prop_name_pool_str919[sizeof("idst")]; - char unicode_prop_name_pool_str929[sizeof("inlatinextendede")]; - char unicode_prop_name_pool_str930[sizeof("lower")]; - char unicode_prop_name_pool_str939[sizeof("bali")]; - char unicode_prop_name_pool_str941[sizeof("inhiragana")]; - char unicode_prop_name_pool_str945[sizeof("incaucasianalbanian")]; - char unicode_prop_name_pool_str946[sizeof("indeseret")]; - char unicode_prop_name_pool_str949[sizeof("blank")]; - char unicode_prop_name_pool_str952[sizeof("inspacingmodifierletters")]; - char unicode_prop_name_pool_str953[sizeof("cherokee")]; - char unicode_prop_name_pool_str957[sizeof("inlydian")]; - char unicode_prop_name_pool_str959[sizeof("phoenician")]; - char unicode_prop_name_pool_str962[sizeof("cher")]; - char unicode_prop_name_pool_str964[sizeof("bengali")]; - char unicode_prop_name_pool_str965[sizeof("marchen")]; - char unicode_prop_name_pool_str968[sizeof("inwancho")]; - char unicode_prop_name_pool_str974[sizeof("graphemelink")]; - char unicode_prop_name_pool_str977[sizeof("balinese")]; - char unicode_prop_name_pool_str978[sizeof("idstart")]; - char unicode_prop_name_pool_str982[sizeof("intamil")]; - char unicode_prop_name_pool_str984[sizeof("inmultani")]; - char unicode_prop_name_pool_str990[sizeof("cham")]; - char unicode_prop_name_pool_str992[sizeof("chakma")]; - char unicode_prop_name_pool_str994[sizeof("kaithi")]; - char unicode_prop_name_pool_str995[sizeof("inmahajani")]; - char unicode_prop_name_pool_str996[sizeof("graphemebase")]; - char unicode_prop_name_pool_str1001[sizeof("inogham")]; - char unicode_prop_name_pool_str1005[sizeof("cased")]; - char unicode_prop_name_pool_str1008[sizeof("inmeeteimayekextensions")]; - char unicode_prop_name_pool_str1011[sizeof("khojki")]; - char unicode_prop_name_pool_str1012[sizeof("inancientgreeknumbers")]; - char unicode_prop_name_pool_str1026[sizeof("runr")]; - char unicode_prop_name_pool_str1027[sizeof("khar")]; - char unicode_prop_name_pool_str1032[sizeof("manichaean")]; - char unicode_prop_name_pool_str1033[sizeof("lowercase")]; - char unicode_prop_name_pool_str1034[sizeof("canadianaboriginal")]; - char unicode_prop_name_pool_str1043[sizeof("inolchiki")]; - char unicode_prop_name_pool_str1044[sizeof("plrd")]; - char unicode_prop_name_pool_str1047[sizeof("inethiopic")]; - char unicode_prop_name_pool_str1051[sizeof("sind")]; - char unicode_prop_name_pool_str1056[sizeof("cwcm")]; - char unicode_prop_name_pool_str1058[sizeof("inearlydynasticcuneiform")]; - char unicode_prop_name_pool_str1061[sizeof("ll")]; - char unicode_prop_name_pool_str1065[sizeof("zl")]; - char unicode_prop_name_pool_str1068[sizeof("insinhala")]; - char unicode_prop_name_pool_str1074[sizeof("inkhudawadi")]; - char unicode_prop_name_pool_str1077[sizeof("xidstart")]; - char unicode_prop_name_pool_str1082[sizeof("xdigit")]; - char unicode_prop_name_pool_str1084[sizeof("bidic")]; - char unicode_prop_name_pool_str1093[sizeof("chorasmian")]; - char unicode_prop_name_pool_str1104[sizeof("insiddham")]; - char unicode_prop_name_pool_str1108[sizeof("incountingrodnumerals")]; - char unicode_prop_name_pool_str1123[sizeof("ahom")]; - char unicode_prop_name_pool_str1124[sizeof("chrs")]; - char unicode_prop_name_pool_str1130[sizeof("khmr")]; - char unicode_prop_name_pool_str1131[sizeof("inolduyghur")]; - char unicode_prop_name_pool_str1142[sizeof("ingrantha")]; - char unicode_prop_name_pool_str1144[sizeof("bamu")]; - char unicode_prop_name_pool_str1146[sizeof("inscriptionalpahlavi")]; - char unicode_prop_name_pool_str1149[sizeof("gong")]; - char unicode_prop_name_pool_str1158[sizeof("mong")]; - char unicode_prop_name_pool_str1163[sizeof("inlatinextendedc")]; - char unicode_prop_name_pool_str1164[sizeof("innewtailue")]; - char unicode_prop_name_pool_str1171[sizeof("adlm")]; - char unicode_prop_name_pool_str1172[sizeof("inosage")]; - char unicode_prop_name_pool_str1178[sizeof("ingeneralpunctuation")]; - char unicode_prop_name_pool_str1179[sizeof("georgian")]; - char unicode_prop_name_pool_str1181[sizeof("kharoshthi")]; - char unicode_prop_name_pool_str1182[sizeof("sinhala")]; - char unicode_prop_name_pool_str1187[sizeof("khmer")]; - char unicode_prop_name_pool_str1193[sizeof("sterm")]; - char unicode_prop_name_pool_str1195[sizeof("casedletter")]; - char unicode_prop_name_pool_str1198[sizeof("multani")]; - char unicode_prop_name_pool_str1201[sizeof("gunjalagondi")]; - char unicode_prop_name_pool_str1210[sizeof("math")]; - char unicode_prop_name_pool_str1212[sizeof("incyrillicsupplement")]; - char unicode_prop_name_pool_str1215[sizeof("ingeorgian")]; - char unicode_prop_name_pool_str1217[sizeof("goth")]; - char unicode_prop_name_pool_str1224[sizeof("incherokeesupplement")]; - char unicode_prop_name_pool_str1225[sizeof("glagolitic")]; - char unicode_prop_name_pool_str1237[sizeof("quotationmark")]; - char unicode_prop_name_pool_str1238[sizeof("uideo")]; - char unicode_prop_name_pool_str1240[sizeof("incjkunifiedideographsextensiona")]; - char unicode_prop_name_pool_str1242[sizeof("joincontrol")]; - char unicode_prop_name_pool_str1243[sizeof("runic")]; - char unicode_prop_name_pool_str1250[sizeof("inmongolian")]; - char unicode_prop_name_pool_str1257[sizeof("emoji")]; - char unicode_prop_name_pool_str1259[sizeof("incjkunifiedideographsextensione")]; - char unicode_prop_name_pool_str1260[sizeof("grantha")]; - char unicode_prop_name_pool_str1266[sizeof("intirhuta")]; - char unicode_prop_name_pool_str1268[sizeof("inhatran")]; - char unicode_prop_name_pool_str1275[sizeof("adlam")]; - char unicode_prop_name_pool_str1279[sizeof("lu")]; - char unicode_prop_name_pool_str1281[sizeof("inkhitansmallscript")]; - char unicode_prop_name_pool_str1304[sizeof("kthi")]; - char unicode_prop_name_pool_str1306[sizeof("ingurmukhi")]; - char unicode_prop_name_pool_str1308[sizeof("sundanese")]; - char unicode_prop_name_pool_str1315[sizeof("inoldhungarian")]; - char unicode_prop_name_pool_str1320[sizeof("takri")]; - char unicode_prop_name_pool_str1321[sizeof("intamilsupplement")]; - char unicode_prop_name_pool_str1322[sizeof("oriya")]; - char unicode_prop_name_pool_str1323[sizeof("invai")]; - char unicode_prop_name_pool_str1324[sizeof("brah")]; - char unicode_prop_name_pool_str1328[sizeof("inmiscellaneoustechnical")]; - char unicode_prop_name_pool_str1330[sizeof("vai")]; - char unicode_prop_name_pool_str1331[sizeof("vaii")]; - char unicode_prop_name_pool_str1334[sizeof("saur")]; - char unicode_prop_name_pool_str1341[sizeof("guru")]; - char unicode_prop_name_pool_str1343[sizeof("taile")]; - char unicode_prop_name_pool_str1347[sizeof("inherited")]; - char unicode_prop_name_pool_str1349[sizeof("paucinhau")]; - char unicode_prop_name_pool_str1352[sizeof("zanb")]; - char unicode_prop_name_pool_str1353[sizeof("punct")]; - char unicode_prop_name_pool_str1355[sizeof("linb")]; - char unicode_prop_name_pool_str1360[sizeof("gurmukhi")]; - char unicode_prop_name_pool_str1361[sizeof("takr")]; - char unicode_prop_name_pool_str1366[sizeof("innabataean")]; - char unicode_prop_name_pool_str1371[sizeof("inkanbun")]; - char unicode_prop_name_pool_str1373[sizeof("logicalorderexception")]; - char unicode_prop_name_pool_str1374[sizeof("inbhaiksuki")]; - char unicode_prop_name_pool_str1376[sizeof("incjkunifiedideographsextensionc")]; - char unicode_prop_name_pool_str1379[sizeof("graphemeextend")]; - char unicode_prop_name_pool_str1380[sizeof("inelbasan")]; - char unicode_prop_name_pool_str1383[sizeof("insorasompeng")]; - char unicode_prop_name_pool_str1386[sizeof("han")]; - char unicode_prop_name_pool_str1391[sizeof("hani")]; - char unicode_prop_name_pool_str1392[sizeof("limbu")]; - char unicode_prop_name_pool_str1395[sizeof("unassigned")]; - char unicode_prop_name_pool_str1397[sizeof("radical")]; - char unicode_prop_name_pool_str1400[sizeof("hano")]; - char unicode_prop_name_pool_str1402[sizeof("lowercaseletter")]; - char unicode_prop_name_pool_str1409[sizeof("cntrl")]; - char unicode_prop_name_pool_str1411[sizeof("incjkunifiedideographs")]; - char unicode_prop_name_pool_str1414[sizeof("linearb")]; - char unicode_prop_name_pool_str1420[sizeof("inanatolianhieroglyphs")]; - char unicode_prop_name_pool_str1422[sizeof("hanunoo")]; - char unicode_prop_name_pool_str1427[sizeof("inkhojki")]; - char unicode_prop_name_pool_str1428[sizeof("inlatinextendedadditional")]; - char unicode_prop_name_pool_str1429[sizeof("inenclosedalphanumerics")]; - char unicode_prop_name_pool_str1431[sizeof("anatolianhieroglyphs")]; - char unicode_prop_name_pool_str1434[sizeof("n")]; - char unicode_prop_name_pool_str1436[sizeof("emojimodifier")]; - char unicode_prop_name_pool_str1439[sizeof("sd")]; - char unicode_prop_name_pool_str1444[sizeof("hira")]; - char unicode_prop_name_pool_str1448[sizeof("sidd")]; - char unicode_prop_name_pool_str1455[sizeof("limb")]; - char unicode_prop_name_pool_str1457[sizeof("bhks")]; - char unicode_prop_name_pool_str1459[sizeof("phli")]; - char unicode_prop_name_pool_str1461[sizeof("nandinagari")]; - char unicode_prop_name_pool_str1464[sizeof("no")]; - char unicode_prop_name_pool_str1465[sizeof("saurashtra")]; - char unicode_prop_name_pool_str1467[sizeof("intangsa")]; - char unicode_prop_name_pool_str1468[sizeof("cwt")]; - char unicode_prop_name_pool_str1469[sizeof("bhaiksuki")]; - char unicode_prop_name_pool_str1472[sizeof("ingreekandcoptic")]; - char unicode_prop_name_pool_str1473[sizeof("nko")]; - char unicode_prop_name_pool_str1474[sizeof("nkoo")]; - char unicode_prop_name_pool_str1475[sizeof("term")]; - char unicode_prop_name_pool_str1478[sizeof("osage")]; - char unicode_prop_name_pool_str1479[sizeof("xpeo")]; - char unicode_prop_name_pool_str1481[sizeof("tnsa")]; - char unicode_prop_name_pool_str1483[sizeof("tangsa")]; - char unicode_prop_name_pool_str1484[sizeof("inkayahli")]; - char unicode_prop_name_pool_str1487[sizeof("p")]; - char unicode_prop_name_pool_str1490[sizeof("inoriya")]; - char unicode_prop_name_pool_str1492[sizeof("inyezidi")]; - char unicode_prop_name_pool_str1493[sizeof("inarabic")]; - char unicode_prop_name_pool_str1494[sizeof("inphoenician")]; - char unicode_prop_name_pool_str1497[sizeof("inshavian")]; - char unicode_prop_name_pool_str1498[sizeof("bidicontrol")]; - char unicode_prop_name_pool_str1507[sizeof("inenclosedideographicsupplement")]; - char unicode_prop_name_pool_str1509[sizeof("wara")]; - char unicode_prop_name_pool_str1511[sizeof("mult")]; - char unicode_prop_name_pool_str1514[sizeof("inmeroitichieroglyphs")]; - char unicode_prop_name_pool_str1515[sizeof("sinh")]; - char unicode_prop_name_pool_str1518[sizeof("shavian")]; - char unicode_prop_name_pool_str1526[sizeof("inkangxiradicals")]; - char unicode_prop_name_pool_str1532[sizeof("enclosingmark")]; - char unicode_prop_name_pool_str1534[sizeof("arab")]; - char unicode_prop_name_pool_str1535[sizeof("insinhalaarchaicnumbers")]; - char unicode_prop_name_pool_str1538[sizeof("braille")]; - char unicode_prop_name_pool_str1540[sizeof("inhanunoo")]; - char unicode_prop_name_pool_str1542[sizeof("osma")]; - char unicode_prop_name_pool_str1545[sizeof("beng")]; - char unicode_prop_name_pool_str1555[sizeof("inbasiclatin")]; - char unicode_prop_name_pool_str1556[sizeof("inarabicpresentationformsa")]; - char unicode_prop_name_pool_str1559[sizeof("cpmn")]; - char unicode_prop_name_pool_str1579[sizeof("regionalindicator")]; - char unicode_prop_name_pool_str1583[sizeof("inenclosedalphanumericsupplement")]; - char unicode_prop_name_pool_str1584[sizeof("emojimodifierbase")]; - char unicode_prop_name_pool_str1586[sizeof("ingreekextended")]; - char unicode_prop_name_pool_str1592[sizeof("lepc")]; - char unicode_prop_name_pool_str1593[sizeof("indogra")]; - char unicode_prop_name_pool_str1594[sizeof("format")]; - char unicode_prop_name_pool_str1599[sizeof("lyci")]; - char unicode_prop_name_pool_str1600[sizeof("lycian")]; - char unicode_prop_name_pool_str1603[sizeof("dia")]; - char unicode_prop_name_pool_str1605[sizeof("inphaistosdisc")]; - char unicode_prop_name_pool_str1609[sizeof("di")]; - char unicode_prop_name_pool_str1612[sizeof("diak")]; - char unicode_prop_name_pool_str1625[sizeof("unknown")]; - char unicode_prop_name_pool_str1626[sizeof("grbase")]; - char unicode_prop_name_pool_str1628[sizeof("mymr")]; - char unicode_prop_name_pool_str1631[sizeof("myanmar")]; - char unicode_prop_name_pool_str1640[sizeof("incjkunifiedideographsextensiond")]; - char unicode_prop_name_pool_str1642[sizeof("emod")]; - char unicode_prop_name_pool_str1647[sizeof("ingeometricshapes")]; - char unicode_prop_name_pool_str1649[sizeof("incyprominoan")]; - char unicode_prop_name_pool_str1651[sizeof("insundanesesupplement")]; - char unicode_prop_name_pool_str1655[sizeof("toto")]; - char unicode_prop_name_pool_str1658[sizeof("glag")]; - char unicode_prop_name_pool_str1659[sizeof("taiviet")]; - char unicode_prop_name_pool_str1670[sizeof("asciihexdigit")]; - char unicode_prop_name_pool_str1671[sizeof("odi")]; - char unicode_prop_name_pool_str1673[sizeof("punctuation")]; - char unicode_prop_name_pool_str1677[sizeof("vs")]; - char unicode_prop_name_pool_str1681[sizeof("sund")]; - char unicode_prop_name_pool_str1682[sizeof("insoyombo")]; - char unicode_prop_name_pool_str1683[sizeof("inimperialaramaic")]; - char unicode_prop_name_pool_str1690[sizeof("inbatak")]; - char unicode_prop_name_pool_str1691[sizeof("inlatinextendedd")]; - char unicode_prop_name_pool_str1703[sizeof("innushu")]; - char unicode_prop_name_pool_str1706[sizeof("intibetan")]; - char unicode_prop_name_pool_str1710[sizeof("inlowsurrogates")]; - char unicode_prop_name_pool_str1715[sizeof("hatran")]; - char unicode_prop_name_pool_str1716[sizeof("inblockelements")]; - char unicode_prop_name_pool_str1723[sizeof("insogdian")]; - char unicode_prop_name_pool_str1724[sizeof("indingbats")]; - char unicode_prop_name_pool_str1727[sizeof("inelymaic")]; - char unicode_prop_name_pool_str1730[sizeof("indevanagari")]; - char unicode_prop_name_pool_str1740[sizeof("emojicomponent")]; - char unicode_prop_name_pool_str1744[sizeof("inkatakanaphoneticextensions")]; - char unicode_prop_name_pool_str1749[sizeof("ideographic")]; - char unicode_prop_name_pool_str1750[sizeof("coptic")]; - char unicode_prop_name_pool_str1752[sizeof("innumberforms")]; - char unicode_prop_name_pool_str1763[sizeof("hatr")]; - char unicode_prop_name_pool_str1772[sizeof("incjkcompatibility")]; - char unicode_prop_name_pool_str1775[sizeof("inkanaextendedb")]; - char unicode_prop_name_pool_str1783[sizeof("patternsyntax")]; - char unicode_prop_name_pool_str1784[sizeof("avestan")]; - char unicode_prop_name_pool_str1785[sizeof("inarabicextendeda")]; - char unicode_prop_name_pool_str1789[sizeof("sogdian")]; - char unicode_prop_name_pool_str1792[sizeof("sogo")]; - char unicode_prop_name_pool_str1793[sizeof("intangut")]; - char unicode_prop_name_pool_str1795[sizeof("copt")]; - char unicode_prop_name_pool_str1796[sizeof("graph")]; - char unicode_prop_name_pool_str1801[sizeof("oidc")]; - char unicode_prop_name_pool_str1804[sizeof("inbyzantinemusicalsymbols")]; - char unicode_prop_name_pool_str1807[sizeof("ininscriptionalparthian")]; - char unicode_prop_name_pool_str1808[sizeof("diacritic")]; - char unicode_prop_name_pool_str1810[sizeof("ininscriptionalpahlavi")]; - char unicode_prop_name_pool_str1815[sizeof("inmayannumerals")]; - char unicode_prop_name_pool_str1818[sizeof("inmyanmarextendedb")]; - char unicode_prop_name_pool_str1824[sizeof("intags")]; - char unicode_prop_name_pool_str1825[sizeof("java")]; - char unicode_prop_name_pool_str1835[sizeof("cprt")]; - char unicode_prop_name_pool_str1837[sizeof("nand")]; - char unicode_prop_name_pool_str1843[sizeof("patsyn")]; - char unicode_prop_name_pool_str1844[sizeof("tale")]; - char unicode_prop_name_pool_str1846[sizeof("oids")]; - char unicode_prop_name_pool_str1856[sizeof("sentenceterminal")]; - char unicode_prop_name_pool_str1858[sizeof("imperialaramaic")]; - char unicode_prop_name_pool_str1862[sizeof("terminalpunctuation")]; - char unicode_prop_name_pool_str1863[sizeof("lydi")]; - char unicode_prop_name_pool_str1864[sizeof("lydian")]; - char unicode_prop_name_pool_str1866[sizeof("bopo")]; - char unicode_prop_name_pool_str1870[sizeof("javanese")]; - char unicode_prop_name_pool_str1872[sizeof("cwl")]; - char unicode_prop_name_pool_str1874[sizeof("ingeometricshapesextended")]; - char unicode_prop_name_pool_str1875[sizeof("inoldpersian")]; - char unicode_prop_name_pool_str1878[sizeof("inornamentaldingbats")]; - char unicode_prop_name_pool_str1883[sizeof("inbraillepatterns")]; - char unicode_prop_name_pool_str1885[sizeof("invariationselectors")]; - char unicode_prop_name_pool_str1886[sizeof("caseignorable")]; - char unicode_prop_name_pool_str1890[sizeof("inyiradicals")]; - char unicode_prop_name_pool_str1897[sizeof("innoblock")]; - char unicode_prop_name_pool_str1898[sizeof("inverticalforms")]; - char unicode_prop_name_pool_str1903[sizeof("inethiopicsupplement")]; - char unicode_prop_name_pool_str1908[sizeof("sharada")]; - char unicode_prop_name_pool_str1913[sizeof("inbalinese")]; - char unicode_prop_name_pool_str1915[sizeof("invedicextensions")]; - char unicode_prop_name_pool_str1925[sizeof("word")]; - char unicode_prop_name_pool_str1926[sizeof("inmiscellaneousmathematicalsymbolsb")]; - char unicode_prop_name_pool_str1928[sizeof("taml")]; - char unicode_prop_name_pool_str1930[sizeof("olck")]; - char unicode_prop_name_pool_str1931[sizeof("idsb")]; - char unicode_prop_name_pool_str1935[sizeof("olower")]; - char unicode_prop_name_pool_str1939[sizeof("decimalnumber")]; - char unicode_prop_name_pool_str1940[sizeof("avst")]; - char unicode_prop_name_pool_str1942[sizeof("incyrillicextendeda")]; - char unicode_prop_name_pool_str1947[sizeof("olchiki")]; - char unicode_prop_name_pool_str1961[sizeof("shrd")]; - char unicode_prop_name_pool_str1964[sizeof("intaixuanjingsymbols")]; - char unicode_prop_name_pool_str1972[sizeof("intaiviet")]; - char unicode_prop_name_pool_str1973[sizeof("ugar")]; - char unicode_prop_name_pool_str1976[sizeof("incjksymbolsandpunctuation")]; - char unicode_prop_name_pool_str1989[sizeof("bopomofo")]; - char unicode_prop_name_pool_str2000[sizeof("inlisu")]; - char unicode_prop_name_pool_str2004[sizeof("inoldpermic")]; - char unicode_prop_name_pool_str2018[sizeof("siddham")]; - char unicode_prop_name_pool_str2019[sizeof("zanabazarsquare")]; - char unicode_prop_name_pool_str2028[sizeof("assigned")]; - char unicode_prop_name_pool_str2032[sizeof("medf")]; - char unicode_prop_name_pool_str2034[sizeof("closepunctuation")]; - char unicode_prop_name_pool_str2035[sizeof("sarb")]; - char unicode_prop_name_pool_str2036[sizeof("sorasompeng")]; - char unicode_prop_name_pool_str2040[sizeof("invariationselectorssupplement")]; - char unicode_prop_name_pool_str2041[sizeof("inhanguljamo")]; - char unicode_prop_name_pool_str2042[sizeof("medefaidrin")]; - char unicode_prop_name_pool_str2043[sizeof("phag")]; - char unicode_prop_name_pool_str2044[sizeof("inlisusupplement")]; - char unicode_prop_name_pool_str2047[sizeof("incoptic")]; - char unicode_prop_name_pool_str2048[sizeof("insyriacsupplement")]; - char unicode_prop_name_pool_str2053[sizeof("inhanguljamoextendeda")]; - char unicode_prop_name_pool_str2056[sizeof("cyrl")]; - char unicode_prop_name_pool_str2063[sizeof("inshorthandformatcontrols")]; - char unicode_prop_name_pool_str2078[sizeof("incyrillicextendedc")]; - char unicode_prop_name_pool_str2081[sizeof("gujr")]; - char unicode_prop_name_pool_str2090[sizeof("cwu")]; - char unicode_prop_name_pool_str2092[sizeof("gujarati")]; - char unicode_prop_name_pool_str2096[sizeof("spacingmark")]; - char unicode_prop_name_pool_str2099[sizeof("alpha")]; - char unicode_prop_name_pool_str2100[sizeof("mlym")]; - char unicode_prop_name_pool_str2102[sizeof("inpalmyrene")]; - char unicode_prop_name_pool_str2105[sizeof("malayalam")]; - char unicode_prop_name_pool_str2110[sizeof("space")]; - char unicode_prop_name_pool_str2113[sizeof("inlepcha")]; - char unicode_prop_name_pool_str2117[sizeof("palmyrene")]; - char unicode_prop_name_pool_str2122[sizeof("soyo")]; - char unicode_prop_name_pool_str2129[sizeof("meroitichieroglyphs")]; - char unicode_prop_name_pool_str2145[sizeof("xsux")]; - char unicode_prop_name_pool_str2147[sizeof("intelugu")]; - char unicode_prop_name_pool_str2150[sizeof("indevanagariextended")]; - char unicode_prop_name_pool_str2152[sizeof("inmeroiticcursive")]; - char unicode_prop_name_pool_str2160[sizeof("dsrt")]; - char unicode_prop_name_pool_str2161[sizeof("thaa")]; - char unicode_prop_name_pool_str2166[sizeof("thaana")]; - char unicode_prop_name_pool_str2167[sizeof("bugi")]; - char unicode_prop_name_pool_str2168[sizeof("thai")]; - char unicode_prop_name_pool_str2176[sizeof("sogd")]; - char unicode_prop_name_pool_str2178[sizeof("titlecaseletter")]; - char unicode_prop_name_pool_str2182[sizeof("inmathematicalalphanumericsymbols")]; - char unicode_prop_name_pool_str2186[sizeof("orkh")]; - char unicode_prop_name_pool_str2195[sizeof("caucasianalbanian")]; - char unicode_prop_name_pool_str2199[sizeof("inbamum")]; - char unicode_prop_name_pool_str2201[sizeof("deseret")]; - char unicode_prop_name_pool_str2204[sizeof("ingeorgiansupplement")]; - char unicode_prop_name_pool_str2205[sizeof("buginese")]; - char unicode_prop_name_pool_str2207[sizeof("separator")]; - char unicode_prop_name_pool_str2213[sizeof("insmallformvariants")]; - char unicode_prop_name_pool_str2224[sizeof("tirh")]; - char unicode_prop_name_pool_str2228[sizeof("inbrahmi")]; - char unicode_prop_name_pool_str2232[sizeof("nd")]; - char unicode_prop_name_pool_str2240[sizeof("phnx")]; - char unicode_prop_name_pool_str2247[sizeof("newa")]; - char unicode_prop_name_pool_str2252[sizeof("incombiningdiacriticalmarks")]; - char unicode_prop_name_pool_str2261[sizeof("mahj")]; - char unicode_prop_name_pool_str2262[sizeof("incombiningdiacriticalmarksforsymbols")]; - char unicode_prop_name_pool_str2270[sizeof("oldpersian")]; - char unicode_prop_name_pool_str2272[sizeof("mahajani")]; - char unicode_prop_name_pool_str2274[sizeof("taitham")]; - char unicode_prop_name_pool_str2278[sizeof("newtailue")]; - char unicode_prop_name_pool_str2279[sizeof("newline")]; - char unicode_prop_name_pool_str2282[sizeof("syrc")]; - char unicode_prop_name_pool_str2292[sizeof("inmongoliansupplement")]; - char unicode_prop_name_pool_str2296[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")]; - char unicode_prop_name_pool_str2299[sizeof("shaw")]; - char unicode_prop_name_pool_str2305[sizeof("buhd")]; - char unicode_prop_name_pool_str2306[sizeof("vithkuqi")]; - char unicode_prop_name_pool_str2307[sizeof("number")]; - char unicode_prop_name_pool_str2311[sizeof("insuttonsignwriting")]; - char unicode_prop_name_pool_str2312[sizeof("variationselector")]; - char unicode_prop_name_pool_str2320[sizeof("ethi")]; - char unicode_prop_name_pool_str2322[sizeof("lepcha")]; - char unicode_prop_name_pool_str2326[sizeof("tirhuta")]; - char unicode_prop_name_pool_str2329[sizeof("rohg")]; - char unicode_prop_name_pool_str2336[sizeof("ahex")]; - char unicode_prop_name_pool_str2343[sizeof("incopticepactnumbers")]; - char unicode_prop_name_pool_str2354[sizeof("wancho")]; - char unicode_prop_name_pool_str2359[sizeof("incjkunifiedideographsextensiong")]; - char unicode_prop_name_pool_str2364[sizeof("khoj")]; - char unicode_prop_name_pool_str2371[sizeof("cuneiform")]; - char unicode_prop_name_pool_str2382[sizeof("induployan")]; - char unicode_prop_name_pool_str2390[sizeof("ugaritic")]; - char unicode_prop_name_pool_str2391[sizeof("insymbolsandpictographsextendeda")]; - char unicode_prop_name_pool_str2402[sizeof("oldpermic")]; - char unicode_prop_name_pool_str2407[sizeof("incombiningdiacriticalmarkssupplement")]; - char unicode_prop_name_pool_str2414[sizeof("khudawadi")]; - char unicode_prop_name_pool_str2419[sizeof("tang")]; - char unicode_prop_name_pool_str2420[sizeof("syriac")]; - char unicode_prop_name_pool_str2423[sizeof("tagbanwa")]; - char unicode_prop_name_pool_str2428[sizeof("modifierletter")]; - char unicode_prop_name_pool_str2434[sizeof("incurrencysymbols")]; - char unicode_prop_name_pool_str2436[sizeof("innyiakengpuachuehmong")]; - char unicode_prop_name_pool_str2457[sizeof("tamil")]; - char unicode_prop_name_pool_str2462[sizeof("talu")]; - char unicode_prop_name_pool_str2464[sizeof("ingothic")]; - char unicode_prop_name_pool_str2468[sizeof("inunifiedcanadianaboriginalsyllabics")]; - char unicode_prop_name_pool_str2469[sizeof("wcho")]; - char unicode_prop_name_pool_str2479[sizeof("incombiningdiacriticalmarksextended")]; - char unicode_prop_name_pool_str2480[sizeof("ogam")]; - char unicode_prop_name_pool_str2481[sizeof("telu")]; - char unicode_prop_name_pool_str2482[sizeof("idstrinaryoperator")]; - char unicode_prop_name_pool_str2487[sizeof("inbengali")]; - char unicode_prop_name_pool_str2488[sizeof("nl")]; - char unicode_prop_name_pool_str2493[sizeof("surrogate")]; - char unicode_prop_name_pool_str2500[sizeof("ebase")]; - char unicode_prop_name_pool_str2503[sizeof("hang")]; - char unicode_prop_name_pool_str2504[sizeof("inbuginese")]; - char unicode_prop_name_pool_str2510[sizeof("mathsymbol")]; - char unicode_prop_name_pool_str2511[sizeof("invithkuqi")]; - char unicode_prop_name_pool_str2514[sizeof("vith")]; - char unicode_prop_name_pool_str2518[sizeof("incjkradicalssupplement")]; - char unicode_prop_name_pool_str2524[sizeof("ingujarati")]; - char unicode_prop_name_pool_str2533[sizeof("inglagolitic")]; - char unicode_prop_name_pool_str2534[sizeof("ingunjalagondi")]; - char unicode_prop_name_pool_str2538[sizeof("phagspa")]; - char unicode_prop_name_pool_str2546[sizeof("cwcf")]; - char unicode_prop_name_pool_str2547[sizeof("nchar")]; - char unicode_prop_name_pool_str2548[sizeof("otheridcontinue")]; - char unicode_prop_name_pool_str2549[sizeof("whitespace")]; - char unicode_prop_name_pool_str2556[sizeof("inlinearbsyllabary")]; - char unicode_prop_name_pool_str2557[sizeof("sgnw")]; - char unicode_prop_name_pool_str2561[sizeof("other")]; - char unicode_prop_name_pool_str2567[sizeof("hiragana")]; - char unicode_prop_name_pool_str2569[sizeof("inphagspa")]; - char unicode_prop_name_pool_str2570[sizeof("othernumber")]; - char unicode_prop_name_pool_str2571[sizeof("inrejang")]; - char unicode_prop_name_pool_str2577[sizeof("osge")]; - char unicode_prop_name_pool_str2578[sizeof("incjkunifiedideographsextensionb")]; - char unicode_prop_name_pool_str2584[sizeof("intagalog")]; - char unicode_prop_name_pool_str2585[sizeof("inbassavah")]; - char unicode_prop_name_pool_str2591[sizeof("tangut")]; - char unicode_prop_name_pool_str2606[sizeof("hmng")]; - char unicode_prop_name_pool_str2607[sizeof("inenclosedcjklettersandmonths")]; - char unicode_prop_name_pool_str2614[sizeof("currencysymbol")]; - char unicode_prop_name_pool_str2624[sizeof("inlimbu")]; - char unicode_prop_name_pool_str2627[sizeof("inbuhid")]; - char unicode_prop_name_pool_str2633[sizeof("inethiopicextendeda")]; - char unicode_prop_name_pool_str2634[sizeof("sylo")]; - char unicode_prop_name_pool_str2642[sizeof("dash")]; - char unicode_prop_name_pool_str2644[sizeof("warangciti")]; - char unicode_prop_name_pool_str2652[sizeof("oalpha")]; - char unicode_prop_name_pool_str2653[sizeof("olditalic")]; - char unicode_prop_name_pool_str2657[sizeof("inottomansiyaqnumbers")]; - char unicode_prop_name_pool_str2663[sizeof("spaceseparator")]; - char unicode_prop_name_pool_str2665[sizeof("inlatin1supplement")]; - char unicode_prop_name_pool_str2670[sizeof("otheralphabetic")]; - char unicode_prop_name_pool_str2681[sizeof("changeswhencasemapped")]; - char unicode_prop_name_pool_str2683[sizeof("inaegeannumbers")]; - char unicode_prop_name_pool_str2695[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; - char unicode_prop_name_pool_str2706[sizeof("buhid")]; - char unicode_prop_name_pool_str2710[sizeof("injavanese")]; - char unicode_prop_name_pool_str2724[sizeof("cyrillic")]; - char unicode_prop_name_pool_str2733[sizeof("dogra")]; - char unicode_prop_name_pool_str2735[sizeof("noncharactercodepoint")]; - char unicode_prop_name_pool_str2742[sizeof("inhangulsyllables")]; - char unicode_prop_name_pool_str2746[sizeof("bassavah")]; - char unicode_prop_name_pool_str2748[sizeof("inletterlikesymbols")]; - char unicode_prop_name_pool_str2756[sizeof("incombininghalfmarks")]; - char unicode_prop_name_pool_str2757[sizeof("inarabicmathematicalalphabeticsymbols")]; - char unicode_prop_name_pool_str2763[sizeof("orya")]; - char unicode_prop_name_pool_str2776[sizeof("inprivateusearea")]; - char unicode_prop_name_pool_str2787[sizeof("changeswhentitlecased")]; - char unicode_prop_name_pool_str2788[sizeof("dogr")]; - char unicode_prop_name_pool_str2794[sizeof("hebr")]; - char unicode_prop_name_pool_str2804[sizeof("intagbanwa")]; - char unicode_prop_name_pool_str2811[sizeof("intifinagh")]; - char unicode_prop_name_pool_str2821[sizeof("inbopomofo")]; - char unicode_prop_name_pool_str2828[sizeof("narb")]; - char unicode_prop_name_pool_str2829[sizeof("rjng")]; - char unicode_prop_name_pool_str2832[sizeof("inalphabeticpresentationforms")]; - char unicode_prop_name_pool_str2833[sizeof("incjkunifiedideographsextensionf")]; - char unicode_prop_name_pool_str2835[sizeof("insymbolsforlegacycomputing")]; - char unicode_prop_name_pool_str2840[sizeof("oldhungarian")]; - char unicode_prop_name_pool_str2854[sizeof("finalpunctuation")]; - char unicode_prop_name_pool_str2862[sizeof("inpaucinhau")]; - char unicode_prop_name_pool_str2863[sizeof("inpsalterpahlavi")]; - char unicode_prop_name_pool_str2869[sizeof("zp")]; - char unicode_prop_name_pool_str2882[sizeof("phlp")]; - char unicode_prop_name_pool_str2894[sizeof("inarabicpresentationformsb")]; - char unicode_prop_name_pool_str2901[sizeof("nonspacingmark")]; - char unicode_prop_name_pool_str2909[sizeof("deva")]; - char unicode_prop_name_pool_str2916[sizeof("tavt")]; - char unicode_prop_name_pool_str2917[sizeof("hmnp")]; - char unicode_prop_name_pool_str2925[sizeof("devanagari")]; - char unicode_prop_name_pool_str2931[sizeof("khitansmallscript")]; - char unicode_prop_name_pool_str2958[sizeof("kayahli")]; - char unicode_prop_name_pool_str2963[sizeof("inbamumsupplement")]; - char unicode_prop_name_pool_str2965[sizeof("sylotinagri")]; - char unicode_prop_name_pool_str2968[sizeof("tibt")]; - char unicode_prop_name_pool_str2972[sizeof("epres")]; - char unicode_prop_name_pool_str2974[sizeof("tibetan")]; - char unicode_prop_name_pool_str2989[sizeof("elba")]; - char unicode_prop_name_pool_str2997[sizeof("osmanya")]; - char unicode_prop_name_pool_str3009[sizeof("indivesakuru")]; - char unicode_prop_name_pool_str3020[sizeof("oldturkic")]; - char unicode_prop_name_pool_str3026[sizeof("changeswhenlowercased")]; - char unicode_prop_name_pool_str3031[sizeof("cyprominoan")]; - char unicode_prop_name_pool_str3032[sizeof("inethiopicextended")]; - char unicode_prop_name_pool_str3037[sizeof("emojipresentation")]; - char unicode_prop_name_pool_str3040[sizeof("any")]; - char unicode_prop_name_pool_str3061[sizeof("otherlowercase")]; - char unicode_prop_name_pool_str3070[sizeof("ougr")]; - char unicode_prop_name_pool_str3071[sizeof("inhebrew")]; - char unicode_prop_name_pool_str3072[sizeof("softdotted")]; - char unicode_prop_name_pool_str3074[sizeof("inmathematicaloperators")]; - char unicode_prop_name_pool_str3077[sizeof("inalchemicalsymbols")]; - char unicode_prop_name_pool_str3078[sizeof("inmahjongtiles")]; - char unicode_prop_name_pool_str3079[sizeof("hangul")]; - char unicode_prop_name_pool_str3087[sizeof("ext")]; - char unicode_prop_name_pool_str3090[sizeof("omath")]; - char unicode_prop_name_pool_str3091[sizeof("intangutcomponents")]; - char unicode_prop_name_pool_str3095[sizeof("otherletter")]; - char unicode_prop_name_pool_str3098[sizeof("nbat")]; - char unicode_prop_name_pool_str3106[sizeof("nabataean")]; - char unicode_prop_name_pool_str3116[sizeof("nshu")]; - char unicode_prop_name_pool_str3117[sizeof("paragraphseparator")]; - char unicode_prop_name_pool_str3123[sizeof("inarabicextendedb")]; - char unicode_prop_name_pool_str3129[sizeof("inlatinextendedg")]; - char unicode_prop_name_pool_str3135[sizeof("changeswhenuppercased")]; - char unicode_prop_name_pool_str3140[sizeof("hung")]; - char unicode_prop_name_pool_str3141[sizeof("inplayingcards")]; - char unicode_prop_name_pool_str3142[sizeof("inarabicsupplement")]; - char unicode_prop_name_pool_str3151[sizeof("inyijinghexagramsymbols")]; - char unicode_prop_name_pool_str3155[sizeof("inphoneticextensions")]; - char unicode_prop_name_pool_str3170[sizeof("otheruppercase")]; - char unicode_prop_name_pool_str3171[sizeof("otheridstart")]; - char unicode_prop_name_pool_str3176[sizeof("elbasan")]; - char unicode_prop_name_pool_str3203[sizeof("elym")]; - char unicode_prop_name_pool_str3207[sizeof("cf")]; - char unicode_prop_name_pool_str3217[sizeof("inindicsiyaqnumbers")]; - char unicode_prop_name_pool_str3220[sizeof("othersymbol")]; - char unicode_prop_name_pool_str3225[sizeof("extender")]; - char unicode_prop_name_pool_str3234[sizeof("extpict")]; - char unicode_prop_name_pool_str3240[sizeof("wspace")]; - char unicode_prop_name_pool_str3244[sizeof("pf")]; - char unicode_prop_name_pool_str3246[sizeof("elymaic")]; - char unicode_prop_name_pool_str3252[sizeof("intangutsupplement")]; - char unicode_prop_name_pool_str3254[sizeof("cypriot")]; - char unicode_prop_name_pool_str3267[sizeof("symbol")]; - char unicode_prop_name_pool_str3280[sizeof("incyrillicextendedb")]; - char unicode_prop_name_pool_str3282[sizeof("insuperscriptsandsubscripts")]; - char unicode_prop_name_pool_str3303[sizeof("inyisyllables")]; - char unicode_prop_name_pool_str3310[sizeof("inphoneticextensionssupplement")]; - char unicode_prop_name_pool_str3330[sizeof("oldsogdian")]; - char unicode_prop_name_pool_str3333[sizeof("ingeorgianextended")]; - char unicode_prop_name_pool_str3340[sizeof("hluw")]; - char unicode_prop_name_pool_str3376[sizeof("digit")]; - char unicode_prop_name_pool_str3391[sizeof("inhanguljamoextendedb")]; - char unicode_prop_name_pool_str3410[sizeof("inhighprivateusesurrogates")]; - char unicode_prop_name_pool_str3440[sizeof("inpahawhhmong")]; - char unicode_prop_name_pool_str3448[sizeof("ogham")]; - char unicode_prop_name_pool_str3455[sizeof("insupplementalarrowsa")]; - char unicode_prop_name_pool_str3458[sizeof("oupper")]; - char unicode_prop_name_pool_str3461[sizeof("aghb")]; - char unicode_prop_name_pool_str3476[sizeof("othermath")]; - char unicode_prop_name_pool_str3527[sizeof("nushu")]; - char unicode_prop_name_pool_str3566[sizeof("soyombo")]; - char unicode_prop_name_pool_str3567[sizeof("inlatinextendedb")]; - char unicode_prop_name_pool_str3578[sizeof("alphabetic")]; - char unicode_prop_name_pool_str3591[sizeof("insupplementalarrowsc")]; - char unicode_prop_name_pool_str3594[sizeof("insupplementalmathematicaloperators")]; - char unicode_prop_name_pool_str3598[sizeof("otherdefaultignorablecodepoint")]; - char unicode_prop_name_pool_str3607[sizeof("deprecated")]; - char unicode_prop_name_pool_str3610[sizeof("oldnortharabian")]; - char unicode_prop_name_pool_str3628[sizeof("incypriotsyllabary")]; - char unicode_prop_name_pool_str3643[sizeof("extendedpictographic")]; - char unicode_prop_name_pool_str3693[sizeof("unifiedideograph")]; - char unicode_prop_name_pool_str3708[sizeof("pahawhhmong")]; - char unicode_prop_name_pool_str3721[sizeof("divesakuru")]; - char unicode_prop_name_pool_str3743[sizeof("signwriting")]; - char unicode_prop_name_pool_str3754[sizeof("tagb")]; - char unicode_prop_name_pool_str3768[sizeof("tifinagh")]; - char unicode_prop_name_pool_str3771[sizeof("upper")]; - char unicode_prop_name_pool_str3842[sizeof("inhalfwidthandfullwidthforms")]; - char unicode_prop_name_pool_str3874[sizeof("uppercase")]; - char unicode_prop_name_pool_str3899[sizeof("ethiopic")]; - char unicode_prop_name_pool_str3912[sizeof("modifiersymbol")]; - char unicode_prop_name_pool_str3952[sizeof("otherpunctuation")]; - char unicode_prop_name_pool_str3969[sizeof("rejang")]; - char unicode_prop_name_pool_str3971[sizeof("inethiopicextendedb")]; - char unicode_prop_name_pool_str4012[sizeof("tfng")]; - char unicode_prop_name_pool_str4025[sizeof("hex")]; - char unicode_prop_name_pool_str4043[sizeof("insupplementalpunctuation")]; - char unicode_prop_name_pool_str4063[sizeof("tglg")]; - char unicode_prop_name_pool_str4077[sizeof("inlatinextendedf")]; - char unicode_prop_name_pool_str4082[sizeof("tagalog")]; - char unicode_prop_name_pool_str4113[sizeof("hanifirohingya")]; - char unicode_prop_name_pool_str4136[sizeof("ecomp")]; - char unicode_prop_name_pool_str4163[sizeof("inglagoliticsupplement")]; - char unicode_prop_name_pool_str4169[sizeof("hexdigit")]; - char unicode_prop_name_pool_str4171[sizeof("changeswhencasefolded")]; - char unicode_prop_name_pool_str4185[sizeof("dashpunctuation")]; - char unicode_prop_name_pool_str4191[sizeof("oldsoutharabian")]; - char unicode_prop_name_pool_str4192[sizeof("dupl")]; - char unicode_prop_name_pool_str4237[sizeof("inegyptianhieroglyphs")]; - char unicode_prop_name_pool_str4239[sizeof("telugu")]; - char unicode_prop_name_pool_str4243[sizeof("uppercaseletter")]; - char unicode_prop_name_pool_str4250[sizeof("inegyptianhieroglyphformatcontrols")]; - char unicode_prop_name_pool_str4287[sizeof("hyphen")]; - char unicode_prop_name_pool_str4347[sizeof("hebrew")]; - char unicode_prop_name_pool_str4355[sizeof("inhighsurrogates")]; - char unicode_prop_name_pool_str4358[sizeof("zyyy")]; - char unicode_prop_name_pool_str4400[sizeof("ogrext")]; - char unicode_prop_name_pool_str4467[sizeof("othergraphemeextend")]; - char unicode_prop_name_pool_str4475[sizeof("dep")]; - char unicode_prop_name_pool_str4793[sizeof("insupplementalarrowsb")]; - char unicode_prop_name_pool_str4796[sizeof("defaultignorablecodepoint")]; - char unicode_prop_name_pool_str4806[sizeof("inhangulcompatibilityjamo")]; - char unicode_prop_name_pool_str4815[sizeof("olduyghur")]; - char unicode_prop_name_pool_str4838[sizeof("insupplementaryprivateuseareaa")]; - char unicode_prop_name_pool_str4926[sizeof("inbopomofoextended")]; - char unicode_prop_name_pool_str5043[sizeof("insupplementalsymbolsandpictographs")]; - char unicode_prop_name_pool_str5052[sizeof("nyiakengpuachuehmong")]; - char unicode_prop_name_pool_str5114[sizeof("openpunctuation")]; - char unicode_prop_name_pool_str5121[sizeof("egyp")]; - char unicode_prop_name_pool_str5136[sizeof("duployan")]; - char unicode_prop_name_pool_str5312[sizeof("inboxdrawing")]; - char unicode_prop_name_pool_str5725[sizeof("egyptianhieroglyphs")]; - char unicode_prop_name_pool_str6176[sizeof("insupplementaryprivateuseareab")]; + char unicode_prop_name_pool_str55[sizeof("gran")]; + char unicode_prop_name_pool_str60[sizeof("co")]; + char unicode_prop_name_pool_str64[sizeof("lineara")]; + char unicode_prop_name_pool_str67[sizeof("mark")]; + char unicode_prop_name_pool_str68[sizeof("yezi")]; + char unicode_prop_name_pool_str70[sizeof("po")]; + char unicode_prop_name_pool_str79[sizeof("me")]; + char unicode_prop_name_pool_str81[sizeof("cari")]; + char unicode_prop_name_pool_str82[sizeof("inkharoshthi")]; + char unicode_prop_name_pool_str84[sizeof("mro")]; + char unicode_prop_name_pool_str85[sizeof("mroo")]; + char unicode_prop_name_pool_str86[sizeof("loe")]; + char unicode_prop_name_pool_str89[sizeof("grek")]; + char unicode_prop_name_pool_str92[sizeof("carian")]; + char unicode_prop_name_pool_str94[sizeof("geor")]; + char unicode_prop_name_pool_str98[sizeof("greek")]; + char unicode_prop_name_pool_str99[sizeof("zzzz")]; + char unicode_prop_name_pool_str103[sizeof("kana")]; + char unicode_prop_name_pool_str104[sizeof("mero")]; + char unicode_prop_name_pool_str107[sizeof("m")]; + char unicode_prop_name_pool_str108[sizeof("pe")]; + char unicode_prop_name_pool_str109[sizeof("mendekikakui")]; + char unicode_prop_name_pool_str119[sizeof("gonm")]; + char unicode_prop_name_pool_str129[sizeof("inosmanya")]; + char unicode_prop_name_pool_str131[sizeof("meeteimayek")]; + char unicode_prop_name_pool_str137[sizeof("cakm")]; + char unicode_prop_name_pool_str138[sizeof("inmro")]; + char unicode_prop_name_pool_str139[sizeof("inmiao")]; + char unicode_prop_name_pool_str140[sizeof("inmanichaean")]; + char unicode_prop_name_pool_str145[sizeof("mandaic")]; + char unicode_prop_name_pool_str146[sizeof("inchakma")]; + char unicode_prop_name_pool_str149[sizeof("c")]; + char unicode_prop_name_pool_str155[sizeof("inarmenian")]; + char unicode_prop_name_pool_str162[sizeof("qaai")]; + char unicode_prop_name_pool_str164[sizeof("inmyanmar")]; + char unicode_prop_name_pool_str166[sizeof("inmakasar")]; + char unicode_prop_name_pool_str169[sizeof("common")]; + char unicode_prop_name_pool_str175[sizeof("marc")]; + char unicode_prop_name_pool_str188[sizeof("inrunic")]; + char unicode_prop_name_pool_str189[sizeof("incarian")]; + char unicode_prop_name_pool_str194[sizeof("lm")]; + char unicode_prop_name_pool_str196[sizeof("inkhmer")]; + char unicode_prop_name_pool_str197[sizeof("cans")]; + char unicode_prop_name_pool_str198[sizeof("inideographicsymbolsandpunctuation")]; + char unicode_prop_name_pool_str207[sizeof("merc")]; + char unicode_prop_name_pool_str209[sizeof("inchorasmian")]; + char unicode_prop_name_pool_str210[sizeof("combiningmark")]; + char unicode_prop_name_pool_str213[sizeof("perm")]; + char unicode_prop_name_pool_str216[sizeof("inavestan")]; + char unicode_prop_name_pool_str219[sizeof("inahom")]; + char unicode_prop_name_pool_str220[sizeof("insharada")]; + char unicode_prop_name_pool_str222[sizeof("inipaextensions")]; + char unicode_prop_name_pool_str225[sizeof("makasar")]; + char unicode_prop_name_pool_str226[sizeof("prependedconcatenationmark")]; + char unicode_prop_name_pool_str228[sizeof("masaramgondi")]; + char unicode_prop_name_pool_str231[sizeof("connectorpunctuation")]; + char unicode_prop_name_pool_str232[sizeof("inarrows")]; + char unicode_prop_name_pool_str240[sizeof("lc")]; + char unicode_prop_name_pool_str244[sizeof("incuneiformnumbersandpunctuation")]; + char unicode_prop_name_pool_str246[sizeof("incherokee")]; + char unicode_prop_name_pool_str247[sizeof("mc")]; + char unicode_prop_name_pool_str258[sizeof("armi")]; + char unicode_prop_name_pool_str261[sizeof("armn")]; + char unicode_prop_name_pool_str266[sizeof("cc")]; + char unicode_prop_name_pool_str269[sizeof("qmark")]; + char unicode_prop_name_pool_str270[sizeof("lineseparator")]; + char unicode_prop_name_pool_str272[sizeof("incuneiform")]; + char unicode_prop_name_pool_str274[sizeof("armenian")]; + char unicode_prop_name_pool_str275[sizeof("qaac")]; + char unicode_prop_name_pool_str276[sizeof("pc")]; + char unicode_prop_name_pool_str279[sizeof("insamaritan")]; + char unicode_prop_name_pool_str280[sizeof("inmarchen")]; + char unicode_prop_name_pool_str283[sizeof("inscriptionalparthian")]; + char unicode_prop_name_pool_str284[sizeof("ri")]; + char unicode_prop_name_pool_str285[sizeof("inmasaramgondi")]; + char unicode_prop_name_pool_str292[sizeof("latn")]; + char unicode_prop_name_pool_str295[sizeof("inzanabazarsquare")]; + char unicode_prop_name_pool_str298[sizeof("inthaana")]; + char unicode_prop_name_pool_str299[sizeof("latin")]; + char unicode_prop_name_pool_str301[sizeof("incyrillic")]; + char unicode_prop_name_pool_str302[sizeof("inthai")]; + char unicode_prop_name_pool_str308[sizeof("inkatakana")]; + char unicode_prop_name_pool_str312[sizeof("inkaithi")]; + char unicode_prop_name_pool_str320[sizeof("zs")]; + char unicode_prop_name_pool_str322[sizeof("incham")]; + char unicode_prop_name_pool_str323[sizeof("initialpunctuation")]; + char unicode_prop_name_pool_str328[sizeof("mtei")]; + char unicode_prop_name_pool_str329[sizeof("inkhmersymbols")]; + char unicode_prop_name_pool_str338[sizeof("insyriac")]; + char unicode_prop_name_pool_str344[sizeof("cs")]; + char unicode_prop_name_pool_str347[sizeof("pcm")]; + char unicode_prop_name_pool_str350[sizeof("intakri")]; + char unicode_prop_name_pool_str354[sizeof("ps")]; + char unicode_prop_name_pool_str367[sizeof("prti")]; + char unicode_prop_name_pool_str385[sizeof("katakana")]; + char unicode_prop_name_pool_str398[sizeof("ascii")]; + char unicode_prop_name_pool_str399[sizeof("arabic")]; + char unicode_prop_name_pool_str405[sizeof("privateuse")]; + char unicode_prop_name_pool_str409[sizeof("inideographicdescriptioncharacters")]; + char unicode_prop_name_pool_str420[sizeof("inruminumeralsymbols")]; + char unicode_prop_name_pool_str436[sizeof("letter")]; + char unicode_prop_name_pool_str438[sizeof("incjkcompatibilityforms")]; + char unicode_prop_name_pool_str439[sizeof("inmyanmarextendeda")]; + char unicode_prop_name_pool_str443[sizeof("incjkcompatibilityideographs")]; + char unicode_prop_name_pool_str468[sizeof("inmeeteimayek")]; + char unicode_prop_name_pool_str475[sizeof("intransportandmapsymbols")]; + char unicode_prop_name_pool_str482[sizeof("inspecials")]; + char unicode_prop_name_pool_str484[sizeof("letternumber")]; + char unicode_prop_name_pool_str487[sizeof("mand")]; + char unicode_prop_name_pool_str497[sizeof("modi")]; + char unicode_prop_name_pool_str499[sizeof("inchesssymbols")]; + char unicode_prop_name_pool_str501[sizeof("inemoticons")]; + char unicode_prop_name_pool_str507[sizeof("inkanaextendeda")]; + char unicode_prop_name_pool_str513[sizeof("brai")]; + char unicode_prop_name_pool_str519[sizeof("mend")]; + char unicode_prop_name_pool_str521[sizeof("ideo")]; + char unicode_prop_name_pool_str522[sizeof("psalterpahlavi")]; + char unicode_prop_name_pool_str531[sizeof("kits")]; + char unicode_prop_name_pool_str533[sizeof("gothic")]; + char unicode_prop_name_pool_str534[sizeof("l")]; + char unicode_prop_name_pool_str537[sizeof("yezidi")]; + char unicode_prop_name_pool_str538[sizeof("inmiscellaneousmathematicalsymbolsa")]; + char unicode_prop_name_pool_str548[sizeof("innandinagari")]; + char unicode_prop_name_pool_str552[sizeof("inancientsymbols")]; + char unicode_prop_name_pool_str558[sizeof("xidcontinue")]; + char unicode_prop_name_pool_str560[sizeof("lt")]; + char unicode_prop_name_pool_str562[sizeof("inoldnortharabian")]; + char unicode_prop_name_pool_str567[sizeof("knda")]; + char unicode_prop_name_pool_str568[sizeof("meroiticcursive")]; + char unicode_prop_name_pool_str570[sizeof("kannada")]; + char unicode_prop_name_pool_str572[sizeof("inlao")]; + char unicode_prop_name_pool_str574[sizeof("incjkcompatibilityideographssupplement")]; + char unicode_prop_name_pool_str583[sizeof("inmodi")]; + char unicode_prop_name_pool_str587[sizeof("mongolian")]; + char unicode_prop_name_pool_str588[sizeof("inlineara")]; + char unicode_prop_name_pool_str589[sizeof("patternwhitespace")]; + char unicode_prop_name_pool_str591[sizeof("incommonindicnumberforms")]; + char unicode_prop_name_pool_str598[sizeof("intoto")]; + char unicode_prop_name_pool_str600[sizeof("grlink")]; + char unicode_prop_name_pool_str602[sizeof("inmendekikakui")]; + char unicode_prop_name_pool_str611[sizeof("brahmi")]; + char unicode_prop_name_pool_str615[sizeof("incjkstrokes")]; + char unicode_prop_name_pool_str616[sizeof("xidc")]; + char unicode_prop_name_pool_str617[sizeof("inopticalcharacterrecognition")]; + char unicode_prop_name_pool_str621[sizeof("inolditalic")]; + char unicode_prop_name_pool_str625[sizeof("inmedefaidrin")]; + char unicode_prop_name_pool_str627[sizeof("kali")]; + char unicode_prop_name_pool_str628[sizeof("inkanasupplement")]; + char unicode_prop_name_pool_str633[sizeof("patws")]; + char unicode_prop_name_pool_str634[sizeof("grext")]; + char unicode_prop_name_pool_str640[sizeof("control")]; + char unicode_prop_name_pool_str641[sizeof("inadlam")]; + char unicode_prop_name_pool_str644[sizeof("print")]; + char unicode_prop_name_pool_str652[sizeof("sk")]; + char unicode_prop_name_pool_str655[sizeof("xids")]; + char unicode_prop_name_pool_str662[sizeof("so")]; + char unicode_prop_name_pool_str666[sizeof("palm")]; + char unicode_prop_name_pool_str670[sizeof("inoldsogdian")]; + char unicode_prop_name_pool_str671[sizeof("intaitham")]; + char unicode_prop_name_pool_str674[sizeof("inlycian")]; + char unicode_prop_name_pool_str682[sizeof("insundanese")]; + char unicode_prop_name_pool_str684[sizeof("inmusicalsymbols")]; + char unicode_prop_name_pool_str693[sizeof("sora")]; + char unicode_prop_name_pool_str702[sizeof("inmandaic")]; + char unicode_prop_name_pool_str707[sizeof("idc")]; + char unicode_prop_name_pool_str711[sizeof("inoldsoutharabian")]; + char unicode_prop_name_pool_str732[sizeof("incontrolpictures")]; + char unicode_prop_name_pool_str738[sizeof("inmalayalam")]; + char unicode_prop_name_pool_str740[sizeof("idsbinaryoperator")]; + char unicode_prop_name_pool_str742[sizeof("inmiscellaneoussymbols")]; + char unicode_prop_name_pool_str748[sizeof("bamum")]; + char unicode_prop_name_pool_str751[sizeof("inmiscellaneoussymbolsandarrows")]; + char unicode_prop_name_pool_str752[sizeof("batk")]; + char unicode_prop_name_pool_str756[sizeof("inmiscellaneoussymbolsandpictographs")]; + char unicode_prop_name_pool_str760[sizeof("insmallkanaextension")]; + char unicode_prop_name_pool_str761[sizeof("batak")]; + char unicode_prop_name_pool_str767[sizeof("insylotinagri")]; + char unicode_prop_name_pool_str773[sizeof("samr")]; + char unicode_prop_name_pool_str774[sizeof("indominotiles")]; + char unicode_prop_name_pool_str775[sizeof("idsunaryoperator")]; + char unicode_prop_name_pool_str778[sizeof("bass")]; + char unicode_prop_name_pool_str780[sizeof("joinc")]; + char unicode_prop_name_pool_str784[sizeof("inlinearbideograms")]; + char unicode_prop_name_pool_str785[sizeof("ids")]; + char unicode_prop_name_pool_str787[sizeof("samaritan")]; + char unicode_prop_name_pool_str790[sizeof("s")]; + char unicode_prop_name_pool_str795[sizeof("inmodifiertoneletters")]; + char unicode_prop_name_pool_str796[sizeof("pauc")]; + char unicode_prop_name_pool_str801[sizeof("inznamennymusicalnotation")]; + char unicode_prop_name_pool_str802[sizeof("lisu")]; + char unicode_prop_name_pool_str815[sizeof("ital")]; + char unicode_prop_name_pool_str816[sizeof("inugaritic")]; + char unicode_prop_name_pool_str822[sizeof("sm")]; + char unicode_prop_name_pool_str834[sizeof("inancientgreekmusicalnotation")]; + char unicode_prop_name_pool_str840[sizeof("alnum")]; + char unicode_prop_name_pool_str842[sizeof("inlatinextendeda")]; + char unicode_prop_name_pool_str857[sizeof("insaurashtra")]; + char unicode_prop_name_pool_str859[sizeof("intaile")]; + char unicode_prop_name_pool_str868[sizeof("sc")]; + char unicode_prop_name_pool_str894[sizeof("inoldturkic")]; + char unicode_prop_name_pool_str901[sizeof("inmeeteimayekextensions")]; + char unicode_prop_name_pool_str906[sizeof("inlatinextendede")]; + char unicode_prop_name_pool_str907[sizeof("idst")]; + char unicode_prop_name_pool_str911[sizeof("incaucasianalbanian")]; + char unicode_prop_name_pool_str912[sizeof("idcontinue")]; + char unicode_prop_name_pool_str920[sizeof("intamil")]; + char unicode_prop_name_pool_str922[sizeof("inmultani")]; + char unicode_prop_name_pool_str923[sizeof("oriya")]; + char unicode_prop_name_pool_str950[sizeof("indeseret")]; + char unicode_prop_name_pool_str952[sizeof("idstart")]; + char unicode_prop_name_pool_str960[sizeof("inspacingmodifierletters")]; + char unicode_prop_name_pool_str962[sizeof("runr")]; + char unicode_prop_name_pool_str972[sizeof("pd")]; + char unicode_prop_name_pool_str975[sizeof("inancientgreeknumbers")]; + char unicode_prop_name_pool_str998[sizeof("bali")]; + char unicode_prop_name_pool_str1003[sizeof("inearlydynasticcuneiform")]; + char unicode_prop_name_pool_str1012[sizeof("blank")]; + char unicode_prop_name_pool_str1013[sizeof("vai")]; + char unicode_prop_name_pool_str1014[sizeof("vaii")]; + char unicode_prop_name_pool_str1022[sizeof("inlydian")]; + char unicode_prop_name_pool_str1039[sizeof("bengali")]; + char unicode_prop_name_pool_str1052[sizeof("incountingrodnumerals")]; + char unicode_prop_name_pool_str1056[sizeof("xidstart")]; + char unicode_prop_name_pool_str1057[sizeof("xdigit")]; + char unicode_prop_name_pool_str1062[sizeof("ll")]; + char unicode_prop_name_pool_str1064[sizeof("zl")]; + char unicode_prop_name_pool_str1069[sizeof("balinese")]; + char unicode_prop_name_pool_str1074[sizeof("inlatinextendedc")]; + char unicode_prop_name_pool_str1079[sizeof("plrd")]; + char unicode_prop_name_pool_str1097[sizeof("osage")]; + char unicode_prop_name_pool_str1098[sizeof("canadianaboriginal")]; + char unicode_prop_name_pool_str1111[sizeof("sind")]; + char unicode_prop_name_pool_str1113[sizeof("inkaktoviknumerals")]; + char unicode_prop_name_pool_str1114[sizeof("zinh")]; + char unicode_prop_name_pool_str1120[sizeof("cased")]; + char unicode_prop_name_pool_str1125[sizeof("osma")]; + char unicode_prop_name_pool_str1133[sizeof("sterm")]; + char unicode_prop_name_pool_str1134[sizeof("inkhudawadi")]; + char unicode_prop_name_pool_str1135[sizeof("inhanifirohingya")]; + char unicode_prop_name_pool_str1137[sizeof("incyrillicsupplement")]; + char unicode_prop_name_pool_str1141[sizeof("quotationmark")]; + char unicode_prop_name_pool_str1153[sizeof("runic")]; + char unicode_prop_name_pool_str1159[sizeof("inhiragana")]; + char unicode_prop_name_pool_str1163[sizeof("zanb")]; + char unicode_prop_name_pool_str1164[sizeof("linb")]; + char unicode_prop_name_pool_str1165[sizeof("inkhitansmallscript")]; + char unicode_prop_name_pool_str1166[sizeof("incherokeesupplement")]; + char unicode_prop_name_pool_str1168[sizeof("bidic")]; + char unicode_prop_name_pool_str1173[sizeof("phoenician")]; + char unicode_prop_name_pool_str1176[sizeof("inbhaiksuki")]; + char unicode_prop_name_pool_str1177[sizeof("sinhala")]; + char unicode_prop_name_pool_str1178[sizeof("inolduyghur")]; + char unicode_prop_name_pool_str1182[sizeof("innabataean")]; + char unicode_prop_name_pool_str1187[sizeof("inkanbun")]; + char unicode_prop_name_pool_str1188[sizeof("gunjalagondi")]; + char unicode_prop_name_pool_str1190[sizeof("multani")]; + char unicode_prop_name_pool_str1193[sizeof("marchen")]; + char unicode_prop_name_pool_str1195[sizeof("bamu")]; + char unicode_prop_name_pool_str1196[sizeof("glagolitic")]; + char unicode_prop_name_pool_str1198[sizeof("graphemelink")]; + char unicode_prop_name_pool_str1199[sizeof("insiddham")]; + char unicode_prop_name_pool_str1201[sizeof("kaithi")]; + char unicode_prop_name_pool_str1203[sizeof("cher")]; + char unicode_prop_name_pool_str1204[sizeof("adlm")]; + char unicode_prop_name_pool_str1206[sizeof("inelbasan")]; + char unicode_prop_name_pool_str1209[sizeof("linearb")]; + char unicode_prop_name_pool_str1210[sizeof("joincontrol")]; + char unicode_prop_name_pool_str1212[sizeof("intamilsupplement")]; + char unicode_prop_name_pool_str1213[sizeof("inmahajani")]; + char unicode_prop_name_pool_str1218[sizeof("cherokee")]; + char unicode_prop_name_pool_str1219[sizeof("khojki")]; + char unicode_prop_name_pool_str1220[sizeof("inogham")]; + char unicode_prop_name_pool_str1222[sizeof("cham")]; + char unicode_prop_name_pool_str1224[sizeof("chakma")]; + char unicode_prop_name_pool_str1231[sizeof("casedletter")]; + char unicode_prop_name_pool_str1232[sizeof("khar")]; + char unicode_prop_name_pool_str1237[sizeof("inmiscellaneoustechnical")]; + char unicode_prop_name_pool_str1239[sizeof("punct")]; + char unicode_prop_name_pool_str1244[sizeof("manichaean")]; + char unicode_prop_name_pool_str1246[sizeof("graphemebase")]; + char unicode_prop_name_pool_str1247[sizeof("gong")]; + char unicode_prop_name_pool_str1248[sizeof("inolchiki")]; + char unicode_prop_name_pool_str1250[sizeof("ingrantha")]; + char unicode_prop_name_pool_str1251[sizeof("limb")]; + char unicode_prop_name_pool_str1257[sizeof("mong")]; + char unicode_prop_name_pool_str1265[sizeof("idsu")]; + char unicode_prop_name_pool_str1268[sizeof("inethiopic")]; + char unicode_prop_name_pool_str1276[sizeof("lu")]; + char unicode_prop_name_pool_str1277[sizeof("insinhala")]; + char unicode_prop_name_pool_str1279[sizeof("incb")]; + char unicode_prop_name_pool_str1281[sizeof("incjkunifiedideographsextensiona")]; + char unicode_prop_name_pool_str1283[sizeof("inarabic")]; + char unicode_prop_name_pool_str1284[sizeof("incjkunifiedideographsextensioni")]; + char unicode_prop_name_pool_str1285[sizeof("inkayahli")]; + char unicode_prop_name_pool_str1286[sizeof("georgian")]; + char unicode_prop_name_pool_str1287[sizeof("inosage")]; + char unicode_prop_name_pool_str1288[sizeof("inoriya")]; + char unicode_prop_name_pool_str1297[sizeof("wara")]; + char unicode_prop_name_pool_str1298[sizeof("adlam")]; + char unicode_prop_name_pool_str1305[sizeof("ingeneralpunctuation")]; + char unicode_prop_name_pool_str1306[sizeof("ingeorgian")]; + char unicode_prop_name_pool_str1307[sizeof("arab")]; + char unicode_prop_name_pool_str1308[sizeof("inyezidi")]; + char unicode_prop_name_pool_str1309[sizeof("chorasmian")]; + char unicode_prop_name_pool_str1313[sizeof("incjkunifiedideographsextensione")]; + char unicode_prop_name_pool_str1314[sizeof("saur")]; + char unicode_prop_name_pool_str1316[sizeof("vs")]; + char unicode_prop_name_pool_str1317[sizeof("guru")]; + char unicode_prop_name_pool_str1319[sizeof("ahom")]; + char unicode_prop_name_pool_str1321[sizeof("sundanese")]; + char unicode_prop_name_pool_str1325[sizeof("khmr")]; + char unicode_prop_name_pool_str1326[sizeof("chrs")]; + char unicode_prop_name_pool_str1328[sizeof("paucinhau")]; + char unicode_prop_name_pool_str1330[sizeof("inscriptionalpahlavi")]; + char unicode_prop_name_pool_str1332[sizeof("gurmukhi")]; + char unicode_prop_name_pool_str1338[sizeof("emoji")]; + char unicode_prop_name_pool_str1340[sizeof("inarabicpresentationformsa")]; + char unicode_prop_name_pool_str1341[sizeof("inbasiclatin")]; + char unicode_prop_name_pool_str1346[sizeof("odi")]; + char unicode_prop_name_pool_str1351[sizeof("inmongolian")]; + char unicode_prop_name_pool_str1352[sizeof("innagmundari")]; + char unicode_prop_name_pool_str1367[sizeof("kharoshthi")]; + char unicode_prop_name_pool_str1368[sizeof("khmer")]; + char unicode_prop_name_pool_str1373[sizeof("cntrl")]; + char unicode_prop_name_pool_str1375[sizeof("limbu")]; + char unicode_prop_name_pool_str1378[sizeof("inlatinextendedadditional")]; + char unicode_prop_name_pool_str1380[sizeof("lyci")]; + char unicode_prop_name_pool_str1383[sizeof("ingurmukhi")]; + char unicode_prop_name_pool_str1386[sizeof("math")]; + char unicode_prop_name_pool_str1389[sizeof("goth")]; + char unicode_prop_name_pool_str1390[sizeof("radical")]; + char unicode_prop_name_pool_str1391[sizeof("lycian")]; + char unicode_prop_name_pool_str1396[sizeof("anatolianhieroglyphs")]; + char unicode_prop_name_pool_str1397[sizeof("incjkunifiedideographsextensionc")]; + char unicode_prop_name_pool_str1400[sizeof("inenclosedalphanumerics")]; + char unicode_prop_name_pool_str1403[sizeof("mymr")]; + char unicode_prop_name_pool_str1406[sizeof("myanmar")]; + char unicode_prop_name_pool_str1409[sizeof("patternsyntax")]; + char unicode_prop_name_pool_str1415[sizeof("grbase")]; + char unicode_prop_name_pool_str1421[sizeof("grantha")]; + char unicode_prop_name_pool_str1426[sizeof("incjkunifiedideographs")]; + char unicode_prop_name_pool_str1433[sizeof("saurashtra")]; + char unicode_prop_name_pool_str1434[sizeof("intirhuta")]; + char unicode_prop_name_pool_str1439[sizeof("inhatran")]; + char unicode_prop_name_pool_str1440[sizeof("n")]; + char unicode_prop_name_pool_str1450[sizeof("inbatak")]; + char unicode_prop_name_pool_str1451[sizeof("insorasompeng")]; + char unicode_prop_name_pool_str1454[sizeof("mult")]; + char unicode_prop_name_pool_str1455[sizeof("insoyombo")]; + char unicode_prop_name_pool_str1457[sizeof("logicalorderexception")]; + char unicode_prop_name_pool_str1460[sizeof("oidc")]; + char unicode_prop_name_pool_str1461[sizeof("no")]; + char unicode_prop_name_pool_str1462[sizeof("nandinagari")]; + char unicode_prop_name_pool_str1469[sizeof("kthi")]; + char unicode_prop_name_pool_str1470[sizeof("nko")]; + char unicode_prop_name_pool_str1471[sizeof("nkoo")]; + char unicode_prop_name_pool_str1476[sizeof("p")]; + char unicode_prop_name_pool_str1482[sizeof("intibetan")]; + char unicode_prop_name_pool_str1490[sizeof("inblockelements")]; + char unicode_prop_name_pool_str1499[sizeof("oids")]; + char unicode_prop_name_pool_str1502[sizeof("inenclosedideographicsupplement")]; + char unicode_prop_name_pool_str1506[sizeof("innewa")]; + char unicode_prop_name_pool_str1510[sizeof("emojimodifier")]; + char unicode_prop_name_pool_str1511[sizeof("xpeo")]; + char unicode_prop_name_pool_str1514[sizeof("inkawi")]; + char unicode_prop_name_pool_str1515[sizeof("inelymaic")]; + char unicode_prop_name_pool_str1516[sizeof("inphoenician")]; + char unicode_prop_name_pool_str1519[sizeof("innumberforms")]; + char unicode_prop_name_pool_str1525[sizeof("intangsa")]; + char unicode_prop_name_pool_str1528[sizeof("olck")]; + char unicode_prop_name_pool_str1529[sizeof("incjkcompatibility")]; + char unicode_prop_name_pool_str1530[sizeof("inenclosedalphanumericsupplement")]; + char unicode_prop_name_pool_str1535[sizeof("olower")]; + char unicode_prop_name_pool_str1537[sizeof("olchiki")]; + char unicode_prop_name_pool_str1554[sizeof("inwarangciti")]; + char unicode_prop_name_pool_str1560[sizeof("ingreekandcoptic")]; + char unicode_prop_name_pool_str1562[sizeof("inmeroitichieroglyphs")]; + char unicode_prop_name_pool_str1564[sizeof("sd")]; + char unicode_prop_name_pool_str1568[sizeof("cpmn")]; + char unicode_prop_name_pool_str1569[sizeof("sidd")]; + char unicode_prop_name_pool_str1570[sizeof("inmayannumerals")]; + char unicode_prop_name_pool_str1571[sizeof("intaixuanjingsymbols")]; + char unicode_prop_name_pool_str1573[sizeof("inanatolianhieroglyphs")]; + char unicode_prop_name_pool_str1574[sizeof("enclosingmark")]; + char unicode_prop_name_pool_str1577[sizeof("inbyzantinemusicalsymbols")]; + char unicode_prop_name_pool_str1578[sizeof("inkangxiradicals")]; + char unicode_prop_name_pool_str1580[sizeof("kawi")]; + char unicode_prop_name_pool_str1583[sizeof("inphaistosdisc")]; + char unicode_prop_name_pool_str1584[sizeof("inmyanmarextendedb")]; + char unicode_prop_name_pool_str1587[sizeof("patsyn")]; + char unicode_prop_name_pool_str1588[sizeof("lower")]; + char unicode_prop_name_pool_str1591[sizeof("lepc")]; + char unicode_prop_name_pool_str1598[sizeof("bidicontrol")]; + char unicode_prop_name_pool_str1599[sizeof("braille")]; + char unicode_prop_name_pool_str1603[sizeof("brah")]; + char unicode_prop_name_pool_str1607[sizeof("inoldhungarian")]; + char unicode_prop_name_pool_str1609[sizeof("punctuation")]; + char unicode_prop_name_pool_str1616[sizeof("inbraillepatterns")]; + char unicode_prop_name_pool_str1618[sizeof("insundanesesupplement")]; + char unicode_prop_name_pool_str1623[sizeof("regionalindicator")]; + char unicode_prop_name_pool_str1624[sizeof("incyprominoan")]; + char unicode_prop_name_pool_str1625[sizeof("inherited")]; + char unicode_prop_name_pool_str1629[sizeof("inyiradicals")]; + char unicode_prop_name_pool_str1637[sizeof("inwancho")]; + char unicode_prop_name_pool_str1652[sizeof("inkanaextendedb")]; + char unicode_prop_name_pool_str1659[sizeof("emojimodifierbase")]; + char unicode_prop_name_pool_str1660[sizeof("inimperialaramaic")]; + char unicode_prop_name_pool_str1662[sizeof("incyrillicextendeda")]; + char unicode_prop_name_pool_str1669[sizeof("phli")]; + char unicode_prop_name_pool_str1672[sizeof("inarabicextendeda")]; + char unicode_prop_name_pool_str1678[sizeof("insinhalaarchaicnumbers")]; + char unicode_prop_name_pool_str1680[sizeof("graphemeextend")]; + char unicode_prop_name_pool_str1683[sizeof("inmiscellaneousmathematicalsymbolsb")]; + char unicode_prop_name_pool_str1688[sizeof("dia")]; + char unicode_prop_name_pool_str1690[sizeof("di")]; + char unicode_prop_name_pool_str1697[sizeof("diak")]; + char unicode_prop_name_pool_str1698[sizeof("lowercase")]; + char unicode_prop_name_pool_str1700[sizeof("ingeometricshapes")]; + char unicode_prop_name_pool_str1706[sizeof("format")]; + char unicode_prop_name_pool_str1709[sizeof("innoblock")]; + char unicode_prop_name_pool_str1719[sizeof("coptic")]; + char unicode_prop_name_pool_str1724[sizeof("bhks")]; + char unicode_prop_name_pool_str1725[sizeof("cwcm")]; + char unicode_prop_name_pool_str1727[sizeof("beng")]; + char unicode_prop_name_pool_str1728[sizeof("lydi")]; + char unicode_prop_name_pool_str1731[sizeof("inbalinese")]; + char unicode_prop_name_pool_str1732[sizeof("bhaiksuki")]; + char unicode_prop_name_pool_str1739[sizeof("lydian")]; + char unicode_prop_name_pool_str1740[sizeof("sinh")]; + char unicode_prop_name_pool_str1742[sizeof("sund")]; + char unicode_prop_name_pool_str1743[sizeof("shavian")]; + char unicode_prop_name_pool_str1745[sizeof("incjkunifiedideographsextensiond")]; + char unicode_prop_name_pool_str1748[sizeof("indogra")]; + char unicode_prop_name_pool_str1755[sizeof("glag")]; + char unicode_prop_name_pool_str1758[sizeof("copt")]; + char unicode_prop_name_pool_str1759[sizeof("ininscriptionalpahlavi")]; + char unicode_prop_name_pool_str1763[sizeof("ininscriptionalparthian")]; + char unicode_prop_name_pool_str1768[sizeof("emojicomponent")]; + char unicode_prop_name_pool_str1769[sizeof("inhanunoo")]; + char unicode_prop_name_pool_str1770[sizeof("inlatinextendedd")]; + char unicode_prop_name_pool_str1774[sizeof("word")]; + char unicode_prop_name_pool_str1775[sizeof("asciihexdigit")]; + char unicode_prop_name_pool_str1776[sizeof("idsb")]; + char unicode_prop_name_pool_str1778[sizeof("incyrillicextendedc")]; + char unicode_prop_name_pool_str1784[sizeof("ingreekextended")]; + char unicode_prop_name_pool_str1787[sizeof("cprt")]; + char unicode_prop_name_pool_str1788[sizeof("inarabicextendedc")]; + char unicode_prop_name_pool_str1795[sizeof("emod")]; + char unicode_prop_name_pool_str1801[sizeof("intangut")]; + char unicode_prop_name_pool_str1802[sizeof("hani")]; + char unicode_prop_name_pool_str1803[sizeof("imperialaramaic")]; + char unicode_prop_name_pool_str1804[sizeof("han")]; + char unicode_prop_name_pool_str1807[sizeof("takri")]; + char unicode_prop_name_pool_str1812[sizeof("hano")]; + char unicode_prop_name_pool_str1813[sizeof("invai")]; + char unicode_prop_name_pool_str1819[sizeof("innewtailue")]; + char unicode_prop_name_pool_str1825[sizeof("sarb")]; + char unicode_prop_name_pool_str1826[sizeof("xsux")]; + char unicode_prop_name_pool_str1827[sizeof("intags")]; + char unicode_prop_name_pool_str1833[sizeof("meroitichieroglyphs")]; + char unicode_prop_name_pool_str1834[sizeof("hanunoo")]; + char unicode_prop_name_pool_str1835[sizeof("inkhojki")]; + char unicode_prop_name_pool_str1838[sizeof("hira")]; + char unicode_prop_name_pool_str1840[sizeof("zanabazarsquare")]; + char unicode_prop_name_pool_str1842[sizeof("takr")]; + char unicode_prop_name_pool_str1850[sizeof("inkatakanaphoneticextensions")]; + char unicode_prop_name_pool_str1855[sizeof("diacritic")]; + char unicode_prop_name_pool_str1856[sizeof("cyrl")]; + char unicode_prop_name_pool_str1860[sizeof("taile")]; + char unicode_prop_name_pool_str1869[sizeof("insogdian")]; + char unicode_prop_name_pool_str1870[sizeof("indingbats")]; + char unicode_prop_name_pool_str1873[sizeof("sentenceterminal")]; + char unicode_prop_name_pool_str1884[sizeof("sogdian")]; + char unicode_prop_name_pool_str1885[sizeof("sogo")]; + char unicode_prop_name_pool_str1888[sizeof("mlym")]; + char unicode_prop_name_pool_str1893[sizeof("malayalam")]; + char unicode_prop_name_pool_str1894[sizeof("ideographic")]; + char unicode_prop_name_pool_str1903[sizeof("palmyrene")]; + char unicode_prop_name_pool_str1907[sizeof("nand")]; + char unicode_prop_name_pool_str1909[sizeof("innushu")]; + char unicode_prop_name_pool_str1913[sizeof("incjksymbolsandpunctuation")]; + char unicode_prop_name_pool_str1915[sizeof("soyo")]; + char unicode_prop_name_pool_str1921[sizeof("variationselector")]; + char unicode_prop_name_pool_str1927[sizeof("bopo")]; + char unicode_prop_name_pool_str1930[sizeof("inlisusupplement")]; + char unicode_prop_name_pool_str1936[sizeof("vithkuqi")]; + char unicode_prop_name_pool_str1948[sizeof("inoldpersian")]; + char unicode_prop_name_pool_str1953[sizeof("tnsa")]; + char unicode_prop_name_pool_str1954[sizeof("oldpersian")]; + char unicode_prop_name_pool_str1955[sizeof("tangsa")]; + char unicode_prop_name_pool_str1956[sizeof("inornamentaldingbats")]; + char unicode_prop_name_pool_str1959[sizeof("term")]; + char unicode_prop_name_pool_str1963[sizeof("incoptic")]; + char unicode_prop_name_pool_str1970[sizeof("inlisu")]; + char unicode_prop_name_pool_str1972[sizeof("inshavian")]; + char unicode_prop_name_pool_str1973[sizeof("insyriacsupplement")]; + char unicode_prop_name_pool_str1978[sizeof("uideo")]; + char unicode_prop_name_pool_str1983[sizeof("caseignorable")]; + char unicode_prop_name_pool_str1986[sizeof("inbamum")]; + char unicode_prop_name_pool_str1989[sizeof("caucasianalbanian")]; + char unicode_prop_name_pool_str1990[sizeof("lowercaseletter")]; + char unicode_prop_name_pool_str2010[sizeof("decimalnumber")]; + char unicode_prop_name_pool_str2017[sizeof("ingeometricshapesextended")]; + char unicode_prop_name_pool_str2020[sizeof("orkh")]; + char unicode_prop_name_pool_str2037[sizeof("bopomofo")]; + char unicode_prop_name_pool_str2047[sizeof("syrc")]; + char unicode_prop_name_pool_str2051[sizeof("inoldpermic")]; + char unicode_prop_name_pool_str2056[sizeof("incombiningdiacriticalmarks")]; + char unicode_prop_name_pool_str2063[sizeof("oldpermic")]; + char unicode_prop_name_pool_str2065[sizeof("closepunctuation")]; + char unicode_prop_name_pool_str2066[sizeof("incombiningdiacriticalmarksforsymbols")]; + char unicode_prop_name_pool_str2067[sizeof("cwt")]; + char unicode_prop_name_pool_str2081[sizeof("alpha")]; + char unicode_prop_name_pool_str2083[sizeof("hatran")]; + char unicode_prop_name_pool_str2086[sizeof("inshorthandformatcontrols")]; + char unicode_prop_name_pool_str2089[sizeof("sorasompeng")]; + char unicode_prop_name_pool_str2093[sizeof("intelugu")]; + char unicode_prop_name_pool_str2094[sizeof("toto")]; + char unicode_prop_name_pool_str2095[sizeof("spacingmark")]; + char unicode_prop_name_pool_str2098[sizeof("inlepcha")]; + char unicode_prop_name_pool_str2104[sizeof("inethiopicsupplement")]; + char unicode_prop_name_pool_str2109[sizeof("taiviet")]; + char unicode_prop_name_pool_str2110[sizeof("inpalmyrene")]; + char unicode_prop_name_pool_str2111[sizeof("hatr")]; + char unicode_prop_name_pool_str2118[sizeof("unassigned")]; + char unicode_prop_name_pool_str2125[sizeof("assigned")]; + char unicode_prop_name_pool_str2126[sizeof("incyrillicextendedd")]; + char unicode_prop_name_pool_str2136[sizeof("space")]; + char unicode_prop_name_pool_str2149[sizeof("phnx")]; + char unicode_prop_name_pool_str2159[sizeof("dsrt")]; + char unicode_prop_name_pool_str2164[sizeof("incurrencysymbols")]; + char unicode_prop_name_pool_str2165[sizeof("syriac")]; + char unicode_prop_name_pool_str2170[sizeof("orya")]; + char unicode_prop_name_pool_str2179[sizeof("insymbolsandpictographsextendeda")]; + char unicode_prop_name_pool_str2187[sizeof("incombiningdiacriticalmarkssupplement")]; + char unicode_prop_name_pool_str2191[sizeof("ogam")]; + char unicode_prop_name_pool_str2192[sizeof("separator")]; + char unicode_prop_name_pool_str2195[sizeof("medf")]; + char unicode_prop_name_pool_str2198[sizeof("sharada")]; + char unicode_prop_name_pool_str2208[sizeof("medefaidrin")]; + char unicode_prop_name_pool_str2223[sizeof("incopticepactnumbers")]; + char unicode_prop_name_pool_str2225[sizeof("avestan")]; + char unicode_prop_name_pool_str2226[sizeof("deseret")]; + char unicode_prop_name_pool_str2232[sizeof("mathsymbol")]; + char unicode_prop_name_pool_str2236[sizeof("graph")]; + char unicode_prop_name_pool_str2237[sizeof("shrd")]; + char unicode_prop_name_pool_str2243[sizeof("insuttonsignwriting")]; + char unicode_prop_name_pool_str2249[sizeof("ahex")]; + char unicode_prop_name_pool_str2252[sizeof("ingeorgiansupplement")]; + char unicode_prop_name_pool_str2263[sizeof("inbrahmi")]; + char unicode_prop_name_pool_str2265[sizeof("olditalic")]; + char unicode_prop_name_pool_str2282[sizeof("number")]; + char unicode_prop_name_pool_str2284[sizeof("indevanagari")]; + char unicode_prop_name_pool_str2285[sizeof("osge")]; + char unicode_prop_name_pool_str2288[sizeof("terminalpunctuation")]; + char unicode_prop_name_pool_str2293[sizeof("invariationselectors")]; + char unicode_prop_name_pool_str2294[sizeof("siddham")]; + char unicode_prop_name_pool_str2303[sizeof("inverticalforms")]; + char unicode_prop_name_pool_str2307[sizeof("inmathematicalalphanumericsymbols")]; + char unicode_prop_name_pool_str2313[sizeof("inmongoliansupplement")]; + char unicode_prop_name_pool_str2319[sizeof("java")]; + char unicode_prop_name_pool_str2322[sizeof("indevanagariextendeda")]; + char unicode_prop_name_pool_str2326[sizeof("bugi")]; + char unicode_prop_name_pool_str2331[sizeof("other")]; + char unicode_prop_name_pool_str2336[sizeof("sogd")]; + char unicode_prop_name_pool_str2337[sizeof("otheridcontinue")]; + char unicode_prop_name_pool_str2339[sizeof("avst")]; + char unicode_prop_name_pool_str2343[sizeof("othernumber")]; + char unicode_prop_name_pool_str2346[sizeof("inlowsurrogates")]; + char unicode_prop_name_pool_str2351[sizeof("tale")]; + char unicode_prop_name_pool_str2360[sizeof("phag")]; + char unicode_prop_name_pool_str2363[sizeof("nd")]; + char unicode_prop_name_pool_str2366[sizeof("intaiviet")]; + char unicode_prop_name_pool_str2372[sizeof("inhanguljamo")]; + char unicode_prop_name_pool_str2373[sizeof("incombiningdiacriticalmarksextended")]; + char unicode_prop_name_pool_str2374[sizeof("incjkunifiedideographsextensionh")]; + char unicode_prop_name_pool_str2375[sizeof("inlinearbsyllabary")]; + char unicode_prop_name_pool_str2377[sizeof("inottomansiyaqnumbers")]; + char unicode_prop_name_pool_str2380[sizeof("vith")]; + char unicode_prop_name_pool_str2382[sizeof("wancho")]; + char unicode_prop_name_pool_str2384[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")]; + char unicode_prop_name_pool_str2385[sizeof("osmanya")]; + char unicode_prop_name_pool_str2393[sizeof("javanese")]; + char unicode_prop_name_pool_str2397[sizeof("buginese")]; + char unicode_prop_name_pool_str2398[sizeof("inbengali")]; + char unicode_prop_name_pool_str2400[sizeof("inhanguljamoextendeda")]; + char unicode_prop_name_pool_str2412[sizeof("taml")]; + char unicode_prop_name_pool_str2420[sizeof("inlimbu")]; + char unicode_prop_name_pool_str2424[sizeof("invariationselectorssupplement")]; + char unicode_prop_name_pool_str2425[sizeof("inbuginese")]; + char unicode_prop_name_pool_str2426[sizeof("incjkunifiedideographsextensionb")]; + char unicode_prop_name_pool_str2429[sizeof("sylo")]; + char unicode_prop_name_pool_str2432[sizeof("currencysymbol")]; + char unicode_prop_name_pool_str2435[sizeof("ebase")]; + char unicode_prop_name_pool_str2439[sizeof("incjkradicalssupplement")]; + char unicode_prop_name_pool_str2441[sizeof("idstrinaryoperator")]; + char unicode_prop_name_pool_str2444[sizeof("inletterlikesymbols")]; + char unicode_prop_name_pool_str2447[sizeof("otheralphabetic")]; + char unicode_prop_name_pool_str2453[sizeof("invedicextensions")]; + char unicode_prop_name_pool_str2454[sizeof("induployan")]; + char unicode_prop_name_pool_str2459[sizeof("cuneiform")]; + char unicode_prop_name_pool_str2472[sizeof("gujr")]; + char unicode_prop_name_pool_str2477[sizeof("wcho")]; + char unicode_prop_name_pool_str2479[sizeof("gujarati")]; + char unicode_prop_name_pool_str2485[sizeof("inarabicpresentationformsb")]; + char unicode_prop_name_pool_str2489[sizeof("nl")]; + char unicode_prop_name_pool_str2499[sizeof("oalpha")]; + char unicode_prop_name_pool_str2502[sizeof("incjkunifiedideographsextensiong")]; + char unicode_prop_name_pool_str2503[sizeof("cyrillic")]; + char unicode_prop_name_pool_str2507[sizeof("modifierletter")]; + char unicode_prop_name_pool_str2528[sizeof("oldhungarian")]; + char unicode_prop_name_pool_str2530[sizeof("inunifiedcanadianaboriginalsyllabics")]; + char unicode_prop_name_pool_str2533[sizeof("warangciti")]; + char unicode_prop_name_pool_str2534[sizeof("innyiakengpuachuehmong")]; + char unicode_prop_name_pool_str2548[sizeof("titlecaseletter")]; + char unicode_prop_name_pool_str2569[sizeof("cwl")]; + char unicode_prop_name_pool_str2570[sizeof("lepcha")]; + char unicode_prop_name_pool_str2572[sizeof("inbassavah")]; + char unicode_prop_name_pool_str2576[sizeof("whitespace")]; + char unicode_prop_name_pool_str2579[sizeof("inlatin1supplement")]; + char unicode_prop_name_pool_str2582[sizeof("inaegeannumbers")]; + char unicode_prop_name_pool_str2585[sizeof("surrogate")]; + char unicode_prop_name_pool_str2586[sizeof("spaceseparator")]; + char unicode_prop_name_pool_str2597[sizeof("ethi")]; + char unicode_prop_name_pool_str2607[sizeof("rohg")]; + char unicode_prop_name_pool_str2624[sizeof("narb")]; + char unicode_prop_name_pool_str2627[sizeof("any")]; + char unicode_prop_name_pool_str2628[sizeof("inbopomofo")]; + char unicode_prop_name_pool_str2629[sizeof("inethiopicextendeda")]; + char unicode_prop_name_pool_str2633[sizeof("inmeroiticcursive")]; + char unicode_prop_name_pool_str2658[sizeof("insmallformvariants")]; + char unicode_prop_name_pool_str2659[sizeof("buhd")]; + char unicode_prop_name_pool_str2665[sizeof("oldturkic")]; + char unicode_prop_name_pool_str2666[sizeof("intagbanwa")]; + char unicode_prop_name_pool_str2676[sizeof("inindicsiyaqnumbers")]; + char unicode_prop_name_pool_str2677[sizeof("inphagspa")]; + char unicode_prop_name_pool_str2697[sizeof("insymbolsforlegacycomputing")]; + char unicode_prop_name_pool_str2700[sizeof("inglagolitic")]; + char unicode_prop_name_pool_str2705[sizeof("sylotinagri")]; + char unicode_prop_name_pool_str2712[sizeof("inbamumsupplement")]; + char unicode_prop_name_pool_str2720[sizeof("inarabicmathematicalalphabeticsymbols")]; + char unicode_prop_name_pool_str2726[sizeof("inbuhid")]; + char unicode_prop_name_pool_str2728[sizeof("ingothic")]; + char unicode_prop_name_pool_str2729[sizeof("incombininghalfmarks")]; + char unicode_prop_name_pool_str2730[sizeof("phagspa")]; + char unicode_prop_name_pool_str2731[sizeof("nchar")]; + char unicode_prop_name_pool_str2741[sizeof("intagalog")]; + char unicode_prop_name_pool_str2747[sizeof("ugar")]; + char unicode_prop_name_pool_str2750[sizeof("tirhuta")]; + char unicode_prop_name_pool_str2751[sizeof("nagm")]; + char unicode_prop_name_pool_str2774[sizeof("ougr")]; + char unicode_prop_name_pool_str2780[sizeof("ext")]; + char unicode_prop_name_pool_str2783[sizeof("cwu")]; + char unicode_prop_name_pool_str2785[sizeof("indevanagariextended")]; + char unicode_prop_name_pool_str2800[sizeof("inphoneticextensions")]; + char unicode_prop_name_pool_str2807[sizeof("incyrillicextendedb")]; + char unicode_prop_name_pool_str2817[sizeof("inarabicextendedb")]; + char unicode_prop_name_pool_str2839[sizeof("cyprominoan")]; + char unicode_prop_name_pool_str2842[sizeof("inpaucinhau")]; + char unicode_prop_name_pool_str2847[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; + char unicode_prop_name_pool_str2851[sizeof("otheridstart")]; + char unicode_prop_name_pool_str2857[sizeof("otherlowercase")]; + char unicode_prop_name_pool_str2858[sizeof("nbat")]; + char unicode_prop_name_pool_str2864[sizeof("otherletter")]; + char unicode_prop_name_pool_str2869[sizeof("nabataean")]; + char unicode_prop_name_pool_str2871[sizeof("inyisyllables")]; + char unicode_prop_name_pool_str2876[sizeof("zp")]; + char unicode_prop_name_pool_str2885[sizeof("thaa")]; + char unicode_prop_name_pool_str2888[sizeof("thai")]; + char unicode_prop_name_pool_str2893[sizeof("thaana")]; + char unicode_prop_name_pool_str2897[sizeof("elba")]; + char unicode_prop_name_pool_str2899[sizeof("mahj")]; + char unicode_prop_name_pool_str2903[sizeof("extpict")]; + char unicode_prop_name_pool_str2906[sizeof("mahajani")]; + char unicode_prop_name_pool_str2907[sizeof("nonspacingmark")]; + char unicode_prop_name_pool_str2909[sizeof("inplayingcards")]; + char unicode_prop_name_pool_str2916[sizeof("noncharactercodepoint")]; + char unicode_prop_name_pool_str2918[sizeof("inarabicsupplement")]; + char unicode_prop_name_pool_str2921[sizeof("dogra")]; + char unicode_prop_name_pool_str2930[sizeof("tirh")]; + char unicode_prop_name_pool_str2931[sizeof("inphoneticextensionssupplement")]; + char unicode_prop_name_pool_str2933[sizeof("posixpunct")]; + char unicode_prop_name_pool_str2934[sizeof("dash")]; + char unicode_prop_name_pool_str2938[sizeof("inenclosedcjklettersandmonths")]; + char unicode_prop_name_pool_str2940[sizeof("tamil")]; + char unicode_prop_name_pool_str2949[sizeof("newa")]; + char unicode_prop_name_pool_str2953[sizeof("talu")]; + char unicode_prop_name_pool_str2962[sizeof("dogr")]; + char unicode_prop_name_pool_str2963[sizeof("incjkunifiedideographsextensionf")]; + char unicode_prop_name_pool_str2964[sizeof("otheruppercase")]; + char unicode_prop_name_pool_str2974[sizeof("kayahli")]; + char unicode_prop_name_pool_str2977[sizeof("othersymbol")]; + char unicode_prop_name_pool_str2984[sizeof("taitham")]; + char unicode_prop_name_pool_str2985[sizeof("telu")]; + char unicode_prop_name_pool_str2986[sizeof("tangut")]; + char unicode_prop_name_pool_str2989[sizeof("newtailue")]; + char unicode_prop_name_pool_str2992[sizeof("khoj")]; + char unicode_prop_name_pool_str2993[sizeof("newline")]; + char unicode_prop_name_pool_str2995[sizeof("inalphabeticpresentationforms")]; + char unicode_prop_name_pool_str3000[sizeof("unknown")]; + char unicode_prop_name_pool_str3011[sizeof("epres")]; + char unicode_prop_name_pool_str3012[sizeof("hebr")]; + char unicode_prop_name_pool_str3015[sizeof("cypriot")]; + char unicode_prop_name_pool_str3019[sizeof("tang")]; + char unicode_prop_name_pool_str3020[sizeof("hang")]; + char unicode_prop_name_pool_str3021[sizeof("extender")]; + char unicode_prop_name_pool_str3023[sizeof("tagbanwa")]; + char unicode_prop_name_pool_str3025[sizeof("wspace")]; + char unicode_prop_name_pool_str3037[sizeof("ingujarati")]; + char unicode_prop_name_pool_str3051[sizeof("symbol")]; + char unicode_prop_name_pool_str3053[sizeof("ingunjalagondi")]; + char unicode_prop_name_pool_str3061[sizeof("elbasan")]; + char unicode_prop_name_pool_str3062[sizeof("oupper")]; + char unicode_prop_name_pool_str3063[sizeof("hiragana")]; + char unicode_prop_name_pool_str3065[sizeof("inhangulsyllables")]; + char unicode_prop_name_pool_str3069[sizeof("inalchemicalsymbols")]; + char unicode_prop_name_pool_str3072[sizeof("changeswhencasemapped")]; + char unicode_prop_name_pool_str3074[sizeof("inrejang")]; + char unicode_prop_name_pool_str3075[sizeof("emojipresentation")]; + char unicode_prop_name_pool_str3076[sizeof("khitansmallscript")]; + char unicode_prop_name_pool_str3078[sizeof("intifinagh")]; + char unicode_prop_name_pool_str3085[sizeof("oldnortharabian")]; + char unicode_prop_name_pool_str3089[sizeof("inpsalterpahlavi")]; + char unicode_prop_name_pool_str3090[sizeof("finalpunctuation")]; + char unicode_prop_name_pool_str3092[sizeof("inethiopicextended")]; + char unicode_prop_name_pool_str3096[sizeof("elym")]; + char unicode_prop_name_pool_str3099[sizeof("phlp")]; + char unicode_prop_name_pool_str3104[sizeof("ugaritic")]; + char unicode_prop_name_pool_str3113[sizeof("hmng")]; + char unicode_prop_name_pool_str3114[sizeof("oldsogdian")]; + char unicode_prop_name_pool_str3116[sizeof("paragraphseparator")]; + char unicode_prop_name_pool_str3124[sizeof("buhid")]; + char unicode_prop_name_pool_str3125[sizeof("elymaic")]; + char unicode_prop_name_pool_str3129[sizeof("intangutcomponents")]; + char unicode_prop_name_pool_str3132[sizeof("inlatinextendedb")]; + char unicode_prop_name_pool_str3156[sizeof("soyombo")]; + char unicode_prop_name_pool_str3157[sizeof("omath")]; + char unicode_prop_name_pool_str3171[sizeof("changeswhentitlecased")]; + char unicode_prop_name_pool_str3184[sizeof("invithkuqi")]; + char unicode_prop_name_pool_str3203[sizeof("inmathematicaloperators")]; + char unicode_prop_name_pool_str3211[sizeof("shaw")]; + char unicode_prop_name_pool_str3216[sizeof("tibt")]; + char unicode_prop_name_pool_str3225[sizeof("tibetan")]; + char unicode_prop_name_pool_str3240[sizeof("ingeorgianextended")]; + char unicode_prop_name_pool_str3255[sizeof("insuperscriptsandsubscripts")]; + char unicode_prop_name_pool_str3276[sizeof("intangutsupplement")]; + char unicode_prop_name_pool_str3280[sizeof("softdotted")]; + char unicode_prop_name_pool_str3284[sizeof("inlatinextendedg")]; + char unicode_prop_name_pool_str3286[sizeof("inprivateusearea")]; + char unicode_prop_name_pool_str3296[sizeof("rjng")]; + char unicode_prop_name_pool_str3307[sizeof("nagmundari")]; + char unicode_prop_name_pool_str3312[sizeof("khudawadi")]; + char unicode_prop_name_pool_str3314[sizeof("cwcf")]; + char unicode_prop_name_pool_str3319[sizeof("nshu")]; + char unicode_prop_name_pool_str3325[sizeof("hmnp")]; + char unicode_prop_name_pool_str3328[sizeof("inyijinghexagramsymbols")]; + char unicode_prop_name_pool_str3343[sizeof("otherdefaultignorablecodepoint")]; + char unicode_prop_name_pool_str3345[sizeof("sgnw")]; + char unicode_prop_name_pool_str3347[sizeof("alphabetic")]; + char unicode_prop_name_pool_str3374[sizeof("insupplementalarrowsa")]; + char unicode_prop_name_pool_str3378[sizeof("ogham")]; + char unicode_prop_name_pool_str3383[sizeof("extendedpictographic")]; + char unicode_prop_name_pool_str3398[sizeof("cf")]; + char unicode_prop_name_pool_str3401[sizeof("incypriotsyllabary")]; + char unicode_prop_name_pool_str3408[sizeof("pf")]; + char unicode_prop_name_pool_str3432[sizeof("changeswhenlowercased")]; + char unicode_prop_name_pool_str3463[sizeof("digit")]; + char unicode_prop_name_pool_str3479[sizeof("othermath")]; + char unicode_prop_name_pool_str3489[sizeof("hangul")]; + char unicode_prop_name_pool_str3490[sizeof("insupplementalarrowsc")]; + char unicode_prop_name_pool_str3495[sizeof("nushu")]; + char unicode_prop_name_pool_str3501[sizeof("insupplementalmathematicaloperators")]; + char unicode_prop_name_pool_str3506[sizeof("deva")]; + char unicode_prop_name_pool_str3508[sizeof("bassavah")]; + char unicode_prop_name_pool_str3521[sizeof("devanagari")]; + char unicode_prop_name_pool_str3535[sizeof("idcompatmathcontinue")]; + char unicode_prop_name_pool_str3539[sizeof("changeswhenuppercased")]; + char unicode_prop_name_pool_str3542[sizeof("idcompatmathstart")]; + char unicode_prop_name_pool_str3545[sizeof("inhanguljamoextendedb")]; + char unicode_prop_name_pool_str3578[sizeof("indivesakuru")]; + char unicode_prop_name_pool_str3579[sizeof("aghb")]; + char unicode_prop_name_pool_str3633[sizeof("injavanese")]; + char unicode_prop_name_pool_str3654[sizeof("hung")]; + char unicode_prop_name_pool_str3677[sizeof("oldsoutharabian")]; + char unicode_prop_name_pool_str3685[sizeof("inmahjongtiles")]; + char unicode_prop_name_pool_str3698[sizeof("ogrext")]; + char unicode_prop_name_pool_str3745[sizeof("otherpunctuation")]; + char unicode_prop_name_pool_str3765[sizeof("zyyy")]; + char unicode_prop_name_pool_str3769[sizeof("deprecated")]; + char unicode_prop_name_pool_str3774[sizeof("inethiopicextendedb")]; + char unicode_prop_name_pool_str3780[sizeof("inpahawhhmong")]; + char unicode_prop_name_pool_str3782[sizeof("inhebrew")]; + char unicode_prop_name_pool_str3832[sizeof("hex")]; + char unicode_prop_name_pool_str3856[sizeof("tavt")]; + char unicode_prop_name_pool_str3861[sizeof("modifiersymbol")]; + char unicode_prop_name_pool_str3910[sizeof("inhighprivateusesurrogates")]; + char unicode_prop_name_pool_str3976[sizeof("insupplementalpunctuation")]; + char unicode_prop_name_pool_str4130[sizeof("inegyptianhieroglyphs")]; + char unicode_prop_name_pool_str4133[sizeof("inhalfwidthandfullwidthforms")]; + char unicode_prop_name_pool_str4143[sizeof("inegyptianhieroglyphformatcontrols")]; + char unicode_prop_name_pool_str4158[sizeof("tagb")]; + char unicode_prop_name_pool_str4160[sizeof("ethiopic")]; + char unicode_prop_name_pool_str4201[sizeof("dashpunctuation")]; + char unicode_prop_name_pool_str4206[sizeof("inlatinextendedf")]; + char unicode_prop_name_pool_str4221[sizeof("ecomp")]; + char unicode_prop_name_pool_str4272[sizeof("divesakuru")]; + char unicode_prop_name_pool_str4280[sizeof("dupl")]; + char unicode_prop_name_pool_str4303[sizeof("inglagoliticsupplement")]; + char unicode_prop_name_pool_str4333[sizeof("hexdigit")]; + char unicode_prop_name_pool_str4357[sizeof("othergraphemeextend")]; + char unicode_prop_name_pool_str4387[sizeof("olduyghur")]; + char unicode_prop_name_pool_str4434[sizeof("hluw")]; + char unicode_prop_name_pool_str4435[sizeof("upper")]; + char unicode_prop_name_pool_str4519[sizeof("insupplementalarrowsb")]; + char unicode_prop_name_pool_str4523[sizeof("hyphen")]; + char unicode_prop_name_pool_str4545[sizeof("uppercase")]; + char unicode_prop_name_pool_str4551[sizeof("rejang")]; + char unicode_prop_name_pool_str4555[sizeof("inbopomofoextended")]; + char unicode_prop_name_pool_str4580[sizeof("tifinagh")]; + char unicode_prop_name_pool_str4583[sizeof("dep")]; + char unicode_prop_name_pool_str4612[sizeof("signwriting")]; + char unicode_prop_name_pool_str4661[sizeof("changeswhencasefolded")]; + char unicode_prop_name_pool_str4701[sizeof("tfng")]; + char unicode_prop_name_pool_str4702[sizeof("openpunctuation")]; + char unicode_prop_name_pool_str4715[sizeof("hanifirohingya")]; + char unicode_prop_name_pool_str4752[sizeof("insupplementalsymbolsandpictographs")]; + char unicode_prop_name_pool_str4761[sizeof("tglg")]; + char unicode_prop_name_pool_str4774[sizeof("insupplementaryprivateuseareaa")]; + char unicode_prop_name_pool_str4777[sizeof("tagalog")]; + char unicode_prop_name_pool_str4837[sizeof("uppercaseletter")]; + char unicode_prop_name_pool_str4842[sizeof("telugu")]; + char unicode_prop_name_pool_str4932[sizeof("defaultignorablecodepoint")]; + char unicode_prop_name_pool_str4940[sizeof("pahawhhmong")]; + char unicode_prop_name_pool_str4947[sizeof("unifiedideograph")]; + char unicode_prop_name_pool_str4950[sizeof("inhangulcompatibilityjamo")]; + char unicode_prop_name_pool_str4968[sizeof("inhighsurrogates")]; + char unicode_prop_name_pool_str5027[sizeof("duployan")]; + char unicode_prop_name_pool_str5081[sizeof("inboxdrawing")]; + char unicode_prop_name_pool_str5130[sizeof("egyp")]; + char unicode_prop_name_pool_str5177[sizeof("nyiakengpuachuehmong")]; + char unicode_prop_name_pool_str5439[sizeof("egyptianhieroglyphs")]; + char unicode_prop_name_pool_str5919[sizeof("insupplementaryprivateuseareab")]; + char unicode_prop_name_pool_str5964[sizeof("hebrew")]; }; static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = { + "yi", + "yiii", "lana", "lina", - "z", - "yi", - "mn", - "cn", "maka", - "yiii", "mani", - "inkannada", - "ci", + "mn", + "miao", "lo", "lao", "laoo", - "zzzz", - "miao", - "yezi", + "z", + "ci", + "inkannada", + "cn", + "pi", "innko", - "co", - "me", - "loe", "gran", - "pi", + "co", "lineara", "mark", - "cari", - "carian", + "yezi", "po", - "mendekikakui", - "grek", - "pe", - "meeteimayek", + "me", + "cari", "inkharoshthi", - "geor", - "greek", "mro", "mroo", + "loe", + "grek", + "carian", + "geor", + "greek", + "zzzz", "kana", "mero", "m", + "pe", + "mendekikakui", "gonm", - "cakm", "inosmanya", - "inmanichaean", - "inarmenian", + "meeteimayek", + "cakm", "inmro", "inmiao", - "c", - "inchakma", - "common", + "inmanichaean", "mandaic", + "inchakma", + "c", + "inarmenian", + "qaai", "inmyanmar", "inmakasar", - "qaai", - "inideographicsymbolsandpunctuation", - "inkhmer", - "cans", - "prependedconcatenationmark", - "lm", + "common", "marc", - "connectorpunctuation", "inrunic", "incarian", - "inavestan", - "combiningmark", - "incuneiformnumbersandpunctuation", + "lm", + "inkhmer", + "cans", + "inideographicsymbolsandpunctuation", "merc", "inchorasmian", + "combiningmark", "perm", + "inavestan", "inahom", - "inipaextensions", - "incherokee", "insharada", + "inipaextensions", "makasar", + "prependedconcatenationmark", + "masaramgondi", + "connectorpunctuation", "inarrows", "lc", - "masaramgondi", - "incuneiform", + "incuneiformnumbersandpunctuation", + "incherokee", "mc", - "cc", - "inzanabazarsquare", - "lineseparator", + "armi", "armn", + "cc", "qmark", - "armi", - "insamaritan", + "lineseparator", + "incuneiform", "armenian", - "inmarchen", - "inmasaramgondi", "qaac", "pc", + "insamaritan", + "inmarchen", "inscriptionalparthian", - "latn", - "latin", "ri", + "inmasaramgondi", + "latn", + "inzanabazarsquare", "inthaana", - "inkhmersymbols", - "inkatakana", + "latin", "incyrillic", "inthai", - "incham", + "inkatakana", "inkaithi", "zs", - "mtei", + "incham", "initialpunctuation", - "cs", + "mtei", + "inkhmersymbols", "insyriac", + "cs", "pcm", "intakri", "ps", - "mand", - "inkanaextendeda", - "mend", - "modi", - "katakana", - "ideo", "prti", - "yezidi", - "inideographicdescriptioncharacters", - "xidcontinue", - "brai", + "katakana", "ascii", - "privateuse", "arabic", - "inmyanmarextendeda", + "privateuse", + "inideographicdescriptioncharacters", "inruminumeralsymbols", "letter", - "innandinagari", - "inmeeteimayek", - "inoldnortharabian", "incjkcompatibilityforms", - "knda", - "kannada", + "inmyanmarextendeda", "incjkcompatibilityideographs", - "l", - "inmodi", - "inspecials", + "inmeeteimayek", "intransportandmapsymbols", - "inmendekikakui", + "inspecials", "letternumber", - "inmedefaidrin", - "xidc", + "mand", + "modi", "inchesssymbols", "inemoticons", - "inlineara", - "inlao", - "brahmi", - "inolditalic", - "inmiscellaneousmathematicalsymbolsa", - "mongolian", - "xids", + "inkanaextendeda", + "brai", + "mend", + "ideo", "psalterpahlavi", - "grlink", "kits", - "insundanese", - "inoldsogdian", "gothic", + "l", + "yezidi", + "inmiscellaneousmathematicalsymbolsa", + "innandinagari", "inancientsymbols", + "xidcontinue", + "lt", + "inoldnortharabian", + "knda", "meroiticcursive", + "kannada", + "inlao", + "incjkcompatibilityideographssupplement", + "inmodi", + "mongolian", + "inlineara", + "patternwhitespace", + "incommonindicnumberforms", + "intoto", + "grlink", + "inmendekikakui", + "brahmi", + "incjkstrokes", + "xidc", + "inopticalcharacterrecognition", + "inolditalic", + "inmedefaidrin", "kali", + "inkanasupplement", + "patws", + "grext", "control", - "patternwhitespace", "inadlam", + "print", "sk", - "lt", - "inmandaic", - "incommonindicnumberforms", - "incjkcompatibilityideographssupplement", + "xids", "so", - "idc", - "inoldsoutharabian", "palm", + "inoldsogdian", + "intaitham", "inlycian", - "intoto", - "idsbinaryoperator", - "inkanasupplement", - "incjkstrokes", + "insundanese", + "inmusicalsymbols", "sora", + "inmandaic", + "idc", + "inoldsoutharabian", + "incontrolpictures", + "inmalayalam", + "idsbinaryoperator", + "inmiscellaneoussymbols", "bamum", - "inopticalcharacterrecognition", - "indominotiles", + "inmiscellaneoussymbolsandarrows", "batk", - "grext", - "batak", - "patws", - "inmalayalam", - "inmodifiertoneletters", + "inmiscellaneoussymbolsandpictographs", "insmallkanaextension", + "batak", + "insylotinagri", + "samr", + "indominotiles", + "idsunaryoperator", "bass", - "ids", - "print", + "joinc", "inlinearbideograms", - "intaitham", - "inmusicalsymbols", - "inznamennymusicalnotation", - "samr", - "insylotinagri", - "innewa", + "ids", "samaritan", "s", - "joinc", - "incontrolpictures", - "lisu", + "inmodifiertoneletters", "pauc", - "inmiscellaneoussymbols", - "inancientgreekmusicalnotation", - "inmiscellaneoussymbolsandarrows", - "sm", - "inmiscellaneoussymbolsandpictographs", - "inugaritic", - "pd", + "inznamennymusicalnotation", + "lisu", "ital", + "inugaritic", + "sm", + "inancientgreekmusicalnotation", "alnum", - "zinh", - "inwarangciti", "inlatinextendeda", "insaurashtra", "intaile", - "inoldturkic", - "idcontinue", - "inhanifirohingya", "sc", - "idst", + "inoldturkic", + "inmeeteimayekextensions", "inlatinextendede", - "lower", - "bali", - "inhiragana", + "idst", "incaucasianalbanian", + "idcontinue", + "intamil", + "inmultani", + "oriya", "indeseret", - "blank", + "idstart", "inspacingmodifierletters", - "cherokee", + "runr", + "pd", + "inancientgreeknumbers", + "bali", + "inearlydynasticcuneiform", + "blank", + "vai", + "vaii", "inlydian", - "phoenician", - "cher", "bengali", + "incountingrodnumerals", + "xidstart", + "xdigit", + "ll", + "zl", + "balinese", + "inlatinextendedc", + "plrd", + "osage", + "canadianaboriginal", + "sind", + "inkaktoviknumerals", + "zinh", + "cased", + "osma", + "sterm", + "inkhudawadi", + "inhanifirohingya", + "incyrillicsupplement", + "quotationmark", + "runic", + "inhiragana", + "zanb", + "linb", + "inkhitansmallscript", + "incherokeesupplement", + "bidic", + "phoenician", + "inbhaiksuki", + "sinhala", + "inolduyghur", + "innabataean", + "inkanbun", + "gunjalagondi", + "multani", "marchen", - "inwancho", + "bamu", + "glagolitic", "graphemelink", - "balinese", - "idstart", - "intamil", - "inmultani", - "cham", - "chakma", + "insiddham", "kaithi", + "cher", + "adlm", + "inelbasan", + "linearb", + "joincontrol", + "intamilsupplement", "inmahajani", - "graphemebase", - "inogham", - "cased", - "inmeeteimayekextensions", + "cherokee", "khojki", - "inancientgreeknumbers", - "runr", + "inogham", + "cham", + "chakma", + "casedletter", "khar", + "inmiscellaneoustechnical", + "punct", "manichaean", - "lowercase", - "canadianaboriginal", + "graphemebase", + "gong", "inolchiki", - "plrd", - "inethiopic", - "sind", - "cwcm", - "inearlydynasticcuneiform", - "ll", - "zl", - "insinhala", - "inkhudawadi", - "xidstart", - "xdigit", - "bidic", - "chorasmian", - "insiddham", - "incountingrodnumerals", - "ahom", - "chrs", - "khmr", - "inolduyghur", "ingrantha", - "bamu", - "inscriptionalpahlavi", - "gong", + "limb", "mong", - "inlatinextendedc", - "innewtailue", - "adlm", + "idsu", + "inethiopic", + "lu", + "insinhala", + "incb", + "incjkunifiedideographsextensiona", + "inarabic", + "incjkunifiedideographsextensioni", + "inkayahli", + "georgian", "inosage", + "inoriya", + "wara", + "adlam", "ingeneralpunctuation", - "georgian", - "kharoshthi", - "sinhala", - "khmer", - "sterm", - "casedletter", - "multani", - "gunjalagondi", - "math", - "incyrillicsupplement", "ingeorgian", - "goth", - "incherokeesupplement", - "glagolitic", - "quotationmark", - "uideo", - "incjkunifiedideographsextensiona", - "joincontrol", - "runic", - "inmongolian", - "emoji", + "arab", + "inyezidi", + "chorasmian", "incjkunifiedideographsextensione", - "grantha", - "intirhuta", - "inhatran", - "adlam", - "lu", - "inkhitansmallscript", - "kthi", - "ingurmukhi", - "sundanese", - "inoldhungarian", - "takri", - "intamilsupplement", - "oriya", - "invai", - "brah", - "inmiscellaneoustechnical", - "vai", - "vaii", "saur", + "vs", "guru", - "taile", - "inherited", + "ahom", + "sundanese", + "khmr", + "chrs", "paucinhau", - "zanb", - "punct", - "linb", + "inscriptionalpahlavi", "gurmukhi", - "takr", - "innabataean", - "inkanbun", - "logicalorderexception", - "inbhaiksuki", - "incjkunifiedideographsextensionc", - "graphemeextend", - "inelbasan", - "insorasompeng", - "han", - "hani", - "limbu", - "unassigned", - "radical", - "hano", - "lowercaseletter", + "emoji", + "inarabicpresentationformsa", + "inbasiclatin", + "odi", + "inmongolian", + "innagmundari", + "kharoshthi", + "khmer", "cntrl", - "incjkunifiedideographs", - "linearb", - "inanatolianhieroglyphs", - "hanunoo", - "inkhojki", + "limbu", "inlatinextendedadditional", - "inenclosedalphanumerics", + "lyci", + "ingurmukhi", + "math", + "goth", + "radical", + "lycian", "anatolianhieroglyphs", + "incjkunifiedideographsextensionc", + "inenclosedalphanumerics", + "mymr", + "myanmar", + "patternsyntax", + "grbase", + "grantha", + "incjkunifiedideographs", + "saurashtra", + "intirhuta", + "inhatran", "n", - "emojimodifier", - "sd", - "hira", - "sidd", - "limb", - "bhks", - "phli", - "nandinagari", + "inbatak", + "insorasompeng", + "mult", + "insoyombo", + "logicalorderexception", + "oidc", "no", - "saurashtra", - "intangsa", - "cwt", - "bhaiksuki", - "ingreekandcoptic", + "nandinagari", + "kthi", "nko", "nkoo", - "term", - "osage", - "xpeo", - "tnsa", - "tangsa", - "inkayahli", "p", - "inoriya", - "inyezidi", - "inarabic", - "inphoenician", - "inshavian", - "bidicontrol", + "intibetan", + "inblockelements", + "oids", "inenclosedideographicsupplement", - "wara", - "mult", + "innewa", + "emojimodifier", + "xpeo", + "inkawi", + "inelymaic", + "inphoenician", + "innumberforms", + "intangsa", + "olck", + "incjkcompatibility", + "inenclosedalphanumericsupplement", + "olower", + "olchiki", + "inwarangciti", + "ingreekandcoptic", "inmeroitichieroglyphs", - "sinh", - "shavian", - "inkangxiradicals", + "sd", + "cpmn", + "sidd", + "inmayannumerals", + "intaixuanjingsymbols", + "inanatolianhieroglyphs", "enclosingmark", - "arab", - "insinhalaarchaicnumbers", + "inbyzantinemusicalsymbols", + "inkangxiradicals", + "kawi", + "inphaistosdisc", + "inmyanmarextendedb", + "patsyn", + "lower", + "lepc", + "bidicontrol", "braille", - "inhanunoo", - "osma", - "beng", - "inbasiclatin", - "inarabicpresentationformsa", - "cpmn", + "brah", + "inoldhungarian", + "punctuation", + "inbraillepatterns", + "insundanesesupplement", "regionalindicator", - "inenclosedalphanumericsupplement", + "incyprominoan", + "inherited", + "inyiradicals", + "inwancho", + "inkanaextendedb", "emojimodifierbase", - "ingreekextended", - "lepc", - "indogra", - "format", - "lyci", - "lycian", + "inimperialaramaic", + "incyrillicextendeda", + "phli", + "inarabicextendeda", + "insinhalaarchaicnumbers", + "graphemeextend", + "inmiscellaneousmathematicalsymbolsb", "dia", - "inphaistosdisc", "di", "diak", - "unknown", - "grbase", - "mymr", - "myanmar", - "incjkunifiedideographsextensiond", - "emod", + "lowercase", "ingeometricshapes", - "incyprominoan", - "insundanesesupplement", - "toto", - "glag", - "taiviet", - "asciihexdigit", - "odi", - "punctuation", - "vs", + "format", + "innoblock", + "coptic", + "bhks", + "cwcm", + "beng", + "lydi", + "inbalinese", + "bhaiksuki", + "lydian", + "sinh", "sund", - "insoyombo", - "inimperialaramaic", - "inbatak", + "shavian", + "incjkunifiedideographsextensiond", + "indogra", + "glag", + "copt", + "ininscriptionalpahlavi", + "ininscriptionalparthian", + "emojicomponent", + "inhanunoo", "inlatinextendedd", - "innushu", - "intibetan", - "inlowsurrogates", - "hatran", - "inblockelements", + "word", + "asciihexdigit", + "idsb", + "incyrillicextendedc", + "ingreekextended", + "cprt", + "inarabicextendedc", + "emod", + "intangut", + "hani", + "imperialaramaic", + "han", + "takri", + "hano", + "invai", + "innewtailue", + "sarb", + "xsux", + "intags", + "meroitichieroglyphs", + "hanunoo", + "inkhojki", + "hira", + "zanabazarsquare", + "takr", + "inkatakanaphoneticextensions", + "diacritic", + "cyrl", + "taile", "insogdian", "indingbats", - "inelymaic", - "indevanagari", - "emojicomponent", - "inkatakanaphoneticextensions", - "ideographic", - "coptic", - "innumberforms", - "hatr", - "incjkcompatibility", - "inkanaextendedb", - "patternsyntax", - "avestan", - "inarabicextendeda", + "sentenceterminal", "sogdian", "sogo", - "intangut", - "copt", - "graph", - "oidc", - "inbyzantinemusicalsymbols", - "ininscriptionalparthian", - "diacritic", - "ininscriptionalpahlavi", - "inmayannumerals", - "inmyanmarextendedb", - "intags", - "java", - "cprt", + "mlym", + "malayalam", + "ideographic", + "palmyrene", "nand", - "patsyn", - "tale", - "oids", - "sentenceterminal", - "imperialaramaic", - "terminalpunctuation", - "lydi", - "lydian", + "innushu", + "incjksymbolsandpunctuation", + "soyo", + "variationselector", "bopo", - "javanese", - "cwl", - "ingeometricshapesextended", + "inlisusupplement", + "vithkuqi", "inoldpersian", + "tnsa", + "oldpersian", + "tangsa", "inornamentaldingbats", - "inbraillepatterns", - "invariationselectors", + "term", + "incoptic", + "inlisu", + "inshavian", + "insyriacsupplement", + "uideo", "caseignorable", - "inyiradicals", - "innoblock", - "inverticalforms", - "inethiopicsupplement", - "sharada", - "inbalinese", - "invedicextensions", - "word", - "inmiscellaneousmathematicalsymbolsb", - "taml", - "olck", - "idsb", - "olower", + "inbamum", + "caucasianalbanian", + "lowercaseletter", "decimalnumber", - "avst", - "incyrillicextendeda", - "olchiki", - "shrd", - "intaixuanjingsymbols", - "intaiviet", - "ugar", - "incjksymbolsandpunctuation", + "ingeometricshapesextended", + "orkh", "bopomofo", - "inlisu", + "syrc", "inoldpermic", - "siddham", - "zanabazarsquare", - "assigned", - "medf", + "incombiningdiacriticalmarks", + "oldpermic", "closepunctuation", - "sarb", - "sorasompeng", - "invariationselectorssupplement", - "inhanguljamo", - "medefaidrin", - "phag", - "inlisusupplement", - "incoptic", - "insyriacsupplement", - "inhanguljamoextendeda", - "cyrl", + "incombiningdiacriticalmarksforsymbols", + "cwt", + "alpha", + "hatran", "inshorthandformatcontrols", - "incyrillicextendedc", - "gujr", - "cwu", - "gujarati", + "sorasompeng", + "intelugu", + "toto", "spacingmark", - "alpha", - "mlym", + "inlepcha", + "inethiopicsupplement", + "taiviet", "inpalmyrene", - "malayalam", + "hatr", + "unassigned", + "assigned", + "incyrillicextendedd", "space", - "inlepcha", - "palmyrene", - "soyo", - "meroitichieroglyphs", - "xsux", - "intelugu", - "indevanagariextended", - "inmeroiticcursive", + "phnx", "dsrt", - "thaa", - "thaana", - "bugi", - "thai", - "sogd", - "titlecaseletter", - "inmathematicalalphanumericsymbols", - "orkh", - "caucasianalbanian", - "inbamum", + "incurrencysymbols", + "syriac", + "orya", + "insymbolsandpictographsextendeda", + "incombiningdiacriticalmarkssupplement", + "ogam", + "separator", + "medf", + "sharada", + "medefaidrin", + "incopticepactnumbers", + "avestan", "deseret", + "mathsymbol", + "graph", + "shrd", + "insuttonsignwriting", + "ahex", "ingeorgiansupplement", - "buginese", - "separator", - "insmallformvariants", - "tirh", "inbrahmi", - "nd", - "phnx", - "newa", - "incombiningdiacriticalmarks", - "mahj", - "incombiningdiacriticalmarksforsymbols", - "oldpersian", - "mahajani", - "taitham", - "newtailue", - "newline", - "syrc", - "inmongoliansupplement", - "inunifiedcanadianaboriginalsyllabicsextendeda", - "shaw", - "buhd", - "vithkuqi", + "olditalic", "number", - "insuttonsignwriting", - "variationselector", - "ethi", - "lepcha", - "tirhuta", - "rohg", - "ahex", - "incopticepactnumbers", - "wancho", - "incjkunifiedideographsextensiong", - "khoj", - "cuneiform", - "induployan", - "ugaritic", - "insymbolsandpictographsextendeda", - "oldpermic", - "incombiningdiacriticalmarkssupplement", - "khudawadi", - "tang", - "syriac", - "tagbanwa", - "modifierletter", - "incurrencysymbols", - "innyiakengpuachuehmong", - "tamil", - "talu", - "ingothic", - "inunifiedcanadianaboriginalsyllabics", - "wcho", + "indevanagari", + "osge", + "terminalpunctuation", + "invariationselectors", + "siddham", + "inverticalforms", + "inmathematicalalphanumericsymbols", + "inmongoliansupplement", + "java", + "indevanagariextendeda", + "bugi", + "other", + "sogd", + "otheridcontinue", + "avst", + "othernumber", + "inlowsurrogates", + "tale", + "phag", + "nd", + "intaiviet", + "inhanguljamo", "incombiningdiacriticalmarksextended", - "ogam", - "telu", - "idstrinaryoperator", + "incjkunifiedideographsextensionh", + "inlinearbsyllabary", + "inottomansiyaqnumbers", + "vith", + "wancho", + "inunifiedcanadianaboriginalsyllabicsextendeda", + "osmanya", + "javanese", + "buginese", "inbengali", - "nl", - "surrogate", - "ebase", - "hang", + "inhanguljamoextendeda", + "taml", + "inlimbu", + "invariationselectorssupplement", "inbuginese", - "mathsymbol", - "invithkuqi", - "vith", - "incjkradicalssupplement", - "ingujarati", - "inglagolitic", - "ingunjalagondi", - "phagspa", - "cwcf", - "nchar", - "otheridcontinue", - "whitespace", - "inlinearbsyllabary", - "sgnw", - "other", - "hiragana", - "inphagspa", - "othernumber", - "inrejang", - "osge", "incjkunifiedideographsextensionb", - "intagalog", - "inbassavah", - "tangut", - "hmng", - "inenclosedcjklettersandmonths", - "currencysymbol", - "inlimbu", - "inbuhid", - "inethiopicextendeda", "sylo", - "dash", - "warangciti", + "currencysymbol", + "ebase", + "incjkradicalssupplement", + "idstrinaryoperator", + "inletterlikesymbols", + "otheralphabetic", + "invedicextensions", + "induployan", + "cuneiform", + "gujr", + "wcho", + "gujarati", + "inarabicpresentationformsb", + "nl", "oalpha", - "olditalic", - "inottomansiyaqnumbers", - "spaceseparator", + "incjkunifiedideographsextensiong", + "cyrillic", + "modifierletter", + "oldhungarian", + "inunifiedcanadianaboriginalsyllabics", + "warangciti", + "innyiakengpuachuehmong", + "titlecaseletter", + "cwl", + "lepcha", + "inbassavah", + "whitespace", "inlatin1supplement", - "otheralphabetic", - "changeswhencasemapped", "inaegeannumbers", - "inunifiedcanadianaboriginalsyllabicsextended", - "buhid", - "injavanese", - "cyrillic", - "dogra", - "noncharactercodepoint", - "inhangulsyllables", - "bassavah", - "inletterlikesymbols", - "incombininghalfmarks", - "inarabicmathematicalalphabeticsymbols", - "orya", - "inprivateusearea", - "changeswhentitlecased", - "dogr", - "hebr", - "intagbanwa", - "intifinagh", - "inbopomofo", + "surrogate", + "spaceseparator", + "ethi", + "rohg", "narb", - "rjng", - "inalphabeticpresentationforms", - "incjkunifiedideographsextensionf", + "any", + "inbopomofo", + "inethiopicextendeda", + "inmeroiticcursive", + "insmallformvariants", + "buhd", + "oldturkic", + "intagbanwa", + "inindicsiyaqnumbers", + "inphagspa", "insymbolsforlegacycomputing", - "oldhungarian", - "finalpunctuation", - "inpaucinhau", - "inpsalterpahlavi", - "zp", - "phlp", - "inarabicpresentationformsb", - "nonspacingmark", - "deva", - "tavt", - "hmnp", - "devanagari", - "khitansmallscript", - "kayahli", - "inbamumsupplement", + "inglagolitic", "sylotinagri", - "tibt", - "epres", - "tibetan", - "elba", - "osmanya", - "indivesakuru", - "oldturkic", - "changeswhenlowercased", - "cyprominoan", - "inethiopicextended", - "emojipresentation", - "any", - "otherlowercase", + "inbamumsupplement", + "inarabicmathematicalalphabeticsymbols", + "inbuhid", + "ingothic", + "incombininghalfmarks", + "phagspa", + "nchar", + "intagalog", + "ugar", + "tirhuta", + "nagm", "ougr", - "inhebrew", - "softdotted", - "inmathematicaloperators", - "inalchemicalsymbols", - "inmahjongtiles", - "hangul", "ext", - "omath", - "intangutcomponents", - "otherletter", + "cwu", + "indevanagariextended", + "inphoneticextensions", + "incyrillicextendedb", + "inarabicextendedb", + "cyprominoan", + "inpaucinhau", + "inunifiedcanadianaboriginalsyllabicsextended", + "otheridstart", + "otherlowercase", "nbat", + "otherletter", "nabataean", - "nshu", - "paragraphseparator", - "inarabicextendedb", - "inlatinextendedg", - "changeswhenuppercased", - "hung", + "inyisyllables", + "zp", + "thaa", + "thai", + "thaana", + "elba", + "mahj", + "extpict", + "mahajani", + "nonspacingmark", "inplayingcards", + "noncharactercodepoint", "inarabicsupplement", - "inyijinghexagramsymbols", - "inphoneticextensions", + "dogra", + "tirh", + "inphoneticextensionssupplement", + "posixpunct", + "dash", + "inenclosedcjklettersandmonths", + "tamil", + "newa", + "talu", + "dogr", + "incjkunifiedideographsextensionf", "otheruppercase", - "otheridstart", - "elbasan", - "elym", - "cf", - "inindicsiyaqnumbers", + "kayahli", "othersymbol", + "taitham", + "telu", + "tangut", + "newtailue", + "khoj", + "newline", + "inalphabeticpresentationforms", + "unknown", + "epres", + "hebr", + "cypriot", + "tang", + "hang", "extender", - "extpict", + "tagbanwa", "wspace", - "pf", - "elymaic", - "intangutsupplement", - "cypriot", + "ingujarati", "symbol", - "incyrillicextendedb", - "insuperscriptsandsubscripts", - "inyisyllables", - "inphoneticextensionssupplement", + "ingunjalagondi", + "elbasan", + "oupper", + "hiragana", + "inhangulsyllables", + "inalchemicalsymbols", + "changeswhencasemapped", + "inrejang", + "emojipresentation", + "khitansmallscript", + "intifinagh", + "oldnortharabian", + "inpsalterpahlavi", + "finalpunctuation", + "inethiopicextended", + "elym", + "phlp", + "ugaritic", + "hmng", "oldsogdian", + "paragraphseparator", + "buhid", + "elymaic", + "intangutcomponents", + "inlatinextendedb", + "soyombo", + "omath", + "changeswhentitlecased", + "invithkuqi", + "inmathematicaloperators", + "shaw", + "tibt", + "tibetan", "ingeorgianextended", - "hluw", - "digit", - "inhanguljamoextendedb", - "inhighprivateusesurrogates", - "inpahawhhmong", - "ogham", + "insuperscriptsandsubscripts", + "intangutsupplement", + "softdotted", + "inlatinextendedg", + "inprivateusearea", + "rjng", + "nagmundari", + "khudawadi", + "cwcf", + "nshu", + "hmnp", + "inyijinghexagramsymbols", + "otherdefaultignorablecodepoint", + "sgnw", + "alphabetic", "insupplementalarrowsa", - "oupper", - "aghb", + "ogham", + "extendedpictographic", + "cf", + "incypriotsyllabary", + "pf", + "changeswhenlowercased", + "digit", "othermath", - "nushu", - "soyombo", - "inlatinextendedb", - "alphabetic", + "hangul", "insupplementalarrowsc", + "nushu", "insupplementalmathematicaloperators", - "otherdefaultignorablecodepoint", - "deprecated", - "oldnortharabian", - "incypriotsyllabary", - "extendedpictographic", - "unifiedideograph", - "pahawhhmong", - "divesakuru", - "signwriting", - "tagb", - "tifinagh", - "upper", - "inhalfwidthandfullwidthforms", - "uppercase", - "ethiopic", - "modifiersymbol", + "deva", + "bassavah", + "devanagari", + "idcompatmathcontinue", + "changeswhenuppercased", + "idcompatmathstart", + "inhanguljamoextendedb", + "indivesakuru", + "aghb", + "injavanese", + "hung", + "oldsoutharabian", + "inmahjongtiles", + "ogrext", "otherpunctuation", - "rejang", + "zyyy", + "deprecated", "inethiopicextendedb", - "tfng", + "inpahawhhmong", + "inhebrew", "hex", + "tavt", + "modifiersymbol", + "inhighprivateusesurrogates", "insupplementalpunctuation", - "tglg", + "inegyptianhieroglyphs", + "inhalfwidthandfullwidthforms", + "inegyptianhieroglyphformatcontrols", + "tagb", + "ethiopic", + "dashpunctuation", "inlatinextendedf", - "tagalog", - "hanifirohingya", "ecomp", + "divesakuru", + "dupl", "inglagoliticsupplement", "hexdigit", - "changeswhencasefolded", - "dashpunctuation", - "oldsoutharabian", - "dupl", - "inegyptianhieroglyphs", - "telugu", - "uppercaseletter", - "inegyptianhieroglyphformatcontrols", - "hyphen", - "hebrew", - "inhighsurrogates", - "zyyy", - "ogrext", "othergraphemeextend", - "dep", - "insupplementalarrowsb", - "defaultignorablecodepoint", - "inhangulcompatibilityjamo", "olduyghur", - "insupplementaryprivateuseareaa", + "hluw", + "upper", + "insupplementalarrowsb", + "hyphen", + "uppercase", + "rejang", "inbopomofoextended", - "insupplementalsymbolsandpictographs", - "nyiakengpuachuehmong", + "tifinagh", + "dep", + "signwriting", + "changeswhencasefolded", + "tfng", "openpunctuation", - "egyp", + "hanifirohingya", + "insupplementalsymbolsandpictographs", + "tglg", + "insupplementaryprivateuseareaa", + "tagalog", + "uppercaseletter", + "telugu", + "defaultignorablecodepoint", + "pahawhhmong", + "unifiedideograph", + "inhangulcompatibilityjamo", + "inhighsurrogates", "duployan", "inboxdrawing", + "egyp", + "nyiakengpuachuehmong", "egyptianhieroglyphs", - "insupplementaryprivateuseareab" + "insupplementaryprivateuseareab", + "hebrew" }; #define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents) static const struct PoolPropertyNameCtype * @@ -28313,2449 +29227,2363 @@ unicode_lookup_property_name (register const char *str, register size_t len) { static const struct PoolPropertyNameCtype wordlist[] = { - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(10), 243}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(17), 129}, - - {pool_offset(18), 271}, - {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(20), 270}, - {-1}, {-1}, {-1}, + {pool_offset(8), 276}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(24), 158}, + {pool_offset(13), 276}, {-1}, {-1}, - {pool_offset(27), 54}, + {pool_offset(16), 249}, + {-1}, {-1}, - {pool_offset(28), 143}, + {pool_offset(19), 134}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(29), 270}, + {pool_offset(25), 148}, - {pool_offset(30), 146}, - {-1}, {-1}, {-1}, + {pool_offset(26), 151}, - {pool_offset(34), 305}, + {pool_offset(27), 163}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(35), 40}, - {-1}, + {pool_offset(33), 162}, - {pool_offset(37), 134}, + {pool_offset(34), 139}, - {pool_offset(38), 125}, + {pool_offset(35), 130}, - {pool_offset(39), 125}, + {pool_offset(36), 130}, {-1}, - {pool_offset(41), 259}, + {pool_offset(38), 277}, {-1}, - {pool_offset(43), 157}, - - {pool_offset(44), 269}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(51), 292}, - {-1}, + {pool_offset(40), 40}, + {-1}, {-1}, - {pool_offset(53), 55}, + {pool_offset(43), 311}, {-1}, {-1}, - {pool_offset(56), 151}, + {pool_offset(46), 54}, {-1}, {-1}, {-1}, - {pool_offset(60), 135}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(50), 216}, - {pool_offset(70), 86}, - {-1}, + {pool_offset(51), 298}, + {-1}, {-1}, {-1}, + + {pool_offset(55), 86}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(72), 210}, + {pool_offset(60), 55}, {-1}, {-1}, {-1}, - {pool_offset(76), 129}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(64), 134}, + {-1}, {-1}, - {pool_offset(84), 141}, - {-1}, + {pool_offset(67), 146}, - {pool_offset(86), 39}, + {pool_offset(68), 275}, + {-1}, - {pool_offset(87), 39}, - {-1}, {-1}, + {pool_offset(70), 217}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(90), 211}, + {pool_offset(79), 156}, + {-1}, - {pool_offset(91), 154}, - {-1}, {-1}, + {pool_offset(81), 39}, - {pool_offset(94), 90}, + {pool_offset(82), 478}, {-1}, - {pool_offset(96), 206}, + {pool_offset(84), 166}, + + {pool_offset(85), 166}, + + {pool_offset(86), 140}, {-1}, {-1}, - {pool_offset(99), 153}, + {pool_offset(89), 90}, + {-1}, {-1}, + + {pool_offset(92), 39}, {-1}, - {pool_offset(101), 472}, + {pool_offset(94), 83}, + {-1}, {-1}, {-1}, - {pool_offset(102), 83}, + {pool_offset(98), 90}, - {pool_offset(103), 90}, + {pool_offset(99), 265}, {-1}, {-1}, {-1}, - {pool_offset(107), 161}, + {pool_offset(103), 120}, - {pool_offset(108), 161}, - {-1}, + {pool_offset(104), 161}, + {-1}, {-1}, - {pool_offset(110), 116}, + {pool_offset(107), 146}, - {pool_offset(111), 156}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(108), 212}, - {pool_offset(120), 141}, + {pool_offset(109), 159}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - {pool_offset(133), 148}, + {pool_offset(119), 153}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(134), 45}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(129), 462}, + {-1}, - {pool_offset(139), 456}, - {-1}, {-1}, + {pool_offset(131), 158}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(142), 475}, - {-1}, {-1}, {-1}, + {pool_offset(137), 45}, + + {pool_offset(138), 540}, - {pool_offset(146), 286}, + {pool_offset(139), 545}, + + {pool_offset(140), 481}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(151), 531}, + {pool_offset(145), 150}, - {pool_offset(152), 536}, - {-1}, {-1}, {-1}, + {pool_offset(146), 500}, + {-1}, {-1}, + + {pool_offset(149), 37}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(156), 37}, + {pool_offset(155), 292}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(163), 493}, - {-1}, {-1}, + {pool_offset(162), 113}, + {-1}, + + {pool_offset(164), 317}, + {-1}, - {pool_offset(166), 56}, + {pool_offset(166), 528}, {-1}, {-1}, - {pool_offset(169), 145}, + {pool_offset(169), 56}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(175), 152}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(182), 311}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(188), 325}, - {pool_offset(187), 520}, + {pool_offset(189), 453}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(192), 109}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(194), 138}, + {-1}, - {pool_offset(200), 537}, - {-1}, {-1}, {-1}, + {pool_offset(196), 330}, - {pool_offset(204), 324}, - {-1}, {-1}, + {pool_offset(197), 38}, - {pool_offset(207), 38}, - {-1}, + {pool_offset(198), 546}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(209), 212}, + {pool_offset(207), 160}, {-1}, - {pool_offset(211), 133}, + {pool_offset(209), 495}, - {pool_offset(212), 147}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(210), 146}, + {-1}, {-1}, - {pool_offset(219), 204}, + {pool_offset(213), 187}, + {-1}, {-1}, - {pool_offset(220), 319}, + {pool_offset(216), 482}, + {-1}, {-1}, - {pool_offset(221), 447}, - {-1}, + {pool_offset(219), 514}, - {pool_offset(223), 476}, + {pool_offset(220), 502}, {-1}, - {pool_offset(225), 141}, + {pool_offset(222), 286}, + {-1}, {-1}, - {pool_offset(226), 524}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(225), 148}, - {pool_offset(231), 155}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(226), 218}, + {-1}, - {pool_offset(237), 488}, + {pool_offset(228), 153}, + {-1}, {-1}, - {pool_offset(238), 181}, + {pool_offset(231), 210}, - {pool_offset(239), 507}, + {pool_offset(232), 360}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(240), 280}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(240), 129}, + {-1}, {-1}, {-1}, + + {pool_offset(244), 533}, {-1}, - {pool_offset(251), 316}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(246), 322}, - {pool_offset(257), 495}, + {pool_offset(247), 155}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(268), 143}, - {-1}, {-1}, {-1}, + {pool_offset(258), 111}, + {-1}, {-1}, - {pool_offset(272), 354}, + {pool_offset(261), 22}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(277), 124}, + {pool_offset(266), 43}, + {-1}, {-1}, + + {pool_offset(269), 221}, + + {pool_offset(270), 279}, {-1}, - {pool_offset(279), 148}, - {-1}, {-1}, {-1}, + {pool_offset(272), 532}, + {-1}, - {pool_offset(283), 523}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(274), 22}, + + {pool_offset(275), 57}, - {pool_offset(290), 150}, + {pool_offset(276), 210}, {-1}, {-1}, - {pool_offset(293), 43}, - {-1}, {-1}, {-1}, + {pool_offset(279), 299}, - {pool_offset(297), 512}, + {pool_offset(280), 525}, + {-1}, {-1}, - {pool_offset(298), 273}, - {-1}, {-1}, {-1}, + {pool_offset(283), 115}, - {pool_offset(302), 22}, - {-1}, {-1}, + {pool_offset(284), 223}, - {pool_offset(305), 215}, + {pool_offset(285), 526}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(306), 108}, + {pool_offset(292), 131}, {-1}, {-1}, - {pool_offset(309), 293}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(295), 519}, + {-1}, {-1}, + + {pool_offset(298), 297}, - {pool_offset(316), 22}, + {pool_offset(299), 131}, {-1}, - {pool_offset(318), 517}, + {pool_offset(301), 290}, + + {pool_offset(302), 314}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(319), 518}, + {pool_offset(308), 391}, + {-1}, {-1}, {-1}, + + {pool_offset(312), 498}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(320), 281}, {-1}, - {pool_offset(321), 57}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(322), 421}, - {pool_offset(330), 204}, + {pool_offset(323), 216}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(335), 111}, + {pool_offset(328), 158}, - {pool_offset(336), 126}, - {-1}, {-1}, {-1}, + {pool_offset(329), 336}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(340), 126}, - {-1}, + {pool_offset(338), 295}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(342), 217}, + {pool_offset(344), 58}, {-1}, {-1}, - {pool_offset(345), 291}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(352), 330}, + {pool_offset(347), 218}, {-1}, {-1}, - {pool_offset(355), 385}, - - {pool_offset(356), 284}, + {pool_offset(350), 513}, + {-1}, {-1}, {-1}, - {pool_offset(357), 308}, - {-1}, + {pool_offset(354), 219}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(359), 415}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(367), 115}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(367), 491}, + {pool_offset(385), 120}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(371), 275}, + {pool_offset(398), 14}, - {pool_offset(372), 153}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(399), 21}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(379), 210}, + {pool_offset(405), 55}, {-1}, {-1}, {-1}, - {pool_offset(383), 58}, + {pool_offset(409), 388}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(399), 289}, {-1}, - {pool_offset(401), 212}, + {pool_offset(420), 489}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(415), 506}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(436), 128}, + {-1}, - {pool_offset(420), 213}, - {-1}, {-1}, + {pool_offset(438), 441}, + + {pool_offset(439), 422}, + {-1}, {-1}, {-1}, - {pool_offset(423), 145}, + {pool_offset(443), 435}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(437), 544}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(468), 428}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(442), 154}, + {pool_offset(475), 589}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(443), 159}, + {pool_offset(482), 445}, {-1}, - {pool_offset(445), 116}, + {pool_offset(484), 177}, + {-1}, {-1}, + + {pool_offset(487), 150}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(497), 164}, {-1}, - {pool_offset(447), 107}, + {pool_offset(499), 594}, {-1}, - {pool_offset(449), 111}, - {-1}, {-1}, {-1}, + {pool_offset(501), 587}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(453), 269}, - {-1}, {-1}, + {pool_offset(507), 553}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(456), 382}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(513), 34}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(466), 267}, + {pool_offset(519), 159}, + {-1}, - {pool_offset(467), 34}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(521), 110}, - {pool_offset(472), 14}, + {pool_offset(522), 220}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(531), 124}, {-1}, - {pool_offset(474), 55}, - {-1}, {-1}, + {pool_offset(533), 85}, - {pool_offset(477), 21}, + {pool_offset(534), 128}, {-1}, {-1}, - {pool_offset(480), 416}, + {pool_offset(537), 275}, - {pool_offset(481), 483}, - {-1}, {-1}, {-1}, + {pool_offset(538), 371}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(485), 123}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(548), 518}, + {-1}, {-1}, {-1}, - {pool_offset(493), 511}, + {pool_offset(552), 450}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(499), 422}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(558), 273}, + {-1}, - {pool_offset(506), 474}, - {-1}, {-1}, + {pool_offset(560), 142}, + {-1}, - {pool_offset(509), 435}, + {pool_offset(562), 480}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(510), 115}, - {-1}, {-1}, + {pool_offset(567), 119}, - {pool_offset(513), 115}, + {pool_offset(568), 160}, + {-1}, - {pool_offset(514), 429}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(570), 119}, + {-1}, - {pool_offset(532), 123}, + {pool_offset(572), 315}, {-1}, - {pool_offset(534), 504}, - {-1}, {-1}, {-1}, + {pool_offset(574), 603}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(538), 439}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(583), 511}, + {-1}, {-1}, {-1}, - {pool_offset(545), 577}, + {pool_offset(587), 165}, - {pool_offset(546), 564}, + {pool_offset(588), 467}, - {pool_offset(547), 171}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(589), 208}, + {-1}, - {pool_offset(556), 535}, + {pool_offset(591), 412}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(557), 267}, + {pool_offset(598), 572}, + {-1}, - {pool_offset(558), 582}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(600), 89}, + {-1}, - {pool_offset(564), 575}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(602), 576}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(570), 461}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(611), 33}, + {-1}, {-1}, {-1}, - {pool_offset(576), 309}, - {-1}, {-1}, + {pool_offset(615), 396}, - {pool_offset(579), 33}, - {-1}, + {pool_offset(616), 273}, - {pool_offset(581), 449}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(617), 364}, + {-1}, {-1}, {-1}, - {pool_offset(588), 365}, - {-1}, {-1}, + {pool_offset(621), 455}, + {-1}, {-1}, {-1}, - {pool_offset(591), 160}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(625), 544}, {-1}, - {pool_offset(602), 268}, - - {pool_offset(603), 214}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {pool_offset(627), 122}, - {pool_offset(616), 89}, + {pool_offset(628), 552}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(621), 119}, - {-1}, {-1}, {-1}, + {pool_offset(633), 208}, + + {pool_offset(634), 88}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(625), 335}, + {pool_offset(640), 43}, - {pool_offset(626), 485}, + {pool_offset(641), 577}, + {-1}, {-1}, + + {pool_offset(644), 7}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(634), 85}, + {pool_offset(652), 236}, + {-1}, {-1}, + + {pool_offset(655), 274}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(635), 444}, + {pool_offset(662), 238}, {-1}, {-1}, {-1}, - {pool_offset(639), 155}, - {-1}, {-1}, + {pool_offset(666), 206}, + {-1}, {-1}, {-1}, - {pool_offset(642), 117}, - {-1}, {-1}, + {pool_offset(670), 492}, - {pool_offset(645), 43}, + {pool_offset(671), 338}, {-1}, {-1}, - {pool_offset(648), 202}, - - {pool_offset(649), 565}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(674), 452}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(655), 230}, + {pool_offset(682), 341}, {-1}, - {pool_offset(657), 137}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(684), 560}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(662), 294}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(693), 241}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(668), 406}, + {pool_offset(702), 300}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(669), 590}, - {-1}, + {pool_offset(707), 108}, + {-1}, {-1}, {-1}, - {pool_offset(671), 232}, + {pool_offset(711), 479}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(683), 105}, - - {pool_offset(684), 473}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(732), 363}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(691), 200}, + {pool_offset(738), 312}, {-1}, - {pool_offset(693), 446}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(701), 561}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(707), 103}, + {pool_offset(740), 103}, {-1}, - {pool_offset(709), 543}, + {pool_offset(742), 369}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(710), 390}, + {pool_offset(748), 26}, {-1}, {-1}, - {pool_offset(713), 235}, + {pool_offset(751), 377}, - {pool_offset(714), 26}, + {pool_offset(752), 28}, {-1}, {-1}, {-1}, - {pool_offset(718), 358}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(734), 570}, + {pool_offset(756), 586}, {-1}, {-1}, {-1}, - {pool_offset(738), 28}, + {pool_offset(760), 554}, - {pool_offset(739), 88}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(761), 28}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(747), 28}, - {-1}, + {pool_offset(767), 411}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(749), 202}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(773), 227}, - {pool_offset(756), 306}, + {pool_offset(774), 582}, + + {pool_offset(775), 105}, + {-1}, {-1}, + + {pool_offset(778), 27}, {-1}, - {pool_offset(758), 403}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(780), 117}, + {-1}, {-1}, {-1}, - {pool_offset(765), 545}, + {pool_offset(784), 447}, - {pool_offset(766), 27}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(785), 109}, + {-1}, - {pool_offset(773), 106}, + {pool_offset(787), 227}, {-1}, {-1}, - {pool_offset(776), 7}, - {-1}, {-1}, + {pool_offset(790), 226}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(779), 441}, - {-1}, {-1}, + {pool_offset(795), 409}, - {pool_offset(782), 332}, + {pool_offset(796), 209}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(783), 551}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(801), 558}, - {pool_offset(789), 549}, + {pool_offset(802), 136}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(815), 185}, - {pool_offset(800), 221}, + {pool_offset(816), 458}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(822), 237}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(812), 405}, + {pool_offset(834), 561}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(840), 13}, {-1}, - {pool_offset(814), 501}, + {pool_offset(842), 284}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(815), 221}, - {-1}, {-1}, {-1}, + {pool_offset(857), 414}, + {-1}, - {pool_offset(819), 220}, + {pool_offset(859), 334}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(828), 113}, - - {pool_offset(829), 357}, - {-1}, {-1}, - - {pool_offset(832), 131}, - - {pool_offset(833), 203}, - - {pool_offset(834), 363}, + {pool_offset(868), 229}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(842), 552}, + {pool_offset(894), 486}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(843), 371}, - {-1}, + {pool_offset(901), 424}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(845), 231}, - {-1}, {-1}, + {pool_offset(906), 426}, - {pool_offset(848), 574}, - {-1}, + {pool_offset(907), 104}, + {-1}, {-1}, {-1}, - {pool_offset(850), 452}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(911), 465}, - {pool_offset(858), 205}, + {pool_offset(912), 108}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(866), 179}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(878), 13}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(885), 109}, + {pool_offset(920), 309}, {-1}, - {pool_offset(887), 509}, - {-1}, {-1}, {-1}, - - {pool_offset(891), 278}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(922), 505}, - {pool_offset(897), 408}, + {pool_offset(923), 193}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(898), 328}, + {pool_offset(950), 460}, {-1}, - {pool_offset(900), 480}, + {pool_offset(952), 109}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(960), 287}, {-1}, - {pool_offset(902), 105}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(962), 225}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(908), 482}, + {pool_offset(972), 211}, {-1}, {-1}, - {pool_offset(911), 223}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(919), 104}, + {pool_offset(975), 449}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(929), 420}, + {pool_offset(998), 25}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(930), 6}, + {pool_offset(1003), 534}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(939), 25}, - {-1}, - - {pool_offset(941), 384}, - {-1}, {-1}, {-1}, + {pool_offset(1012), 2}, - {pool_offset(945), 459}, + {pool_offset(1013), 267}, - {pool_offset(946), 454}, - {-1}, {-1}, + {pool_offset(1014), 267}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(949), 2}, - {-1}, {-1}, + {pool_offset(1022), 475}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(952), 281}, + {pool_offset(1039), 29}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(953), 52}, + {pool_offset(1052), 565}, {-1}, {-1}, {-1}, - {pool_offset(957), 469}, - {-1}, + {pool_offset(1056), 274}, - {pool_offset(959), 209}, - {-1}, {-1}, + {pool_offset(1057), 11}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(962), 52}, + {pool_offset(1062), 137}, {-1}, - {pool_offset(964), 29}, + {pool_offset(1064), 279}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(965), 147}, - {-1}, {-1}, + {pool_offset(1069), 25}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(968), 562}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1074), 379}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(974), 89}, - {-1}, {-1}, + {pool_offset(1079), 162}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(977), 25}, + {pool_offset(1097), 194}, - {pool_offset(978), 106}, + {pool_offset(1098), 38}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(982), 303}, + {pool_offset(1111), 127}, {-1}, - {pool_offset(984), 498}, + {pool_offset(1113), 562}, + + {pool_offset(1114), 113}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(990), 46}, - {-1}, + {pool_offset(1120), 41}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(992), 45}, - {-1}, + {pool_offset(1125), 195}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(994), 114}, + {pool_offset(1133), 230}, - {pool_offset(995), 494}, + {pool_offset(1134), 506}, - {pool_offset(996), 87}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1135), 488}, + {-1}, - {pool_offset(1001), 318}, + {pool_offset(1137), 291}, {-1}, {-1}, {-1}, - {pool_offset(1005), 41}, + {pool_offset(1141), 221}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1008), 418}, - {-1}, {-1}, + {pool_offset(1153), 225}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1011), 121}, + {pool_offset(1159), 390}, + {-1}, {-1}, {-1}, - {pool_offset(1012), 443}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1163), 278}, - {pool_offset(1026), 219}, + {pool_offset(1164), 135}, - {pool_offset(1027), 118}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1165), 549}, - {pool_offset(1032), 146}, + {pool_offset(1166), 427}, + {-1}, - {pool_offset(1033), 136}, + {pool_offset(1168), 31}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1034), 38}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1173), 215}, + {-1}, {-1}, - {pool_offset(1043), 338}, + {pool_offset(1176), 524}, - {pool_offset(1044), 157}, - {-1}, {-1}, + {pool_offset(1177), 235}, - {pool_offset(1047), 314}, + {pool_offset(1178), 494}, {-1}, {-1}, {-1}, - {pool_offset(1051), 122}, + {pool_offset(1182), 472}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1056), 48}, + {pool_offset(1187), 394}, + + {pool_offset(1188), 92}, {-1}, - {pool_offset(1058), 525}, + {pool_offset(1190), 167}, {-1}, {-1}, - {pool_offset(1061), 132}, - {-1}, {-1}, {-1}, + {pool_offset(1193), 152}, + {-1}, - {pool_offset(1065), 273}, - {-1}, {-1}, + {pool_offset(1195), 26}, - {pool_offset(1068), 307}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1196), 84}, + {-1}, - {pool_offset(1074), 499}, - {-1}, {-1}, + {pool_offset(1198), 89}, - {pool_offset(1077), 268}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1199), 510}, + {-1}, - {pool_offset(1082), 11}, + {pool_offset(1201), 118}, {-1}, - {pool_offset(1084), 31}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1203), 52}, - {pool_offset(1093), 53}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1204), 16}, {-1}, - {pool_offset(1104), 503}, - {-1}, {-1}, {-1}, + {pool_offset(1206), 464}, + {-1}, {-1}, - {pool_offset(1108), 555}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1209), 135}, - {pool_offset(1123), 17}, + {pool_offset(1210), 117}, + {-1}, - {pool_offset(1124), 53}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1212), 531}, - {pool_offset(1130), 120}, + {pool_offset(1213), 501}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1131), 487}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(1218), 52}, - {pool_offset(1142), 500}, + {pool_offset(1219), 126}, + + {pool_offset(1220), 324}, {-1}, - {pool_offset(1144), 26}, + {pool_offset(1222), 46}, {-1}, - {pool_offset(1146), 110}, - {-1}, {-1}, + {pool_offset(1224), 45}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1149), 92}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1231), 129}, - {pool_offset(1158), 160}, + {pool_offset(1232), 123}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1163), 373}, + {pool_offset(1237), 362}, + {-1}, - {pool_offset(1164), 329}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1239), 204}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1171), 16}, + {pool_offset(1244), 151}, + {-1}, - {pool_offset(1172), 457}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1246), 87}, - {pool_offset(1178), 348}, + {pool_offset(1247), 92}, - {pool_offset(1179), 83}, + {pool_offset(1248), 344}, {-1}, - {pool_offset(1181), 118}, - - {pool_offset(1182), 229}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1250), 507}, - {pool_offset(1187), 120}, + {pool_offset(1251), 133}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1193), 224}, - {-1}, + {pool_offset(1257), 165}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1195), 124}, + {pool_offset(1265), 105}, {-1}, {-1}, - {pool_offset(1198), 162}, - {-1}, {-1}, + {pool_offset(1268), 320}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1201), 92}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1276), 143}, - {pool_offset(1210), 149}, + {pool_offset(1277), 313}, {-1}, - {pool_offset(1212), 285}, - {-1}, {-1}, - - {pool_offset(1215), 312}, + {pool_offset(1279), 112}, {-1}, - {pool_offset(1217), 85}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1281), 400}, + {-1}, - {pool_offset(1224), 421}, + {pool_offset(1283), 294}, - {pool_offset(1225), 84}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {pool_offset(1284), 602}, - {pool_offset(1237), 215}, + {pool_offset(1285), 416}, - {pool_offset(1238), 258}, - {-1}, + {pool_offset(1286), 83}, - {pool_offset(1240), 394}, - {-1}, + {pool_offset(1287), 463}, - {pool_offset(1242), 113}, + {pool_offset(1288), 308}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1243), 219}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1297), 271}, - {pool_offset(1250), 325}, + {pool_offset(1298), 16}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1257), 75}, - {-1}, + {pool_offset(1305), 354}, - {pool_offset(1259), 588}, + {pool_offset(1306), 318}, - {pool_offset(1260), 86}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1307), 21}, - {pool_offset(1266), 502}, - {-1}, + {pool_offset(1308), 490}, - {pool_offset(1268), 467}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1275), 16}, + {pool_offset(1309), 53}, {-1}, {-1}, {-1}, - {pool_offset(1279), 138}, + {pool_offset(1313), 600}, + + {pool_offset(1314), 228}, {-1}, - {pool_offset(1281), 540}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1316), 268}, - {pool_offset(1304), 114}, + {pool_offset(1317), 93}, {-1}, - {pool_offset(1306), 300}, + {pool_offset(1319), 17}, {-1}, - {pool_offset(1308), 237}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1315), 481}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1320), 245}, - - {pool_offset(1321), 522}, - - {pool_offset(1322), 187}, - - {pool_offset(1323), 400}, - - {pool_offset(1324), 33}, + {pool_offset(1321), 243}, {-1}, {-1}, {-1}, - {pool_offset(1328), 356}, - {-1}, - - {pool_offset(1330), 261}, + {pool_offset(1325), 125}, - {pool_offset(1331), 261}, - {-1}, {-1}, + {pool_offset(1326), 53}, + {-1}, - {pool_offset(1334), 222}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1328), 209}, + {-1}, - {pool_offset(1341), 93}, + {pool_offset(1330), 114}, {-1}, - {pool_offset(1343), 242}, - {-1}, {-1}, {-1}, + {pool_offset(1332), 93}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1347), 109}, + {pool_offset(1338), 75}, {-1}, - {pool_offset(1349), 203}, - {-1}, {-1}, - - {pool_offset(1352), 272}, + {pool_offset(1340), 437}, - {pool_offset(1353), 8}, - {-1}, + {pool_offset(1341), 282}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1355), 130}, + {pool_offset(1346), 197}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1360), 93}, + {pool_offset(1351), 331}, - {pool_offset(1361), 245}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1352), 574}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1367), 123}, - {pool_offset(1366), 466}, + {pool_offset(1368), 125}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1371), 388}, + {pool_offset(1373), 3}, {-1}, - {pool_offset(1373), 135}, + {pool_offset(1375), 133}, + {-1}, {-1}, - {pool_offset(1374), 516}, + {pool_offset(1378), 352}, {-1}, - {pool_offset(1376), 586}, + {pool_offset(1380), 144}, {-1}, {-1}, - {pool_offset(1379), 88}, - - {pool_offset(1380), 458}, + {pool_offset(1383), 306}, {-1}, {-1}, - {pool_offset(1383), 492}, + {pool_offset(1386), 154}, {-1}, {-1}, - {pool_offset(1386), 94}, + {pool_offset(1389), 85}, + + {pool_offset(1390), 222}, + + {pool_offset(1391), 144}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1391), 94}, + {pool_offset(1396), 19}, - {pool_offset(1392), 128}, + {pool_offset(1397), 598}, {-1}, {-1}, - {pool_offset(1395), 54}, - {-1}, + {pool_offset(1400), 365}, + {-1}, {-1}, - {pool_offset(1397), 216}, + {pool_offset(1403), 168}, {-1}, {-1}, - {pool_offset(1400), 97}, - {-1}, + {pool_offset(1406), 168}, + {-1}, {-1}, - {pool_offset(1402), 132}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1409), 207}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1409), 3}, - {-1}, + {pool_offset(1415), 87}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1411), 396}, - {-1}, {-1}, + {pool_offset(1421), 86}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1414), 130}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1426), 402}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1420), 529}, - {-1}, + {pool_offset(1433), 228}, - {pool_offset(1422), 97}, + {pool_offset(1434), 509}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1427), 497}, + {pool_offset(1439), 473}, - {pool_offset(1428), 346}, + {pool_offset(1440), 169}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1429), 359}, - {-1}, + {pool_offset(1450), 342}, - {pool_offset(1431), 19}, + {pool_offset(1451), 499}, {-1}, {-1}, - {pool_offset(1434), 164}, + {pool_offset(1454), 167}, + + {pool_offset(1455), 520}, {-1}, - {pool_offset(1436), 77}, + {pool_offset(1457), 140}, {-1}, {-1}, - {pool_offset(1439), 233}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1460), 199}, - {pool_offset(1444), 101}, - {-1}, {-1}, {-1}, + {pool_offset(1461), 178}, - {pool_offset(1448), 227}, + {pool_offset(1462), 172}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1455), 128}, - {-1}, + {pool_offset(1469), 118}, - {pool_offset(1457), 30}, - {-1}, - - {pool_offset(1459), 110}, - {-1}, + {pool_offset(1470), 176}, - {pool_offset(1461), 166}, - {-1}, {-1}, - - {pool_offset(1464), 172}, + {pool_offset(1471), 176}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1465), 222}, - {-1}, + {pool_offset(1476), 204}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1467), 532}, + {pool_offset(1482), 316}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1468), 50}, + {pool_offset(1490), 367}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1469), 30}, + {pool_offset(1499), 200}, {-1}, {-1}, - {pool_offset(1472), 283}, + {pool_offset(1502), 585}, + {-1}, {-1}, {-1}, - {pool_offset(1473), 170}, + {pool_offset(1506), 508}, + {-1}, {-1}, {-1}, - {pool_offset(1474), 170}, + {pool_offset(1510), 77}, - {pool_offset(1475), 250}, + {pool_offset(1511), 188}, {-1}, {-1}, - {pool_offset(1478), 188}, + {pool_offset(1514), 529}, - {pool_offset(1479), 182}, - {-1}, + {pool_offset(1515), 496}, - {pool_offset(1481), 247}, - {-1}, + {pool_offset(1516), 474}, + {-1}, {-1}, - {pool_offset(1483), 247}, + {pool_offset(1519), 359}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1484), 410}, + {pool_offset(1525), 541}, {-1}, {-1}, - {pool_offset(1487), 198}, - {-1}, {-1}, + {pool_offset(1528), 183}, - {pool_offset(1490), 302}, - {-1}, + {pool_offset(1529), 399}, - {pool_offset(1492), 484}, - - {pool_offset(1493), 288}, + {pool_offset(1530), 584}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1494), 468}, - {-1}, {-1}, + {pool_offset(1535), 201}, + {-1}, - {pool_offset(1497), 455}, + {pool_offset(1537), 183}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1498), 31}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1554), 516}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1507), 573}, + {pool_offset(1560), 289}, {-1}, - {pool_offset(1509), 265}, + {pool_offset(1562), 476}, {-1}, - {pool_offset(1511), 162}, - {-1}, {-1}, + {pool_offset(1564), 239}, + {-1}, {-1}, {-1}, - {pool_offset(1514), 470}, + {pool_offset(1568), 61}, - {pool_offset(1515), 229}, - {-1}, {-1}, + {pool_offset(1569), 233}, - {pool_offset(1518), 226}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1570), 563}, - {pool_offset(1526), 381}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1532), 151}, + {pool_offset(1571), 564}, {-1}, - {pool_offset(1534), 21}, + {pool_offset(1573), 538}, - {pool_offset(1535), 496}, + {pool_offset(1574), 156}, {-1}, {-1}, - {pool_offset(1538), 34}, - {-1}, + {pool_offset(1577), 559}, - {pool_offset(1540), 321}, + {pool_offset(1578), 387}, {-1}, - {pool_offset(1542), 189}, + {pool_offset(1580), 121}, {-1}, {-1}, - {pool_offset(1545), 29}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1583), 451}, - {pool_offset(1555), 276}, + {pool_offset(1584), 420}, + {-1}, {-1}, + + {pool_offset(1587), 207}, - {pool_offset(1556), 431}, + {pool_offset(1588), 6}, {-1}, {-1}, - {pool_offset(1559), 61}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(1591), 132}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1579), 217}, + {pool_offset(1598), 31}, + + {pool_offset(1599), 34}, {-1}, {-1}, {-1}, - {pool_offset(1583), 572}, + {pool_offset(1603), 33}, + {-1}, {-1}, {-1}, - {pool_offset(1584), 78}, + {pool_offset(1607), 487}, {-1}, - {pool_offset(1586), 347}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1592), 127}, + {pool_offset(1609), 204}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1593), 508}, + {pool_offset(1616), 373}, + {-1}, - {pool_offset(1594), 44}, + {pool_offset(1618), 347}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1599), 139}, + {pool_offset(1623), 223}, - {pool_offset(1600), 139}, - {-1}, {-1}, + {pool_offset(1624), 535}, - {pool_offset(1603), 68}, - {-1}, - - {pool_offset(1605), 445}, + {pool_offset(1625), 113}, {-1}, {-1}, {-1}, - {pool_offset(1609), 64}, - {-1}, {-1}, + {pool_offset(1629), 404}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1612), 69}, + {pool_offset(1637), 573}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1625), 259}, + {pool_offset(1652), 551}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1659), 78}, - {pool_offset(1626), 87}, + {pool_offset(1660), 470}, {-1}, - {pool_offset(1628), 163}, + {pool_offset(1662), 384}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1669), 114}, {-1}, {-1}, - {pool_offset(1631), 163}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1672), 303}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1640), 587}, + {pool_offset(1678), 503}, {-1}, - {pool_offset(1642), 77}, + {pool_offset(1680), 88}, + {-1}, {-1}, + + {pool_offset(1683), 375}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1647), 362}, + {pool_offset(1688), 68}, {-1}, - {pool_offset(1649), 526}, + {pool_offset(1690), 64}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1697), 69}, + + {pool_offset(1698), 141}, {-1}, - {pool_offset(1651), 341}, - {-1}, {-1}, {-1}, + {pool_offset(1700), 368}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1655), 256}, + {pool_offset(1706), 44}, {-1}, {-1}, - {pool_offset(1658), 84}, - - {pool_offset(1659), 244}, + {pool_offset(1709), 610}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - {pool_offset(1670), 15}, + {pool_offset(1719), 57}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1724), 30}, - {pool_offset(1671), 191}, + {pool_offset(1725), 48}, {-1}, - {pool_offset(1673), 198}, - {-1}, {-1}, {-1}, + {pool_offset(1727), 29}, - {pool_offset(1677), 262}, - {-1}, {-1}, {-1}, - - {pool_offset(1681), 237}, + {pool_offset(1728), 145}, + {-1}, {-1}, - {pool_offset(1682), 513}, + {pool_offset(1731), 340}, - {pool_offset(1683), 464}, + {pool_offset(1732), 30}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1690), 336}, + {pool_offset(1739), 145}, - {pool_offset(1691), 404}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(1703), 546}, - {-1}, {-1}, + {pool_offset(1740), 235}, + {-1}, - {pool_offset(1706), 310}, - {-1}, {-1}, {-1}, + {pool_offset(1742), 243}, - {pool_offset(1710), 427}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1743), 232}, + {-1}, - {pool_offset(1715), 98}, + {pool_offset(1745), 599}, + {-1}, {-1}, - {pool_offset(1716), 361}, + {pool_offset(1748), 515}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1723), 486}, - - {pool_offset(1724), 364}, + {pool_offset(1755), 84}, {-1}, {-1}, - {pool_offset(1727), 489}, - {-1}, {-1}, - - {pool_offset(1730), 298}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1758), 57}, - {pool_offset(1740), 76}, + {pool_offset(1759), 484}, {-1}, {-1}, {-1}, - {pool_offset(1744), 391}, + {pool_offset(1763), 483}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1749), 107}, + {pool_offset(1768), 76}, - {pool_offset(1750), 57}, - {-1}, - - {pool_offset(1752), 353}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(1763), 98}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1769), 327}, - {pool_offset(1772), 393}, - {-1}, {-1}, + {pool_offset(1770), 410}, + {-1}, {-1}, {-1}, - {pool_offset(1775), 542}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1774), 12}, - {pool_offset(1783), 201}, + {pool_offset(1775), 15}, - {pool_offset(1784), 24}, + {pool_offset(1776), 103}, + {-1}, - {pool_offset(1785), 297}, - {-1}, {-1}, {-1}, + {pool_offset(1778), 345}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1789), 234}, + {pool_offset(1784), 353}, {-1}, {-1}, - {pool_offset(1792), 183}, + {pool_offset(1787), 60}, - {pool_offset(1793), 538}, - {-1}, - - {pool_offset(1795), 57}, + {pool_offset(1788), 491}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1796), 5}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1795), 77}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1801), 193}, - {-1}, {-1}, + {pool_offset(1801), 547}, - {pool_offset(1804), 550}, - {-1}, {-1}, + {pool_offset(1802), 94}, - {pool_offset(1807), 477}, + {pool_offset(1803), 111}, - {pool_offset(1808), 68}, - {-1}, + {pool_offset(1804), 94}, + {-1}, {-1}, - {pool_offset(1810), 478}, + {pool_offset(1807), 251}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1815), 553}, - {-1}, {-1}, + {pool_offset(1812), 97}, - {pool_offset(1818), 414}, + {pool_offset(1813), 406}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1824), 592}, + {pool_offset(1819), 335}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1825), 112}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1825), 190}, - {pool_offset(1835), 60}, - {-1}, + {pool_offset(1826), 59}, - {pool_offset(1837), 166}, + {pool_offset(1827), 606}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1843), 201}, + {pool_offset(1833), 161}, - {pool_offset(1844), 242}, - {-1}, + {pool_offset(1834), 97}, - {pool_offset(1846), 194}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1835), 504}, + {-1}, {-1}, - {pool_offset(1856), 224}, + {pool_offset(1838), 101}, {-1}, - {pool_offset(1858), 108}, - {-1}, {-1}, {-1}, + {pool_offset(1840), 278}, + {-1}, - {pool_offset(1862), 250}, + {pool_offset(1842), 251}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1863), 140}, + {pool_offset(1850), 397}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1864), 140}, - {-1}, + {pool_offset(1855), 68}, - {pool_offset(1866), 32}, + {pool_offset(1856), 62}, {-1}, {-1}, {-1}, - {pool_offset(1870), 112}, - {-1}, + {pool_offset(1860), 248}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1869), 493}, + + {pool_offset(1870), 370}, + {-1}, {-1}, - {pool_offset(1872), 49}, + {pool_offset(1873), 230}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1874), 579}, + {pool_offset(1884), 240}, - {pool_offset(1875), 453}, + {pool_offset(1885), 189}, {-1}, {-1}, - {pool_offset(1878), 576}, + {pool_offset(1888), 149}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1883), 367}, - {-1}, + {pool_offset(1893), 149}, - {pool_offset(1885), 432}, + {pool_offset(1894), 110}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1886), 40}, + {pool_offset(1903), 206}, {-1}, {-1}, {-1}, - {pool_offset(1890), 398}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1907), 172}, + {-1}, - {pool_offset(1897), 596}, + {pool_offset(1909), 555}, + {-1}, {-1}, {-1}, - {pool_offset(1898), 433}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1913), 389}, + {-1}, - {pool_offset(1903), 315}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1915), 242}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1908), 225}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(1921), 268}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1913), 334}, - {-1}, + {pool_offset(1927), 32}, + {-1}, {-1}, + + {pool_offset(1930), 530}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1915), 342}, + {pool_offset(1936), 269}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(1925), 12}, + {pool_offset(1948), 459}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(1926), 369}, - {-1}, + {pool_offset(1953), 253}, - {pool_offset(1928), 246}, - {-1}, + {pool_offset(1954), 188}, - {pool_offset(1930), 177}, + {pool_offset(1955), 253}, - {pool_offset(1931), 103}, - {-1}, {-1}, {-1}, + {pool_offset(1956), 588}, + {-1}, {-1}, - {pool_offset(1935), 195}, + {pool_offset(1959), 256}, {-1}, {-1}, {-1}, - {pool_offset(1939), 167}, + {pool_offset(1963), 380}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1940), 24}, + {pool_offset(1970), 405}, {-1}, - {pool_offset(1942), 378}, + {pool_offset(1972), 461}, + + {pool_offset(1973), 301}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1947), 177}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1978), 264}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1961), 225}, + {pool_offset(1983), 40}, {-1}, {-1}, - {pool_offset(1964), 554}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(1986), 408}, + {-1}, {-1}, + + {pool_offset(1989), 42}, - {pool_offset(1972), 417}, + {pool_offset(1990), 137}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(1973), 257}, + {pool_offset(2010), 173}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2017), 591}, {-1}, {-1}, - {pool_offset(1976), 383}, + {pool_offset(2020), 191}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(1989), 32}, + {pool_offset(2037), 32}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - {pool_offset(2000), 399}, + {pool_offset(2047), 245}, {-1}, {-1}, {-1}, - {pool_offset(2004), 451}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2051), 457}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2018), 227}, + {pool_offset(2056), 288}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2019), 272}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2063), 187}, + {-1}, - {pool_offset(2028), 23}, - {-1}, {-1}, {-1}, + {pool_offset(2065), 212}, - {pool_offset(2032), 152}, - {-1}, + {pool_offset(2066), 357}, - {pool_offset(2034), 206}, + {pool_offset(2067), 50}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2035), 184}, + {pool_offset(2081), 1}, + {-1}, - {pool_offset(2036), 235}, - {-1}, {-1}, {-1}, + {pool_offset(2083), 98}, + {-1}, {-1}, - {pool_offset(2040), 593}, + {pool_offset(2086), 557}, + {-1}, {-1}, - {pool_offset(2041), 313}, + {pool_offset(2089), 241}, + {-1}, {-1}, {-1}, - {pool_offset(2042), 152}, + {pool_offset(2093), 310}, - {pool_offset(2043), 208}, + {pool_offset(2094), 262}, - {pool_offset(2044), 521}, + {pool_offset(2095), 155}, {-1}, {-1}, - {pool_offset(2047), 374}, + {pool_offset(2098), 343}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2048), 295}, + {pool_offset(2104), 321}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2053), 412}, - {-1}, {-1}, + {pool_offset(2109), 250}, - {pool_offset(2056), 62}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2110), 471}, - {pool_offset(2063), 548}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2111), 98}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2078), 339}, - {-1}, {-1}, + {pool_offset(2118), 54}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2081), 91}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2125), 23}, - {pool_offset(2090), 51}, - {-1}, + {pool_offset(2126), 570}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2092), 91}, + {pool_offset(2136), 9}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2096), 150}, - {-1}, {-1}, - - {pool_offset(2099), 1}, + {pool_offset(2149), 215}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2100), 144}, - {-1}, + {pool_offset(2159), 66}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2102), 465}, - {-1}, {-1}, + {pool_offset(2164), 356}, - {pool_offset(2105), 144}, + {pool_offset(2165), 245}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2110), 9}, - {-1}, {-1}, + {pool_offset(2170), 193}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2179), 595}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2113), 337}, + {pool_offset(2187), 351}, {-1}, {-1}, {-1}, - {pool_offset(2117), 200}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2191), 182}, - {pool_offset(2122), 236}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2192), 277}, + {-1}, {-1}, - {pool_offset(2129), 156}, + {pool_offset(2195), 157}, + {-1}, {-1}, + + {pool_offset(2198), 231}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2145), 59}, + {pool_offset(2208), 157}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2223), 454}, {-1}, - {pool_offset(2147), 304}, - {-1}, {-1}, + {pool_offset(2225), 24}, - {pool_offset(2150), 409}, - {-1}, + {pool_offset(2226), 66}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2152), 471}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2232), 237}, + {-1}, {-1}, {-1}, - {pool_offset(2160), 66}, + {pool_offset(2236), 5}, - {pool_offset(2161), 251}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2237), 231}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2166), 251}, + {pool_offset(2243), 567}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2249), 15}, + {-1}, {-1}, + + {pool_offset(2252), 381}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(2167), 35}, + {pool_offset(2263), 497}, + {-1}, - {pool_offset(2168), 252}, + {pool_offset(2265), 185}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2176), 234}, + {pool_offset(2282), 169}, {-1}, - {pool_offset(2178), 137}, - {-1}, {-1}, {-1}, + {pool_offset(2284), 304}, - {pool_offset(2182), 556}, - {-1}, {-1}, {-1}, + {pool_offset(2285), 194}, + {-1}, {-1}, + + {pool_offset(2288), 256}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2186), 185}, + {pool_offset(2293), 438}, + + {pool_offset(2294), 233}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2195), 42}, + {pool_offset(2303), 439}, {-1}, {-1}, {-1}, - {pool_offset(2199), 402}, - {-1}, + {pool_offset(2307), 566}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2201), 66}, + {pool_offset(2313), 512}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2319), 116}, {-1}, {-1}, - {pool_offset(2204), 375}, + {pool_offset(2322), 523}, + {-1}, {-1}, {-1}, - {pool_offset(2205), 35}, - {-1}, + {pool_offset(2326), 35}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2207), 271}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2331), 37}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2213), 436}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(2336), 240}, - {pool_offset(2224), 255}, - {-1}, {-1}, {-1}, + {pool_offset(2337), 199}, + {-1}, - {pool_offset(2228), 490}, + {pool_offset(2339), 24}, {-1}, {-1}, {-1}, - {pool_offset(2232), 167}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2240), 209}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2343), 178}, + {-1}, {-1}, - {pool_offset(2247), 169}, + {pool_offset(2346), 433}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2252), 282}, + {pool_offset(2351), 248}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2261), 142}, + {pool_offset(2360), 214}, + {-1}, {-1}, - {pool_offset(2262), 351}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2363), 173}, + {-1}, {-1}, - {pool_offset(2270), 182}, - {-1}, + {pool_offset(2366), 423}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2272), 142}, - {-1}, + {pool_offset(2372), 319}, - {pool_offset(2274), 243}, - {-1}, {-1}, {-1}, + {pool_offset(2373), 339}, - {pool_offset(2278), 168}, + {pool_offset(2374), 605}, - {pool_offset(2279), 0}, + {pool_offset(2375), 446}, + {-1}, + + {pool_offset(2377), 579}, {-1}, {-1}, - {pool_offset(2282), 239}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2380), 269}, + {-1}, + + {pool_offset(2382), 270}, + {-1}, - {pool_offset(2292), 505}, + {pool_offset(2384), 521}, + + {pool_offset(2385), 195}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2393), 116}, {-1}, {-1}, {-1}, - {pool_offset(2296), 514}, - {-1}, {-1}, + {pool_offset(2397), 35}, - {pool_offset(2299), 226}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2398), 305}, + {-1}, - {pool_offset(2305), 36}, + {pool_offset(2400), 418}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(2306), 263}, + {pool_offset(2412), 252}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2307), 164}, + {pool_offset(2420), 333}, {-1}, {-1}, {-1}, - {pool_offset(2311), 557}, + {pool_offset(2424), 607}, - {pool_offset(2312), 262}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2425), 337}, - {pool_offset(2320), 80}, - {-1}, + {pool_offset(2426), 597}, + {-1}, {-1}, - {pool_offset(2322), 127}, + {pool_offset(2429), 244}, + {-1}, {-1}, + + {pool_offset(2432), 229}, + {-1}, {-1}, + + {pool_offset(2435), 78}, {-1}, {-1}, {-1}, - {pool_offset(2326), 255}, + {pool_offset(2439), 386}, + {-1}, + + {pool_offset(2441), 104}, {-1}, {-1}, - {pool_offset(2329), 96}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2444), 358}, + {-1}, {-1}, - {pool_offset(2336), 15}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2447), 196}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2343), 448}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(2453), 348}, - {pool_offset(2354), 264}, + {pool_offset(2454), 556}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2359), 591}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2459), 59}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(2364), 121}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2472), 91}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2371), 59}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2477), 270}, {-1}, - {pool_offset(2382), 547}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2479), 91}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2390), 257}, + {pool_offset(2485), 443}, + {-1}, {-1}, {-1}, - {pool_offset(2391), 583}, + {pool_offset(2489), 177}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - {pool_offset(2402), 181}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2407), 345}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2499), 196}, + {-1}, {-1}, - {pool_offset(2414), 122}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2502), 604}, - {pool_offset(2419), 248}, + {pool_offset(2503), 62}, + {-1}, {-1}, {-1}, - {pool_offset(2420), 239}, + {pool_offset(2507), 138}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2423), 241}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2528), 184}, + {-1}, - {pool_offset(2428), 133}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2530), 323}, + {-1}, {-1}, - {pool_offset(2434), 350}, - {-1}, + {pool_offset(2533), 271}, + + {pool_offset(2534), 571}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2436), 560}, + {pool_offset(2548), 142}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2457), 246}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2569), 49}, - {pool_offset(2462), 168}, + {pool_offset(2570), 132}, {-1}, - {pool_offset(2464), 450}, + {pool_offset(2572), 542}, {-1}, {-1}, {-1}, - {pool_offset(2468), 317}, - - {pool_offset(2469), 264}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2479), 333}, + {pool_offset(2576), 272}, + {-1}, {-1}, - {pool_offset(2480), 176}, + {pool_offset(2579), 283}, + {-1}, {-1}, - {pool_offset(2481), 249}, + {pool_offset(2582), 448}, + {-1}, {-1}, - {pool_offset(2482), 104}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2585), 58}, - {pool_offset(2487), 299}, + {pool_offset(2586), 281}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(2488), 171}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2597), 80}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2493), 58}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2607), 96}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2500), 78}, + {pool_offset(2624), 186}, {-1}, {-1}, - {pool_offset(2503), 95}, + {pool_offset(2627), 20}, - {pool_offset(2504), 331}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2628), 392}, - {pool_offset(2510), 231}, + {pool_offset(2629), 425}, + {-1}, {-1}, {-1}, - {pool_offset(2511), 460}, - {-1}, {-1}, + {pool_offset(2633), 477}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2514), 263}, - {-1}, {-1}, {-1}, + {pool_offset(2658), 442}, - {pool_offset(2518), 380}, + {pool_offset(2659), 36}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2524), 301}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2533), 372}, + {pool_offset(2665), 191}, - {pool_offset(2534), 519}, - {-1}, {-1}, {-1}, + {pool_offset(2666), 329}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2538), 208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2676), 578}, - {pool_offset(2546), 47}, + {pool_offset(2677), 413}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(2547), 173}, + {pool_offset(2697), 596}, + {-1}, {-1}, - {pool_offset(2548), 193}, + {pool_offset(2700), 378}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2549), 266}, + {pool_offset(2705), 244}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2556), 440}, - - {pool_offset(2557), 228}, - {-1}, {-1}, {-1}, + {pool_offset(2712), 539}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2561), 37}, + {pool_offset(2720), 580}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2567), 101}, + {pool_offset(2726), 328}, {-1}, - {pool_offset(2569), 407}, + {pool_offset(2728), 456}, - {pool_offset(2570), 172}, + {pool_offset(2729), 440}, - {pool_offset(2571), 411}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2730), 214}, - {pool_offset(2577), 188}, + {pool_offset(2731), 179}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2578), 585}, + {pool_offset(2741), 326}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2584), 320}, + {pool_offset(2747), 263}, + {-1}, {-1}, - {pool_offset(2585), 533}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2750), 261}, - {pool_offset(2591), 248}, + {pool_offset(2751), 171}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2774), 192}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2606), 199}, + {pool_offset(2780), 82}, + {-1}, {-1}, - {pool_offset(2607), 392}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2783), 51}, + {-1}, - {pool_offset(2614), 223}, + {pool_offset(2785), 415}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2624), 327}, - {-1}, {-1}, - - {pool_offset(2627), 322}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2633), 419}, + {pool_offset(2800), 349}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2634), 238}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2807), 407}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2642), 63}, - {-1}, + {pool_offset(2817), 302}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(2644), 265}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2839), 61}, + {-1}, {-1}, - {pool_offset(2652), 190}, + {pool_offset(2842), 522}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2653), 179}, + {pool_offset(2847), 332}, {-1}, {-1}, {-1}, - {pool_offset(2657), 567}, + {pool_offset(2851), 200}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2663), 275}, - {-1}, - - {pool_offset(2665), 277}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2670), 190}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(2857), 201}, - {pool_offset(2681), 48}, - {-1}, + {pool_offset(2858), 170}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2683), 442}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {pool_offset(2864), 139}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2695), 326}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2869), 170}, {-1}, - {pool_offset(2706), 36}, - {-1}, {-1}, {-1}, - - {pool_offset(2710), 413}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2871), 403}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2724), 62}, + {pool_offset(2876), 280}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2733), 70}, - {-1}, + {pool_offset(2885), 257}, + {-1}, {-1}, - {pool_offset(2735), 173}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2888), 258}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(2742), 423}, + {pool_offset(2893), 257}, {-1}, {-1}, {-1}, - {pool_offset(2746), 27}, + {pool_offset(2897), 73}, {-1}, - {pool_offset(2748), 352}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2756), 434}, + {pool_offset(2899), 147}, + {-1}, {-1}, {-1}, - {pool_offset(2757), 568}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2903), 81}, + {-1}, {-1}, - {pool_offset(2763), 187}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {pool_offset(2906), 147}, - {pool_offset(2776), 428}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2907), 163}, {-1}, - {pool_offset(2787), 50}, - - {pool_offset(2788), 70}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2909), 583}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2794), 99}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2916), 179}, + {-1}, - {pool_offset(2804), 323}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2918), 296}, + {-1}, {-1}, - {pool_offset(2811), 376}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2921), 70}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2821), 386}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2930), 261}, - {pool_offset(2828), 180}, + {pool_offset(2931), 350}, + {-1}, - {pool_offset(2829), 218}, - {-1}, {-1}, + {pool_offset(2933), 8}, - {pool_offset(2832), 430}, + {pool_offset(2934), 63}, + {-1}, {-1}, {-1}, - {pool_offset(2833), 589}, + {pool_offset(2938), 398}, {-1}, - {pool_offset(2835), 584}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2940), 252}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2840), 178}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(2949), 175}, + {-1}, {-1}, {-1}, - {pool_offset(2854), 207}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2953), 174}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2862), 515}, + {pool_offset(2962), 70}, - {pool_offset(2863), 479}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2963), 601}, - {pool_offset(2869), 274}, + {pool_offset(2964), 203}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - {pool_offset(2882), 214}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2974), 122}, {-1}, {-1}, - {pool_offset(2894), 437}, + {pool_offset(2977), 238}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2901), 158}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2984), 249}, - {pool_offset(2909), 67}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2985), 255}, - {pool_offset(2916), 244}, + {pool_offset(2986), 254}, + {-1}, {-1}, - {pool_offset(2917), 175}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2989), 174}, + {-1}, {-1}, - {pool_offset(2925), 67}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2992), 126}, - {pool_offset(2931), 119}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(2993), 0}, + {-1}, - {pool_offset(2958), 117}, + {pool_offset(2995), 436}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2963), 530}, + {pool_offset(3000), 265}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(2965), 238}, + {pool_offset(3011), 79}, + + {pool_offset(3012), 99}, {-1}, {-1}, - {pool_offset(2968), 253}, + {pool_offset(3015), 60}, {-1}, {-1}, {-1}, - {pool_offset(2972), 79}, - {-1}, + {pool_offset(3019), 254}, - {pool_offset(2974), 253}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3020), 95}, - {pool_offset(2989), 73}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3021), 82}, + {-1}, - {pool_offset(2997), 189}, + {pool_offset(3023), 247}, + {-1}, + + {pool_offset(3025), 272}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3009), 510}, + {pool_offset(3037), 307}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3051), 226}, {-1}, - {pool_offset(3020), 185}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3053), 527}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3026), 49}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3061), 73}, - {pool_offset(3031), 61}, + {pool_offset(3062), 203}, - {pool_offset(3032), 377}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3063), 101}, + {-1}, - {pool_offset(3037), 79}, - {-1}, {-1}, + {pool_offset(3065), 429}, + {-1}, {-1}, {-1}, - {pool_offset(3040), 20}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3069), 590}, {-1}, {-1}, - {pool_offset(3061), 195}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3072), 48}, + {-1}, - {pool_offset(3070), 186}, + {pool_offset(3074), 417}, - {pool_offset(3071), 287}, + {pool_offset(3075), 79}, - {pool_offset(3072), 233}, + {pool_offset(3076), 124}, {-1}, - {pool_offset(3074), 355}, - {-1}, {-1}, - - {pool_offset(3077), 578}, - - {pool_offset(3078), 569}, + {pool_offset(3078), 382}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3079), 95}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3085), 186}, + {-1}, {-1}, {-1}, - {pool_offset(3087), 82}, - {-1}, {-1}, + {pool_offset(3089), 485}, - {pool_offset(3090), 196}, + {pool_offset(3090), 213}, + {-1}, - {pool_offset(3091), 539}, + {pool_offset(3092), 383}, {-1}, {-1}, {-1}, - {pool_offset(3095), 134}, + {pool_offset(3096), 74}, {-1}, {-1}, - {pool_offset(3098), 165}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3106), 165}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3116), 174}, - - {pool_offset(3117), 274}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3123), 296}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3099), 220}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3129), 558}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3104), 263}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3135), 51}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3113), 205}, - {pool_offset(3140), 178}, + {pool_offset(3114), 189}, + {-1}, - {pool_offset(3141), 571}, + {pool_offset(3116), 280}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3142), 290}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3124), 36}, - {pool_offset(3151), 395}, + {pool_offset(3125), 74}, {-1}, {-1}, {-1}, - {pool_offset(3155), 343}, + {pool_offset(3129), 548}, + {-1}, {-1}, + + {pool_offset(3132), 285}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3170), 197}, + {pool_offset(3156), 242}, - {pool_offset(3171), 194}, + {pool_offset(3157), 202}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3176), 73}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3171), 50}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3203), 74}, {-1}, {-1}, {-1}, - {pool_offset(3207), 44}, + {pool_offset(3184), 466}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3217), 566}, - {-1}, {-1}, + {pool_offset(3203), 361}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3220), 232}, + {pool_offset(3211), 232}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3225), 82}, + {pool_offset(3216), 259}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3234), 81}, + {pool_offset(3225), 259}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3240), 266}, - {-1}, {-1}, {-1}, - - {pool_offset(3244), 207}, - {-1}, - - {pool_offset(3246), 74}, + {pool_offset(3240), 346}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3252), 541}, - {-1}, - - {pool_offset(3254), 60}, + {pool_offset(3255), 355}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3276), 550}, {-1}, {-1}, {-1}, - {pool_offset(3267), 220}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3280), 239}, {-1}, {-1}, {-1}, - {pool_offset(3280), 401}, + {pool_offset(3284), 568}, {-1}, - {pool_offset(3282), 349}, + {pool_offset(3286), 434}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3296), 224}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {-1}, - {pool_offset(3303), 397}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3307), 171}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3310), 344}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3312), 127}, {-1}, - {pool_offset(3330), 183}, - {-1}, {-1}, + {pool_offset(3314), 47}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3333), 340}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3319), 180}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3340), 19}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3325), 181}, + {-1}, {-1}, - {pool_offset(3376), 4}, + {pool_offset(3328), 401}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3391), 424}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3343), 197}, + {-1}, - {pool_offset(3410), 426}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3345), 234}, + {-1}, + + {pool_offset(3347), 18}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3440), 534}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3374), 372}, + {-1}, {-1}, {-1}, - {pool_offset(3448), 176}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3378), 182}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3455), 366}, - {-1}, {-1}, + {pool_offset(3383), 81}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3458), 197}, + {pool_offset(3398), 44}, {-1}, {-1}, - {pool_offset(3461), 42}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3401), 469}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3476), 196}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3408), 213}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3527), 174}, + {pool_offset(3432), 49}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(3566), 236}, + {-1}, {-1}, {-1}, - {pool_offset(3567), 279}, + {pool_offset(3463), 4}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3578), 18}, + {pool_offset(3479), 202}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3591), 580}, - {-1}, {-1}, - {pool_offset(3594), 370}, - {-1}, {-1}, {-1}, - - {pool_offset(3598), 191}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3489), 95}, - {pool_offset(3607), 65}, - {-1}, {-1}, - - {pool_offset(3610), 180}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3490), 592}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3628), 463}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3495), 180}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3643), 81}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3501), 376}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3693), 258}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3506), 67}, + {-1}, - {pool_offset(3708), 199}, + {pool_offset(3508), 27}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3721), 69}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3521), 67}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3743), 228}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, + {pool_offset(3535), 106}, + {-1}, {-1}, {-1}, - {pool_offset(3754), 241}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3539), 51}, + {-1}, {-1}, - {pool_offset(3768), 254}, + {pool_offset(3542), 107}, {-1}, {-1}, - {pool_offset(3771), 10}, + {pool_offset(3545), 430}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3578), 517}, + + {pool_offset(3579), 42}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3842), 438}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3633), 419}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(3874), 260}, + {pool_offset(3654), 184}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, - {pool_offset(3899), 80}, + {pool_offset(3677), 190}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3685), 581}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(3912), 230}, + {pool_offset(3698), 198}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3952), 211}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3969), 218}, {-1}, - {pool_offset(3971), 563}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3745), 217}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, - {pool_offset(4012), 254}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3765), 56}, {-1}, {-1}, {-1}, - {pool_offset(4025), 100}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4043), 379}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(4063), 240}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3769), 65}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4077), 462}, - {-1}, {-1}, {-1}, {-1}, + {pool_offset(3774), 575}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3780), 543}, + {-1}, - {pool_offset(4082), 240}, + {pool_offset(3782), 293}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(4113), 96}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4136), 76}, + {pool_offset(3832), 100}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4163), 559}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4169), 100}, - {-1}, - - {pool_offset(4171), 47}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(3856), 250}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4185), 205}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4191), 184}, - - {pool_offset(4192), 71}, + {pool_offset(3861), 236}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4237), 527}, - {-1}, - - {pool_offset(4239), 249}, {-1}, {-1}, {-1}, - {pool_offset(4243), 138}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4250), 528}, + {pool_offset(3910), 432}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, - {pool_offset(4287), 102}, + {pool_offset(3976), 385}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4347), 99}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4355), 425}, - {-1}, {-1}, - - {pool_offset(4358), 56}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4400), 192}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30763,38 +31591,78 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - {pool_offset(4467), 192}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(4130), 536}, + {-1}, {-1}, - {pool_offset(4475), 65}, + {pool_offset(4133), 444}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4143), 537}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4158), 247}, + {-1}, + + {pool_offset(4160), 80}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4201), 211}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4206), 468}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4221), 76}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4272), 69}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4280), 71}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4303), 569}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4333), 100}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4357), 198}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4387), 192}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(4434), 19}, + + {pool_offset(4435), 10}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30806,67 +31674,85 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4793), 368}, - {-1}, {-1}, + {pool_offset(4519), 374}, + {-1}, {-1}, {-1}, - {pool_offset(4796), 64}, + {pool_offset(4523), 102}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(4806), 387}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(4545), 266}, + {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4815), 186}, + {pool_offset(4551), 224}, + {-1}, {-1}, {-1}, + + {pool_offset(4555), 395}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(4838), 594}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(4580), 260}, + {-1}, {-1}, + + {pool_offset(4583), 65}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(4612), 234}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, - {pool_offset(4926), 389}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {pool_offset(4661), 47}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(4701), 260}, + + {pool_offset(4702), 219}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(4715), 96}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(5043), 581}, + {pool_offset(4752), 593}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(5052), 175}, + {pool_offset(4761), 246}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(4774), 608}, + {-1}, {-1}, + + {pool_offset(4777), 246}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5114), 213}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5121), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(5136), 71}, + {pool_offset(4837), 143}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4842), 255}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30875,29 +31761,55 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4932), 64}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4940), 205}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4947), 264}, + {-1}, {-1}, + + {pool_offset(4950), 393}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4968), 431}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5027), 71}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(5312), 360}, + {pool_offset(5081), 366}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(5130), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(5177), 181}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30927,6 +31839,8 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5439), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30934,9 +31848,6 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5725), 72}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, @@ -30983,12 +31894,16 @@ unicode_lookup_property_name (register const char *str, register size_t len) {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(5919), 609}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(6176), 595} + {pool_offset(5964), 99} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) @@ -31012,11 +31927,11 @@ unicode_lookup_property_name (register const char *str, register size_t len) -#define UNICODE_PROPERTY_VERSION 140000 -#define UNICODE_EMOJI_VERSION 1400 +#define UNICODE_PROPERTY_VERSION 150100 +#define UNICODE_EMOJI_VERSION 1501 #define PROPERTY_NAME_MAX_SIZE 61 -#define CODE_RANGES_NUM 597 +#define CODE_RANGES_NUM 611 #define PROP_INDEX_NEWLINE 0 #define PROP_INDEX_ALPHA 1 @@ -31026,7 +31941,7 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_GRAPH 5 #define PROP_INDEX_LOWER 6 #define PROP_INDEX_PRINT 7 -#define PROP_INDEX_PUNCT 8 +#define PROP_INDEX_POSIXPUNCT 8 #define PROP_INDEX_SPACE 9 #define PROP_INDEX_UPPER 10 #define PROP_INDEX_XDIGIT 11 @@ -31035,8 +31950,8 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_ASCII 14 #define PROP_INDEX_ASCIIHEXDIGIT 15 #define PROP_INDEX_AHEX 15 -#define PROP_INDEX_ADLM 16 #define PROP_INDEX_ADLAM 16 +#define PROP_INDEX_ADLM 16 #define PROP_INDEX_AHOM 17 #define PROP_INDEX_ALPHABETIC 18 #define PROP_INDEX_ANATOLIANHIEROGLYPHS 19 @@ -31044,11 +31959,11 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_ANY 20 #define PROP_INDEX_ARABIC 21 #define PROP_INDEX_ARAB 21 -#define PROP_INDEX_ARMN 22 #define PROP_INDEX_ARMENIAN 22 +#define PROP_INDEX_ARMN 22 #define PROP_INDEX_ASSIGNED 23 -#define PROP_INDEX_AVST 24 #define PROP_INDEX_AVESTAN 24 +#define PROP_INDEX_AVST 24 #define PROP_INDEX_BALINESE 25 #define PROP_INDEX_BALI 25 #define PROP_INDEX_BAMUM 26 @@ -31057,69 +31972,69 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_BASS 27 #define PROP_INDEX_BATAK 28 #define PROP_INDEX_BATK 28 -#define PROP_INDEX_BENG 29 #define PROP_INDEX_BENGALI 29 -#define PROP_INDEX_BHKS 30 +#define PROP_INDEX_BENG 29 #define PROP_INDEX_BHAIKSUKI 30 +#define PROP_INDEX_BHKS 30 #define PROP_INDEX_BIDICONTROL 31 #define PROP_INDEX_BIDIC 31 -#define PROP_INDEX_BOPO 32 #define PROP_INDEX_BOPOMOFO 32 +#define PROP_INDEX_BOPO 32 #define PROP_INDEX_BRAHMI 33 #define PROP_INDEX_BRAH 33 -#define PROP_INDEX_BRAI 34 #define PROP_INDEX_BRAILLE 34 -#define PROP_INDEX_BUGI 35 +#define PROP_INDEX_BRAI 34 #define PROP_INDEX_BUGINESE 35 -#define PROP_INDEX_BUHD 36 +#define PROP_INDEX_BUGI 35 #define PROP_INDEX_BUHID 36 +#define PROP_INDEX_BUHD 36 #define PROP_INDEX_C 37 #define PROP_INDEX_OTHER 37 -#define PROP_INDEX_CANS 38 #define PROP_INDEX_CANADIANABORIGINAL 38 -#define PROP_INDEX_CARI 39 +#define PROP_INDEX_CANS 38 #define PROP_INDEX_CARIAN 39 -#define PROP_INDEX_CI 40 +#define PROP_INDEX_CARI 39 #define PROP_INDEX_CASEIGNORABLE 40 +#define PROP_INDEX_CI 40 #define PROP_INDEX_CASED 41 -#define PROP_INDEX_AGHB 42 #define PROP_INDEX_CAUCASIANALBANIAN 42 -#define PROP_INDEX_CONTROL 43 +#define PROP_INDEX_AGHB 42 #define PROP_INDEX_CC 43 +#define PROP_INDEX_CONTROL 43 #define PROP_INDEX_CF 44 #define PROP_INDEX_FORMAT 44 #define PROP_INDEX_CHAKMA 45 #define PROP_INDEX_CAKM 45 #define PROP_INDEX_CHAM 46 -#define PROP_INDEX_CWCF 47 #define PROP_INDEX_CHANGESWHENCASEFOLDED 47 -#define PROP_INDEX_CWCM 48 +#define PROP_INDEX_CWCF 47 #define PROP_INDEX_CHANGESWHENCASEMAPPED 48 -#define PROP_INDEX_CWL 49 +#define PROP_INDEX_CWCM 48 #define PROP_INDEX_CHANGESWHENLOWERCASED 49 -#define PROP_INDEX_CWT 50 +#define PROP_INDEX_CWL 49 #define PROP_INDEX_CHANGESWHENTITLECASED 50 -#define PROP_INDEX_CWU 51 +#define PROP_INDEX_CWT 50 #define PROP_INDEX_CHANGESWHENUPPERCASED 51 -#define PROP_INDEX_CHER 52 +#define PROP_INDEX_CWU 51 #define PROP_INDEX_CHEROKEE 52 -#define PROP_INDEX_CHRS 53 +#define PROP_INDEX_CHER 52 #define PROP_INDEX_CHORASMIAN 53 +#define PROP_INDEX_CHRS 53 #define PROP_INDEX_CN 54 #define PROP_INDEX_UNASSIGNED 54 -#define PROP_INDEX_PRIVATEUSE 55 #define PROP_INDEX_CO 55 -#define PROP_INDEX_ZYYY 56 +#define PROP_INDEX_PRIVATEUSE 55 #define PROP_INDEX_COMMON 56 -#define PROP_INDEX_COPT 57 +#define PROP_INDEX_ZYYY 56 #define PROP_INDEX_COPTIC 57 +#define PROP_INDEX_COPT 57 #define PROP_INDEX_QAAC 57 #define PROP_INDEX_CS 58 #define PROP_INDEX_SURROGATE 58 -#define PROP_INDEX_XSUX 59 #define PROP_INDEX_CUNEIFORM 59 -#define PROP_INDEX_CPRT 60 +#define PROP_INDEX_XSUX 59 #define PROP_INDEX_CYPRIOT 60 +#define PROP_INDEX_CPRT 60 #define PROP_INDEX_CYPROMINOAN 61 #define PROP_INDEX_CPMN 61 #define PROP_INDEX_CYRILLIC 62 @@ -31127,53 +32042,53 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_DASH 63 #define PROP_INDEX_DEFAULTIGNORABLECODEPOINT 64 #define PROP_INDEX_DI 64 -#define PROP_INDEX_DEP 65 #define PROP_INDEX_DEPRECATED 65 -#define PROP_INDEX_DSRT 66 +#define PROP_INDEX_DEP 65 #define PROP_INDEX_DESERET 66 -#define PROP_INDEX_DEVA 67 +#define PROP_INDEX_DSRT 66 #define PROP_INDEX_DEVANAGARI 67 +#define PROP_INDEX_DEVA 67 #define PROP_INDEX_DIACRITIC 68 #define PROP_INDEX_DIA 68 -#define PROP_INDEX_DIAK 69 #define PROP_INDEX_DIVESAKURU 69 -#define PROP_INDEX_DOGR 70 +#define PROP_INDEX_DIAK 69 #define PROP_INDEX_DOGRA 70 -#define PROP_INDEX_DUPL 71 +#define PROP_INDEX_DOGR 70 #define PROP_INDEX_DUPLOYAN 71 +#define PROP_INDEX_DUPL 71 #define PROP_INDEX_EGYPTIANHIEROGLYPHS 72 #define PROP_INDEX_EGYP 72 -#define PROP_INDEX_ELBA 73 #define PROP_INDEX_ELBASAN 73 -#define PROP_INDEX_ELYM 74 +#define PROP_INDEX_ELBA 73 #define PROP_INDEX_ELYMAIC 74 +#define PROP_INDEX_ELYM 74 #define PROP_INDEX_EMOJI 75 #define PROP_INDEX_EMOJICOMPONENT 76 #define PROP_INDEX_ECOMP 76 -#define PROP_INDEX_EMOD 77 #define PROP_INDEX_EMOJIMODIFIER 77 +#define PROP_INDEX_EMOD 77 #define PROP_INDEX_EMOJIMODIFIERBASE 78 #define PROP_INDEX_EBASE 78 #define PROP_INDEX_EMOJIPRESENTATION 79 #define PROP_INDEX_EPRES 79 #define PROP_INDEX_ETHIOPIC 80 #define PROP_INDEX_ETHI 80 -#define PROP_INDEX_EXTPICT 81 #define PROP_INDEX_EXTENDEDPICTOGRAPHIC 81 -#define PROP_INDEX_EXT 82 +#define PROP_INDEX_EXTPICT 81 #define PROP_INDEX_EXTENDER 82 +#define PROP_INDEX_EXT 82 #define PROP_INDEX_GEORGIAN 83 #define PROP_INDEX_GEOR 83 -#define PROP_INDEX_GLAG 84 #define PROP_INDEX_GLAGOLITIC 84 -#define PROP_INDEX_GOTH 85 +#define PROP_INDEX_GLAG 84 #define PROP_INDEX_GOTHIC 85 -#define PROP_INDEX_GRAN 86 +#define PROP_INDEX_GOTH 85 #define PROP_INDEX_GRANTHA 86 -#define PROP_INDEX_GRBASE 87 +#define PROP_INDEX_GRAN 86 #define PROP_INDEX_GRAPHEMEBASE 87 -#define PROP_INDEX_GREXT 88 +#define PROP_INDEX_GRBASE 87 #define PROP_INDEX_GRAPHEMEEXTEND 88 +#define PROP_INDEX_GREXT 88 #define PROP_INDEX_GRAPHEMELINK 89 #define PROP_INDEX_GRLINK 89 #define PROP_INDEX_GREEK 90 @@ -31182,682 +32097,699 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_GUJR 91 #define PROP_INDEX_GUNJALAGONDI 92 #define PROP_INDEX_GONG 92 -#define PROP_INDEX_GURU 93 #define PROP_INDEX_GURMUKHI 93 -#define PROP_INDEX_HANI 94 +#define PROP_INDEX_GURU 93 #define PROP_INDEX_HAN 94 -#define PROP_INDEX_HANG 95 +#define PROP_INDEX_HANI 94 #define PROP_INDEX_HANGUL 95 +#define PROP_INDEX_HANG 95 #define PROP_INDEX_HANIFIROHINGYA 96 #define PROP_INDEX_ROHG 96 #define PROP_INDEX_HANUNOO 97 #define PROP_INDEX_HANO 97 -#define PROP_INDEX_HATR 98 #define PROP_INDEX_HATRAN 98 +#define PROP_INDEX_HATR 98 #define PROP_INDEX_HEBREW 99 #define PROP_INDEX_HEBR 99 -#define PROP_INDEX_HEX 100 #define PROP_INDEX_HEXDIGIT 100 +#define PROP_INDEX_HEX 100 #define PROP_INDEX_HIRAGANA 101 #define PROP_INDEX_HIRA 101 #define PROP_INDEX_HYPHEN 102 -#define PROP_INDEX_IDSB 103 #define PROP_INDEX_IDSBINARYOPERATOR 103 -#define PROP_INDEX_IDST 104 +#define PROP_INDEX_IDSB 103 #define PROP_INDEX_IDSTRINARYOPERATOR 104 -#define PROP_INDEX_IDCONTINUE 105 -#define PROP_INDEX_IDC 105 -#define PROP_INDEX_IDS 106 -#define PROP_INDEX_IDSTART 106 -#define PROP_INDEX_IDEO 107 -#define PROP_INDEX_IDEOGRAPHIC 107 -#define PROP_INDEX_ARMI 108 -#define PROP_INDEX_IMPERIALARAMAIC 108 -#define PROP_INDEX_ZINH 109 -#define PROP_INDEX_INHERITED 109 -#define PROP_INDEX_QAAI 109 -#define PROP_INDEX_PHLI 110 -#define PROP_INDEX_INSCRIPTIONALPAHLAVI 110 -#define PROP_INDEX_INSCRIPTIONALPARTHIAN 111 -#define PROP_INDEX_PRTI 111 -#define PROP_INDEX_JAVANESE 112 -#define PROP_INDEX_JAVA 112 -#define PROP_INDEX_JOINC 113 -#define PROP_INDEX_JOINCONTROL 113 -#define PROP_INDEX_KAITHI 114 -#define PROP_INDEX_KTHI 114 -#define PROP_INDEX_KNDA 115 -#define PROP_INDEX_KANNADA 115 -#define PROP_INDEX_KATAKANA 116 -#define PROP_INDEX_KANA 116 -#define PROP_INDEX_KAYAHLI 117 -#define PROP_INDEX_KALI 117 -#define PROP_INDEX_KHAROSHTHI 118 -#define PROP_INDEX_KHAR 118 -#define PROP_INDEX_KITS 119 -#define PROP_INDEX_KHITANSMALLSCRIPT 119 -#define PROP_INDEX_KHMR 120 -#define PROP_INDEX_KHMER 120 -#define PROP_INDEX_KHOJ 121 -#define PROP_INDEX_KHOJKI 121 -#define PROP_INDEX_KHUDAWADI 122 -#define PROP_INDEX_SIND 122 -#define PROP_INDEX_L 123 -#define PROP_INDEX_LETTER 123 -#define PROP_INDEX_LC 124 -#define PROP_INDEX_CASEDLETTER 124 -#define PROP_INDEX_LAO 125 -#define PROP_INDEX_LAOO 125 -#define PROP_INDEX_LATN 126 -#define PROP_INDEX_LATIN 126 -#define PROP_INDEX_LEPC 127 -#define PROP_INDEX_LEPCHA 127 -#define PROP_INDEX_LIMBU 128 -#define PROP_INDEX_LIMB 128 -#define PROP_INDEX_LINA 129 -#define PROP_INDEX_LINEARA 129 -#define PROP_INDEX_LINB 130 -#define PROP_INDEX_LINEARB 130 -#define PROP_INDEX_LISU 131 -#define PROP_INDEX_LOWERCASELETTER 132 -#define PROP_INDEX_LL 132 -#define PROP_INDEX_LM 133 -#define PROP_INDEX_MODIFIERLETTER 133 -#define PROP_INDEX_LO 134 -#define PROP_INDEX_OTHERLETTER 134 -#define PROP_INDEX_LOGICALORDEREXCEPTION 135 -#define PROP_INDEX_LOE 135 -#define PROP_INDEX_LOWERCASE 136 -#define PROP_INDEX_LT 137 -#define PROP_INDEX_TITLECASELETTER 137 -#define PROP_INDEX_UPPERCASELETTER 138 -#define PROP_INDEX_LU 138 -#define PROP_INDEX_LYCI 139 -#define PROP_INDEX_LYCIAN 139 -#define PROP_INDEX_LYDI 140 -#define PROP_INDEX_LYDIAN 140 -#define PROP_INDEX_M 141 -#define PROP_INDEX_COMBININGMARK 141 -#define PROP_INDEX_MARK 141 -#define PROP_INDEX_MAHJ 142 -#define PROP_INDEX_MAHAJANI 142 -#define PROP_INDEX_MAKASAR 143 -#define PROP_INDEX_MAKA 143 -#define PROP_INDEX_MALAYALAM 144 -#define PROP_INDEX_MLYM 144 -#define PROP_INDEX_MAND 145 -#define PROP_INDEX_MANDAIC 145 -#define PROP_INDEX_MANI 146 -#define PROP_INDEX_MANICHAEAN 146 -#define PROP_INDEX_MARC 147 -#define PROP_INDEX_MARCHEN 147 -#define PROP_INDEX_MASARAMGONDI 148 -#define PROP_INDEX_GONM 148 -#define PROP_INDEX_MATH 149 -#define PROP_INDEX_MC 150 -#define PROP_INDEX_SPACINGMARK 150 -#define PROP_INDEX_ENCLOSINGMARK 151 -#define PROP_INDEX_ME 151 -#define PROP_INDEX_MEDEFAIDRIN 152 -#define PROP_INDEX_MEDF 152 -#define PROP_INDEX_MEETEIMAYEK 153 -#define PROP_INDEX_MTEI 153 -#define PROP_INDEX_MENDEKIKAKUI 154 -#define PROP_INDEX_MEND 154 -#define PROP_INDEX_MEROITICCURSIVE 155 -#define PROP_INDEX_MERC 155 -#define PROP_INDEX_MEROITICHIEROGLYPHS 156 -#define PROP_INDEX_MERO 156 -#define PROP_INDEX_PLRD 157 -#define PROP_INDEX_MIAO 157 -#define PROP_INDEX_MN 158 -#define PROP_INDEX_NONSPACINGMARK 158 -#define PROP_INDEX_MODI 159 -#define PROP_INDEX_MONGOLIAN 160 -#define PROP_INDEX_MONG 160 -#define PROP_INDEX_MRO 161 -#define PROP_INDEX_MROO 161 -#define PROP_INDEX_MULT 162 -#define PROP_INDEX_MULTANI 162 -#define PROP_INDEX_MYANMAR 163 -#define PROP_INDEX_MYMR 163 -#define PROP_INDEX_NUMBER 164 -#define PROP_INDEX_N 164 -#define PROP_INDEX_NABATAEAN 165 -#define PROP_INDEX_NBAT 165 -#define PROP_INDEX_NAND 166 -#define PROP_INDEX_NANDINAGARI 166 -#define PROP_INDEX_DECIMALNUMBER 167 -#define PROP_INDEX_ND 167 -#define PROP_INDEX_TALU 168 -#define PROP_INDEX_NEWTAILUE 168 -#define PROP_INDEX_NEWA 169 -#define PROP_INDEX_NKO 170 -#define PROP_INDEX_NKOO 170 -#define PROP_INDEX_LETTERNUMBER 171 -#define PROP_INDEX_NL 171 -#define PROP_INDEX_OTHERNUMBER 172 -#define PROP_INDEX_NO 172 -#define PROP_INDEX_NONCHARACTERCODEPOINT 173 -#define PROP_INDEX_NCHAR 173 -#define PROP_INDEX_NSHU 174 -#define PROP_INDEX_NUSHU 174 -#define PROP_INDEX_HMNP 175 -#define PROP_INDEX_NYIAKENGPUACHUEHMONG 175 -#define PROP_INDEX_OGHAM 176 -#define PROP_INDEX_OGAM 176 -#define PROP_INDEX_OLCK 177 -#define PROP_INDEX_OLCHIKI 177 -#define PROP_INDEX_HUNG 178 -#define PROP_INDEX_OLDHUNGARIAN 178 -#define PROP_INDEX_ITAL 179 -#define PROP_INDEX_OLDITALIC 179 -#define PROP_INDEX_NARB 180 -#define PROP_INDEX_OLDNORTHARABIAN 180 -#define PROP_INDEX_OLDPERMIC 181 -#define PROP_INDEX_PERM 181 -#define PROP_INDEX_OLDPERSIAN 182 -#define PROP_INDEX_XPEO 182 -#define PROP_INDEX_SOGO 183 -#define PROP_INDEX_OLDSOGDIAN 183 -#define PROP_INDEX_SARB 184 -#define PROP_INDEX_OLDSOUTHARABIAN 184 -#define PROP_INDEX_OLDTURKIC 185 -#define PROP_INDEX_ORKH 185 -#define PROP_INDEX_OUGR 186 -#define PROP_INDEX_OLDUYGHUR 186 -#define PROP_INDEX_ORYA 187 -#define PROP_INDEX_ORIYA 187 -#define PROP_INDEX_OSAGE 188 -#define PROP_INDEX_OSGE 188 -#define PROP_INDEX_OSMANYA 189 -#define PROP_INDEX_OSMA 189 -#define PROP_INDEX_OTHERALPHABETIC 190 -#define PROP_INDEX_OALPHA 190 -#define PROP_INDEX_ODI 191 -#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 191 -#define PROP_INDEX_OGREXT 192 -#define PROP_INDEX_OTHERGRAPHEMEEXTEND 192 -#define PROP_INDEX_OIDC 193 -#define PROP_INDEX_OTHERIDCONTINUE 193 -#define PROP_INDEX_OTHERIDSTART 194 -#define PROP_INDEX_OIDS 194 -#define PROP_INDEX_OTHERLOWERCASE 195 -#define PROP_INDEX_OLOWER 195 -#define PROP_INDEX_OTHERMATH 196 -#define PROP_INDEX_OMATH 196 -#define PROP_INDEX_OTHERUPPERCASE 197 -#define PROP_INDEX_OUPPER 197 -#define PROP_INDEX_P 198 -#define PROP_INDEX_PUNCTUATION 198 -#define PROP_INDEX_PAHAWHHMONG 199 -#define PROP_INDEX_HMNG 199 -#define PROP_INDEX_PALMYRENE 200 -#define PROP_INDEX_PALM 200 -#define PROP_INDEX_PATTERNSYNTAX 201 -#define PROP_INDEX_PATSYN 201 -#define PROP_INDEX_PATWS 202 -#define PROP_INDEX_PATTERNWHITESPACE 202 -#define PROP_INDEX_PAUCINHAU 203 -#define PROP_INDEX_PAUC 203 -#define PROP_INDEX_CONNECTORPUNCTUATION 204 -#define PROP_INDEX_PC 204 -#define PROP_INDEX_DASHPUNCTUATION 205 -#define PROP_INDEX_PD 205 -#define PROP_INDEX_PE 206 -#define PROP_INDEX_CLOSEPUNCTUATION 206 -#define PROP_INDEX_FINALPUNCTUATION 207 -#define PROP_INDEX_PF 207 -#define PROP_INDEX_PHAG 208 -#define PROP_INDEX_PHAGSPA 208 -#define PROP_INDEX_PHOENICIAN 209 -#define PROP_INDEX_PHNX 209 -#define PROP_INDEX_PI 210 -#define PROP_INDEX_INITIALPUNCTUATION 210 -#define PROP_INDEX_OTHERPUNCTUATION 211 -#define PROP_INDEX_PO 211 -#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 212 -#define PROP_INDEX_PCM 212 -#define PROP_INDEX_PS 213 -#define PROP_INDEX_OPENPUNCTUATION 213 -#define PROP_INDEX_PHLP 214 -#define PROP_INDEX_PSALTERPAHLAVI 214 -#define PROP_INDEX_QUOTATIONMARK 215 -#define PROP_INDEX_QMARK 215 -#define PROP_INDEX_RADICAL 216 -#define PROP_INDEX_RI 217 -#define PROP_INDEX_REGIONALINDICATOR 217 -#define PROP_INDEX_REJANG 218 -#define PROP_INDEX_RJNG 218 -#define PROP_INDEX_RUNIC 219 -#define PROP_INDEX_RUNR 219 -#define PROP_INDEX_S 220 -#define PROP_INDEX_SYMBOL 220 -#define PROP_INDEX_SAMARITAN 221 -#define PROP_INDEX_SAMR 221 -#define PROP_INDEX_SAURASHTRA 222 -#define PROP_INDEX_SAUR 222 -#define PROP_INDEX_SC 223 -#define PROP_INDEX_CURRENCYSYMBOL 223 -#define PROP_INDEX_SENTENCETERMINAL 224 -#define PROP_INDEX_STERM 224 -#define PROP_INDEX_SHARADA 225 -#define PROP_INDEX_SHRD 225 -#define PROP_INDEX_SHAVIAN 226 -#define PROP_INDEX_SHAW 226 -#define PROP_INDEX_SIDDHAM 227 -#define PROP_INDEX_SIDD 227 -#define PROP_INDEX_SIGNWRITING 228 -#define PROP_INDEX_SGNW 228 -#define PROP_INDEX_SINH 229 -#define PROP_INDEX_SINHALA 229 -#define PROP_INDEX_SK 230 -#define PROP_INDEX_MODIFIERSYMBOL 230 -#define PROP_INDEX_MATHSYMBOL 231 -#define PROP_INDEX_SM 231 -#define PROP_INDEX_SO 232 -#define PROP_INDEX_OTHERSYMBOL 232 -#define PROP_INDEX_SD 233 -#define PROP_INDEX_SOFTDOTTED 233 -#define PROP_INDEX_SOGD 234 -#define PROP_INDEX_SOGDIAN 234 -#define PROP_INDEX_SORASOMPENG 235 -#define PROP_INDEX_SORA 235 -#define PROP_INDEX_SOYO 236 -#define PROP_INDEX_SOYOMBO 236 -#define PROP_INDEX_SUND 237 -#define PROP_INDEX_SUNDANESE 237 -#define PROP_INDEX_SYLO 238 -#define PROP_INDEX_SYLOTINAGRI 238 -#define PROP_INDEX_SYRC 239 -#define PROP_INDEX_SYRIAC 239 -#define PROP_INDEX_TGLG 240 -#define PROP_INDEX_TAGALOG 240 -#define PROP_INDEX_TAGBANWA 241 -#define PROP_INDEX_TAGB 241 -#define PROP_INDEX_TAILE 242 -#define PROP_INDEX_TALE 242 -#define PROP_INDEX_TAITHAM 243 -#define PROP_INDEX_LANA 243 -#define PROP_INDEX_TAIVIET 244 -#define PROP_INDEX_TAVT 244 -#define PROP_INDEX_TAKRI 245 -#define PROP_INDEX_TAKR 245 -#define PROP_INDEX_TAMIL 246 -#define PROP_INDEX_TAML 246 -#define PROP_INDEX_TANGSA 247 -#define PROP_INDEX_TNSA 247 -#define PROP_INDEX_TANG 248 -#define PROP_INDEX_TANGUT 248 -#define PROP_INDEX_TELUGU 249 -#define PROP_INDEX_TELU 249 -#define PROP_INDEX_TERM 250 -#define PROP_INDEX_TERMINALPUNCTUATION 250 -#define PROP_INDEX_THAA 251 -#define PROP_INDEX_THAANA 251 -#define PROP_INDEX_THAI 252 -#define PROP_INDEX_TIBT 253 -#define PROP_INDEX_TIBETAN 253 -#define PROP_INDEX_TFNG 254 -#define PROP_INDEX_TIFINAGH 254 -#define PROP_INDEX_TIRHUTA 255 -#define PROP_INDEX_TIRH 255 -#define PROP_INDEX_TOTO 256 -#define PROP_INDEX_UGAR 257 -#define PROP_INDEX_UGARITIC 257 -#define PROP_INDEX_UNIFIEDIDEOGRAPH 258 -#define PROP_INDEX_UIDEO 258 -#define PROP_INDEX_ZZZZ 259 -#define PROP_INDEX_UNKNOWN 259 -#define PROP_INDEX_UPPERCASE 260 -#define PROP_INDEX_VAII 261 -#define PROP_INDEX_VAI 261 -#define PROP_INDEX_VARIATIONSELECTOR 262 -#define PROP_INDEX_VS 262 -#define PROP_INDEX_VITH 263 -#define PROP_INDEX_VITHKUQI 263 -#define PROP_INDEX_WCHO 264 -#define PROP_INDEX_WANCHO 264 -#define PROP_INDEX_WARANGCITI 265 -#define PROP_INDEX_WARA 265 -#define PROP_INDEX_WHITESPACE 266 -#define PROP_INDEX_WSPACE 266 -#define PROP_INDEX_XIDC 267 -#define PROP_INDEX_XIDCONTINUE 267 -#define PROP_INDEX_XIDS 268 -#define PROP_INDEX_XIDSTART 268 -#define PROP_INDEX_YEZIDI 269 -#define PROP_INDEX_YEZI 269 -#define PROP_INDEX_YI 270 -#define PROP_INDEX_YIII 270 -#define PROP_INDEX_SEPARATOR 271 -#define PROP_INDEX_Z 271 -#define PROP_INDEX_ZANABAZARSQUARE 272 -#define PROP_INDEX_ZANB 272 -#define PROP_INDEX_ZL 273 -#define PROP_INDEX_LINESEPARATOR 273 -#define PROP_INDEX_ZP 274 -#define PROP_INDEX_PARAGRAPHSEPARATOR 274 -#define PROP_INDEX_ZS 275 -#define PROP_INDEX_SPACESEPARATOR 275 -#define PROP_INDEX_INBASICLATIN 276 -#define PROP_INDEX_INLATIN1SUPPLEMENT 277 -#define PROP_INDEX_INLATINEXTENDEDA 278 -#define PROP_INDEX_INLATINEXTENDEDB 279 -#define PROP_INDEX_INIPAEXTENSIONS 280 -#define PROP_INDEX_INSPACINGMODIFIERLETTERS 281 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 282 -#define PROP_INDEX_INGREEKANDCOPTIC 283 -#define PROP_INDEX_INCYRILLIC 284 -#define PROP_INDEX_INCYRILLICSUPPLEMENT 285 -#define PROP_INDEX_INARMENIAN 286 -#define PROP_INDEX_INHEBREW 287 -#define PROP_INDEX_INARABIC 288 -#define PROP_INDEX_INSYRIAC 289 -#define PROP_INDEX_INARABICSUPPLEMENT 290 -#define PROP_INDEX_INTHAANA 291 -#define PROP_INDEX_INNKO 292 -#define PROP_INDEX_INSAMARITAN 293 -#define PROP_INDEX_INMANDAIC 294 -#define PROP_INDEX_INSYRIACSUPPLEMENT 295 -#define PROP_INDEX_INARABICEXTENDEDB 296 -#define PROP_INDEX_INARABICEXTENDEDA 297 -#define PROP_INDEX_INDEVANAGARI 298 -#define PROP_INDEX_INBENGALI 299 -#define PROP_INDEX_INGURMUKHI 300 -#define PROP_INDEX_INGUJARATI 301 -#define PROP_INDEX_INORIYA 302 -#define PROP_INDEX_INTAMIL 303 -#define PROP_INDEX_INTELUGU 304 -#define PROP_INDEX_INKANNADA 305 -#define PROP_INDEX_INMALAYALAM 306 -#define PROP_INDEX_INSINHALA 307 -#define PROP_INDEX_INTHAI 308 -#define PROP_INDEX_INLAO 309 -#define PROP_INDEX_INTIBETAN 310 -#define PROP_INDEX_INMYANMAR 311 -#define PROP_INDEX_INGEORGIAN 312 -#define PROP_INDEX_INHANGULJAMO 313 -#define PROP_INDEX_INETHIOPIC 314 -#define PROP_INDEX_INETHIOPICSUPPLEMENT 315 -#define PROP_INDEX_INCHEROKEE 316 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 317 -#define PROP_INDEX_INOGHAM 318 -#define PROP_INDEX_INRUNIC 319 -#define PROP_INDEX_INTAGALOG 320 -#define PROP_INDEX_INHANUNOO 321 -#define PROP_INDEX_INBUHID 322 -#define PROP_INDEX_INTAGBANWA 323 -#define PROP_INDEX_INKHMER 324 -#define PROP_INDEX_INMONGOLIAN 325 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 326 -#define PROP_INDEX_INLIMBU 327 -#define PROP_INDEX_INTAILE 328 -#define PROP_INDEX_INNEWTAILUE 329 -#define PROP_INDEX_INKHMERSYMBOLS 330 -#define PROP_INDEX_INBUGINESE 331 -#define PROP_INDEX_INTAITHAM 332 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 333 -#define PROP_INDEX_INBALINESE 334 -#define PROP_INDEX_INSUNDANESE 335 -#define PROP_INDEX_INBATAK 336 -#define PROP_INDEX_INLEPCHA 337 -#define PROP_INDEX_INOLCHIKI 338 -#define PROP_INDEX_INCYRILLICEXTENDEDC 339 -#define PROP_INDEX_INGEORGIANEXTENDED 340 -#define PROP_INDEX_INSUNDANESESUPPLEMENT 341 -#define PROP_INDEX_INVEDICEXTENSIONS 342 -#define PROP_INDEX_INPHONETICEXTENSIONS 343 -#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 344 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 345 -#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 346 -#define PROP_INDEX_INGREEKEXTENDED 347 -#define PROP_INDEX_INGENERALPUNCTUATION 348 -#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 349 -#define PROP_INDEX_INCURRENCYSYMBOLS 350 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 351 -#define PROP_INDEX_INLETTERLIKESYMBOLS 352 -#define PROP_INDEX_INNUMBERFORMS 353 -#define PROP_INDEX_INARROWS 354 -#define PROP_INDEX_INMATHEMATICALOPERATORS 355 -#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 356 -#define PROP_INDEX_INCONTROLPICTURES 357 -#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 358 -#define PROP_INDEX_INENCLOSEDALPHANUMERICS 359 -#define PROP_INDEX_INBOXDRAWING 360 -#define PROP_INDEX_INBLOCKELEMENTS 361 -#define PROP_INDEX_INGEOMETRICSHAPES 362 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 363 -#define PROP_INDEX_INDINGBATS 364 -#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 365 -#define PROP_INDEX_INSUPPLEMENTALARROWSA 366 -#define PROP_INDEX_INBRAILLEPATTERNS 367 -#define PROP_INDEX_INSUPPLEMENTALARROWSB 368 -#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 369 -#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 370 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 371 -#define PROP_INDEX_INGLAGOLITIC 372 -#define PROP_INDEX_INLATINEXTENDEDC 373 -#define PROP_INDEX_INCOPTIC 374 -#define PROP_INDEX_INGEORGIANSUPPLEMENT 375 -#define PROP_INDEX_INTIFINAGH 376 -#define PROP_INDEX_INETHIOPICEXTENDED 377 -#define PROP_INDEX_INCYRILLICEXTENDEDA 378 -#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 379 -#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 380 -#define PROP_INDEX_INKANGXIRADICALS 381 -#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 382 -#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 383 -#define PROP_INDEX_INHIRAGANA 384 -#define PROP_INDEX_INKATAKANA 385 -#define PROP_INDEX_INBOPOMOFO 386 -#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 387 -#define PROP_INDEX_INKANBUN 388 -#define PROP_INDEX_INBOPOMOFOEXTENDED 389 -#define PROP_INDEX_INCJKSTROKES 390 -#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 391 -#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 392 -#define PROP_INDEX_INCJKCOMPATIBILITY 393 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 394 -#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 395 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 396 -#define PROP_INDEX_INYISYLLABLES 397 -#define PROP_INDEX_INYIRADICALS 398 -#define PROP_INDEX_INLISU 399 -#define PROP_INDEX_INVAI 400 -#define PROP_INDEX_INCYRILLICEXTENDEDB 401 -#define PROP_INDEX_INBAMUM 402 -#define PROP_INDEX_INMODIFIERTONELETTERS 403 -#define PROP_INDEX_INLATINEXTENDEDD 404 -#define PROP_INDEX_INSYLOTINAGRI 405 -#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 406 -#define PROP_INDEX_INPHAGSPA 407 -#define PROP_INDEX_INSAURASHTRA 408 -#define PROP_INDEX_INDEVANAGARIEXTENDED 409 -#define PROP_INDEX_INKAYAHLI 410 -#define PROP_INDEX_INREJANG 411 -#define PROP_INDEX_INHANGULJAMOEXTENDEDA 412 -#define PROP_INDEX_INJAVANESE 413 -#define PROP_INDEX_INMYANMAREXTENDEDB 414 -#define PROP_INDEX_INCHAM 415 -#define PROP_INDEX_INMYANMAREXTENDEDA 416 -#define PROP_INDEX_INTAIVIET 417 -#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 418 -#define PROP_INDEX_INETHIOPICEXTENDEDA 419 -#define PROP_INDEX_INLATINEXTENDEDE 420 -#define PROP_INDEX_INCHEROKEESUPPLEMENT 421 -#define PROP_INDEX_INMEETEIMAYEK 422 -#define PROP_INDEX_INHANGULSYLLABLES 423 -#define PROP_INDEX_INHANGULJAMOEXTENDEDB 424 -#define PROP_INDEX_INHIGHSURROGATES 425 -#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 426 -#define PROP_INDEX_INLOWSURROGATES 427 -#define PROP_INDEX_INPRIVATEUSEAREA 428 -#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 429 -#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 430 -#define PROP_INDEX_INARABICPRESENTATIONFORMSA 431 -#define PROP_INDEX_INVARIATIONSELECTORS 432 -#define PROP_INDEX_INVERTICALFORMS 433 -#define PROP_INDEX_INCOMBININGHALFMARKS 434 -#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 435 -#define PROP_INDEX_INSMALLFORMVARIANTS 436 -#define PROP_INDEX_INARABICPRESENTATIONFORMSB 437 -#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 438 -#define PROP_INDEX_INSPECIALS 439 -#define PROP_INDEX_INLINEARBSYLLABARY 440 -#define PROP_INDEX_INLINEARBIDEOGRAMS 441 -#define PROP_INDEX_INAEGEANNUMBERS 442 -#define PROP_INDEX_INANCIENTGREEKNUMBERS 443 -#define PROP_INDEX_INANCIENTSYMBOLS 444 -#define PROP_INDEX_INPHAISTOSDISC 445 -#define PROP_INDEX_INLYCIAN 446 -#define PROP_INDEX_INCARIAN 447 -#define PROP_INDEX_INCOPTICEPACTNUMBERS 448 -#define PROP_INDEX_INOLDITALIC 449 -#define PROP_INDEX_INGOTHIC 450 -#define PROP_INDEX_INOLDPERMIC 451 -#define PROP_INDEX_INUGARITIC 452 -#define PROP_INDEX_INOLDPERSIAN 453 -#define PROP_INDEX_INDESERET 454 -#define PROP_INDEX_INSHAVIAN 455 -#define PROP_INDEX_INOSMANYA 456 -#define PROP_INDEX_INOSAGE 457 -#define PROP_INDEX_INELBASAN 458 -#define PROP_INDEX_INCAUCASIANALBANIAN 459 -#define PROP_INDEX_INVITHKUQI 460 -#define PROP_INDEX_INLINEARA 461 -#define PROP_INDEX_INLATINEXTENDEDF 462 -#define PROP_INDEX_INCYPRIOTSYLLABARY 463 -#define PROP_INDEX_INIMPERIALARAMAIC 464 -#define PROP_INDEX_INPALMYRENE 465 -#define PROP_INDEX_INNABATAEAN 466 -#define PROP_INDEX_INHATRAN 467 -#define PROP_INDEX_INPHOENICIAN 468 -#define PROP_INDEX_INLYDIAN 469 -#define PROP_INDEX_INMEROITICHIEROGLYPHS 470 -#define PROP_INDEX_INMEROITICCURSIVE 471 -#define PROP_INDEX_INKHAROSHTHI 472 -#define PROP_INDEX_INOLDSOUTHARABIAN 473 -#define PROP_INDEX_INOLDNORTHARABIAN 474 -#define PROP_INDEX_INMANICHAEAN 475 -#define PROP_INDEX_INAVESTAN 476 -#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 477 -#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 478 -#define PROP_INDEX_INPSALTERPAHLAVI 479 -#define PROP_INDEX_INOLDTURKIC 480 -#define PROP_INDEX_INOLDHUNGARIAN 481 -#define PROP_INDEX_INHANIFIROHINGYA 482 -#define PROP_INDEX_INRUMINUMERALSYMBOLS 483 -#define PROP_INDEX_INYEZIDI 484 -#define PROP_INDEX_INOLDSOGDIAN 485 -#define PROP_INDEX_INSOGDIAN 486 -#define PROP_INDEX_INOLDUYGHUR 487 -#define PROP_INDEX_INCHORASMIAN 488 -#define PROP_INDEX_INELYMAIC 489 -#define PROP_INDEX_INBRAHMI 490 -#define PROP_INDEX_INKAITHI 491 -#define PROP_INDEX_INSORASOMPENG 492 -#define PROP_INDEX_INCHAKMA 493 -#define PROP_INDEX_INMAHAJANI 494 -#define PROP_INDEX_INSHARADA 495 -#define PROP_INDEX_INSINHALAARCHAICNUMBERS 496 -#define PROP_INDEX_INKHOJKI 497 -#define PROP_INDEX_INMULTANI 498 -#define PROP_INDEX_INKHUDAWADI 499 -#define PROP_INDEX_INGRANTHA 500 -#define PROP_INDEX_INNEWA 501 -#define PROP_INDEX_INTIRHUTA 502 -#define PROP_INDEX_INSIDDHAM 503 -#define PROP_INDEX_INMODI 504 -#define PROP_INDEX_INMONGOLIANSUPPLEMENT 505 -#define PROP_INDEX_INTAKRI 506 -#define PROP_INDEX_INAHOM 507 -#define PROP_INDEX_INDOGRA 508 -#define PROP_INDEX_INWARANGCITI 509 -#define PROP_INDEX_INDIVESAKURU 510 -#define PROP_INDEX_INNANDINAGARI 511 -#define PROP_INDEX_INZANABAZARSQUARE 512 -#define PROP_INDEX_INSOYOMBO 513 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDEDA 514 -#define PROP_INDEX_INPAUCINHAU 515 -#define PROP_INDEX_INBHAIKSUKI 516 -#define PROP_INDEX_INMARCHEN 517 -#define PROP_INDEX_INMASARAMGONDI 518 -#define PROP_INDEX_INGUNJALAGONDI 519 -#define PROP_INDEX_INMAKASAR 520 -#define PROP_INDEX_INLISUSUPPLEMENT 521 -#define PROP_INDEX_INTAMILSUPPLEMENT 522 -#define PROP_INDEX_INCUNEIFORM 523 -#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 524 -#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 525 -#define PROP_INDEX_INCYPROMINOAN 526 -#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 527 -#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 528 -#define PROP_INDEX_INANATOLIANHIEROGLYPHS 529 -#define PROP_INDEX_INBAMUMSUPPLEMENT 530 -#define PROP_INDEX_INMRO 531 -#define PROP_INDEX_INTANGSA 532 -#define PROP_INDEX_INBASSAVAH 533 -#define PROP_INDEX_INPAHAWHHMONG 534 -#define PROP_INDEX_INMEDEFAIDRIN 535 -#define PROP_INDEX_INMIAO 536 -#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 537 -#define PROP_INDEX_INTANGUT 538 -#define PROP_INDEX_INTANGUTCOMPONENTS 539 -#define PROP_INDEX_INKHITANSMALLSCRIPT 540 -#define PROP_INDEX_INTANGUTSUPPLEMENT 541 -#define PROP_INDEX_INKANAEXTENDEDB 542 -#define PROP_INDEX_INKANASUPPLEMENT 543 -#define PROP_INDEX_INKANAEXTENDEDA 544 -#define PROP_INDEX_INSMALLKANAEXTENSION 545 -#define PROP_INDEX_INNUSHU 546 -#define PROP_INDEX_INDUPLOYAN 547 -#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 548 -#define PROP_INDEX_INZNAMENNYMUSICALNOTATION 549 -#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 550 -#define PROP_INDEX_INMUSICALSYMBOLS 551 -#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 552 -#define PROP_INDEX_INMAYANNUMERALS 553 -#define PROP_INDEX_INTAIXUANJINGSYMBOLS 554 -#define PROP_INDEX_INCOUNTINGRODNUMERALS 555 -#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 556 -#define PROP_INDEX_INSUTTONSIGNWRITING 557 -#define PROP_INDEX_INLATINEXTENDEDG 558 -#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 559 -#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 560 -#define PROP_INDEX_INTOTO 561 -#define PROP_INDEX_INWANCHO 562 -#define PROP_INDEX_INETHIOPICEXTENDEDB 563 -#define PROP_INDEX_INMENDEKIKAKUI 564 -#define PROP_INDEX_INADLAM 565 -#define PROP_INDEX_ININDICSIYAQNUMBERS 566 -#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 567 -#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 568 -#define PROP_INDEX_INMAHJONGTILES 569 -#define PROP_INDEX_INDOMINOTILES 570 -#define PROP_INDEX_INPLAYINGCARDS 571 -#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 572 -#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 573 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 574 -#define PROP_INDEX_INEMOTICONS 575 -#define PROP_INDEX_INORNAMENTALDINGBATS 576 -#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 577 -#define PROP_INDEX_INALCHEMICALSYMBOLS 578 -#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 579 -#define PROP_INDEX_INSUPPLEMENTALARROWSC 580 -#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 581 -#define PROP_INDEX_INCHESSSYMBOLS 582 -#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 583 -#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTING 584 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 585 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 586 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 587 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 588 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 589 -#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 590 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONG 591 -#define PROP_INDEX_INTAGS 592 -#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 593 -#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 594 -#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 595 -#define PROP_INDEX_INNOBLOCK 596 +#define PROP_INDEX_IDST 104 +#define PROP_INDEX_IDSUNARYOPERATOR 105 +#define PROP_INDEX_IDSU 105 +#define PROP_INDEX_IDCOMPATMATHCONTINUE 106 +#define PROP_INDEX_IDCOMPATMATHSTART 107 +#define PROP_INDEX_IDCONTINUE 108 +#define PROP_INDEX_IDC 108 +#define PROP_INDEX_IDSTART 109 +#define PROP_INDEX_IDS 109 +#define PROP_INDEX_IDEOGRAPHIC 110 +#define PROP_INDEX_IDEO 110 +#define PROP_INDEX_IMPERIALARAMAIC 111 +#define PROP_INDEX_ARMI 111 +#define PROP_INDEX_INCB 112 +#define PROP_INDEX_INHERITED 113 +#define PROP_INDEX_QAAI 113 +#define PROP_INDEX_ZINH 113 +#define PROP_INDEX_INSCRIPTIONALPAHLAVI 114 +#define PROP_INDEX_PHLI 114 +#define PROP_INDEX_INSCRIPTIONALPARTHIAN 115 +#define PROP_INDEX_PRTI 115 +#define PROP_INDEX_JAVANESE 116 +#define PROP_INDEX_JAVA 116 +#define PROP_INDEX_JOINCONTROL 117 +#define PROP_INDEX_JOINC 117 +#define PROP_INDEX_KAITHI 118 +#define PROP_INDEX_KTHI 118 +#define PROP_INDEX_KANNADA 119 +#define PROP_INDEX_KNDA 119 +#define PROP_INDEX_KATAKANA 120 +#define PROP_INDEX_KANA 120 +#define PROP_INDEX_KAWI 121 +#define PROP_INDEX_KAYAHLI 122 +#define PROP_INDEX_KALI 122 +#define PROP_INDEX_KHAROSHTHI 123 +#define PROP_INDEX_KHAR 123 +#define PROP_INDEX_KHITANSMALLSCRIPT 124 +#define PROP_INDEX_KITS 124 +#define PROP_INDEX_KHMER 125 +#define PROP_INDEX_KHMR 125 +#define PROP_INDEX_KHOJKI 126 +#define PROP_INDEX_KHOJ 126 +#define PROP_INDEX_KHUDAWADI 127 +#define PROP_INDEX_SIND 127 +#define PROP_INDEX_L 128 +#define PROP_INDEX_LETTER 128 +#define PROP_INDEX_LC 129 +#define PROP_INDEX_CASEDLETTER 129 +#define PROP_INDEX_LAO 130 +#define PROP_INDEX_LAOO 130 +#define PROP_INDEX_LATIN 131 +#define PROP_INDEX_LATN 131 +#define PROP_INDEX_LEPCHA 132 +#define PROP_INDEX_LEPC 132 +#define PROP_INDEX_LIMBU 133 +#define PROP_INDEX_LIMB 133 +#define PROP_INDEX_LINEARA 134 +#define PROP_INDEX_LINA 134 +#define PROP_INDEX_LINEARB 135 +#define PROP_INDEX_LINB 135 +#define PROP_INDEX_LISU 136 +#define PROP_INDEX_LL 137 +#define PROP_INDEX_LOWERCASELETTER 137 +#define PROP_INDEX_LM 138 +#define PROP_INDEX_MODIFIERLETTER 138 +#define PROP_INDEX_LO 139 +#define PROP_INDEX_OTHERLETTER 139 +#define PROP_INDEX_LOGICALORDEREXCEPTION 140 +#define PROP_INDEX_LOE 140 +#define PROP_INDEX_LOWERCASE 141 +#define PROP_INDEX_LT 142 +#define PROP_INDEX_TITLECASELETTER 142 +#define PROP_INDEX_LU 143 +#define PROP_INDEX_UPPERCASELETTER 143 +#define PROP_INDEX_LYCIAN 144 +#define PROP_INDEX_LYCI 144 +#define PROP_INDEX_LYDIAN 145 +#define PROP_INDEX_LYDI 145 +#define PROP_INDEX_M 146 +#define PROP_INDEX_COMBININGMARK 146 +#define PROP_INDEX_MARK 146 +#define PROP_INDEX_MAHAJANI 147 +#define PROP_INDEX_MAHJ 147 +#define PROP_INDEX_MAKASAR 148 +#define PROP_INDEX_MAKA 148 +#define PROP_INDEX_MALAYALAM 149 +#define PROP_INDEX_MLYM 149 +#define PROP_INDEX_MANDAIC 150 +#define PROP_INDEX_MAND 150 +#define PROP_INDEX_MANICHAEAN 151 +#define PROP_INDEX_MANI 151 +#define PROP_INDEX_MARCHEN 152 +#define PROP_INDEX_MARC 152 +#define PROP_INDEX_MASARAMGONDI 153 +#define PROP_INDEX_GONM 153 +#define PROP_INDEX_MATH 154 +#define PROP_INDEX_MC 155 +#define PROP_INDEX_SPACINGMARK 155 +#define PROP_INDEX_ME 156 +#define PROP_INDEX_ENCLOSINGMARK 156 +#define PROP_INDEX_MEDEFAIDRIN 157 +#define PROP_INDEX_MEDF 157 +#define PROP_INDEX_MEETEIMAYEK 158 +#define PROP_INDEX_MTEI 158 +#define PROP_INDEX_MENDEKIKAKUI 159 +#define PROP_INDEX_MEND 159 +#define PROP_INDEX_MEROITICCURSIVE 160 +#define PROP_INDEX_MERC 160 +#define PROP_INDEX_MEROITICHIEROGLYPHS 161 +#define PROP_INDEX_MERO 161 +#define PROP_INDEX_MIAO 162 +#define PROP_INDEX_PLRD 162 +#define PROP_INDEX_MN 163 +#define PROP_INDEX_NONSPACINGMARK 163 +#define PROP_INDEX_MODI 164 +#define PROP_INDEX_MONGOLIAN 165 +#define PROP_INDEX_MONG 165 +#define PROP_INDEX_MRO 166 +#define PROP_INDEX_MROO 166 +#define PROP_INDEX_MULTANI 167 +#define PROP_INDEX_MULT 167 +#define PROP_INDEX_MYANMAR 168 +#define PROP_INDEX_MYMR 168 +#define PROP_INDEX_N 169 +#define PROP_INDEX_NUMBER 169 +#define PROP_INDEX_NABATAEAN 170 +#define PROP_INDEX_NBAT 170 +#define PROP_INDEX_NAGMUNDARI 171 +#define PROP_INDEX_NAGM 171 +#define PROP_INDEX_NANDINAGARI 172 +#define PROP_INDEX_NAND 172 +#define PROP_INDEX_ND 173 +#define PROP_INDEX_DECIMALNUMBER 173 +#define PROP_INDEX_NEWTAILUE 174 +#define PROP_INDEX_TALU 174 +#define PROP_INDEX_NEWA 175 +#define PROP_INDEX_NKO 176 +#define PROP_INDEX_NKOO 176 +#define PROP_INDEX_NL 177 +#define PROP_INDEX_LETTERNUMBER 177 +#define PROP_INDEX_NO 178 +#define PROP_INDEX_OTHERNUMBER 178 +#define PROP_INDEX_NONCHARACTERCODEPOINT 179 +#define PROP_INDEX_NCHAR 179 +#define PROP_INDEX_NUSHU 180 +#define PROP_INDEX_NSHU 180 +#define PROP_INDEX_NYIAKENGPUACHUEHMONG 181 +#define PROP_INDEX_HMNP 181 +#define PROP_INDEX_OGHAM 182 +#define PROP_INDEX_OGAM 182 +#define PROP_INDEX_OLCHIKI 183 +#define PROP_INDEX_OLCK 183 +#define PROP_INDEX_OLDHUNGARIAN 184 +#define PROP_INDEX_HUNG 184 +#define PROP_INDEX_OLDITALIC 185 +#define PROP_INDEX_ITAL 185 +#define PROP_INDEX_OLDNORTHARABIAN 186 +#define PROP_INDEX_NARB 186 +#define PROP_INDEX_OLDPERMIC 187 +#define PROP_INDEX_PERM 187 +#define PROP_INDEX_OLDPERSIAN 188 +#define PROP_INDEX_XPEO 188 +#define PROP_INDEX_OLDSOGDIAN 189 +#define PROP_INDEX_SOGO 189 +#define PROP_INDEX_OLDSOUTHARABIAN 190 +#define PROP_INDEX_SARB 190 +#define PROP_INDEX_OLDTURKIC 191 +#define PROP_INDEX_ORKH 191 +#define PROP_INDEX_OLDUYGHUR 192 +#define PROP_INDEX_OUGR 192 +#define PROP_INDEX_ORIYA 193 +#define PROP_INDEX_ORYA 193 +#define PROP_INDEX_OSAGE 194 +#define PROP_INDEX_OSGE 194 +#define PROP_INDEX_OSMANYA 195 +#define PROP_INDEX_OSMA 195 +#define PROP_INDEX_OTHERALPHABETIC 196 +#define PROP_INDEX_OALPHA 196 +#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 197 +#define PROP_INDEX_ODI 197 +#define PROP_INDEX_OTHERGRAPHEMEEXTEND 198 +#define PROP_INDEX_OGREXT 198 +#define PROP_INDEX_OTHERIDCONTINUE 199 +#define PROP_INDEX_OIDC 199 +#define PROP_INDEX_OTHERIDSTART 200 +#define PROP_INDEX_OIDS 200 +#define PROP_INDEX_OTHERLOWERCASE 201 +#define PROP_INDEX_OLOWER 201 +#define PROP_INDEX_OTHERMATH 202 +#define PROP_INDEX_OMATH 202 +#define PROP_INDEX_OTHERUPPERCASE 203 +#define PROP_INDEX_OUPPER 203 +#define PROP_INDEX_P 204 +#define PROP_INDEX_PUNCT 204 +#define PROP_INDEX_PUNCTUATION 204 +#define PROP_INDEX_PAHAWHHMONG 205 +#define PROP_INDEX_HMNG 205 +#define PROP_INDEX_PALMYRENE 206 +#define PROP_INDEX_PALM 206 +#define PROP_INDEX_PATTERNSYNTAX 207 +#define PROP_INDEX_PATSYN 207 +#define PROP_INDEX_PATTERNWHITESPACE 208 +#define PROP_INDEX_PATWS 208 +#define PROP_INDEX_PAUCINHAU 209 +#define PROP_INDEX_PAUC 209 +#define PROP_INDEX_PC 210 +#define PROP_INDEX_CONNECTORPUNCTUATION 210 +#define PROP_INDEX_PD 211 +#define PROP_INDEX_DASHPUNCTUATION 211 +#define PROP_INDEX_PE 212 +#define PROP_INDEX_CLOSEPUNCTUATION 212 +#define PROP_INDEX_PF 213 +#define PROP_INDEX_FINALPUNCTUATION 213 +#define PROP_INDEX_PHAGSPA 214 +#define PROP_INDEX_PHAG 214 +#define PROP_INDEX_PHOENICIAN 215 +#define PROP_INDEX_PHNX 215 +#define PROP_INDEX_PI 216 +#define PROP_INDEX_INITIALPUNCTUATION 216 +#define PROP_INDEX_PO 217 +#define PROP_INDEX_OTHERPUNCTUATION 217 +#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 218 +#define PROP_INDEX_PCM 218 +#define PROP_INDEX_PS 219 +#define PROP_INDEX_OPENPUNCTUATION 219 +#define PROP_INDEX_PSALTERPAHLAVI 220 +#define PROP_INDEX_PHLP 220 +#define PROP_INDEX_QUOTATIONMARK 221 +#define PROP_INDEX_QMARK 221 +#define PROP_INDEX_RADICAL 222 +#define PROP_INDEX_REGIONALINDICATOR 223 +#define PROP_INDEX_RI 223 +#define PROP_INDEX_REJANG 224 +#define PROP_INDEX_RJNG 224 +#define PROP_INDEX_RUNIC 225 +#define PROP_INDEX_RUNR 225 +#define PROP_INDEX_S 226 +#define PROP_INDEX_SYMBOL 226 +#define PROP_INDEX_SAMARITAN 227 +#define PROP_INDEX_SAMR 227 +#define PROP_INDEX_SAURASHTRA 228 +#define PROP_INDEX_SAUR 228 +#define PROP_INDEX_SC 229 +#define PROP_INDEX_CURRENCYSYMBOL 229 +#define PROP_INDEX_SENTENCETERMINAL 230 +#define PROP_INDEX_STERM 230 +#define PROP_INDEX_SHARADA 231 +#define PROP_INDEX_SHRD 231 +#define PROP_INDEX_SHAVIAN 232 +#define PROP_INDEX_SHAW 232 +#define PROP_INDEX_SIDDHAM 233 +#define PROP_INDEX_SIDD 233 +#define PROP_INDEX_SIGNWRITING 234 +#define PROP_INDEX_SGNW 234 +#define PROP_INDEX_SINHALA 235 +#define PROP_INDEX_SINH 235 +#define PROP_INDEX_SK 236 +#define PROP_INDEX_MODIFIERSYMBOL 236 +#define PROP_INDEX_SM 237 +#define PROP_INDEX_MATHSYMBOL 237 +#define PROP_INDEX_SO 238 +#define PROP_INDEX_OTHERSYMBOL 238 +#define PROP_INDEX_SOFTDOTTED 239 +#define PROP_INDEX_SD 239 +#define PROP_INDEX_SOGDIAN 240 +#define PROP_INDEX_SOGD 240 +#define PROP_INDEX_SORASOMPENG 241 +#define PROP_INDEX_SORA 241 +#define PROP_INDEX_SOYOMBO 242 +#define PROP_INDEX_SOYO 242 +#define PROP_INDEX_SUNDANESE 243 +#define PROP_INDEX_SUND 243 +#define PROP_INDEX_SYLOTINAGRI 244 +#define PROP_INDEX_SYLO 244 +#define PROP_INDEX_SYRIAC 245 +#define PROP_INDEX_SYRC 245 +#define PROP_INDEX_TAGALOG 246 +#define PROP_INDEX_TGLG 246 +#define PROP_INDEX_TAGBANWA 247 +#define PROP_INDEX_TAGB 247 +#define PROP_INDEX_TAILE 248 +#define PROP_INDEX_TALE 248 +#define PROP_INDEX_TAITHAM 249 +#define PROP_INDEX_LANA 249 +#define PROP_INDEX_TAIVIET 250 +#define PROP_INDEX_TAVT 250 +#define PROP_INDEX_TAKRI 251 +#define PROP_INDEX_TAKR 251 +#define PROP_INDEX_TAMIL 252 +#define PROP_INDEX_TAML 252 +#define PROP_INDEX_TANGSA 253 +#define PROP_INDEX_TNSA 253 +#define PROP_INDEX_TANGUT 254 +#define PROP_INDEX_TANG 254 +#define PROP_INDEX_TELUGU 255 +#define PROP_INDEX_TELU 255 +#define PROP_INDEX_TERMINALPUNCTUATION 256 +#define PROP_INDEX_TERM 256 +#define PROP_INDEX_THAANA 257 +#define PROP_INDEX_THAA 257 +#define PROP_INDEX_THAI 258 +#define PROP_INDEX_TIBETAN 259 +#define PROP_INDEX_TIBT 259 +#define PROP_INDEX_TIFINAGH 260 +#define PROP_INDEX_TFNG 260 +#define PROP_INDEX_TIRHUTA 261 +#define PROP_INDEX_TIRH 261 +#define PROP_INDEX_TOTO 262 +#define PROP_INDEX_UGARITIC 263 +#define PROP_INDEX_UGAR 263 +#define PROP_INDEX_UNIFIEDIDEOGRAPH 264 +#define PROP_INDEX_UIDEO 264 +#define PROP_INDEX_UNKNOWN 265 +#define PROP_INDEX_ZZZZ 265 +#define PROP_INDEX_UPPERCASE 266 +#define PROP_INDEX_VAI 267 +#define PROP_INDEX_VAII 267 +#define PROP_INDEX_VARIATIONSELECTOR 268 +#define PROP_INDEX_VS 268 +#define PROP_INDEX_VITHKUQI 269 +#define PROP_INDEX_VITH 269 +#define PROP_INDEX_WANCHO 270 +#define PROP_INDEX_WCHO 270 +#define PROP_INDEX_WARANGCITI 271 +#define PROP_INDEX_WARA 271 +#define PROP_INDEX_WHITESPACE 272 +#define PROP_INDEX_WSPACE 272 +#define PROP_INDEX_XIDCONTINUE 273 +#define PROP_INDEX_XIDC 273 +#define PROP_INDEX_XIDSTART 274 +#define PROP_INDEX_XIDS 274 +#define PROP_INDEX_YEZIDI 275 +#define PROP_INDEX_YEZI 275 +#define PROP_INDEX_YI 276 +#define PROP_INDEX_YIII 276 +#define PROP_INDEX_Z 277 +#define PROP_INDEX_SEPARATOR 277 +#define PROP_INDEX_ZANABAZARSQUARE 278 +#define PROP_INDEX_ZANB 278 +#define PROP_INDEX_ZL 279 +#define PROP_INDEX_LINESEPARATOR 279 +#define PROP_INDEX_ZP 280 +#define PROP_INDEX_PARAGRAPHSEPARATOR 280 +#define PROP_INDEX_ZS 281 +#define PROP_INDEX_SPACESEPARATOR 281 +#define PROP_INDEX_INBASICLATIN 282 +#define PROP_INDEX_INLATIN1SUPPLEMENT 283 +#define PROP_INDEX_INLATINEXTENDEDA 284 +#define PROP_INDEX_INLATINEXTENDEDB 285 +#define PROP_INDEX_INIPAEXTENSIONS 286 +#define PROP_INDEX_INSPACINGMODIFIERLETTERS 287 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 288 +#define PROP_INDEX_INGREEKANDCOPTIC 289 +#define PROP_INDEX_INCYRILLIC 290 +#define PROP_INDEX_INCYRILLICSUPPLEMENT 291 +#define PROP_INDEX_INARMENIAN 292 +#define PROP_INDEX_INHEBREW 293 +#define PROP_INDEX_INARABIC 294 +#define PROP_INDEX_INSYRIAC 295 +#define PROP_INDEX_INARABICSUPPLEMENT 296 +#define PROP_INDEX_INTHAANA 297 +#define PROP_INDEX_INNKO 298 +#define PROP_INDEX_INSAMARITAN 299 +#define PROP_INDEX_INMANDAIC 300 +#define PROP_INDEX_INSYRIACSUPPLEMENT 301 +#define PROP_INDEX_INARABICEXTENDEDB 302 +#define PROP_INDEX_INARABICEXTENDEDA 303 +#define PROP_INDEX_INDEVANAGARI 304 +#define PROP_INDEX_INBENGALI 305 +#define PROP_INDEX_INGURMUKHI 306 +#define PROP_INDEX_INGUJARATI 307 +#define PROP_INDEX_INORIYA 308 +#define PROP_INDEX_INTAMIL 309 +#define PROP_INDEX_INTELUGU 310 +#define PROP_INDEX_INKANNADA 311 +#define PROP_INDEX_INMALAYALAM 312 +#define PROP_INDEX_INSINHALA 313 +#define PROP_INDEX_INTHAI 314 +#define PROP_INDEX_INLAO 315 +#define PROP_INDEX_INTIBETAN 316 +#define PROP_INDEX_INMYANMAR 317 +#define PROP_INDEX_INGEORGIAN 318 +#define PROP_INDEX_INHANGULJAMO 319 +#define PROP_INDEX_INETHIOPIC 320 +#define PROP_INDEX_INETHIOPICSUPPLEMENT 321 +#define PROP_INDEX_INCHEROKEE 322 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 323 +#define PROP_INDEX_INOGHAM 324 +#define PROP_INDEX_INRUNIC 325 +#define PROP_INDEX_INTAGALOG 326 +#define PROP_INDEX_INHANUNOO 327 +#define PROP_INDEX_INBUHID 328 +#define PROP_INDEX_INTAGBANWA 329 +#define PROP_INDEX_INKHMER 330 +#define PROP_INDEX_INMONGOLIAN 331 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 332 +#define PROP_INDEX_INLIMBU 333 +#define PROP_INDEX_INTAILE 334 +#define PROP_INDEX_INNEWTAILUE 335 +#define PROP_INDEX_INKHMERSYMBOLS 336 +#define PROP_INDEX_INBUGINESE 337 +#define PROP_INDEX_INTAITHAM 338 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 339 +#define PROP_INDEX_INBALINESE 340 +#define PROP_INDEX_INSUNDANESE 341 +#define PROP_INDEX_INBATAK 342 +#define PROP_INDEX_INLEPCHA 343 +#define PROP_INDEX_INOLCHIKI 344 +#define PROP_INDEX_INCYRILLICEXTENDEDC 345 +#define PROP_INDEX_INGEORGIANEXTENDED 346 +#define PROP_INDEX_INSUNDANESESUPPLEMENT 347 +#define PROP_INDEX_INVEDICEXTENSIONS 348 +#define PROP_INDEX_INPHONETICEXTENSIONS 349 +#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 350 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 351 +#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 352 +#define PROP_INDEX_INGREEKEXTENDED 353 +#define PROP_INDEX_INGENERALPUNCTUATION 354 +#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 355 +#define PROP_INDEX_INCURRENCYSYMBOLS 356 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 357 +#define PROP_INDEX_INLETTERLIKESYMBOLS 358 +#define PROP_INDEX_INNUMBERFORMS 359 +#define PROP_INDEX_INARROWS 360 +#define PROP_INDEX_INMATHEMATICALOPERATORS 361 +#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 362 +#define PROP_INDEX_INCONTROLPICTURES 363 +#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 364 +#define PROP_INDEX_INENCLOSEDALPHANUMERICS 365 +#define PROP_INDEX_INBOXDRAWING 366 +#define PROP_INDEX_INBLOCKELEMENTS 367 +#define PROP_INDEX_INGEOMETRICSHAPES 368 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 369 +#define PROP_INDEX_INDINGBATS 370 +#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 371 +#define PROP_INDEX_INSUPPLEMENTALARROWSA 372 +#define PROP_INDEX_INBRAILLEPATTERNS 373 +#define PROP_INDEX_INSUPPLEMENTALARROWSB 374 +#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 375 +#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 376 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 377 +#define PROP_INDEX_INGLAGOLITIC 378 +#define PROP_INDEX_INLATINEXTENDEDC 379 +#define PROP_INDEX_INCOPTIC 380 +#define PROP_INDEX_INGEORGIANSUPPLEMENT 381 +#define PROP_INDEX_INTIFINAGH 382 +#define PROP_INDEX_INETHIOPICEXTENDED 383 +#define PROP_INDEX_INCYRILLICEXTENDEDA 384 +#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 385 +#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 386 +#define PROP_INDEX_INKANGXIRADICALS 387 +#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 388 +#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 389 +#define PROP_INDEX_INHIRAGANA 390 +#define PROP_INDEX_INKATAKANA 391 +#define PROP_INDEX_INBOPOMOFO 392 +#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 393 +#define PROP_INDEX_INKANBUN 394 +#define PROP_INDEX_INBOPOMOFOEXTENDED 395 +#define PROP_INDEX_INCJKSTROKES 396 +#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 397 +#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 398 +#define PROP_INDEX_INCJKCOMPATIBILITY 399 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 400 +#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 401 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 402 +#define PROP_INDEX_INYISYLLABLES 403 +#define PROP_INDEX_INYIRADICALS 404 +#define PROP_INDEX_INLISU 405 +#define PROP_INDEX_INVAI 406 +#define PROP_INDEX_INCYRILLICEXTENDEDB 407 +#define PROP_INDEX_INBAMUM 408 +#define PROP_INDEX_INMODIFIERTONELETTERS 409 +#define PROP_INDEX_INLATINEXTENDEDD 410 +#define PROP_INDEX_INSYLOTINAGRI 411 +#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 412 +#define PROP_INDEX_INPHAGSPA 413 +#define PROP_INDEX_INSAURASHTRA 414 +#define PROP_INDEX_INDEVANAGARIEXTENDED 415 +#define PROP_INDEX_INKAYAHLI 416 +#define PROP_INDEX_INREJANG 417 +#define PROP_INDEX_INHANGULJAMOEXTENDEDA 418 +#define PROP_INDEX_INJAVANESE 419 +#define PROP_INDEX_INMYANMAREXTENDEDB 420 +#define PROP_INDEX_INCHAM 421 +#define PROP_INDEX_INMYANMAREXTENDEDA 422 +#define PROP_INDEX_INTAIVIET 423 +#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 424 +#define PROP_INDEX_INETHIOPICEXTENDEDA 425 +#define PROP_INDEX_INLATINEXTENDEDE 426 +#define PROP_INDEX_INCHEROKEESUPPLEMENT 427 +#define PROP_INDEX_INMEETEIMAYEK 428 +#define PROP_INDEX_INHANGULSYLLABLES 429 +#define PROP_INDEX_INHANGULJAMOEXTENDEDB 430 +#define PROP_INDEX_INHIGHSURROGATES 431 +#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 432 +#define PROP_INDEX_INLOWSURROGATES 433 +#define PROP_INDEX_INPRIVATEUSEAREA 434 +#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 435 +#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 436 +#define PROP_INDEX_INARABICPRESENTATIONFORMSA 437 +#define PROP_INDEX_INVARIATIONSELECTORS 438 +#define PROP_INDEX_INVERTICALFORMS 439 +#define PROP_INDEX_INCOMBININGHALFMARKS 440 +#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 441 +#define PROP_INDEX_INSMALLFORMVARIANTS 442 +#define PROP_INDEX_INARABICPRESENTATIONFORMSB 443 +#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 444 +#define PROP_INDEX_INSPECIALS 445 +#define PROP_INDEX_INLINEARBSYLLABARY 446 +#define PROP_INDEX_INLINEARBIDEOGRAMS 447 +#define PROP_INDEX_INAEGEANNUMBERS 448 +#define PROP_INDEX_INANCIENTGREEKNUMBERS 449 +#define PROP_INDEX_INANCIENTSYMBOLS 450 +#define PROP_INDEX_INPHAISTOSDISC 451 +#define PROP_INDEX_INLYCIAN 452 +#define PROP_INDEX_INCARIAN 453 +#define PROP_INDEX_INCOPTICEPACTNUMBERS 454 +#define PROP_INDEX_INOLDITALIC 455 +#define PROP_INDEX_INGOTHIC 456 +#define PROP_INDEX_INOLDPERMIC 457 +#define PROP_INDEX_INUGARITIC 458 +#define PROP_INDEX_INOLDPERSIAN 459 +#define PROP_INDEX_INDESERET 460 +#define PROP_INDEX_INSHAVIAN 461 +#define PROP_INDEX_INOSMANYA 462 +#define PROP_INDEX_INOSAGE 463 +#define PROP_INDEX_INELBASAN 464 +#define PROP_INDEX_INCAUCASIANALBANIAN 465 +#define PROP_INDEX_INVITHKUQI 466 +#define PROP_INDEX_INLINEARA 467 +#define PROP_INDEX_INLATINEXTENDEDF 468 +#define PROP_INDEX_INCYPRIOTSYLLABARY 469 +#define PROP_INDEX_INIMPERIALARAMAIC 470 +#define PROP_INDEX_INPALMYRENE 471 +#define PROP_INDEX_INNABATAEAN 472 +#define PROP_INDEX_INHATRAN 473 +#define PROP_INDEX_INPHOENICIAN 474 +#define PROP_INDEX_INLYDIAN 475 +#define PROP_INDEX_INMEROITICHIEROGLYPHS 476 +#define PROP_INDEX_INMEROITICCURSIVE 477 +#define PROP_INDEX_INKHAROSHTHI 478 +#define PROP_INDEX_INOLDSOUTHARABIAN 479 +#define PROP_INDEX_INOLDNORTHARABIAN 480 +#define PROP_INDEX_INMANICHAEAN 481 +#define PROP_INDEX_INAVESTAN 482 +#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 483 +#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 484 +#define PROP_INDEX_INPSALTERPAHLAVI 485 +#define PROP_INDEX_INOLDTURKIC 486 +#define PROP_INDEX_INOLDHUNGARIAN 487 +#define PROP_INDEX_INHANIFIROHINGYA 488 +#define PROP_INDEX_INRUMINUMERALSYMBOLS 489 +#define PROP_INDEX_INYEZIDI 490 +#define PROP_INDEX_INARABICEXTENDEDC 491 +#define PROP_INDEX_INOLDSOGDIAN 492 +#define PROP_INDEX_INSOGDIAN 493 +#define PROP_INDEX_INOLDUYGHUR 494 +#define PROP_INDEX_INCHORASMIAN 495 +#define PROP_INDEX_INELYMAIC 496 +#define PROP_INDEX_INBRAHMI 497 +#define PROP_INDEX_INKAITHI 498 +#define PROP_INDEX_INSORASOMPENG 499 +#define PROP_INDEX_INCHAKMA 500 +#define PROP_INDEX_INMAHAJANI 501 +#define PROP_INDEX_INSHARADA 502 +#define PROP_INDEX_INSINHALAARCHAICNUMBERS 503 +#define PROP_INDEX_INKHOJKI 504 +#define PROP_INDEX_INMULTANI 505 +#define PROP_INDEX_INKHUDAWADI 506 +#define PROP_INDEX_INGRANTHA 507 +#define PROP_INDEX_INNEWA 508 +#define PROP_INDEX_INTIRHUTA 509 +#define PROP_INDEX_INSIDDHAM 510 +#define PROP_INDEX_INMODI 511 +#define PROP_INDEX_INMONGOLIANSUPPLEMENT 512 +#define PROP_INDEX_INTAKRI 513 +#define PROP_INDEX_INAHOM 514 +#define PROP_INDEX_INDOGRA 515 +#define PROP_INDEX_INWARANGCITI 516 +#define PROP_INDEX_INDIVESAKURU 517 +#define PROP_INDEX_INNANDINAGARI 518 +#define PROP_INDEX_INZANABAZARSQUARE 519 +#define PROP_INDEX_INSOYOMBO 520 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDEDA 521 +#define PROP_INDEX_INPAUCINHAU 522 +#define PROP_INDEX_INDEVANAGARIEXTENDEDA 523 +#define PROP_INDEX_INBHAIKSUKI 524 +#define PROP_INDEX_INMARCHEN 525 +#define PROP_INDEX_INMASARAMGONDI 526 +#define PROP_INDEX_INGUNJALAGONDI 527 +#define PROP_INDEX_INMAKASAR 528 +#define PROP_INDEX_INKAWI 529 +#define PROP_INDEX_INLISUSUPPLEMENT 530 +#define PROP_INDEX_INTAMILSUPPLEMENT 531 +#define PROP_INDEX_INCUNEIFORM 532 +#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 533 +#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 534 +#define PROP_INDEX_INCYPROMINOAN 535 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 536 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 537 +#define PROP_INDEX_INANATOLIANHIEROGLYPHS 538 +#define PROP_INDEX_INBAMUMSUPPLEMENT 539 +#define PROP_INDEX_INMRO 540 +#define PROP_INDEX_INTANGSA 541 +#define PROP_INDEX_INBASSAVAH 542 +#define PROP_INDEX_INPAHAWHHMONG 543 +#define PROP_INDEX_INMEDEFAIDRIN 544 +#define PROP_INDEX_INMIAO 545 +#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 546 +#define PROP_INDEX_INTANGUT 547 +#define PROP_INDEX_INTANGUTCOMPONENTS 548 +#define PROP_INDEX_INKHITANSMALLSCRIPT 549 +#define PROP_INDEX_INTANGUTSUPPLEMENT 550 +#define PROP_INDEX_INKANAEXTENDEDB 551 +#define PROP_INDEX_INKANASUPPLEMENT 552 +#define PROP_INDEX_INKANAEXTENDEDA 553 +#define PROP_INDEX_INSMALLKANAEXTENSION 554 +#define PROP_INDEX_INNUSHU 555 +#define PROP_INDEX_INDUPLOYAN 556 +#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 557 +#define PROP_INDEX_INZNAMENNYMUSICALNOTATION 558 +#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 559 +#define PROP_INDEX_INMUSICALSYMBOLS 560 +#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 561 +#define PROP_INDEX_INKAKTOVIKNUMERALS 562 +#define PROP_INDEX_INMAYANNUMERALS 563 +#define PROP_INDEX_INTAIXUANJINGSYMBOLS 564 +#define PROP_INDEX_INCOUNTINGRODNUMERALS 565 +#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 566 +#define PROP_INDEX_INSUTTONSIGNWRITING 567 +#define PROP_INDEX_INLATINEXTENDEDG 568 +#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 569 +#define PROP_INDEX_INCYRILLICEXTENDEDD 570 +#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 571 +#define PROP_INDEX_INTOTO 572 +#define PROP_INDEX_INWANCHO 573 +#define PROP_INDEX_INNAGMUNDARI 574 +#define PROP_INDEX_INETHIOPICEXTENDEDB 575 +#define PROP_INDEX_INMENDEKIKAKUI 576 +#define PROP_INDEX_INADLAM 577 +#define PROP_INDEX_ININDICSIYAQNUMBERS 578 +#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 579 +#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 580 +#define PROP_INDEX_INMAHJONGTILES 581 +#define PROP_INDEX_INDOMINOTILES 582 +#define PROP_INDEX_INPLAYINGCARDS 583 +#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 584 +#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 585 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 586 +#define PROP_INDEX_INEMOTICONS 587 +#define PROP_INDEX_INORNAMENTALDINGBATS 588 +#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 589 +#define PROP_INDEX_INALCHEMICALSYMBOLS 590 +#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 591 +#define PROP_INDEX_INSUPPLEMENTALARROWSC 592 +#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 593 +#define PROP_INDEX_INCHESSSYMBOLS 594 +#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 595 +#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTING 596 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 597 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 598 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 599 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 600 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 601 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONI 602 +#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 603 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONG 604 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONH 605 +#define PROP_INDEX_INTAGS 606 +#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 607 +#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 608 +#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 609 +#define PROP_INDEX_INNOBLOCK 610 diff --git a/src/unicode_property_data_posix.c b/src/unicode_property_data_posix.c index 29ced3c..a407d8d 100644 --- a/src/unicode_property_data_posix.c +++ b/src/unicode_property_data_posix.c @@ -34,7 +34,7 @@ /* Generated by make_unicode_property_data.py. */ /*- - * Copyright (c) 2016-2021 K.Kosako + * Copyright (c) 2016-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -68,7 +68,7 @@ CR_NEWLINE[] = { 1, /* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ static const OnigCodePoint -CR_Alpha[] = { 722, +CR_Alpha[] = { 733, 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, @@ -203,8 +203,7 @@ CR_Alpha[] = { 722, 0x0bca, 0x0bcc, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -227,7 +226,7 @@ CR_Alpha[] = { 722, 0x0cd5, 0x0cd6, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -265,7 +264,7 @@ CR_Alpha[] = { 722, 0x0f00, 0x0f00, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -567,7 +566,7 @@ CR_Alpha[] = { 722, 0x10fe0, 0x10ff6, 0x11000, 0x11045, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x11100, 0x11132, @@ -582,7 +581,7 @@ CR_Alpha[] = { 722, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -662,12 +661,16 @@ CR_Alpha[] = { 722, 0x11d93, 0x11d96, 0x11d98, 0x11d98, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -691,7 +694,9 @@ CR_Alpha[] = { 722, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -730,16 +735,20 @@ CR_Alpha[] = { 722, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -785,12 +794,14 @@ CR_Alpha[] = { 722, 0x1f150, 0x1f169, 0x1f170, 0x1f189, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alpha */ /* PROPERTY: 'Blank': POSIX [[:Blank:]] */ @@ -815,7 +826,7 @@ CR_Cntrl[] = { 2, /* PROPERTY: 'Digit': POSIX [[:Digit:]] */ static const OnigCodePoint -CR_Digit[] = { 62, +CR_Digit[] = { 64, 0x0030, 0x0039, 0x0660, 0x0669, 0x06f0, 0x06f9, @@ -870,19 +881,21 @@ CR_Digit[] = { 62, 0x11c50, 0x11c59, 0x11d50, 0x11d59, 0x11da0, 0x11da9, +0x11f50, 0x11f59, 0x16a60, 0x16a69, 0x16ac0, 0x16ac9, 0x16b50, 0x16b59, 0x1d7ce, 0x1d7ff, 0x1e140, 0x1e149, 0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, 0x1e950, 0x1e959, 0x1fbf0, 0x1fbf9, }; /* END of CR_Digit */ /* PROPERTY: 'Graph': POSIX [[:Graph:]] */ static const OnigCodePoint -CR_Graph[] = { 703, +CR_Graph[] = { 713, 0x0021, 0x007e, 0x00a1, 0x0377, 0x037a, 0x037f, @@ -1005,7 +1018,7 @@ CR_Graph[] = { 703, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -1035,7 +1048,7 @@ CR_Graph[] = { 703, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -1157,14 +1170,14 @@ CR_Graph[] = { 703, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, +0x2ff0, 0x2fff, 0x3001, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31e3, -0x31f0, 0x321e, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -1310,7 +1323,7 @@ CR_Graph[] = { 703, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10efd, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -1327,7 +1340,7 @@ CR_Graph[] = { 703, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -1380,6 +1393,7 @@ CR_Graph[] = { 703, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -1401,6 +1415,9 @@ CR_Graph[] = { 703, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -1408,8 +1425,7 @@ CR_Graph[] = { 703, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -1436,7 +1452,9 @@ CR_Graph[] = { 703, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -1451,6 +1469,7 @@ CR_Graph[] = { 703, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -1478,11 +1497,14 @@ CR_Graph[] = { 703, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -1490,6 +1512,7 @@ CR_Graph[] = { 703, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -1548,10 +1571,10 @@ CR_Graph[] = { 703, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -1562,25 +1585,25 @@ CR_Graph[] = { 703, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -1590,7 +1613,7 @@ CR_Graph[] = { 703, /* PROPERTY: 'Lower': POSIX [[:Lower:]] */ static const OnigCodePoint -CR_Lower[] = { 668, +CR_Lower[] = { 671, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, @@ -1867,7 +1890,7 @@ CR_Lower[] = { 668, 0x052f, 0x052f, 0x0560, 0x0588, 0x10d0, 0x10fa, -0x10fd, 0x10ff, +0x10fc, 0x10ff, 0x13f8, 0x13fd, 0x1c80, 0x1c88, 0x1d00, 0x1dbf, @@ -2207,10 +2230,11 @@ CR_Lower[] = { 668, 0xa7d5, 0xa7d5, 0xa7d7, 0xa7d7, 0xa7d9, 0xa7d9, +0xa7f2, 0xa7f4, 0xa7f6, 0xa7f6, 0xa7f8, 0xa7fa, 0xab30, 0xab5a, -0xab5c, 0xab68, +0xab5c, 0xab69, 0xab70, 0xabbf, 0xfb00, 0xfb06, 0xfb13, 0xfb17, @@ -2258,12 +2282,14 @@ CR_Lower[] = { 668, 0x1d7cb, 0x1d7cb, 0x1df00, 0x1df09, 0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, 0x1e922, 0x1e943, }; /* END of CR_Lower */ /* PROPERTY: 'Print': POSIX [[:Print:]] */ static const OnigCodePoint -CR_Print[] = { 700, +CR_Print[] = { 709, 0x0020, 0x007e, 0x00a0, 0x0377, 0x037a, 0x037f, @@ -2386,7 +2412,7 @@ CR_Print[] = { 700, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -2416,7 +2442,7 @@ CR_Print[] = { 700, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f47, @@ -2535,14 +2561,13 @@ CR_Print[] = { 700, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, +0x2ff0, 0x303f, 0x3041, 0x3096, 0x3099, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x3190, 0x31e3, -0x31f0, 0x321e, +0x31ef, 0x321e, 0x3220, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, @@ -2688,7 +2713,7 @@ CR_Print[] = { 700, 0x10e80, 0x10ea9, 0x10eab, 0x10ead, 0x10eb0, 0x10eb1, -0x10f00, 0x10f27, +0x10efd, 0x10f27, 0x10f30, 0x10f59, 0x10f70, 0x10f89, 0x10fb0, 0x10fcb, @@ -2705,7 +2730,7 @@ CR_Print[] = { 700, 0x11180, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211, -0x11213, 0x1123e, +0x11213, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -2758,6 +2783,7 @@ CR_Print[] = { 700, 0x11a00, 0x11a47, 0x11a50, 0x11aa2, 0x11ab0, 0x11af8, +0x11b00, 0x11b09, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, @@ -2779,6 +2805,9 @@ CR_Print[] = { 700, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f59, 0x11fb0, 0x11fb0, 0x11fc0, 0x11ff1, 0x11fff, 0x12399, @@ -2786,8 +2815,7 @@ CR_Print[] = { 700, 0x12470, 0x12474, 0x12480, 0x12543, 0x12f90, 0x12ff2, -0x13000, 0x1342e, -0x13430, 0x13438, +0x13000, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -2814,7 +2842,9 @@ CR_Print[] = { 700, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -2829,6 +2859,7 @@ CR_Print[] = { 700, 0x1d100, 0x1d126, 0x1d129, 0x1d1ea, 0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, 0x1d2e0, 0x1d2f3, 0x1d300, 0x1d356, 0x1d360, 0x1d378, @@ -2856,11 +2887,14 @@ CR_Print[] = { 700, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, @@ -2868,6 +2902,7 @@ CR_Print[] = { 700, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -2926,10 +2961,10 @@ CR_Print[] = { 700, 0x1f250, 0x1f251, 0x1f260, 0x1f265, 0x1f300, 0x1f6d7, -0x1f6dd, 0x1f6ec, +0x1f6dc, 0x1f6ec, 0x1f6f0, 0x1f6fc, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, 0x1f7e0, 0x1f7eb, 0x1f7f0, 0x1f7f0, 0x1f800, 0x1f80b, @@ -2940,25 +2975,25 @@ CR_Print[] = { 700, 0x1f8b0, 0x1f8b1, 0x1f900, 0x1fa53, 0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa74, -0x1fa78, 0x1fa7c, -0x1fa80, 0x1fa86, -0x1fa90, 0x1faac, -0x1fab0, 0x1faba, -0x1fac0, 0x1fac5, -0x1fad0, 0x1fad9, -0x1fae0, 0x1fae7, -0x1faf0, 0x1faf6, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, 0x1fb00, 0x1fb92, 0x1fb94, 0x1fbca, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, @@ -2966,113 +3001,182 @@ CR_Print[] = { 700, 0x100000, 0x10fffd, }; /* END of CR_Print */ -/* PROPERTY: 'Punct': POSIX [[:Punct:]] */ +/* PROPERTY: 'PosixPunct': POSIX [[:punct:]] */ static const OnigCodePoint -CR_Punct[] = { 189, -0x0021, 0x0023, -0x0025, 0x002a, -0x002c, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005b, 0x005d, -0x005f, 0x005f, -0x007b, 0x007b, -0x007d, 0x007d, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00ab, 0x00ab, -0x00b6, 0x00b7, +CR_PosixPunct[] = { 339, +0x0021, 0x002f, +0x003a, 0x0040, +0x005b, 0x0060, +0x007b, 0x007e, +0x00a1, 0x00a9, +0x00ab, 0x00ac, +0x00ae, 0x00b1, +0x00b4, 0x00b4, +0x00b6, 0x00b8, 0x00bb, 0x00bb, 0x00bf, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, 0x037e, 0x037e, +0x0384, 0x0385, 0x0387, 0x0387, +0x03f6, 0x03f6, +0x0482, 0x0482, 0x055a, 0x055f, 0x0589, 0x058a, +0x058d, 0x058f, 0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05c6, 0x05c6, 0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, +0x0606, 0x060f, 0x061b, 0x061b, 0x061d, 0x061f, 0x066a, 0x066d, 0x06d4, 0x06d4, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, 0x0700, 0x070d, -0x07f7, 0x07f9, +0x07f6, 0x07f9, +0x07fe, 0x07ff, 0x0830, 0x083e, 0x085e, 0x085e, +0x0888, 0x0888, 0x0964, 0x0965, 0x0970, 0x0970, +0x09f2, 0x09f3, +0x09fa, 0x09fb, 0x09fd, 0x09fd, 0x0a76, 0x0a76, -0x0af0, 0x0af0, +0x0af0, 0x0af1, +0x0b70, 0x0b70, +0x0bf3, 0x0bfa, 0x0c77, 0x0c77, +0x0c7f, 0x0c7f, 0x0c84, 0x0c84, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, 0x0df4, 0x0df4, +0x0e3f, 0x0e3f, 0x0e4f, 0x0e4f, 0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, +0x0f01, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, 0x0f3a, 0x0f3d, 0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fda, 0x104a, 0x104f, +0x109e, 0x109f, 0x10fb, 0x10fb, 0x1360, 0x1368, +0x1390, 0x1399, 0x1400, 0x1400, -0x166e, 0x166e, +0x166d, 0x166e, 0x169b, 0x169c, 0x16eb, 0x16ed, 0x1735, 0x1736, 0x17d4, 0x17d6, -0x17d8, 0x17da, +0x17d8, 0x17db, 0x1800, 0x180a, +0x1940, 0x1940, 0x1944, 0x1945, +0x19de, 0x19ff, 0x1a1e, 0x1a1f, 0x1aa0, 0x1aa6, 0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1b7d, 0x1b7e, +0x1b5a, 0x1b6a, +0x1b74, 0x1b7e, 0x1bfc, 0x1bff, 0x1c3b, 0x1c3f, 0x1c7e, 0x1c7f, 0x1cc0, 0x1cc7, 0x1cd3, 0x1cd3, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, 0x2010, 0x2027, -0x2030, 0x2043, -0x2045, 0x2051, -0x2053, 0x205e, -0x207d, 0x207e, -0x208d, 0x208e, -0x2308, 0x230b, -0x2329, 0x232a, -0x2768, 0x2775, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, +0x2030, 0x205e, +0x207a, 0x207e, +0x208a, 0x208e, +0x20a0, 0x20c0, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2118, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x2140, 0x2144, +0x214a, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2190, 0x2426, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x2775, +0x2794, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, 0x2cf9, 0x2cfc, 0x2cfe, 0x2cff, 0x2d70, 0x2d70, 0x2e00, 0x2e2e, -0x2e30, 0x2e4f, -0x2e52, 0x2e5d, -0x3001, 0x3003, -0x3008, 0x3011, -0x3014, 0x301f, +0x2e30, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3001, 0x3004, +0x3008, 0x3020, 0x3030, 0x3030, -0x303d, 0x303d, +0x3036, 0x3037, +0x303d, 0x303f, +0x309b, 0x309c, 0x30a0, 0x30a0, 0x30fb, 0x30fb, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e3, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, 0xa4fe, 0xa4ff, 0xa60d, 0xa60f, 0xa673, 0xa673, 0xa67e, 0xa67e, 0xa6f2, 0xa6f7, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xa828, 0xa82b, +0xa836, 0xa839, 0xa874, 0xa877, 0xa8ce, 0xa8cf, 0xa8f8, 0xa8fa, @@ -3082,35 +3186,45 @@ CR_Punct[] = { 189, 0xa9c1, 0xa9cd, 0xa9de, 0xa9df, 0xaa5c, 0xaa5f, +0xaa77, 0xaa79, 0xaade, 0xaadf, 0xaaf0, 0xaaf1, +0xab5b, 0xab5b, +0xab6a, 0xab6b, 0xabeb, 0xabeb, -0xfd3e, 0xfd3f, +0xfb29, 0xfb29, +0xfbb2, 0xfbc2, +0xfd3e, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfc, 0xfdff, 0xfe10, 0xfe19, 0xfe30, 0xfe52, -0xfe54, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff0a, -0xff0c, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3b, 0xff3d, -0xff3f, 0xff3f, -0xff5b, 0xff5b, -0xff5d, 0xff5d, -0xff5f, 0xff65, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xff01, 0xff0f, +0xff1a, 0xff20, +0xff3b, 0xff40, +0xff5b, 0xff65, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, 0x10100, 0x10102, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, 0x1039f, 0x1039f, 0x103d0, 0x103d0, 0x1056f, 0x1056f, 0x10857, 0x10857, +0x10877, 0x10878, 0x1091f, 0x1091f, 0x1093f, 0x1093f, 0x10a50, 0x10a58, 0x10a7f, 0x10a7f, +0x10ac8, 0x10ac8, 0x10af0, 0x10af6, 0x10b39, 0x10b3f, 0x10b99, 0x10b9c, @@ -3136,29 +3250,100 @@ CR_Punct[] = { 189, 0x11641, 0x11643, 0x11660, 0x1166c, 0x116b9, 0x116b9, -0x1173c, 0x1173e, +0x1173c, 0x1173f, 0x1183b, 0x1183b, 0x11944, 0x11946, 0x119e2, 0x119e2, 0x11a3f, 0x11a46, 0x11a9a, 0x11a9c, 0x11a9e, 0x11aa2, +0x11b00, 0x11b09, 0x11c41, 0x11c45, 0x11c70, 0x11c71, 0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fd5, 0x11ff1, 0x11fff, 0x11fff, 0x12470, 0x12474, 0x12ff1, 0x12ff2, 0x16a6e, 0x16a6f, 0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, +0x16b37, 0x16b3f, +0x16b44, 0x16b45, 0x16e97, 0x16e9a, 0x16fe2, 0x16fe2, +0x1bc9c, 0x1bc9c, 0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da8b, +0x1e14f, 0x1e14f, +0x1e2ff, 0x1e2ff, 0x1e95e, 0x1e95f, -}; /* END of CR_Punct */ +0x1ecac, 0x1ecac, +0x1ecb0, 0x1ecb0, +0x1ed2e, 0x1ed2e, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8b1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa88, +0x1fa90, 0x1fabd, +0x1fabf, 0x1fac5, +0x1face, 0x1fadb, +0x1fae0, 0x1fae8, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbca, +}; /* END of CR_PosixPunct */ /* PROPERTY: 'Space': POSIX [[:Space:]] */ static const OnigCodePoint @@ -3841,7 +4026,7 @@ CR_XDigit[] = { 3, /* PROPERTY: 'Word': POSIX [[:Word:]] */ static const OnigCodePoint -CR_Word[] = { 758, +CR_Word[] = { 771, 0x0030, 0x0039, 0x0041, 0x005a, 0x005f, 0x005f, @@ -3999,7 +4184,7 @@ CR_Word[] = { 758, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d44, @@ -4032,7 +4217,7 @@ CR_Word[] = { 758, 0x0ea7, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, +0x0ec8, 0x0ece, 0x0ed0, 0x0ed9, 0x0edc, 0x0edf, 0x0f00, 0x0f00, @@ -4345,7 +4530,7 @@ CR_Word[] = { 758, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, -0x10f00, 0x10f1c, +0x10efd, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, @@ -4368,7 +4553,7 @@ CR_Word[] = { 758, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -4449,12 +4634,17 @@ CR_Word[] = { 758, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13440, 0x13455, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -4482,7 +4672,9 @@ CR_Word[] = { 758, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -4536,17 +4728,21 @@ CR_Word[] = { 758, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -4593,18 +4789,20 @@ CR_Word[] = { 758, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, 0xe0100, 0xe01ef, }; /* END of CR_Word */ /* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ static const OnigCodePoint -CR_Alnum[] = { 760, +CR_Alnum[] = { 773, 0x0030, 0x0039, 0x0041, 0x005a, 0x0061, 0x007a, @@ -4743,8 +4941,7 @@ CR_Alnum[] = { 760, 0x0bd0, 0x0bd0, 0x0bd7, 0x0bd7, 0x0be6, 0x0bef, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, +0x0c00, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c39, @@ -4769,7 +4966,7 @@ CR_Alnum[] = { 760, 0x0cdd, 0x0cde, 0x0ce0, 0x0ce3, 0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, +0x0cf1, 0x0cf3, 0x0d00, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d3a, @@ -4812,7 +5009,7 @@ CR_Alnum[] = { 760, 0x0f20, 0x0f29, 0x0f40, 0x0f47, 0x0f49, 0x0f6c, -0x0f71, 0x0f81, +0x0f71, 0x0f83, 0x0f88, 0x0f97, 0x0f99, 0x0fbc, 0x1000, 0x1036, @@ -5122,7 +5319,7 @@ CR_Alnum[] = { 760, 0x11000, 0x11045, 0x11066, 0x1106f, 0x11071, 0x11075, -0x11082, 0x110b8, +0x11080, 0x110b8, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x110f0, 0x110f9, @@ -5138,7 +5335,7 @@ CR_Alnum[] = { 760, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, -0x1123e, 0x1123e, +0x1123e, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, @@ -5228,12 +5425,17 @@ CR_Alnum[] = { 760, 0x11d98, 0x11d98, 0x11da0, 0x11da9, 0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, +0x11f50, 0x11f59, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, -0x13000, 0x1342e, +0x13000, 0x1342f, +0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e, @@ -5260,7 +5462,9 @@ CR_Alnum[] = { 760, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, +0x1b132, 0x1b132, 0x1b150, 0x1b152, +0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, @@ -5300,11 +5504,14 @@ CR_Alnum[] = { 760, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1df00, 0x1df1e, +0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e140, 0x1e149, @@ -5312,6 +5519,8 @@ CR_Alnum[] = { 760, 0x1e290, 0x1e2ad, 0x1e2c0, 0x1e2eb, 0x1e2f0, 0x1e2f9, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, @@ -5359,12 +5568,14 @@ CR_Alnum[] = { 760, 0x1f170, 0x1f189, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, -0x2a700, 0x2b738, +0x2a700, 0x2b739, 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d, 0x30000, 0x3134a, +0x31350, 0x323af, }; /* END of CR_Alnum */ /* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ @@ -5384,7 +5595,7 @@ const CodeRanges[] = { CR_Graph, CR_Lower, CR_Print, - CR_Punct, + CR_PosixPunct, CR_Space, CR_Upper, CR_XDigit, @@ -5398,7 +5609,7 @@ const CodeRanges[] = { #define TOTAL_KEYWORDS 15 #define MIN_WORD_LENGTH 4 -#define MAX_WORD_LENGTH 7 +#define MAX_WORD_LENGTH 10 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 19 /* maximum key range = 15, duplicates = 0 */ @@ -5466,13 +5677,13 @@ hash (register const char *str, register size_t len) 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 2, 12, 5, 3, 20, - 20, 10, 20, 0, 20, 20, 9, 20, 1, 20, - 0, 20, 9, 7, 3, 6, 20, 2, 3, 20, - 20, 20, 20, 20, 20, 20, 20, 2, 12, 5, - 3, 20, 20, 10, 20, 0, 20, 20, 9, 20, - 1, 20, 0, 20, 9, 7, 3, 6, 20, 2, - 3, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 0, 14, 8, 1, 20, + 20, 12, 20, 1, 20, 20, 10, 20, 4, 20, + 1, 20, 10, 0, 1, 4, 20, 1, 1, 20, + 20, 20, 20, 20, 20, 20, 20, 0, 14, 8, + 1, 20, 20, 12, 20, 1, 20, 20, 10, 20, + 4, 20, 1, 20, 10, 0, 1, 4, 20, 1, + 1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, @@ -5492,16 +5703,16 @@ hash (register const char *str, register size_t len) struct unicode_prop_name_pool_t { - char unicode_prop_name_pool_str5[sizeof("print")]; - char unicode_prop_name_pool_str6[sizeof("punct")]; - char unicode_prop_name_pool_str7[sizeof("alpha")]; - char unicode_prop_name_pool_str8[sizeof("alnum")]; - char unicode_prop_name_pool_str9[sizeof("xdigit")]; - char unicode_prop_name_pool_str10[sizeof("newline")]; - char unicode_prop_name_pool_str11[sizeof("upper")]; - char unicode_prop_name_pool_str12[sizeof("ascii")]; - char unicode_prop_name_pool_str13[sizeof("cntrl")]; - char unicode_prop_name_pool_str14[sizeof("space")]; + char unicode_prop_name_pool_str5[sizeof("space")]; + char unicode_prop_name_pool_str6[sizeof("alpha")]; + char unicode_prop_name_pool_str7[sizeof("print")]; + char unicode_prop_name_pool_str8[sizeof("xdigit")]; + char unicode_prop_name_pool_str9[sizeof("alnum")]; + char unicode_prop_name_pool_str10[sizeof("upper")]; + char unicode_prop_name_pool_str11[sizeof("posixpunct")]; + char unicode_prop_name_pool_str12[sizeof("newline")]; + char unicode_prop_name_pool_str13[sizeof("ascii")]; + char unicode_prop_name_pool_str14[sizeof("cntrl")]; char unicode_prop_name_pool_str15[sizeof("word")]; char unicode_prop_name_pool_str16[sizeof("lower")]; char unicode_prop_name_pool_str17[sizeof("graph")]; @@ -5510,16 +5721,16 @@ struct unicode_prop_name_pool_t }; static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = { - "print", - "punct", + "space", "alpha", - "alnum", + "print", "xdigit", - "newline", + "alnum", "upper", + "posixpunct", + "newline", "ascii", "cntrl", - "space", "word", "lower", "graph", @@ -5534,25 +5745,25 @@ unicode_lookup_property_name (register const char *str, register size_t len) { {-1}, {-1}, {-1}, {-1}, {-1}, - {pool_offset(5), 7}, + {pool_offset(5), 9}, - {pool_offset(6), 8}, + {pool_offset(6), 1}, - {pool_offset(7), 1}, + {pool_offset(7), 7}, - {pool_offset(8), 13}, + {pool_offset(8), 11}, - {pool_offset(9), 11}, + {pool_offset(9), 13}, - {pool_offset(10), 0}, + {pool_offset(10), 10}, - {pool_offset(11), 10}, + {pool_offset(11), 8}, - {pool_offset(12), 14}, + {pool_offset(12), 0}, - {pool_offset(13), 3}, + {pool_offset(13), 14}, - {pool_offset(14), 9}, + {pool_offset(14), 3}, {pool_offset(15), 12}, @@ -5586,7 +5797,7 @@ unicode_lookup_property_name (register const char *str, register size_t len) -#define PROPERTY_NAME_MAX_SIZE 17 +#define PROPERTY_NAME_MAX_SIZE 20 #define CODE_RANGES_NUM 15 #define PROP_INDEX_NEWLINE 0 @@ -5597,7 +5808,7 @@ unicode_lookup_property_name (register const char *str, register size_t len) #define PROP_INDEX_GRAPH 5 #define PROP_INDEX_LOWER 6 #define PROP_INDEX_PRINT 7 -#define PROP_INDEX_PUNCT 8 +#define PROP_INDEX_POSIXPUNCT 8 #define PROP_INDEX_SPACE 9 #define PROP_INDEX_UPPER 10 #define PROP_INDEX_XDIGIT 11 diff --git a/src/unicode_unfold_key.c b/src/unicode_unfold_key.c index 654b10b..9b2863d 100644 --- a/src/unicode_unfold_key.c +++ b/src/unicode_unfold_key.c @@ -9,7 +9,7 @@ /* This gperf source file was generated by make_unicode_fold_data.py */ /*- - * Copyright (c) 2017-2021 K.Kosako + * Copyright (c) 2017-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/unicode_wb_data.c b/src/unicode_wb_data.c index 216c982..117feea 100644 --- a/src/unicode_wb_data.c +++ b/src/unicode_wb_data.c @@ -1,6 +1,6 @@ /* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */ /*- - * Copyright (c) 2019-2021 K.Kosako + * Copyright (c) 2019-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ * SUCH DAMAGE. */ -#define WORD_BREAK_PROPERTY_VERSION 140000 +#define WORD_BREAK_PROPERTY_VERSION 150100 /* ALetter @@ -48,7 +48,7 @@ WSegSpace ZWJ */ -static int WB_RANGE_NUM = 1031; +static int WB_RANGE_NUM = 1052; static WB_RANGE_TYPE WB_RANGES[] = { {0x00000a, 0x00000a, WB_LF }, {0x00000b, 0x00000c, WB_Newline }, @@ -105,7 +105,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x0005ef, 0x0005f2, WB_Hebrew_Letter }, {0x0005f3, 0x0005f3, WB_ALetter }, {0x0005f4, 0x0005f4, WB_MidLetter }, - {0x000600, 0x000605, WB_Format }, + {0x000600, 0x000605, WB_Numeric }, {0x00060c, 0x00060d, WB_MidNum }, {0x000610, 0x00061a, WB_Extend }, {0x00061c, 0x00061c, WB_Format }, @@ -119,7 +119,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000671, 0x0006d3, WB_ALetter }, {0x0006d5, 0x0006d5, WB_ALetter }, {0x0006d6, 0x0006dc, WB_Extend }, - {0x0006dd, 0x0006dd, WB_Format }, + {0x0006dd, 0x0006dd, WB_Numeric }, {0x0006df, 0x0006e4, WB_Extend }, {0x0006e5, 0x0006e6, WB_ALetter }, {0x0006e7, 0x0006e8, WB_Extend }, @@ -128,8 +128,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x0006f0, 0x0006f9, WB_Numeric }, {0x0006fa, 0x0006fc, WB_ALetter }, {0x0006ff, 0x0006ff, WB_ALetter }, - {0x00070f, 0x00070f, WB_Format }, - {0x000710, 0x000710, WB_ALetter }, + {0x00070f, 0x000710, WB_ALetter }, {0x000711, 0x000711, WB_Extend }, {0x000712, 0x00072f, WB_ALetter }, {0x000730, 0x00074a, WB_Extend }, @@ -156,11 +155,11 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000860, 0x00086a, WB_ALetter }, {0x000870, 0x000887, WB_ALetter }, {0x000889, 0x00088e, WB_ALetter }, - {0x000890, 0x000891, WB_Format }, + {0x000890, 0x000891, WB_Numeric }, {0x000898, 0x00089f, WB_Extend }, {0x0008a0, 0x0008c9, WB_ALetter }, {0x0008ca, 0x0008e1, WB_Extend }, - {0x0008e2, 0x0008e2, WB_Format }, + {0x0008e2, 0x0008e2, WB_Numeric }, {0x0008e3, 0x000903, WB_Extend }, {0x000904, 0x000939, WB_ALetter }, {0x00093a, 0x00093c, WB_Extend }, @@ -299,6 +298,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000ce2, 0x000ce3, WB_Extend }, {0x000ce6, 0x000cef, WB_Numeric }, {0x000cf1, 0x000cf2, WB_ALetter }, + {0x000cf3, 0x000cf3, WB_Extend }, {0x000d00, 0x000d03, WB_Extend }, {0x000d04, 0x000d0c, WB_ALetter }, {0x000d0e, 0x000d10, WB_ALetter }, @@ -333,7 +333,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x000e50, 0x000e59, WB_Numeric }, {0x000eb1, 0x000eb1, WB_Extend }, {0x000eb4, 0x000ebc, WB_Extend }, - {0x000ec8, 0x000ecd, WB_Extend }, + {0x000ec8, 0x000ece, WB_Extend }, {0x000ed0, 0x000ed9, WB_Numeric }, {0x000f00, 0x000f00, WB_ALetter }, {0x000f18, 0x000f19, WB_Extend }, @@ -758,6 +758,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x010e80, 0x010ea9, WB_ALetter }, {0x010eab, 0x010eac, WB_Extend }, {0x010eb0, 0x010eb1, WB_ALetter }, + {0x010efd, 0x010eff, WB_Extend }, {0x010f00, 0x010f1c, WB_ALetter }, {0x010f27, 0x010f27, WB_ALetter }, {0x010f30, 0x010f45, WB_ALetter }, @@ -777,9 +778,9 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01107f, 0x011082, WB_Extend }, {0x011083, 0x0110af, WB_ALetter }, {0x0110b0, 0x0110ba, WB_Extend }, - {0x0110bd, 0x0110bd, WB_Format }, + {0x0110bd, 0x0110bd, WB_Numeric }, {0x0110c2, 0x0110c2, WB_Extend }, - {0x0110cd, 0x0110cd, WB_Format }, + {0x0110cd, 0x0110cd, WB_Numeric }, {0x0110d0, 0x0110e8, WB_ALetter }, {0x0110f0, 0x0110f9, WB_Numeric }, {0x011100, 0x011102, WB_Extend }, @@ -805,6 +806,8 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x011213, 0x01122b, WB_ALetter }, {0x01122c, 0x011237, WB_Extend }, {0x01123e, 0x01123e, WB_Extend }, + {0x01123f, 0x011240, WB_ALetter }, + {0x011241, 0x011241, WB_Extend }, {0x011280, 0x011286, WB_ALetter }, {0x011288, 0x011288, WB_ALetter }, {0x01128a, 0x01128d, WB_ALetter }, @@ -923,13 +926,24 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x011da0, 0x011da9, WB_Numeric }, {0x011ee0, 0x011ef2, WB_ALetter }, {0x011ef3, 0x011ef6, WB_Extend }, + {0x011f00, 0x011f01, WB_Extend }, + {0x011f02, 0x011f02, WB_ALetter }, + {0x011f03, 0x011f03, WB_Extend }, + {0x011f04, 0x011f10, WB_ALetter }, + {0x011f12, 0x011f33, WB_ALetter }, + {0x011f34, 0x011f3a, WB_Extend }, + {0x011f3e, 0x011f42, WB_Extend }, + {0x011f50, 0x011f59, WB_Numeric }, {0x011fb0, 0x011fb0, WB_ALetter }, {0x012000, 0x012399, WB_ALetter }, {0x012400, 0x01246e, WB_ALetter }, {0x012480, 0x012543, WB_ALetter }, {0x012f90, 0x012ff0, WB_ALetter }, - {0x013000, 0x01342e, WB_ALetter }, - {0x013430, 0x013438, WB_Format }, + {0x013000, 0x01342f, WB_ALetter }, + {0x013430, 0x01343f, WB_Format }, + {0x013440, 0x013440, WB_Extend }, + {0x013441, 0x013446, WB_ALetter }, + {0x013447, 0x013455, WB_Extend }, {0x014400, 0x014646, WB_ALetter }, {0x016800, 0x016a38, WB_ALetter }, {0x016a40, 0x016a5e, WB_ALetter }, @@ -960,6 +974,7 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01affd, 0x01affe, WB_Katakana }, {0x01b000, 0x01b000, WB_Katakana }, {0x01b120, 0x01b122, WB_Katakana }, + {0x01b155, 0x01b155, WB_Katakana }, {0x01b164, 0x01b167, WB_Katakana }, {0x01bc00, 0x01bc6a, WB_ALetter }, {0x01bc70, 0x01bc7c, WB_ALetter }, @@ -1014,11 +1029,14 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01da9b, 0x01da9f, WB_Extend }, {0x01daa1, 0x01daaf, WB_Extend }, {0x01df00, 0x01df1e, WB_ALetter }, + {0x01df25, 0x01df2a, WB_ALetter }, {0x01e000, 0x01e006, WB_Extend }, {0x01e008, 0x01e018, WB_Extend }, {0x01e01b, 0x01e021, WB_Extend }, {0x01e023, 0x01e024, WB_Extend }, {0x01e026, 0x01e02a, WB_Extend }, + {0x01e030, 0x01e06d, WB_ALetter }, + {0x01e08f, 0x01e08f, WB_Extend }, {0x01e100, 0x01e12c, WB_ALetter }, {0x01e130, 0x01e136, WB_Extend }, {0x01e137, 0x01e13d, WB_ALetter }, @@ -1029,6 +1047,9 @@ static WB_RANGE_TYPE WB_RANGES[] = { {0x01e2c0, 0x01e2eb, WB_ALetter }, {0x01e2ec, 0x01e2ef, WB_Extend }, {0x01e2f0, 0x01e2f9, WB_Numeric }, + {0x01e4d0, 0x01e4eb, WB_ALetter }, + {0x01e4ec, 0x01e4ef, WB_Extend }, + {0x01e4f0, 0x01e4f9, WB_Numeric }, {0x01e7e0, 0x01e7e6, WB_ALetter }, {0x01e7e8, 0x01e7eb, WB_ALetter }, {0x01e7ed, 0x01e7ee, WB_ALetter }, diff --git a/src/utf16_le.c b/src/utf16_le.c index 35ceb3c..c76a610 100644 --- a/src/utf16_le.c +++ b/src/utf16_le.c @@ -2,7 +2,7 @@ utf16_le.c - Oniguruma (regular expression library) **********************************************************************/ /*- - * Copyright (c) 2002-2020 K.Kosako + * Copyright (c) 2002-2023 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -232,7 +232,7 @@ utf16le_left_adjust_char_head(const UChar* start, const UChar* s) { if (s <= start) return (UChar* )s; - if ((s - start) % 2 == 1) { + if ((s - start) % 2 != 0) { s--; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..a508f6a --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,55 @@ +if(MSVC) + if(MSVC_VERSION LESS "1900") + # < VS2015, no "/utf-8" option, can not build test + return() + endif() +endif() + +enable_testing() + +add_executable(test_utf8 test_utf8.c) +target_link_libraries(test_utf8 onig) +if(MSVC) + target_compile_options(test_utf8 PRIVATE /utf-8) +endif(MSVC) + +add_executable(test_syntax test_syntax.c) +target_link_libraries(test_syntax onig) +if(MSVC) + target_compile_options(test_syntax PRIVATE /utf-8) +endif(MSVC) + +add_executable(test_options test_options.c) +target_link_libraries(test_options onig) +if(MSVC) + target_compile_options(test_options PRIVATE /utf-8) +endif(MSVC) + +if(NOT MSVC) + # EUC + add_executable(testc testc.c) + target_link_libraries(testc onig) + if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU") + target_compile_options(testc PRIVATE -Wall -Wno-invalid-source-encoding) + endif() +endif(NOT MSVC) + +if(ENABLE_POSIX_API) + add_executable(testp testp.c) + target_link_libraries(testp onig) +endif() + +add_executable(testcu testu.c) +target_link_libraries(testcu onig) + +add_executable(test_regset test_regset.c) +target_link_libraries(test_regset onig) +if(MSVC) + target_compile_options(test_regset PRIVATE /utf-8) +endif(MSVC) + +add_executable(test_back test_back.c) +target_link_libraries(test_back onig) +if(MSVC) + target_compile_options(test_back PRIVATE /utf-8) +endif(MSVC) diff --git a/test/test.sh b/test/test.sh new file mode 100755 index 0000000..08c52a8 --- /dev/null +++ b/test/test.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +echo "[Oniguruma API, UTF-8 check]" +./test_utf8 | grep RESULT +echo "[Oniguruma API, SYNTAX check]" +./test_syntax | grep RESULT +echo "[Oniguruma API, Options check]" +./test_options | grep RESULT +echo "[Oniguruma API, EUC-JP check]" +./testc | grep RESULT +echo "[Oniguruma API, UTF-16 check]" +./testcu | grep RESULT +echo "" +echo "[Oniguruma API, regset check]" +./test_regset +echo "[Oniguruma API, backward search check]" +./test_back | grep RESULT diff --git a/test/test_options.c b/test/test_options.c index 7010f0f..ce92ee1 100644 --- a/test/test_options.c +++ b/test/test_options.c @@ -197,6 +197,11 @@ extern int main(int argc, char* argv[]) n(ONIG_OPTION_NOT_END_STRING, "ab\\Z", "ab"); n(ONIG_OPTION_NOT_END_STRING, "ab\\Z", "ab\n"); + x2(ONIG_OPTION_NONE, "a|abc", "abc", 0, 1); + x2(ONIG_OPTION_NONE, "(a|abc)\\Z", "abc", 0, 3); + x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a|abc", "abc", 0, 3); + x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a|abc", "a", 0, 1); + x2(ONIG_OPTION_WORD_IS_ASCII, "\\w", "@g", 1, 2); n(ONIG_OPTION_WORD_IS_ASCII, "\\w", "あ"); x2(ONIG_OPTION_NONE, "\\d", "1", 0, 3); @@ -219,6 +224,5 @@ extern int main(int argc, char* argv[]) onig_region_free(region, 1); onig_end(); - return ((nfail == 0 && nerror == 0) ? 0 : -1); } diff --git a/test/test_syntax.c b/test/test_syntax.c index b501ccd..b07fe67 100644 --- a/test/test_syntax.c +++ b/test/test_syntax.c @@ -259,6 +259,30 @@ static int test_python_single_multi() return 0; } +static int test_BRE_anchors() +{ + x2("a\\^b", "a^b", 0, 3); + x2("a^b", "a^b", 0, 3); + x2("a\\$b", "a$b", 0, 3); + x2("a$b", "a$b", 0, 3); + + x2("^ab", "ab", 0, 2); + x2("(^ab)", "(^ab)", 0, 5); + x2("\\(^ab\\)", "ab", 0, 2); + x2("\\\\(^ab\\\\)", "\\(^ab\\)", 0, 7); + n("\\\\\\(^ab\\\\\\)", "\\ab\\"); + x2("^\\\\\\(ab\\\\\\)", "\\ab\\", 0, 4); + + x2("ab$", "ab", 0, 2); + x2("(ab$)", "(ab$)", 0, 5); + x2("\\(ab$\\)", "ab", 0, 2); + x2("\\\\(ab$\\\\)", "\\(ab$\\)", 0, 7); + n("\\\\\\(ab$\\\\\\)", "\\ab\\"); + x2("\\\\\\(ab\\\\\\)$", "\\ab\\", 0, 4); + + return 0; +} + extern int main(int argc, char* argv[]) { OnigEncoding use_encs[1]; @@ -309,6 +333,26 @@ extern int main(int argc, char* argv[]) x2("\\U00000041", "A", 0, 1); e("\\U0041", "A", ONIGERR_INVALID_CODE_POINT_VALUE); + Syntax = ONIG_SYNTAX_POSIX_BASIC; + test_BRE_anchors(); + + Syntax = ONIG_SYNTAX_GREP; + test_BRE_anchors(); + x2("zz\\|^ab", "ab", 0, 2); + x2("ab$\\|zz", "ab", 0, 2); + + Syntax = ONIG_SYNTAX_PERL_NG; + + x2("(?i)test", "test", 0, 4); + x2("(?-i)test", "test", 0, 4); + x2("(?i)test", "TEST", 0, 4); + n("(?-i)test", "teSt"); + x2("(?i)te(?-i)st", "TEst", 0, 4); + n("(?i)te(?-i)st", "TesT"); + + x2("(abc)(?-1)", "abcabc", 0, 6); + x2("(?+1)(abc)", "abcabc", 0, 6); + x2("(abc)(?1)", "abcabc", 0, 6); fprintf(stdout, "\nRESULT SUCC: %4d, FAIL: %d, ERROR: %d (by Oniguruma %s)\n", diff --git a/test/test_utf8.c b/test/test_utf8.c index 75392e8..77149d7 100644 --- a/test/test_utf8.c +++ b/test/test_utf8.c @@ -226,6 +226,27 @@ extern int main(int argc, char* argv[]) x2("[*[:xdigit:]+]", "-@^+", 3, 4); n("[[:upper]]", "A"); x2("[[:upper]]", ":", 0, 1); + n("[[:upper:]]", "a"); + x2("[[:^upper:]]", "a", 0, 1); + n("[[:lower:]]", "A"); + x2("[[:^lower:]]", "A", 0, 1); + + // Issue #253 + e("[[:::]", ":[", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:\\]:]", ":]", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:\\[:]", ":[", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:\\]]", ":]", ONIGERR_PREMATURE_END_OF_CHAR_CLASS); + e("[[:u:]]", "", ONIGERR_INVALID_POSIX_BRACKET_TYPE); + e("[[:upp:]]", "", ONIGERR_INVALID_POSIX_BRACKET_TYPE); + e("[[:uppers:]]", "", ONIGERR_INVALID_POSIX_BRACKET_TYPE); + x2("[[:upper\\] :]]", "]", 0, 1); + + x2("[[::]]", ":", 0, 1); + x2("[[:::]]", ":", 0, 1); + x2("[[:\\]:]]*", ":]", 0, 2); + x2("[[:\\[:]]*", ":[", 0, 2); + x2("[[:\\]]]*", ":]", 0, 2); + x2("[\\044-\\047]", "\046", 0, 1); x2("[\\x5a-\\x5c]", "\x5b", 0, 1); x2("[\\x6A-\\x6D]", "\x6c", 0, 1); @@ -1623,6 +1644,8 @@ extern int main(int argc, char* argv[]) e("(?Ii)|(?Ii)", "", ONIGERR_INVALID_GROUP_OPTION); x2("a*", "aabcaaa", 0, 2); x2("(?L)a*", "aabcaaa", 4, 7); + x2("(?L)a{4}|a{3}|b*", "baaaaabbb", 1, 5); + x2("(?L)a{3}|a{4}|b*", "baaaaabbb", 1, 5); e("x(?L)xxxxx", "", ONIGERR_INVALID_GROUP_OPTION); e("(?-L)x", "", ONIGERR_INVALID_GROUP_OPTION); x3("(..)\\1", "abab", 0, 2, 1); @@ -1630,6 +1653,69 @@ extern int main(int argc, char* argv[]) e("(?-C)", "", ONIGERR_INVALID_GROUP_OPTION); e("(?C)(.)(.)(.)(?<name>.)\\1", "abcdd", ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED); + // Issue #264 + n("(?iI)s", "\xc5\xbf"); + n("(?iI)[s]", "\xc5\xbf"); // FAIL + n("(?iI:s)", "\xc5\xbf"); + n("(?iI:[s])", "\xc5\xbf"); // FAIL + x2("(?iI)(?:[[:word:]])", "\xc5\xbf", 0, 2); + n("(?iI)(?W:[[:word:]])", "\xc5\xbf"); // FAIL + n("(?iI)(?W:\\w)", "\xc5\xbf"); + n("(?iI)(?W:[\\w])", "\xc5\xbf"); // FAIL + n("(?iI)(?W:\\p{Word})", "\xc5\xbf"); + n("(?iI)(?W:[\\p{Word}])", "\xc5\xbf"); // FAIL + + x2("(?iW:[[:word:]])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\p{Word}])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\w])", "\xc5\xbf", 0, 2); + n("(?iW:\\p{Word})", "\xc5\xbf"); + n("(?iW:\\w)", "\xc5\xbf"); + x2("(?i)\\p{Word}", "\xc5\xbf", 0, 2); + x2("(?i)\\w", "\xc5\xbf", 0, 2); + + x2("(?iW:[[:^word:]])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\P{Word}])", "\xc5\xbf", 0, 2); + x2("(?iW:[\\W])", "\xc5\xbf", 0, 2); + x2("(?iW:\\P{Word})", "\xc5\xbf", 0, 2); + x2("(?iW:\\W)", "\xc5\xbf", 0, 2); + n("(?i)\\P{Word}", "\xc5\xbf"); + n("(?i)\\W", "\xc5\xbf"); + + x2("(?iW:[[:^word:]])", "s", 0, 1); + x2("(?iW:[\\P{Word}])", "s", 0, 1); + x2("(?iW:[\\W])", "s", 0, 1); + n("(?iW:\\P{Word})", "s"); + n("(?iW:\\W)", "s"); + n("(?i)\\P{Word}", "s"); + n("(?i)\\W", "s"); + + x2("[[:punct:]]", ":", 0, 1); + x2("[[:punct:]]", "$", 0, 1); + x2("[[:punct:]]+", "$+<=>^`|~", 0, 9); + n("[[:punct:]]", "a"); + n("[[:punct:]]", "7"); + x2("\\p{PosixPunct}+", "$¦", 0, 3); + + x2("\\A.*\\R", "\n", 0, 1); + x2("\\A\\O*\\R", "\n", 0, 1); + x2("\\A\\n*\\R", "\n", 0, 1); + x2("\\A\\R*\\R", "\n", 0, 1); + x2("\\At*\\R", "\n", 0, 1); + + x2("\\A.{0,99}\\R", "\n", 0, 1); + x2("\\A\\O{0,99}\\R", "\n", 0, 1); + x2("\\A\\n{0,99}\\R", "\n", 0, 1); + x2("\\A\\R{0,99}\\R", "\n", 0, 1); + x2("\\At{0,99}\\R", "\n", 0, 1); + + x2("\\A.*\\n", "\n", 0, 1); // \n + x2("\\A.{0,99}\\n", "\n", 0, 1); + x2("\\A.*\\O", "\n", 0, 1); // \O + x2("\\A.{0,99}\\O", "\n", 0, 1); + x2("\\A.*\\s", "\n", 0, 1); // \s + x2("\\A.{0,99}\\s", "\n", 0, 1); + + n("a(b|)+d", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcd"); /* https://www.haijin-boys.com/discussions/5079 */ n(" \xfd", ""); /* https://bugs.php.net/bug.php?id=77370 */ /* can't use \xfc00.. because compiler error: hex escape sequence out of range */ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..ed59211 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_executable(testc_windows testc.c) +target_link_libraries(testc_windows onig) +if(NOT MSVC) + target_compile_options(testc_windows + PRIVATE -finput-charset=cp932 -fexec-charset=cp932 + ) +endif(NOT MSVC) |