regexp_parser 1.7.0 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +364 -22
  3. data/Gemfile +8 -2
  4. data/LICENSE +1 -1
  5. data/README.md +124 -88
  6. data/Rakefile +6 -70
  7. data/lib/regexp_parser/error.rb +4 -0
  8. data/lib/regexp_parser/expression/base.rb +76 -0
  9. data/lib/regexp_parser/expression/classes/alternation.rb +1 -1
  10. data/lib/regexp_parser/expression/classes/anchor.rb +0 -2
  11. data/lib/regexp_parser/expression/classes/{backref.rb → backreference.rb} +22 -2
  12. data/lib/regexp_parser/expression/classes/{set → character_set}/range.rb +4 -8
  13. data/lib/regexp_parser/expression/classes/{set.rb → character_set.rb} +3 -4
  14. data/lib/regexp_parser/expression/classes/{type.rb → character_type.rb} +0 -2
  15. data/lib/regexp_parser/expression/classes/conditional.rb +11 -5
  16. data/lib/regexp_parser/expression/classes/{escape.rb → escape_sequence.rb} +15 -7
  17. data/lib/regexp_parser/expression/classes/free_space.rb +5 -5
  18. data/lib/regexp_parser/expression/classes/group.rb +28 -15
  19. data/lib/regexp_parser/expression/classes/keep.rb +2 -0
  20. data/lib/regexp_parser/expression/classes/literal.rb +1 -5
  21. data/lib/regexp_parser/expression/classes/posix_class.rb +5 -1
  22. data/lib/regexp_parser/expression/classes/root.rb +4 -19
  23. data/lib/regexp_parser/expression/classes/{property.rb → unicode_property.rb} +5 -3
  24. data/lib/regexp_parser/expression/methods/construct.rb +41 -0
  25. data/lib/regexp_parser/expression/methods/human_name.rb +43 -0
  26. data/lib/regexp_parser/expression/methods/match_length.rb +11 -7
  27. data/lib/regexp_parser/expression/methods/parts.rb +23 -0
  28. data/lib/regexp_parser/expression/methods/printing.rb +26 -0
  29. data/lib/regexp_parser/expression/methods/strfregexp.rb +1 -1
  30. data/lib/regexp_parser/expression/methods/tests.rb +47 -1
  31. data/lib/regexp_parser/expression/methods/traverse.rb +34 -18
  32. data/lib/regexp_parser/expression/quantifier.rb +57 -17
  33. data/lib/regexp_parser/expression/sequence.rb +11 -47
  34. data/lib/regexp_parser/expression/sequence_operation.rb +4 -9
  35. data/lib/regexp_parser/expression/shared.rb +111 -0
  36. data/lib/regexp_parser/expression/subexpression.rb +27 -19
  37. data/lib/regexp_parser/expression.rb +14 -141
  38. data/lib/regexp_parser/lexer.rb +83 -41
  39. data/lib/regexp_parser/parser.rb +371 -429
  40. data/lib/regexp_parser/scanner/char_type.rl +11 -11
  41. data/lib/regexp_parser/scanner/errors/premature_end_error.rb +8 -0
  42. data/lib/regexp_parser/scanner/errors/scanner_error.rb +6 -0
  43. data/lib/regexp_parser/scanner/errors/validation_error.rb +63 -0
  44. data/lib/regexp_parser/scanner/properties/long.csv +633 -0
  45. data/lib/regexp_parser/scanner/properties/short.csv +248 -0
  46. data/lib/regexp_parser/scanner/property.rl +4 -4
  47. data/lib/regexp_parser/scanner/scanner.rl +295 -368
  48. data/lib/regexp_parser/scanner.rb +1405 -1674
  49. data/lib/regexp_parser/syntax/any.rb +2 -7
  50. data/lib/regexp_parser/syntax/base.rb +92 -67
  51. data/lib/regexp_parser/syntax/token/anchor.rb +15 -0
  52. data/lib/regexp_parser/syntax/{tokens → token}/assertion.rb +2 -2
  53. data/lib/regexp_parser/syntax/token/backreference.rb +33 -0
  54. data/lib/regexp_parser/syntax/token/character_set.rb +16 -0
  55. data/lib/regexp_parser/syntax/{tokens → token}/character_type.rb +3 -3
  56. data/lib/regexp_parser/syntax/{tokens → token}/conditional.rb +3 -3
  57. data/lib/regexp_parser/syntax/token/escape.rb +33 -0
  58. data/lib/regexp_parser/syntax/{tokens → token}/group.rb +7 -7
  59. data/lib/regexp_parser/syntax/{tokens → token}/keep.rb +1 -1
  60. data/lib/regexp_parser/syntax/token/meta.rb +20 -0
  61. data/lib/regexp_parser/syntax/{tokens → token}/posix_class.rb +3 -3
  62. data/lib/regexp_parser/syntax/token/quantifier.rb +35 -0
  63. data/lib/regexp_parser/syntax/token/unicode_property.rb +733 -0
  64. data/lib/regexp_parser/syntax/token/virtual.rb +11 -0
  65. data/lib/regexp_parser/syntax/token.rb +45 -0
  66. data/lib/regexp_parser/syntax/version_lookup.rb +19 -36
  67. data/lib/regexp_parser/syntax/versions/1.8.6.rb +13 -20
  68. data/lib/regexp_parser/syntax/versions/1.9.1.rb +10 -17
  69. data/lib/regexp_parser/syntax/versions/1.9.3.rb +3 -10
  70. data/lib/regexp_parser/syntax/versions/2.0.0.rb +8 -15
  71. data/lib/regexp_parser/syntax/versions/2.2.0.rb +3 -9
  72. data/lib/regexp_parser/syntax/versions/2.3.0.rb +3 -9
  73. data/lib/regexp_parser/syntax/versions/2.4.0.rb +3 -9
  74. data/lib/regexp_parser/syntax/versions/2.4.1.rb +2 -8
  75. data/lib/regexp_parser/syntax/versions/2.5.0.rb +3 -9
  76. data/lib/regexp_parser/syntax/versions/2.6.0.rb +3 -9
  77. data/lib/regexp_parser/syntax/versions/2.6.2.rb +3 -9
  78. data/lib/regexp_parser/syntax/versions/2.6.3.rb +3 -9
  79. data/lib/regexp_parser/syntax/versions/3.1.0.rb +4 -0
  80. data/lib/regexp_parser/syntax/versions/3.2.0.rb +4 -0
  81. data/lib/regexp_parser/syntax/versions.rb +3 -1
  82. data/lib/regexp_parser/syntax.rb +8 -6
  83. data/lib/regexp_parser/token.rb +9 -20
  84. data/lib/regexp_parser/version.rb +1 -1
  85. data/lib/regexp_parser.rb +0 -2
  86. data/regexp_parser.gemspec +20 -22
  87. metadata +49 -166
  88. data/lib/regexp_parser/scanner/properties/long.yml +0 -594
  89. data/lib/regexp_parser/scanner/properties/short.yml +0 -237
  90. data/lib/regexp_parser/syntax/tokens/anchor.rb +0 -15
  91. data/lib/regexp_parser/syntax/tokens/backref.rb +0 -24
  92. data/lib/regexp_parser/syntax/tokens/character_set.rb +0 -13
  93. data/lib/regexp_parser/syntax/tokens/escape.rb +0 -30
  94. data/lib/regexp_parser/syntax/tokens/meta.rb +0 -13
  95. data/lib/regexp_parser/syntax/tokens/quantifier.rb +0 -35
  96. data/lib/regexp_parser/syntax/tokens/unicode_property.rb +0 -675
  97. data/lib/regexp_parser/syntax/tokens.rb +0 -45
  98. data/spec/expression/base_spec.rb +0 -94
  99. data/spec/expression/clone_spec.rb +0 -120
  100. data/spec/expression/conditional_spec.rb +0 -89
  101. data/spec/expression/free_space_spec.rb +0 -27
  102. data/spec/expression/methods/match_length_spec.rb +0 -161
  103. data/spec/expression/methods/match_spec.rb +0 -25
  104. data/spec/expression/methods/strfregexp_spec.rb +0 -224
  105. data/spec/expression/methods/tests_spec.rb +0 -99
  106. data/spec/expression/methods/traverse_spec.rb +0 -161
  107. data/spec/expression/options_spec.rb +0 -128
  108. data/spec/expression/root_spec.rb +0 -9
  109. data/spec/expression/sequence_spec.rb +0 -9
  110. data/spec/expression/subexpression_spec.rb +0 -50
  111. data/spec/expression/to_h_spec.rb +0 -26
  112. data/spec/expression/to_s_spec.rb +0 -100
  113. data/spec/lexer/all_spec.rb +0 -22
  114. data/spec/lexer/conditionals_spec.rb +0 -53
  115. data/spec/lexer/escapes_spec.rb +0 -14
  116. data/spec/lexer/keep_spec.rb +0 -10
  117. data/spec/lexer/literals_spec.rb +0 -89
  118. data/spec/lexer/nesting_spec.rb +0 -99
  119. data/spec/lexer/refcalls_spec.rb +0 -55
  120. data/spec/parser/all_spec.rb +0 -43
  121. data/spec/parser/alternation_spec.rb +0 -88
  122. data/spec/parser/anchors_spec.rb +0 -17
  123. data/spec/parser/conditionals_spec.rb +0 -179
  124. data/spec/parser/errors_spec.rb +0 -30
  125. data/spec/parser/escapes_spec.rb +0 -121
  126. data/spec/parser/free_space_spec.rb +0 -130
  127. data/spec/parser/groups_spec.rb +0 -108
  128. data/spec/parser/keep_spec.rb +0 -6
  129. data/spec/parser/posix_classes_spec.rb +0 -8
  130. data/spec/parser/properties_spec.rb +0 -115
  131. data/spec/parser/quantifiers_spec.rb +0 -51
  132. data/spec/parser/refcalls_spec.rb +0 -112
  133. data/spec/parser/set/intersections_spec.rb +0 -127
  134. data/spec/parser/set/ranges_spec.rb +0 -111
  135. data/spec/parser/sets_spec.rb +0 -178
  136. data/spec/parser/types_spec.rb +0 -18
  137. data/spec/scanner/all_spec.rb +0 -18
  138. data/spec/scanner/anchors_spec.rb +0 -21
  139. data/spec/scanner/conditionals_spec.rb +0 -128
  140. data/spec/scanner/errors_spec.rb +0 -68
  141. data/spec/scanner/escapes_spec.rb +0 -53
  142. data/spec/scanner/free_space_spec.rb +0 -133
  143. data/spec/scanner/groups_spec.rb +0 -52
  144. data/spec/scanner/keep_spec.rb +0 -10
  145. data/spec/scanner/literals_spec.rb +0 -49
  146. data/spec/scanner/meta_spec.rb +0 -18
  147. data/spec/scanner/properties_spec.rb +0 -64
  148. data/spec/scanner/quantifiers_spec.rb +0 -20
  149. data/spec/scanner/refcalls_spec.rb +0 -36
  150. data/spec/scanner/sets_spec.rb +0 -102
  151. data/spec/scanner/types_spec.rb +0 -14
  152. data/spec/spec_helper.rb +0 -15
  153. data/spec/support/runner.rb +0 -42
  154. data/spec/support/shared_examples.rb +0 -77
  155. data/spec/support/warning_extractor.rb +0 -60
  156. data/spec/syntax/syntax_spec.rb +0 -48
  157. data/spec/syntax/syntax_token_map_spec.rb +0 -23
  158. data/spec/syntax/versions/1.8.6_spec.rb +0 -17
  159. data/spec/syntax/versions/1.9.1_spec.rb +0 -10
  160. data/spec/syntax/versions/1.9.3_spec.rb +0 -9
  161. data/spec/syntax/versions/2.0.0_spec.rb +0 -13
  162. data/spec/syntax/versions/2.2.0_spec.rb +0 -9
  163. data/spec/syntax/versions/aliases_spec.rb +0 -37
  164. data/spec/token/token_spec.rb +0 -85
  165. /data/lib/regexp_parser/expression/classes/{set → character_set}/intersection.rb +0 -0
@@ -0,0 +1,733 @@
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
+ Emoji = all[:Emoji_V]
707
+
708
+ V1_9_0 = Category::All + POSIX + all[:V1_9_0]
709
+ V1_9_3 = all[:V1_9_3]
710
+ V2_0_0 = all[:V2_0_0]
711
+ V2_2_0 = all[:V2_2_0]
712
+ V2_3_0 = all[:V2_3_0]
713
+ V2_4_0 = all[:V2_4_0]
714
+ V2_5_0 = all[:V2_5_0]
715
+ V2_6_0 = all[:V2_6_0]
716
+ V2_6_2 = all[:V2_6_2]
717
+ V2_6_3 = all[:V2_6_3]
718
+ V3_1_0 = all[:V3_1_0]
719
+ V3_2_0 = all[:V3_2_0]
720
+
721
+ All = all[/^V\d+_\d+_\d+$/]
722
+
723
+ Type = :property
724
+ NonType = :nonproperty
725
+ end
726
+
727
+ Map[UnicodeProperty::Type] = UnicodeProperty::All
728
+ Map[UnicodeProperty::NonType] = UnicodeProperty::All
729
+
730
+ # alias for symmetry between token symbol and Token module name
731
+ Property = UnicodeProperty
732
+ end
733
+ end