regexp_parser 1.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -3
  3. data/LICENSE +1 -1
  4. data/Rakefile +6 -70
  5. data/lib/regexp_parser/error.rb +4 -0
  6. data/lib/regexp_parser/expression/base.rb +76 -0
  7. data/lib/regexp_parser/expression/classes/alternation.rb +1 -1
  8. data/lib/regexp_parser/expression/classes/anchor.rb +0 -2
  9. data/lib/regexp_parser/expression/classes/{backref.rb → backreference.rb} +22 -2
  10. data/lib/regexp_parser/expression/classes/{set → character_set}/range.rb +4 -8
  11. data/lib/regexp_parser/expression/classes/{set.rb → character_set.rb} +4 -8
  12. data/lib/regexp_parser/expression/classes/{type.rb → character_type.rb} +0 -2
  13. data/lib/regexp_parser/expression/classes/conditional.rb +11 -5
  14. data/lib/regexp_parser/expression/classes/{escape.rb → escape_sequence.rb} +15 -7
  15. data/lib/regexp_parser/expression/classes/free_space.rb +5 -5
  16. data/lib/regexp_parser/expression/classes/group.rb +28 -15
  17. data/lib/regexp_parser/expression/classes/keep.rb +2 -0
  18. data/lib/regexp_parser/expression/classes/literal.rb +1 -5
  19. data/lib/regexp_parser/expression/classes/posix_class.rb +5 -5
  20. data/lib/regexp_parser/expression/classes/root.rb +4 -19
  21. data/lib/regexp_parser/expression/classes/{property.rb → unicode_property.rb} +11 -12
  22. data/lib/regexp_parser/expression/methods/construct.rb +41 -0
  23. data/lib/regexp_parser/expression/methods/human_name.rb +43 -0
  24. data/lib/regexp_parser/expression/methods/match_length.rb +11 -7
  25. data/lib/regexp_parser/expression/methods/negative.rb +20 -0
  26. data/lib/regexp_parser/expression/methods/parts.rb +23 -0
  27. data/lib/regexp_parser/expression/methods/printing.rb +26 -0
  28. data/lib/regexp_parser/expression/methods/strfregexp.rb +1 -1
  29. data/lib/regexp_parser/expression/methods/tests.rb +47 -1
  30. data/lib/regexp_parser/expression/methods/traverse.rb +34 -18
  31. data/lib/regexp_parser/expression/quantifier.rb +57 -17
  32. data/lib/regexp_parser/expression/sequence.rb +11 -47
  33. data/lib/regexp_parser/expression/sequence_operation.rb +4 -9
  34. data/lib/regexp_parser/expression/shared.rb +111 -0
  35. data/lib/regexp_parser/expression/subexpression.rb +27 -19
  36. data/lib/regexp_parser/expression.rb +15 -141
  37. data/lib/regexp_parser/lexer.rb +83 -41
  38. data/lib/regexp_parser/parser.rb +372 -429
  39. data/lib/regexp_parser/scanner/char_type.rl +11 -11
  40. data/lib/regexp_parser/scanner/errors/premature_end_error.rb +8 -0
  41. data/lib/regexp_parser/scanner/errors/scanner_error.rb +6 -0
  42. data/lib/regexp_parser/scanner/errors/validation_error.rb +63 -0
  43. data/lib/regexp_parser/scanner/properties/long.csv +651 -0
  44. data/lib/regexp_parser/scanner/properties/short.csv +249 -0
  45. data/lib/regexp_parser/scanner/property.rl +4 -4
  46. data/lib/regexp_parser/scanner/scanner.rl +303 -368
  47. data/lib/regexp_parser/scanner.rb +1423 -1674
  48. data/lib/regexp_parser/syntax/any.rb +2 -7
  49. data/lib/regexp_parser/syntax/base.rb +92 -67
  50. data/lib/regexp_parser/syntax/token/anchor.rb +15 -0
  51. data/lib/regexp_parser/syntax/{tokens → token}/assertion.rb +2 -2
  52. data/lib/regexp_parser/syntax/token/backreference.rb +33 -0
  53. data/lib/regexp_parser/syntax/token/character_set.rb +16 -0
  54. data/lib/regexp_parser/syntax/{tokens → token}/character_type.rb +3 -3
  55. data/lib/regexp_parser/syntax/{tokens → token}/conditional.rb +3 -3
  56. data/lib/regexp_parser/syntax/token/escape.rb +33 -0
  57. data/lib/regexp_parser/syntax/{tokens → token}/group.rb +7 -7
  58. data/lib/regexp_parser/syntax/{tokens → token}/keep.rb +1 -1
  59. data/lib/regexp_parser/syntax/token/meta.rb +20 -0
  60. data/lib/regexp_parser/syntax/{tokens → token}/posix_class.rb +3 -3
  61. data/lib/regexp_parser/syntax/token/quantifier.rb +35 -0
  62. data/lib/regexp_parser/syntax/token/unicode_property.rb +751 -0
  63. data/lib/regexp_parser/syntax/token/virtual.rb +11 -0
  64. data/lib/regexp_parser/syntax/token.rb +45 -0
  65. data/lib/regexp_parser/syntax/version_lookup.rb +19 -36
  66. data/lib/regexp_parser/syntax/versions/1.8.6.rb +13 -20
  67. data/lib/regexp_parser/syntax/versions/1.9.1.rb +10 -17
  68. data/lib/regexp_parser/syntax/versions/1.9.3.rb +3 -10
  69. data/lib/regexp_parser/syntax/versions/2.0.0.rb +8 -15
  70. data/lib/regexp_parser/syntax/versions/2.2.0.rb +3 -9
  71. data/lib/regexp_parser/syntax/versions/2.3.0.rb +3 -9
  72. data/lib/regexp_parser/syntax/versions/2.4.0.rb +3 -9
  73. data/lib/regexp_parser/syntax/versions/2.4.1.rb +2 -8
  74. data/lib/regexp_parser/syntax/versions/2.5.0.rb +3 -9
  75. data/lib/regexp_parser/syntax/versions/2.6.0.rb +3 -9
  76. data/lib/regexp_parser/syntax/versions/2.6.2.rb +3 -9
  77. data/lib/regexp_parser/syntax/versions/2.6.3.rb +3 -9
  78. data/lib/regexp_parser/syntax/versions/3.1.0.rb +4 -0
  79. data/lib/regexp_parser/syntax/versions/3.2.0.rb +4 -0
  80. data/lib/regexp_parser/syntax/versions.rb +3 -1
  81. data/lib/regexp_parser/syntax.rb +8 -6
  82. data/lib/regexp_parser/token.rb +9 -20
  83. data/lib/regexp_parser/version.rb +1 -1
  84. data/lib/regexp_parser.rb +0 -2
  85. data/regexp_parser.gemspec +19 -23
  86. metadata +53 -171
  87. data/CHANGELOG.md +0 -349
  88. data/README.md +0 -470
  89. data/lib/regexp_parser/scanner/properties/long.yml +0 -594
  90. data/lib/regexp_parser/scanner/properties/short.yml +0 -237
  91. data/lib/regexp_parser/syntax/tokens/anchor.rb +0 -15
  92. data/lib/regexp_parser/syntax/tokens/backref.rb +0 -24
  93. data/lib/regexp_parser/syntax/tokens/character_set.rb +0 -13
  94. data/lib/regexp_parser/syntax/tokens/escape.rb +0 -30
  95. data/lib/regexp_parser/syntax/tokens/meta.rb +0 -13
  96. data/lib/regexp_parser/syntax/tokens/quantifier.rb +0 -35
  97. data/lib/regexp_parser/syntax/tokens/unicode_property.rb +0 -675
  98. data/lib/regexp_parser/syntax/tokens.rb +0 -45
  99. data/spec/expression/base_spec.rb +0 -94
  100. data/spec/expression/clone_spec.rb +0 -120
  101. data/spec/expression/conditional_spec.rb +0 -89
  102. data/spec/expression/free_space_spec.rb +0 -27
  103. data/spec/expression/methods/match_length_spec.rb +0 -161
  104. data/spec/expression/methods/match_spec.rb +0 -25
  105. data/spec/expression/methods/strfregexp_spec.rb +0 -224
  106. data/spec/expression/methods/tests_spec.rb +0 -99
  107. data/spec/expression/methods/traverse_spec.rb +0 -161
  108. data/spec/expression/options_spec.rb +0 -128
  109. data/spec/expression/root_spec.rb +0 -9
  110. data/spec/expression/sequence_spec.rb +0 -9
  111. data/spec/expression/subexpression_spec.rb +0 -50
  112. data/spec/expression/to_h_spec.rb +0 -26
  113. data/spec/expression/to_s_spec.rb +0 -100
  114. data/spec/lexer/all_spec.rb +0 -22
  115. data/spec/lexer/conditionals_spec.rb +0 -53
  116. data/spec/lexer/escapes_spec.rb +0 -14
  117. data/spec/lexer/keep_spec.rb +0 -10
  118. data/spec/lexer/literals_spec.rb +0 -89
  119. data/spec/lexer/nesting_spec.rb +0 -99
  120. data/spec/lexer/refcalls_spec.rb +0 -55
  121. data/spec/parser/all_spec.rb +0 -43
  122. data/spec/parser/alternation_spec.rb +0 -88
  123. data/spec/parser/anchors_spec.rb +0 -17
  124. data/spec/parser/conditionals_spec.rb +0 -179
  125. data/spec/parser/errors_spec.rb +0 -30
  126. data/spec/parser/escapes_spec.rb +0 -121
  127. data/spec/parser/free_space_spec.rb +0 -130
  128. data/spec/parser/groups_spec.rb +0 -108
  129. data/spec/parser/keep_spec.rb +0 -6
  130. data/spec/parser/posix_classes_spec.rb +0 -8
  131. data/spec/parser/properties_spec.rb +0 -115
  132. data/spec/parser/quantifiers_spec.rb +0 -51
  133. data/spec/parser/refcalls_spec.rb +0 -112
  134. data/spec/parser/set/intersections_spec.rb +0 -127
  135. data/spec/parser/set/ranges_spec.rb +0 -111
  136. data/spec/parser/sets_spec.rb +0 -178
  137. data/spec/parser/types_spec.rb +0 -18
  138. data/spec/scanner/all_spec.rb +0 -18
  139. data/spec/scanner/anchors_spec.rb +0 -21
  140. data/spec/scanner/conditionals_spec.rb +0 -128
  141. data/spec/scanner/errors_spec.rb +0 -68
  142. data/spec/scanner/escapes_spec.rb +0 -53
  143. data/spec/scanner/free_space_spec.rb +0 -133
  144. data/spec/scanner/groups_spec.rb +0 -52
  145. data/spec/scanner/keep_spec.rb +0 -10
  146. data/spec/scanner/literals_spec.rb +0 -49
  147. data/spec/scanner/meta_spec.rb +0 -18
  148. data/spec/scanner/properties_spec.rb +0 -64
  149. data/spec/scanner/quantifiers_spec.rb +0 -20
  150. data/spec/scanner/refcalls_spec.rb +0 -36
  151. data/spec/scanner/sets_spec.rb +0 -102
  152. data/spec/scanner/types_spec.rb +0 -14
  153. data/spec/spec_helper.rb +0 -15
  154. data/spec/support/runner.rb +0 -42
  155. data/spec/support/shared_examples.rb +0 -77
  156. data/spec/support/warning_extractor.rb +0 -60
  157. data/spec/syntax/syntax_spec.rb +0 -48
  158. data/spec/syntax/syntax_token_map_spec.rb +0 -23
  159. data/spec/syntax/versions/1.8.6_spec.rb +0 -17
  160. data/spec/syntax/versions/1.9.1_spec.rb +0 -10
  161. data/spec/syntax/versions/1.9.3_spec.rb +0 -9
  162. data/spec/syntax/versions/2.0.0_spec.rb +0 -13
  163. data/spec/syntax/versions/2.2.0_spec.rb +0 -9
  164. data/spec/syntax/versions/aliases_spec.rb +0 -37
  165. data/spec/token/token_spec.rb +0 -85
  166. /data/lib/regexp_parser/expression/classes/{set → character_set}/intersection.rb +0 -0
@@ -0,0 +1,751 @@
1
+ module Regexp::Syntax
2
+ module Token
3
+ module UnicodeProperty
4
+ all = proc { |name| constants.grep(/#{name}/).flat_map(&method(:const_get)) }
5
+
6
+ CharType_V1_9_0 = %i[alnum alpha ascii blank cntrl digit graph
7
+ lower print punct space upper word xdigit]
8
+
9
+ CharType_V2_5_0 = %i[xposixpunct]
10
+
11
+ POSIX = %i[any assigned newline]
12
+
13
+ module Category
14
+ Letter = %i[letter uppercase_letter lowercase_letter
15
+ titlecase_letter modifier_letter other_letter]
16
+
17
+ Mark = %i[mark nonspacing_mark spacing_mark
18
+ enclosing_mark]
19
+
20
+ Number = %i[number decimal_number letter_number
21
+ other_number]
22
+
23
+ Punctuation = %i[punctuation connector_punctuation dash_punctuation
24
+ open_punctuation close_punctuation initial_punctuation
25
+ final_punctuation other_punctuation]
26
+
27
+ Symbol = %i[symbol math_symbol currency_symbol
28
+ modifier_symbol other_symbol]
29
+
30
+ Separator = %i[separator space_separator line_separator
31
+ paragraph_separator]
32
+
33
+ Codepoint = %i[other control format
34
+ surrogate private_use unassigned]
35
+
36
+ All = Letter + Mark + Number + Punctuation +
37
+ Symbol + Separator + Codepoint
38
+ end
39
+
40
+ Age_V1_9_3 = %i[age=1.1 age=2.0 age=2.1 age=3.0 age=3.1
41
+ age=3.2 age=4.0 age=4.1 age=5.0 age=5.1
42
+ age=5.2 age=6.0]
43
+
44
+ Age_V2_0_0 = %i[age=6.1]
45
+
46
+ Age_V2_2_0 = %i[age=6.2 age=6.3 age=7.0]
47
+
48
+ Age_V2_3_0 = %i[age=8.0]
49
+
50
+ Age_V2_4_0 = %i[age=9.0]
51
+
52
+ Age_V2_5_0 = %i[age=10.0]
53
+
54
+ Age_V2_6_0 = %i[age=11.0]
55
+
56
+ Age_V2_6_2 = %i[age=12.0]
57
+
58
+ Age_V2_6_3 = %i[age=12.1]
59
+
60
+ Age_V3_1_0 = %i[age=13.0]
61
+
62
+ Age_V3_2_0 = %i[age=14.0 age=15.0]
63
+
64
+ Age = all[:Age_V]
65
+
66
+ Derived_V1_9_0 = %i[
67
+ ascii_hex_digit
68
+ alphabetic
69
+ cased
70
+ changes_when_casefolded
71
+ changes_when_casemapped
72
+ changes_when_lowercased
73
+ changes_when_titlecased
74
+ changes_when_uppercased
75
+ case_ignorable
76
+ bidi_control
77
+ dash
78
+ deprecated
79
+ default_ignorable_code_point
80
+ diacritic
81
+ extender
82
+ grapheme_base
83
+ grapheme_extend
84
+ grapheme_link
85
+ hex_digit
86
+ hyphen
87
+ id_continue
88
+ ideographic
89
+ id_start
90
+ ids_binary_operator
91
+ ids_trinary_operator
92
+ join_control
93
+ logical_order_exception
94
+ lowercase
95
+ math
96
+ noncharacter_code_point
97
+ other_alphabetic
98
+ other_default_ignorable_code_point
99
+ other_grapheme_extend
100
+ other_id_continue
101
+ other_id_start
102
+ other_lowercase
103
+ other_math
104
+ other_uppercase
105
+ pattern_syntax
106
+ pattern_white_space
107
+ quotation_mark
108
+ radical
109
+ sentence_terminal
110
+ soft_dotted
111
+ terminal_punctuation
112
+ unified_ideograph
113
+ uppercase
114
+ variation_selector
115
+ white_space
116
+ xid_start
117
+ xid_continue
118
+ ]
119
+
120
+ Derived_V2_0_0 = %i[
121
+ cased_letter
122
+ combining_mark
123
+ ]
124
+
125
+ Derived_V2_4_0 = %i[
126
+ prepended_concatenation_mark
127
+ ]
128
+
129
+ Derived_V2_5_0 = %i[
130
+ regional_indicator
131
+ ]
132
+
133
+ Derived = all[:Derived_V]
134
+
135
+ Script_V1_9_0 = %i[
136
+ arabic
137
+ imperial_aramaic
138
+ armenian
139
+ avestan
140
+ balinese
141
+ bamum
142
+ bengali
143
+ bopomofo
144
+ braille
145
+ buginese
146
+ buhid
147
+ canadian_aboriginal
148
+ carian
149
+ cham
150
+ cherokee
151
+ coptic
152
+ cypriot
153
+ cyrillic
154
+ devanagari
155
+ deseret
156
+ egyptian_hieroglyphs
157
+ ethiopic
158
+ georgian
159
+ glagolitic
160
+ gothic
161
+ greek
162
+ gujarati
163
+ gurmukhi
164
+ hangul
165
+ han
166
+ hanunoo
167
+ hebrew
168
+ hiragana
169
+ old_italic
170
+ javanese
171
+ kayah_li
172
+ katakana
173
+ kharoshthi
174
+ khmer
175
+ kannada
176
+ kaithi
177
+ tai_tham
178
+ lao
179
+ latin
180
+ lepcha
181
+ limbu
182
+ linear_b
183
+ lisu
184
+ lycian
185
+ lydian
186
+ malayalam
187
+ mongolian
188
+ meetei_mayek
189
+ myanmar
190
+ nko
191
+ ogham
192
+ ol_chiki
193
+ old_turkic
194
+ oriya
195
+ osmanya
196
+ phags_pa
197
+ inscriptional_pahlavi
198
+ phoenician
199
+ inscriptional_parthian
200
+ rejang
201
+ runic
202
+ samaritan
203
+ old_south_arabian
204
+ saurashtra
205
+ shavian
206
+ sinhala
207
+ sundanese
208
+ syloti_nagri
209
+ syriac
210
+ tagbanwa
211
+ tai_le
212
+ new_tai_lue
213
+ tamil
214
+ tai_viet
215
+ telugu
216
+ tifinagh
217
+ tagalog
218
+ thaana
219
+ thai
220
+ tibetan
221
+ ugaritic
222
+ vai
223
+ old_persian
224
+ cuneiform
225
+ yi
226
+ inherited
227
+ common
228
+ unknown
229
+ ]
230
+
231
+ Script_V1_9_3 = %i[
232
+ brahmi
233
+ batak
234
+ mandaic
235
+ ]
236
+
237
+ Script_V2_0_0 = %i[
238
+ chakma
239
+ meroitic_cursive
240
+ meroitic_hieroglyphs
241
+ miao
242
+ sharada
243
+ sora_sompeng
244
+ takri
245
+ ]
246
+
247
+ Script_V2_2_0 = %i[
248
+ caucasian_albanian
249
+ bassa_vah
250
+ duployan
251
+ elbasan
252
+ grantha
253
+ pahawh_hmong
254
+ khojki
255
+ linear_a
256
+ mahajani
257
+ manichaean
258
+ mende_kikakui
259
+ modi
260
+ mro
261
+ old_north_arabian
262
+ nabataean
263
+ palmyrene
264
+ pau_cin_hau
265
+ old_permic
266
+ psalter_pahlavi
267
+ siddham
268
+ khudawadi
269
+ tirhuta
270
+ warang_citi
271
+ ]
272
+
273
+ Script_V2_3_0 = %i[
274
+ ahom
275
+ anatolian_hieroglyphs
276
+ hatran
277
+ multani
278
+ old_hungarian
279
+ signwriting
280
+ ]
281
+
282
+ Script_V2_4_0 = %i[
283
+ adlam
284
+ bhaiksuki
285
+ marchen
286
+ newa
287
+ osage
288
+ tangut
289
+ ]
290
+
291
+ Script_V2_5_0 = %i[
292
+ masaram_gondi
293
+ nushu
294
+ soyombo
295
+ zanabazar_square
296
+ ]
297
+
298
+ Script_V2_6_0 = %i[
299
+ dogra
300
+ gunjala_gondi
301
+ hanifi_rohingya
302
+ makasar
303
+ medefaidrin
304
+ old_sogdian
305
+ sogdian
306
+ ]
307
+
308
+ Script_V2_6_2 = %i[
309
+ elymaic
310
+ nandinagari
311
+ nyiakeng_puachue_hmong
312
+ wancho
313
+ ]
314
+
315
+ Script_V3_1_0 = %i[
316
+ chorasmian
317
+ dives_akuru
318
+ khitan_small_script
319
+ yezidi
320
+ ]
321
+
322
+ Script_V3_2_0 = %i[
323
+ cypro_minoan
324
+ kawi
325
+ nag_mundari
326
+ old_uyghur
327
+ tangsa
328
+ toto
329
+ vithkuqi
330
+ ]
331
+
332
+ Script = all[:Script_V]
333
+
334
+ UnicodeBlock_V1_9_0 = %i[
335
+ in_alphabetic_presentation_forms
336
+ in_arabic
337
+ in_armenian
338
+ in_arrows
339
+ in_basic_latin
340
+ in_bengali
341
+ in_block_elements
342
+ in_bopomofo_extended
343
+ in_bopomofo
344
+ in_box_drawing
345
+ in_braille_patterns
346
+ in_buhid
347
+ in_cjk_compatibility_forms
348
+ in_cjk_compatibility_ideographs
349
+ in_cjk_compatibility
350
+ in_cjk_radicals_supplement
351
+ in_cjk_symbols_and_punctuation
352
+ in_cjk_unified_ideographs_extension_a
353
+ in_cjk_unified_ideographs
354
+ in_cherokee
355
+ in_combining_diacritical_marks_for_symbols
356
+ in_combining_diacritical_marks
357
+ in_combining_half_marks
358
+ in_control_pictures
359
+ in_currency_symbols
360
+ in_cyrillic_supplement
361
+ in_cyrillic
362
+ in_devanagari
363
+ in_dingbats
364
+ in_enclosed_alphanumerics
365
+ in_enclosed_cjk_letters_and_months
366
+ in_ethiopic
367
+ in_general_punctuation
368
+ in_geometric_shapes
369
+ in_georgian
370
+ in_greek_extended
371
+ in_greek_and_coptic
372
+ in_gujarati
373
+ in_gurmukhi
374
+ in_halfwidth_and_fullwidth_forms
375
+ in_hangul_compatibility_jamo
376
+ in_hangul_jamo
377
+ in_hangul_syllables
378
+ in_hanunoo
379
+ in_hebrew
380
+ in_high_private_use_surrogates
381
+ in_high_surrogates
382
+ in_hiragana
383
+ in_ipa_extensions
384
+ in_ideographic_description_characters
385
+ in_kanbun
386
+ in_kangxi_radicals
387
+ in_kannada
388
+ in_katakana_phonetic_extensions
389
+ in_katakana
390
+ in_khmer_symbols
391
+ in_khmer
392
+ in_lao
393
+ in_latin_extended_additional
394
+ in_letterlike_symbols
395
+ in_limbu
396
+ in_low_surrogates
397
+ in_malayalam
398
+ in_mathematical_operators
399
+ in_miscellaneous_symbols_and_arrows
400
+ in_miscellaneous_symbols
401
+ in_miscellaneous_technical
402
+ in_mongolian
403
+ in_myanmar
404
+ in_number_forms
405
+ in_ogham
406
+ in_optical_character_recognition
407
+ in_oriya
408
+ in_phonetic_extensions
409
+ in_private_use_area
410
+ in_runic
411
+ in_sinhala
412
+ in_small_form_variants
413
+ in_spacing_modifier_letters
414
+ in_specials
415
+ in_superscripts_and_subscripts
416
+ in_supplemental_mathematical_operators
417
+ in_syriac
418
+ in_tagalog
419
+ in_tagbanwa
420
+ in_tai_le
421
+ in_tamil
422
+ in_telugu
423
+ in_thaana
424
+ in_thai
425
+ in_tibetan
426
+ in_unified_canadian_aboriginal_syllabics
427
+ in_variation_selectors
428
+ in_yi_radicals
429
+ in_yi_syllables
430
+ in_yijing_hexagram_symbols
431
+ ]
432
+
433
+ UnicodeBlock_V2_0_0 = %i[
434
+ in_aegean_numbers
435
+ in_alchemical_symbols
436
+ in_ancient_greek_musical_notation
437
+ in_ancient_greek_numbers
438
+ in_ancient_symbols
439
+ in_arabic_extended_a
440
+ in_arabic_mathematical_alphabetic_symbols
441
+ in_arabic_presentation_forms_a
442
+ in_arabic_presentation_forms_b
443
+ in_arabic_supplement
444
+ in_avestan
445
+ in_balinese
446
+ in_bamum
447
+ in_bamum_supplement
448
+ in_batak
449
+ in_brahmi
450
+ in_buginese
451
+ in_byzantine_musical_symbols
452
+ in_cjk_compatibility_ideographs_supplement
453
+ in_cjk_strokes
454
+ in_cjk_unified_ideographs_extension_b
455
+ in_cjk_unified_ideographs_extension_c
456
+ in_cjk_unified_ideographs_extension_d
457
+ in_carian
458
+ in_chakma
459
+ in_cham
460
+ in_combining_diacritical_marks_supplement
461
+ in_common_indic_number_forms
462
+ in_coptic
463
+ in_counting_rod_numerals
464
+ in_cuneiform
465
+ in_cuneiform_numbers_and_punctuation
466
+ in_cypriot_syllabary
467
+ in_cyrillic_extended_a
468
+ in_cyrillic_extended_b
469
+ in_deseret
470
+ in_devanagari_extended
471
+ in_domino_tiles
472
+ in_egyptian_hieroglyphs
473
+ in_emoticons
474
+ in_enclosed_alphanumeric_supplement
475
+ in_enclosed_ideographic_supplement
476
+ in_ethiopic_extended
477
+ in_ethiopic_extended_a
478
+ in_ethiopic_supplement
479
+ in_georgian_supplement
480
+ in_glagolitic
481
+ in_gothic
482
+ in_hangul_jamo_extended_a
483
+ in_hangul_jamo_extended_b
484
+ in_imperial_aramaic
485
+ in_inscriptional_pahlavi
486
+ in_inscriptional_parthian
487
+ in_javanese
488
+ in_kaithi
489
+ in_kana_supplement
490
+ in_kayah_li
491
+ in_kharoshthi
492
+ in_latin_1_supplement
493
+ in_latin_extended_a
494
+ in_latin_extended_b
495
+ in_latin_extended_c
496
+ in_latin_extended_d
497
+ in_lepcha
498
+ in_linear_b_ideograms
499
+ in_linear_b_syllabary
500
+ in_lisu
501
+ in_lycian
502
+ in_lydian
503
+ in_mahjong_tiles
504
+ in_mandaic
505
+ in_mathematical_alphanumeric_symbols
506
+ in_meetei_mayek
507
+ in_meetei_mayek_extensions
508
+ in_meroitic_cursive
509
+ in_meroitic_hieroglyphs
510
+ in_miao
511
+ in_miscellaneous_mathematical_symbols_a
512
+ in_miscellaneous_mathematical_symbols_b
513
+ in_miscellaneous_symbols_and_pictographs
514
+ in_modifier_tone_letters
515
+ in_musical_symbols
516
+ in_myanmar_extended_a
517
+ in_nko
518
+ in_new_tai_lue
519
+ in_no_block
520
+ in_ol_chiki
521
+ in_old_italic
522
+ in_old_persian
523
+ in_old_south_arabian
524
+ in_old_turkic
525
+ in_osmanya
526
+ in_phags_pa
527
+ in_phaistos_disc
528
+ in_phoenician
529
+ in_phonetic_extensions_supplement
530
+ in_playing_cards
531
+ in_rejang
532
+ in_rumi_numeral_symbols
533
+ in_samaritan
534
+ in_saurashtra
535
+ in_sharada
536
+ in_shavian
537
+ in_sora_sompeng
538
+ in_sundanese
539
+ in_sundanese_supplement
540
+ in_supplemental_arrows_a
541
+ in_supplemental_arrows_b
542
+ in_supplemental_punctuation
543
+ in_supplementary_private_use_area_a
544
+ in_supplementary_private_use_area_b
545
+ in_syloti_nagri
546
+ in_tags
547
+ in_tai_tham
548
+ in_tai_viet
549
+ in_tai_xuan_jing_symbols
550
+ in_takri
551
+ in_tifinagh
552
+ in_transport_and_map_symbols
553
+ in_ugaritic
554
+ in_unified_canadian_aboriginal_syllabics_extended
555
+ in_vai
556
+ in_variation_selectors_supplement
557
+ in_vedic_extensions
558
+ in_vertical_forms
559
+ ]
560
+
561
+ UnicodeBlock_V2_2_0 = %i[
562
+ in_bassa_vah
563
+ in_caucasian_albanian
564
+ in_combining_diacritical_marks_extended
565
+ in_coptic_epact_numbers
566
+ in_duployan
567
+ in_elbasan
568
+ in_geometric_shapes_extended
569
+ in_grantha
570
+ in_khojki
571
+ in_khudawadi
572
+ in_latin_extended_e
573
+ in_linear_a
574
+ in_mahajani
575
+ in_manichaean
576
+ in_mende_kikakui
577
+ in_modi
578
+ in_mro
579
+ in_myanmar_extended_b
580
+ in_nabataean
581
+ in_old_north_arabian
582
+ in_old_permic
583
+ in_ornamental_dingbats
584
+ in_pahawh_hmong
585
+ in_palmyrene
586
+ in_pau_cin_hau
587
+ in_psalter_pahlavi
588
+ in_shorthand_format_controls
589
+ in_siddham
590
+ in_sinhala_archaic_numbers
591
+ in_supplemental_arrows_c
592
+ in_tirhuta
593
+ in_warang_citi
594
+ ]
595
+
596
+ UnicodeBlock_V2_3_0 = %i[
597
+ in_ahom
598
+ in_anatolian_hieroglyphs
599
+ in_cjk_unified_ideographs_extension_e
600
+ in_cherokee_supplement
601
+ in_early_dynastic_cuneiform
602
+ in_hatran
603
+ in_multani
604
+ in_old_hungarian
605
+ in_supplemental_symbols_and_pictographs
606
+ in_sutton_signwriting
607
+ ]
608
+
609
+ UnicodeBlock_V2_4_0 = %i[
610
+ in_adlam
611
+ in_bhaiksuki
612
+ in_cyrillic_extended_c
613
+ in_glagolitic_supplement
614
+ in_ideographic_symbols_and_punctuation
615
+ in_marchen
616
+ in_mongolian_supplement
617
+ in_newa
618
+ in_osage
619
+ in_tangut
620
+ in_tangut_components
621
+ ]
622
+
623
+ UnicodeBlock_V2_5_0 = %i[
624
+ in_cjk_unified_ideographs_extension_f
625
+ in_kana_extended_a
626
+ in_masaram_gondi
627
+ in_nushu
628
+ in_soyombo
629
+ in_syriac_supplement
630
+ in_zanabazar_square
631
+ ]
632
+
633
+ UnicodeBlock_V2_6_0 = %i[
634
+ in_chess_symbols
635
+ in_dogra
636
+ in_georgian_extended
637
+ in_gunjala_gondi
638
+ in_hanifi_rohingya
639
+ in_indic_siyaq_numbers
640
+ in_makasar
641
+ in_mayan_numerals
642
+ in_medefaidrin
643
+ in_old_sogdian
644
+ in_sogdian
645
+ ]
646
+
647
+ UnicodeBlock_V2_6_2 = %i[
648
+ in_egyptian_hieroglyph_format_controls
649
+ in_elymaic
650
+ in_nandinagari
651
+ in_nyiakeng_puachue_hmong
652
+ in_ottoman_siyaq_numbers
653
+ in_small_kana_extension
654
+ in_symbols_and_pictographs_extended_a
655
+ in_tamil_supplement
656
+ in_wancho
657
+ ]
658
+
659
+ UnicodeBlock_V3_1_0 = %i[
660
+ in_chorasmian
661
+ in_cjk_unified_ideographs_extension_g
662
+ in_dives_akuru
663
+ in_khitan_small_script
664
+ in_lisu_supplement
665
+ in_symbols_for_legacy_computing
666
+ in_tangut_supplement
667
+ in_yezidi
668
+ ]
669
+
670
+ UnicodeBlock_V3_2_0 = %i[
671
+ in_arabic_extended_b
672
+ in_arabic_extended_c
673
+ in_cjk_unified_ideographs_extension_h
674
+ in_cypro_minoan
675
+ in_cyrillic_extended_d
676
+ in_devanagari_extended_a
677
+ in_ethiopic_extended_b
678
+ in_kaktovik_numerals
679
+ in_kana_extended_b
680
+ in_kawi
681
+ in_latin_extended_f
682
+ in_latin_extended_g
683
+ in_nag_mundari
684
+ in_old_uyghur
685
+ in_tangsa
686
+ in_toto
687
+ in_unified_canadian_aboriginal_syllabics_extended_a
688
+ in_vithkuqi
689
+ in_znamenny_musical_notation
690
+ ]
691
+
692
+ UnicodeBlock = all[:UnicodeBlock_V]
693
+
694
+ Emoji_V2_5_0 = %i[
695
+ emoji
696
+ emoji_component
697
+ emoji_modifier
698
+ emoji_modifier_base
699
+ emoji_presentation
700
+ ]
701
+
702
+ Emoji_V2_6_0 = %i[
703
+ extended_pictographic
704
+ ]
705
+
706
+ Enumerated_V2_4_0 = %i[
707
+ grapheme_cluster_break=control
708
+ grapheme_cluster_break=cr
709
+ grapheme_cluster_break=extend
710
+ grapheme_cluster_break=l
711
+ grapheme_cluster_break=lf
712
+ grapheme_cluster_break=lv
713
+ grapheme_cluster_break=lvt
714
+ grapheme_cluster_break=prepend
715
+ grapheme_cluster_break=regional_indicator
716
+ grapheme_cluster_break=spacingmark
717
+ grapheme_cluster_break=t
718
+ grapheme_cluster_break=v
719
+ grapheme_cluster_break=zwj
720
+ ]
721
+
722
+ Enumerated = all[:Enumerated_V]
723
+
724
+ Emoji = all[:Emoji_V]
725
+
726
+ V1_9_0 = Category::All + POSIX + all[:V1_9_0]
727
+ V1_9_3 = all[:V1_9_3]
728
+ V2_0_0 = all[:V2_0_0]
729
+ V2_2_0 = all[:V2_2_0]
730
+ V2_3_0 = all[:V2_3_0]
731
+ V2_4_0 = all[:V2_4_0]
732
+ V2_5_0 = all[:V2_5_0]
733
+ V2_6_0 = all[:V2_6_0]
734
+ V2_6_2 = all[:V2_6_2]
735
+ V2_6_3 = all[:V2_6_3]
736
+ V3_1_0 = all[:V3_1_0]
737
+ V3_2_0 = all[:V3_2_0]
738
+
739
+ All = all[/^V\d+_\d+_\d+$/]
740
+
741
+ Type = :property
742
+ NonType = :nonproperty
743
+ end
744
+
745
+ Map[UnicodeProperty::Type] = UnicodeProperty::All
746
+ Map[UnicodeProperty::NonType] = UnicodeProperty::All
747
+
748
+ # alias for symmetry between token symbol and Token module name
749
+ Property = UnicodeProperty
750
+ end
751
+ end