| /*! |
| * XRegExp Unicode Properties 4.3.0 |
| * <xregexp.com> |
| * Steven Levithan (c) 2012-present MIT License |
| * Unicode data by Mathias Bynens <mathiasbynens.be> |
| */ |
| |
| import properties from '../../tools/output/properties'; |
| |
| export default (XRegExp) => { |
| |
| /** |
| * Adds properties to meet the UTS #18 Level 1 RL1.2 requirements for Unicode regex support. See |
| * <http://unicode.org/reports/tr18/#RL1.2>. Following are definitions of these properties from |
| * UAX #44 <http://unicode.org/reports/tr44/>: |
| * |
| * - Alphabetic |
| * Characters with the Alphabetic property. Generated from: Lowercase + Uppercase + Lt + Lm + |
| * Lo + Nl + Other_Alphabetic. |
| * |
| * - Default_Ignorable_Code_Point |
| * For programmatic determination of default ignorable code points. New characters that should |
| * be ignored in rendering (unless explicitly supported) will be assigned in these ranges, |
| * permitting programs to correctly handle the default rendering of such characters when not |
| * otherwise supported. |
| * |
| * - Lowercase |
| * Characters with the Lowercase property. Generated from: Ll + Other_Lowercase. |
| * |
| * - Noncharacter_Code_Point |
| * Code points permanently reserved for internal use. |
| * |
| * - Uppercase |
| * Characters with the Uppercase property. Generated from: Lu + Other_Uppercase. |
| * |
| * - White_Space |
| * Spaces, separator characters and other control characters which should be treated by |
| * programming languages as "white space" for the purpose of parsing elements. |
| * |
| * The properties ASCII, Any, and Assigned are also included but are not defined in UAX #44. UTS |
| * #18 RL1.2 additionally requires support for Unicode scripts and general categories. These are |
| * included in XRegExp's Unicode Categories and Unicode Scripts addons. |
| * |
| * Token names are case insensitive, and any spaces, hyphens, and underscores are ignored. |
| * |
| * Uses Unicode 12.1.0. |
| * |
| * @requires XRegExp, Unicode Base |
| */ |
| |
| if (!XRegExp.addUnicodeData) { |
| throw new ReferenceError('Unicode Base must be loaded before Unicode Properties'); |
| } |
| |
| const unicodeData = properties; |
| |
| // Add non-generated data |
| unicodeData.push({ |
| name: 'Assigned', |
| // Since this is defined as the inverse of Unicode category Cn (Unassigned), the Unicode |
| // Categories addon is required to use this property |
| inverseOf: 'Cn' |
| }); |
| |
| XRegExp.addUnicodeData(unicodeData); |
| }; |