1 /*************************************************
2 * Perl-Compatible Regular Expressions *
3 *************************************************/
5 /* PCRE is a library of functions to support regular expressions whose syntax
6 and semantics are as close as possible to those of the Perl 5 language.
8 Written by Philip Hazel
9 Original API code Copyright (c) 1997-2012 University of Cambridge
10 New API code Copyright (c) 2016-2018 University of Cambridge
12 -----------------------------------------------------------------------------
13 Redistribution and use in source and binary forms, with or without
14 modification, are permitted provided that the following conditions are met:
16 * Redistributions of source code must retain the above copyright notice,
17 this list of conditions and the following disclaimer.
19 * Redistributions in binary form must reproduce the above copyright
20 notice, this list of conditions and the following disclaimer in the
21 documentation and/or other materials provided with the distribution.
23 * Neither the name of the University of Cambridge nor the names of its
24 contributors may be used to endorse or promote products derived from
25 this software without specific prior written permission.
27 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
31 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 POSSIBILITY OF SUCH DAMAGE.
38 -----------------------------------------------------------------------------
42 #ifndef PCRE2_UCP_H_IDEMPOTENT_GUARD
43 #define PCRE2_UCP_H_IDEMPOTENT_GUARD
45 /* This file contains definitions of the property values that are returned by
46 the UCD access macros. New values that are added for new releases of Unicode
47 should always be at the end of each enum, for backwards compatibility.
49 IMPORTANT: Note also that the specific numeric values of the enums have to be
50 the same as the values that are generated by the maint/MultiStage2.py script,
51 where the equivalent property descriptive names are listed in vectors.
53 ALSO: The specific values of the first two enums are assumed for the table
54 called catposstab in pcre2_compile.c. */
56 /* These are the general character categories. */
63 ucp_P, /* Punctuation */
68 /* These are the particular character categories. */
73 ucp_Cn, /* Unassigned */
74 ucp_Co, /* Private use */
75 ucp_Cs, /* Surrogate */
76 ucp_Ll, /* Lower case letter */
77 ucp_Lm, /* Modifier letter */
78 ucp_Lo, /* Other letter */
79 ucp_Lt, /* Title case letter */
80 ucp_Lu, /* Upper case letter */
81 ucp_Mc, /* Spacing mark */
82 ucp_Me, /* Enclosing mark */
83 ucp_Mn, /* Non-spacing mark */
84 ucp_Nd, /* Decimal number */
85 ucp_Nl, /* Letter number */
86 ucp_No, /* Other number */
87 ucp_Pc, /* Connector punctuation */
88 ucp_Pd, /* Dash punctuation */
89 ucp_Pe, /* Close punctuation */
90 ucp_Pf, /* Final punctuation */
91 ucp_Pi, /* Initial punctuation */
92 ucp_Po, /* Other punctuation */
93 ucp_Ps, /* Open punctuation */
94 ucp_Sc, /* Currency symbol */
95 ucp_Sk, /* Modifier symbol */
96 ucp_Sm, /* Mathematical symbol */
97 ucp_So, /* Other symbol */
98 ucp_Zl, /* Line separator */
99 ucp_Zp, /* Paragraph separator */
100 ucp_Zs /* Space separator */
103 /* These are grapheme break properties. The Extended Pictographic property
104 comes from the emoji-data.txt file. */
109 ucp_gbControl, /* 2 */
110 ucp_gbExtend, /* 3 */
111 ucp_gbPrepend, /* 4 */
112 ucp_gbSpacingMark, /* 5 */
113 ucp_gbL, /* 6 Hangul syllable type L */
114 ucp_gbV, /* 7 Hangul syllable type V */
115 ucp_gbT, /* 8 Hangul syllable type T */
116 ucp_gbLV, /* 9 Hangul syllable type LV */
117 ucp_gbLVT, /* 10 Hangul syllable type LVT */
118 ucp_gbRegionalIndicator, /* 11 */
119 ucp_gbOther, /* 12 */
121 ucp_gbExtended_Pictographic /* 14 */
124 /* These are the script identifications. */
134 ucp_Canadian_Aboriginal,
188 /* New for Unicode 5.0 */
194 /* New for Unicode 5.1 */
206 /* New for Unicode 5.2 */
209 ucp_Egyptian_Hieroglyphs,
210 ucp_Imperial_Aramaic,
211 ucp_Inscriptional_Pahlavi,
212 ucp_Inscriptional_Parthian,
217 ucp_Old_South_Arabian,
222 /* New for Unicode 6.0.0 */
226 /* New for Unicode 6.1.0 */
228 ucp_Meroitic_Cursive,
229 ucp_Meroitic_Hieroglyphs,
234 /* New for Unicode 7.0.0 */
236 ucp_Caucasian_Albanian,
249 ucp_Old_North_Arabian,
258 /* New for Unicode 8.0.0 */
260 ucp_Anatolian_Hieroglyphs,
265 /* New for Unicode 10.0.0 (no update since 8.0.0) */
275 ucp_Zanabazar_Square,
276 /* New for Unicode 11.0.0 */
286 #endif /* PCRE2_UCP_H_IDEMPOTENT_GUARD */
288 /* End of pcre2_ucp.h */