regexp_parser 2.1.1 → 2.2.0

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