regexp_parser 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +242 -0
  3. data/Gemfile +1 -0
  4. data/README.md +21 -17
  5. data/Rakefile +31 -0
  6. data/lib/regexp_parser/expression.rb +11 -9
  7. data/lib/regexp_parser/expression/classes/alternation.rb +5 -28
  8. data/lib/regexp_parser/expression/classes/backref.rb +21 -16
  9. data/lib/regexp_parser/expression/classes/escape.rb +81 -10
  10. data/lib/regexp_parser/expression/classes/group.rb +20 -20
  11. data/lib/regexp_parser/expression/classes/{character_class.rb → posix_class.rb} +2 -2
  12. data/lib/regexp_parser/expression/classes/property.rb +6 -0
  13. data/lib/regexp_parser/expression/classes/set.rb +10 -93
  14. data/lib/regexp_parser/expression/classes/set/intersection.rb +9 -0
  15. data/lib/regexp_parser/expression/classes/set/range.rb +23 -0
  16. data/lib/regexp_parser/expression/methods/strfregexp.rb +6 -4
  17. data/lib/regexp_parser/expression/methods/tests.rb +4 -14
  18. data/lib/regexp_parser/expression/methods/traverse.rb +1 -1
  19. data/lib/regexp_parser/expression/quantifier.rb +3 -4
  20. data/lib/regexp_parser/expression/sequence_operation.rb +34 -0
  21. data/lib/regexp_parser/expression/subexpression.rb +6 -10
  22. data/lib/regexp_parser/lexer.rb +13 -17
  23. data/lib/regexp_parser/parser.rb +170 -116
  24. data/lib/regexp_parser/scanner.rb +952 -2431
  25. data/lib/regexp_parser/scanner/char_type.rl +31 -0
  26. data/lib/regexp_parser/scanner/properties/long.yml +561 -0
  27. data/lib/regexp_parser/scanner/properties/short.yml +225 -0
  28. data/lib/regexp_parser/scanner/property.rl +7 -806
  29. data/lib/regexp_parser/scanner/scanner.rl +112 -154
  30. data/lib/regexp_parser/syntax/base.rb +4 -4
  31. data/lib/regexp_parser/syntax/tokens.rb +1 -0
  32. data/lib/regexp_parser/syntax/tokens/backref.rb +2 -2
  33. data/lib/regexp_parser/syntax/tokens/character_set.rb +3 -38
  34. data/lib/regexp_parser/syntax/tokens/escape.rb +2 -3
  35. data/lib/regexp_parser/syntax/tokens/group.rb +5 -4
  36. data/lib/regexp_parser/syntax/tokens/{character_class.rb → posix_class.rb} +5 -5
  37. data/lib/regexp_parser/syntax/tokens/unicode_property.rb +519 -266
  38. data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -4
  39. data/lib/regexp_parser/syntax/versions/1.9.1.rb +4 -10
  40. data/lib/regexp_parser/syntax/versions/2.0.0.rb +0 -2
  41. data/lib/regexp_parser/syntax/versions/2.4.1.rb +1 -1
  42. data/lib/regexp_parser/version.rb +1 -1
  43. data/regexp_parser.gemspec +2 -1
  44. data/test/expression/test_base.rb +2 -1
  45. data/test/expression/test_clone.rb +0 -57
  46. data/test/expression/test_set.rb +31 -8
  47. data/test/expression/test_strfregexp.rb +13 -4
  48. data/test/expression/test_subexpression.rb +25 -0
  49. data/test/expression/test_traverse.rb +25 -25
  50. data/test/helpers.rb +1 -0
  51. data/test/lexer/test_all.rb +1 -1
  52. data/test/lexer/test_conditionals.rb +9 -7
  53. data/test/lexer/test_nesting.rb +39 -21
  54. data/test/lexer/test_refcalls.rb +4 -4
  55. data/test/parser/set/test_intersections.rb +127 -0
  56. data/test/parser/set/test_ranges.rb +111 -0
  57. data/test/parser/test_all.rb +4 -1
  58. data/test/parser/test_escapes.rb +41 -9
  59. data/test/parser/test_groups.rb +22 -3
  60. data/test/parser/test_posix_classes.rb +27 -0
  61. data/test/parser/test_properties.rb +17 -290
  62. data/test/parser/test_refcalls.rb +66 -26
  63. data/test/parser/test_sets.rb +132 -129
  64. data/test/scanner/test_all.rb +1 -7
  65. data/test/scanner/test_conditionals.rb +16 -16
  66. data/test/scanner/test_errors.rb +0 -30
  67. data/test/scanner/test_escapes.rb +1 -2
  68. data/test/scanner/test_free_space.rb +28 -28
  69. data/test/scanner/test_groups.rb +35 -35
  70. data/test/scanner/test_meta.rb +1 -1
  71. data/test/scanner/test_properties.rb +87 -114
  72. data/test/scanner/test_refcalls.rb +18 -18
  73. data/test/scanner/test_scripts.rb +19 -351
  74. data/test/scanner/test_sets.rb +87 -60
  75. data/test/scanner/test_unicode_blocks.rb +4 -105
  76. data/test/support/warning_extractor.rb +1 -1
  77. data/test/syntax/test_syntax.rb +7 -0
  78. data/test/syntax/versions/test_1.8.rb +2 -4
  79. metadata +17 -7
  80. data/ChangeLog +0 -325
  81. data/test/scanner/test_emojis.rb +0 -31
@@ -3,111 +3,10 @@ require File.expand_path("../../helpers", __FILE__)
3
3
  class ScannerUnicodeBlocks < Test::Unit::TestCase
4
4
 
5
5
  tests = {
6
- 'InAlphabetic_Presentation_Forms' => :block_inalphabetic_presentation_forms,
7
- 'InArabic_Presentation_Forms-A' => :block_inarabic_presentation_forms_a,
8
- 'InArabic_Presentation_Forms-B' => :block_inarabic_presentation_forms_b,
9
- 'InArabic' => :block_inarabic,
10
- 'InArmenian' => :block_inarmenian,
11
- 'InArrows' => :block_inarrows,
12
- 'InBasic_Latin' => :block_inbasic_latin,
13
- 'InBengali' => :block_inbengali,
14
- 'InBlock_Elements' => :block_inblock_elements,
15
- 'InBopomofo_Extended' => :block_inbopomofo_extended,
16
- 'InBopomofo' => :block_inbopomofo,
17
- 'InBox_Drawing' => :block_inbox_drawing,
18
- 'InBraille_Patterns' => :block_inbraille_patterns,
19
- 'InBuhid' => :block_inbuhid,
20
- 'InCJK_Compatibility_Forms' => :block_incjk_compatibility_forms,
21
- 'InCJK_Compatibility_Ideographs' => :block_incjk_compatibility_ideographs,
22
- 'InCJK_Compatibility' => :block_incjk_compatibility,
23
- 'InCJK_Radicals_Supplement' => :block_incjk_radicals_supplement,
24
- 'InCJK_Symbols_and_Punctuation' => :block_incjk_symbols_and_punctuation,
25
- 'InCJK_Unified_Ideographs_Extension_A' => :block_incjk_unified_ideographs_extension_a,
26
- 'InCJK_Unified_Ideographs' => :block_incjk_unified_ideographs,
27
- 'InCherokee' => :block_incherokee,
28
- 'InCombining_Diacritical_Marks_for_Symbols' => :block_incombining_diacritical_marks_for_symbols,
29
- 'InCombining_Diacritical_Marks' => :block_incombining_diacritical_marks,
30
- 'InCombining_Half_Marks' => :block_incombining_half_marks,
31
- 'InControl_Pictures' => :block_incontrol_pictures,
32
- 'InCurrency_Symbols' => :block_incurrency_symbols,
33
- 'InCyrillic_Supplement' => :block_incyrillic_supplement,
34
- 'InCyrillic' => :block_incyrillic,
35
- 'InDevanagari' => :block_indevanagari,
36
- 'InDingbats' => :block_indingbats,
37
- 'InEnclosed_Alphanumerics' => :block_inenclosed_alphanumerics,
38
- 'InEnclosed_CJK_Letters_and_Months' => :block_inenclosed_cjk_letters_and_months,
39
- 'InEthiopic' => :block_inethiopic,
40
- 'InGeneral_Punctuation' => :block_ingeneral_punctuation,
41
- 'InGeometric_Shapes' => :block_ingeometric_shapes,
42
- 'InGeorgian' => :block_ingeorgian,
43
- 'InGreek_Extended' => :block_ingreek_extended,
44
- 'InGreek_and_Coptic' => :block_ingreek_and_coptic,
45
- 'InGujarati' => :block_ingujarati,
46
- 'InGurmukhi' => :block_ingurmukhi,
47
- 'InHalfwidth_and_Fullwidth_Forms' => :block_inhalfwidth_and_fullwidth_forms,
48
- 'InHangul_Compatibility_Jamo' => :block_inhangul_compatibility_jamo,
49
- 'InHangul_Jamo' => :block_inhangul_jamo,
50
- 'InHangul_Syllables' => :block_inhangul_syllables,
51
- 'InHanunoo' => :block_inhanunoo,
52
- 'InHebrew' => :block_inhebrew,
53
- 'InHigh_Private_Use_Surrogates' => :block_inhigh_private_use_surrogates,
54
- 'InHigh_Surrogates' => :block_inhigh_surrogates,
55
- 'InHiragana' => :block_inhiragana,
56
- 'InIPA_Extensions' => :block_inipa_extensions,
57
- 'InIdeographic_Description_Characters' => :block_inideographic_description_characters,
58
- 'InKanbun' => :block_inkanbun,
59
- 'InKangxi_Radicals' => :block_inkangxi_radicals,
60
- 'InKannada' => :block_inkannada,
61
- 'InKatakana_Phonetic_Extensions' => :block_inkatakana_phonetic_extensions,
62
- 'InKatakana' => :block_inkatakana,
63
- 'InKhmer_Symbols' => :block_inkhmer_symbols,
64
- 'InKhmer' => :block_inkhmer,
65
- 'InLao' => :block_inlao,
66
- 'InLatin-1_Supplement' => :block_inlatin_1_supplement,
67
- 'InLatin_Extended-A' => :block_inlatin_extended_a,
68
- 'InLatin_Extended-B' => :block_inlatin_extended_b,
69
- 'InLatin_Extended_Additional' => :block_inlatin_extended_additional,
70
- 'InLetterlike_Symbols' => :block_inletterlike_symbols,
71
- 'InLimbu' => :block_inlimbu,
72
- 'InLow_Surrogates' => :block_inlow_surrogates,
73
- 'InMalayalam' => :block_inmalayalam,
74
- 'InMathematical_Operators' => :block_inmathematical_operators,
75
- 'InMiscellaneous_Mathematical_Symbols-A' => :block_inmiscellaneous_mathematical_symbols_a,
76
- 'InMiscellaneous_Mathematical_Symbols-B' => :block_inmiscellaneous_mathematical_symbols_b,
77
- 'InMiscellaneous_Symbols_and_Arrows' => :block_inmiscellaneous_symbols_and_arrows,
78
- 'InMiscellaneous_Symbols' => :block_inmiscellaneous_symbols,
79
- 'InMiscellaneous_Technical' => :block_inmiscellaneous_technical,
80
- 'InMongolian' => :block_inmongolian,
81
- 'InMyanmar' => :block_inmyanmar,
82
- 'InNumber_Forms' => :block_innumber_forms,
83
- 'InOgham' => :block_inogham,
84
- 'InOptical_Character_Recognition' => :block_inoptical_character_recognition,
85
- 'InOriya' => :block_inoriya,
86
- 'InPhonetic_Extensions' => :block_inphonetic_extensions,
87
- 'InPrivate_Use_Area' => :block_inprivate_use_area,
88
- 'InRunic' => :block_inrunic,
89
- 'InSinhala' => :block_insinhala,
90
- 'InSmall_Form_Variants' => :block_insmall_form_variants,
91
- 'InSpacing_Modifier_Letters' => :block_inspacing_modifier_letters,
92
- 'InSpecials' => :block_inspecials,
93
- 'InSuperscripts_and_Subscripts' => :block_insuperscripts_and_subscripts,
94
- 'InSupplemental_Arrows-A' => :block_insupplemental_arrows_a,
95
- 'InSupplemental_Arrows-B' => :block_insupplemental_arrows_b,
96
- 'InSupplemental_Mathematical_Operators' => :block_insupplemental_mathematical_operators,
97
- 'InSyriac' => :block_insyriac,
98
- 'InTagalog' => :block_intagalog,
99
- 'InTagbanwa' => :block_intagbanwa,
100
- 'InTai_Le' => :block_intai_le,
101
- 'InTamil' => :block_intamil,
102
- 'InTelugu' => :block_intelugu,
103
- 'InThaana' => :block_inthaana,
104
- 'InThai' => :block_inthai,
105
- 'InTibetan' => :block_intibetan,
106
- 'InUnified_Canadian_Aboriginal_Syllabics' => :block_inunified_canadian_aboriginal_syllabics,
107
- 'InVariation_Selectors' => :block_invariation_selectors,
108
- 'InYi_Radicals' => :block_inyi_radicals,
109
- 'InYi_Syllables' => :block_inyi_syllables,
110
- 'InYijing_Hexagram_Symbols' => :block_inyijing_hexagram_symbols
6
+ 'InArabic' => :in_arabic,
7
+ 'InCJK_Unified_Ideographs_Extension_A' => :in_cjk_unified_ideographs_extension_a,
8
+ 'In Letterlike Symbols' => :in_letterlike_symbols,
9
+ 'InMiscellaneous_Mathematical_Symbols-A' => :in_miscellaneous_mathematical_symbols_a,
111
10
  }
112
11
 
113
12
  tests.each_with_index do |(property, token), count|
@@ -49,7 +49,7 @@ module RegexpParserTest
49
49
  return super if PATTERN !~ message
50
50
 
51
51
  warning = message.chomp
52
- @warnings << warning if @whitelist.none?(&warning.method(:end_with?))
52
+ @warnings << warning if @whitelist.none?(&warning.method(:include?))
53
53
 
54
54
  self
55
55
  end
@@ -13,6 +13,13 @@ class TestSyntax < Test::Unit::TestCase
13
13
  Regexp::Syntax.new('ruby/1.9.3')
14
14
  end
15
15
 
16
+ def test_syntax_new_any
17
+ assert_instance_of Regexp::Syntax::Any,
18
+ Regexp::Syntax.new('any')
19
+ assert_instance_of Regexp::Syntax::Any,
20
+ Regexp::Syntax.new('*')
21
+ end
22
+
16
23
  def test_syntax_not_implemented
17
24
  assert_raise( Regexp::Syntax::NotImplementedError ) {
18
25
  RP.parse('\p{alpha}', 'ruby/1.8')
@@ -12,7 +12,7 @@ class TestSyntaxV1_8 < Test::Unit::TestCase
12
12
  assertion: [Assertion::Lookahead].flatten,
13
13
  backref: [:number],
14
14
  escape: [Escape::All].flatten,
15
- group: [Group::All].flatten,
15
+ group: [Group::V1_8_6].flatten,
16
16
  quantifier: [
17
17
  Quantifier::Greedy + Quantifier::Reluctant +
18
18
  Quantifier::Interval + Quantifier::IntervalReluctant
@@ -28,9 +28,7 @@ class TestSyntaxV1_8 < Test::Unit::TestCase
28
28
 
29
29
  quantifier: [
30
30
  Quantifier::Possessive
31
- ].flatten,
32
-
33
- subset: nil
31
+ ].flatten
34
32
  },
35
33
  }
36
34
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regexp_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ammar Ali
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-29 00:00:00.000000000 Z
11
+ date: 2018-09-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A library for tokenizing, lexing, and parsing Ruby regular expressions.
14
14
  email:
@@ -17,7 +17,7 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
- - ChangeLog
20
+ - CHANGELOG.md
21
21
  - Gemfile
22
22
  - LICENSE
23
23
  - README.md
@@ -27,26 +27,32 @@ files:
27
27
  - lib/regexp_parser/expression/classes/alternation.rb
28
28
  - lib/regexp_parser/expression/classes/anchor.rb
29
29
  - lib/regexp_parser/expression/classes/backref.rb
30
- - lib/regexp_parser/expression/classes/character_class.rb
31
30
  - lib/regexp_parser/expression/classes/conditional.rb
32
31
  - lib/regexp_parser/expression/classes/escape.rb
33
32
  - lib/regexp_parser/expression/classes/free_space.rb
34
33
  - lib/regexp_parser/expression/classes/group.rb
35
34
  - lib/regexp_parser/expression/classes/keep.rb
36
35
  - lib/regexp_parser/expression/classes/literal.rb
36
+ - lib/regexp_parser/expression/classes/posix_class.rb
37
37
  - lib/regexp_parser/expression/classes/property.rb
38
38
  - lib/regexp_parser/expression/classes/root.rb
39
39
  - lib/regexp_parser/expression/classes/set.rb
40
+ - lib/regexp_parser/expression/classes/set/intersection.rb
41
+ - lib/regexp_parser/expression/classes/set/range.rb
40
42
  - lib/regexp_parser/expression/classes/type.rb
41
43
  - lib/regexp_parser/expression/methods/strfregexp.rb
42
44
  - lib/regexp_parser/expression/methods/tests.rb
43
45
  - lib/regexp_parser/expression/methods/traverse.rb
44
46
  - lib/regexp_parser/expression/quantifier.rb
45
47
  - lib/regexp_parser/expression/sequence.rb
48
+ - lib/regexp_parser/expression/sequence_operation.rb
46
49
  - lib/regexp_parser/expression/subexpression.rb
47
50
  - lib/regexp_parser/lexer.rb
48
51
  - lib/regexp_parser/parser.rb
49
52
  - lib/regexp_parser/scanner.rb
53
+ - lib/regexp_parser/scanner/char_type.rl
54
+ - lib/regexp_parser/scanner/properties/long.yml
55
+ - lib/regexp_parser/scanner/properties/short.yml
50
56
  - lib/regexp_parser/scanner/property.rl
51
57
  - lib/regexp_parser/scanner/scanner.rl
52
58
  - lib/regexp_parser/syntax.rb
@@ -56,7 +62,6 @@ files:
56
62
  - lib/regexp_parser/syntax/tokens/anchor.rb
57
63
  - lib/regexp_parser/syntax/tokens/assertion.rb
58
64
  - lib/regexp_parser/syntax/tokens/backref.rb
59
- - lib/regexp_parser/syntax/tokens/character_class.rb
60
65
  - lib/regexp_parser/syntax/tokens/character_set.rb
61
66
  - lib/regexp_parser/syntax/tokens/character_type.rb
62
67
  - lib/regexp_parser/syntax/tokens/conditional.rb
@@ -64,6 +69,7 @@ files:
64
69
  - lib/regexp_parser/syntax/tokens/group.rb
65
70
  - lib/regexp_parser/syntax/tokens/keep.rb
66
71
  - lib/regexp_parser/syntax/tokens/meta.rb
72
+ - lib/regexp_parser/syntax/tokens/posix_class.rb
67
73
  - lib/regexp_parser/syntax/tokens/quantifier.rb
68
74
  - lib/regexp_parser/syntax/tokens/unicode_property.rb
69
75
  - lib/regexp_parser/syntax/version_lookup.rb
@@ -99,6 +105,8 @@ files:
99
105
  - test/lexer/test_literals.rb
100
106
  - test/lexer/test_nesting.rb
101
107
  - test/lexer/test_refcalls.rb
108
+ - test/parser/set/test_intersections.rb
109
+ - test/parser/set/test_ranges.rb
102
110
  - test/parser/test_all.rb
103
111
  - test/parser/test_alternation.rb
104
112
  - test/parser/test_anchors.rb
@@ -108,6 +116,7 @@ files:
108
116
  - test/parser/test_free_space.rb
109
117
  - test/parser/test_groups.rb
110
118
  - test/parser/test_keep.rb
119
+ - test/parser/test_posix_classes.rb
111
120
  - test/parser/test_properties.rb
112
121
  - test/parser/test_quantifiers.rb
113
122
  - test/parser/test_refcalls.rb
@@ -116,7 +125,6 @@ files:
116
125
  - test/scanner/test_all.rb
117
126
  - test/scanner/test_anchors.rb
118
127
  - test/scanner/test_conditionals.rb
119
- - test/scanner/test_emojis.rb
120
128
  - test/scanner/test_errors.rb
121
129
  - test/scanner/test_escapes.rb
122
130
  - test/scanner/test_free_space.rb
@@ -191,11 +199,14 @@ test_files:
191
199
  - test/parser/test_free_space.rb
192
200
  - test/parser/test_anchors.rb
193
201
  - test/parser/test_escapes.rb
202
+ - test/parser/test_posix_classes.rb
194
203
  - test/parser/test_quantifiers.rb
195
204
  - test/parser/test_keep.rb
196
205
  - test/parser/test_conditionals.rb
197
206
  - test/parser/test_errors.rb
198
207
  - test/parser/test_refcalls.rb
208
+ - test/parser/set/test_intersections.rb
209
+ - test/parser/set/test_ranges.rb
199
210
  - test/parser/test_all.rb
200
211
  - test/support/disable_autotest.rb
201
212
  - test/support/warning_extractor.rb
@@ -225,7 +236,6 @@ test_files:
225
236
  - test/scanner/test_sets.rb
226
237
  - test/scanner/test_properties.rb
227
238
  - test/scanner/test_scripts.rb
228
- - test/scanner/test_emojis.rb
229
239
  - test/scanner/test_types.rb
230
240
  - test/scanner/test_groups.rb
231
241
  - test/scanner/test_meta.rb
data/ChangeLog DELETED
@@ -1,325 +0,0 @@
1
- Sun Apr 29 2018 Janosch Müller <janosch84@gmail.com>
2
-
3
- * Changed handling of Ruby versions (PR #53)
4
- - New Ruby versions are now supported by default
5
- - Some deep-lying APIs have changed, which should not affect most users:
6
- - `Regexp::Syntax::VERSIONS` is gone
7
- - Syntax version names have changed from `Regexp::Syntax::Ruby::Vnnn`
8
- to `Regexp::Syntax::Vn_n_n`
9
- - Syntax version classes for Ruby versions without regex feature changes
10
- are no longer predefined and are now only created on demand / lazily
11
- - `Regexp::Syntax::supported?` returns true for any argument >= 1.8.6
12
- * Fixed some use cases of Expression methods #strfregexp and #to_h (@e738107)
13
- * Added full signature support to collection methods of Expressions (@aa7c55a)
14
- * Bumped version to 0.5.0
15
-
16
- Tue Apr 4 2018 ammarabuali@gmail.com <ammarabuali@gmail.com>
17
-
18
- * Added ruby version files for 2.2.10 and 2.3.7
19
- * Bumped version to 0.4.13
20
-
21
- Fri Mar 30 2018 Janosch Müller <janosch84@gmail.com>
22
-
23
- * Added ruby version files for 2.4.4 and 2.5.1
24
- * Bumped version to 0.4.12
25
-
26
- Sun Mar 4 2018 Janosch Müller <janosch84@gmail.com>
27
-
28
- * Fixed UnknownSyntaxNameError introduced in v0.4.10 if
29
- the gems parent dir tree included a 'ruby' dir
30
- * Bumped version to 0.4.11
31
-
32
- Sun Mar 4 2018 Janosch Müller <janosch84@gmail.com>
33
-
34
- * Added ruby version file for 2.6.0
35
- * Added support for Emoji properties (available in Ruby since 2.5.0)
36
- * Added support for XPosixPunct and Regional_Indicator properties
37
- * Fixed parsing of Unicode 6.0 and 7.0 script properties
38
- * Fixed parsing of the special Assigned property
39
- * Fixed scanning of InCyrillic_Supplement property
40
- * Bumped version to 0.4.10
41
-
42
- Mon Dec 25 2017 Ammar Ali <ammarabuali@gmail.com>
43
-
44
- * Added ruby version file for 2.5.0
45
- * Bumped version to 0.4.9
46
-
47
- Mon Dec 18 2017 Janosch Müller <janosch84@gmail.com>
48
-
49
- * Added ruby version files for 2.2.9, 2.3.6, and 2.4.3
50
- * Bumped version to 0.4.8
51
-
52
- Sun Oct 15 2017 Janosch Müller <janosch84@gmail.com>
53
-
54
- * Fixed a thread safety issue (issue #45)
55
- * Some public class methods that were only reliable for
56
- internal use are now private instance methods (PR #46)
57
- * Improved the usefulness of Expression#options (issue #43) -
58
- #options and derived methods such as #i?, #m? and #x? are now
59
- defined for all Expressions that are affected by such flags.
60
- * Fixed scanning of whitespace following (?x) (commit 5c94bd2)
61
- * Fixed a Parser bug where the #number attribute of traditional
62
- numerical backreferences was not set correctly (commit 851b620)
63
- * Bumped version to 0.4.7
64
-
65
- Mon Sep 18 2017 Janosch Müller <janosch84@gmail.com>
66
-
67
- * Added Parser support for hex escapes in sets (PR #36)
68
- * Added Parser support for octal escapes (PR #37)
69
- * Added support for cluster types \R and \X (PR #38)
70
- * Added support for more metacontrol notations (PR #39)
71
- * Bumped version to 0.4.6
72
-
73
- Sun Sep 17 2017 Ammar Ali <ammarabuali@gmail.com>
74
-
75
- * Thanks to Janosch Müller (https://github.com/janosch-x):
76
- - Support ruby 2.2.7 (PR #42)
77
- * Added ruby version files for 2.2.8, 2.3.5, and 2.4.2
78
- * Bumped version to 0.4.5
79
-
80
- Mon Jul 10 2017 Ammar Ali <ammarabuali@gmail.com>
81
-
82
- * Thanks to Janosch Müller (https://github.com/janosch-x):
83
- - Add support for new absence operator (PR #33)
84
- * Thanks to Bartek Bułat (https://github.com/barthez):
85
- - Add support for Ruby 2.3.4 version (PR #40)
86
- * Bumped version to 0.4.4
87
-
88
- Fri Mar 24 2017 Ammar Ali <ammarabuali@gmail.com>
89
-
90
- * Added ruby version file for 2.4.1
91
- * Bumped version to 0.4.3
92
-
93
- Tue Jan 10 2017 Ammar Ali <ammarabuali@gmail.com>
94
-
95
- * Thanks to Janosch Müller (https://github.com/janosch-x):
96
- - Support ruby 2.4 (PR #30)
97
- * Bumped version to 0.4.2
98
-
99
- Sun Dec 4 2016 Ammar Ali <ammarabuali@gmail.com>
100
-
101
- * Thanks to Janosch Müller (https://github.com/janosch-x):
102
- - Improve codepoint handling (PR #27)
103
-
104
- Tue Nov 22 2016 Ammar Ali <ammarabuali@gmail.com>
105
-
106
- * Updated ruby version file for 2.3.3
107
- * Bumped version to 0.4.1
108
-
109
- Sun Nov 20 2016 Ammar Ali <ammarabuali@gmail.com>
110
-
111
- * Added Syntax.supported? method
112
- * Updated ruby versions for latest releases; 2.1.10, 2.2.6, and 2.3.2
113
- * Bumped version to 0.4.0
114
-
115
- Wed Jun 8 2016 Ammar Ali <ammarabuali@gmail.com>
116
-
117
- * Thanks to John Backus (https://github.com/backus):
118
- - Remove warnings (PR #26)
119
- * Bumped version to 0.3.6
120
-
121
- Mon May 30 2016 Ammar Ali <ammarabuali@gmail.com>
122
-
123
- * Thanks to John Backus (https://github.com/backus):
124
- - Fix parsing of /\xFF/n (hex:escape) (PR #24)
125
- * Bumped version to 0.3.5
126
-
127
- Wed May 25 2016 Ammar Ali <ammarabuali@gmail.com>
128
-
129
- * Thanks to John Backus (https://github.com/backus):
130
- - Fix warnings (PR #19)
131
- * Thanks to Dana Scheider (https://github.com/danascheider):
132
- - Correct error in README (PR #20)
133
- * Fixed mistyped \h and \H character types (issue #21)
134
- * Added ancestry syntax files for latest rubies (issue #22)
135
- * Bumped version to 0.3.4
136
-
137
- Tue Apr 26 2016 Ammar Ali <ammarabuali@gmail.com>
138
-
139
- * Thanks to John Backus (https://github.com/backus):
140
- - Fixed scanning of zero length comments (PR #12)
141
- - Fixed missing escape:codepoint_list syntax token (PR #14)
142
- - Fixed to_s for modified interval quantifiers (PR #17)
143
- * Added a note about MRI implementation quirks to Scanner section
144
- * Bumped version to 0.3.3
145
-
146
- Fri Jan 1 2016 Ammar Ali <ammarabuali@gmail.com>
147
-
148
- * Updated ruby versions for latest releases; 2.1.8, 2.2.4, and 2.3.0
149
- * Fixed class name for UnknownSyntaxNameError exception
150
- * Bumped version to 0.3.2
151
-
152
- Sat Aug 29 2015 Ammar Ali <ammarabuali@gmail.com>
153
-
154
- * Updated ruby versions for latest releases; 2.1.7, 2.2.3
155
-
156
- Sun Aug 6 2015 Ammar Ali <ammarabuali@gmail.com>
157
-
158
- * Added UnicodeBlocks support to the parser.
159
-
160
- Mon Aug 3 2015 Garen Torikian <gjtorikian@gmail.com>
161
-
162
- * Added UnicodeBlocks support to the scanner.
163
-
164
- Sat Apr 18 14:38:12 2015 Ammar Ali <ammarabuali@gmail.com>
165
-
166
- * Updated ruby versions for latest releases.
167
-
168
- Wed Dec 3 05:21:27 2014 Ammar Ali <ammarabuali@gmail.com>
169
-
170
- * Added expand_members method to CharacterSet, returns traditional
171
- or unicode property forms of shothands (\d, \W, \s, etc.)
172
-
173
- Tue Dec 2 02:42:39 2014 Ammar Ali <ammarabuali@gmail.com>
174
-
175
- * Improved meaning and output of %t and %T in strfregexp.
176
-
177
- * Added syntax versions for ruby 2.1.4 and 2.1.5 and updated
178
- latest 2.1 version.
179
-
180
- Mon Dec 1 15:52:31 2014 Ammar Ali <ammarabuali@gmail.com>
181
-
182
- * Added to_h methods to Expression, Subexpression, and Quantifier.
183
-
184
- Tue Oct 21 19:14:03 2014 Ammar Ali <ammarabuali@gmail.com>
185
-
186
- * Added traversal methods; traverse, each_expression, and map.
187
-
188
- * Added token/type test methods; type?, is?, and one_of?
189
-
190
- * Added printing method strfregexp, inspired by strftime.
191
-
192
- Mon Oct 20 01:03:46 2014 Ammar Ali <ammarabuali@gmail.com>
193
-
194
- * Added scanning and parsing of free spacing (x mode) expressions.
195
-
196
- * Improved handling of inline options (?mixdau:...)
197
-
198
- Fri Oct 18 14:09:38 2014 Ammar Ali <ammarabuali@gmail.com>
199
-
200
- * Added conditional expressions. Ruby 2.0.
201
-
202
- * Added keep (\K) markers. Ruby 2.0.
203
-
204
- * Added d, a, and u options. Ruby 2.0.
205
-
206
- * Added missing meta sequences to the parser. They were supported
207
- by the scanner only.
208
-
209
- * Renamed Lexer's method to lex, added an alias to the old name (scan)
210
-
211
- * Use #map instead of #each to run the block in Lexer.lex.
212
-
213
- * Replaced VERSION.yml file with a constant.
214
-
215
- * Updated README
216
-
217
- Fri Oct 10 11:49:38 2014 Ammar Ali <ammarabuali@gmail.com>
218
-
219
- * Update tokens and scanner with new additions in Unicode 7.0.
220
-
221
- Mon Oct 6 04:30:24 2014 Ammar Ali <ammarabuali@gmail.com>
222
-
223
- * Released version 0.1.6
224
-
225
- Sun Oct 5 19:58:17 2014 Ammar Ali <ammarabuali@gmail.com>
226
-
227
- * Fixed test and gem building rake tasks and extracted the gem
228
- specification from the Rakefile into a .gemspec file.
229
-
230
- * Added syntax files for missing ruby 2.x versions. These do not add
231
- extra syntax support, they just make the gem work with the newer
232
- ruby versions.
233
-
234
- * Added .travis.yml to project root.
235
-
236
- * README:
237
-
238
- * Removed note purporting runtime support for ruby 1.8.6.
239
-
240
- * Added a section identifying the main unsupported syntax features.
241
-
242
- * Added sections for Testing and Building
243
-
244
- * Added badges for gem version, Travis CI, and code climate.
245
-
246
- Sat Oct 4 13:46:24 2014 Ammar Ali <ammarabuali@gmail.com>
247
-
248
- * Updated README, fixing broken examples, and converting it from
249
- a rdoc file to Github's flavor of Markdown.
250
-
251
- * Fixed a parser bug where an alternation sequence that contained
252
- nested expressions was incorrectly being appended to the parent
253
- expression when the nesting was exited. e.g. in /a|(b)c/, c was
254
- appended to the root.
255
-
256
- Wed May 7 5:52:37 2014 Ammar Ali <ammarabuali@gmail.com>
257
-
258
- * Fixed a bug where character types were not being correctly scanned
259
- within character sets. e.g. in [\d], two tokens were scanned; one
260
- for the backslash '\' and one for the 'd'
261
-
262
- Tue Jan 14 13:14:24 2014 Ammar Ali <ammarabuali@gmail.com>
263
-
264
- * Released version 0.1.5, with a correct ChangeLog.
265
-
266
- Tue Jan 14 13:14:24 2014 Ammar Ali <ammarabuali@gmail.com>
267
-
268
- * Released version 0.1.4, after accidental yank of last version.
269
-
270
- Tue Jan 14 13:05:13 2014 Ammar Ali <ammarabuali@gmail.com>
271
-
272
- * Released version 0.1.3, adds missing VERSION.yml file.
273
-
274
- Tue Jan 14 12:41:52 2014 Ammar Ali <ammarabuali@gmail.com>
275
-
276
- * Released version 0.1.2
277
-
278
- * Added syntax stubs for ruby versions 2.0 and 2.1
279
-
280
- Sat Feb 9 12:27:13 2010 Ammar Ali <ammarabuali@gmail.com>
281
-
282
- * Added clone methods for deep copying expressions.
283
-
284
- * Added optional format argument for to_s on expressions to return the
285
- text of the expression with (:full, the default) or without (:base)
286
- its quantifier.
287
-
288
- * Renamed the :beginning_of_line and :end_of_line tokens to :bol and
289
- :eol.
290
-
291
- * Fixed a bug where alternations with more than two alternatives and
292
- one of them ending in a group were being incorrectly nested.
293
-
294
- * Improved EOF handling in general and especially from sequences like
295
- hex and control escapes.
296
-
297
- * Fixed a bug where named groups with an empty name would return a
298
- blank token [].
299
-
300
- * Fixed a bug where member of a parent set where being added to its
301
- last subset.
302
-
303
- * Various code cleanups in scanner.rl
304
-
305
- * Fixed a few mutable string bugs by calling dup on the originals.
306
-
307
- Tue Nov 23 11:35:56 2010 Ammar Ali <ammarabuali@gmail.com>
308
-
309
- * Made ruby 1.8.6 the base for all 1.8 syntax, and the 1.8 name a pointer
310
- to the latest (1.8.7 at this time)
311
-
312
- * Removed look-behind assertions (positive and negative) from 1.8 syntax
313
-
314
- * Added control (\cc and \C-c) and meta (\M-c) escapes to 1.8 syntax
315
-
316
- * The default syntax is now the one of the running ruby version in both the
317
- lexer and the parser.
318
-
319
- Sun Nov 21 03:36:42 2010 Ammar Ali <ammarabuali@gmail.com>
320
-
321
- * Released version 0.1.0
322
-
323
- Sat Nov 20 16:40:10 2010 Ammar Ali <ammarabuali@gmail.com>
324
-
325
- * Initial version bump to 0.1.0