regexp_parser 2.8.1 → 2.11.3

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -4
  3. data/LICENSE +1 -1
  4. data/Rakefile +5 -3
  5. data/lib/regexp_parser/error.rb +2 -0
  6. data/lib/regexp_parser/expression/base.rb +2 -0
  7. data/lib/regexp_parser/expression/classes/alternation.rb +2 -0
  8. data/lib/regexp_parser/expression/classes/anchor.rb +2 -0
  9. data/lib/regexp_parser/expression/classes/backreference.rb +3 -20
  10. data/lib/regexp_parser/expression/classes/character_set/intersection.rb +2 -0
  11. data/lib/regexp_parser/expression/classes/character_set/range.rb +2 -0
  12. data/lib/regexp_parser/expression/classes/character_set.rb +3 -4
  13. data/lib/regexp_parser/expression/classes/character_type.rb +2 -0
  14. data/lib/regexp_parser/expression/classes/conditional.rb +2 -14
  15. data/lib/regexp_parser/expression/classes/escape_sequence.rb +26 -95
  16. data/lib/regexp_parser/expression/classes/free_space.rb +2 -0
  17. data/lib/regexp_parser/expression/classes/group.rb +2 -0
  18. data/lib/regexp_parser/expression/classes/keep.rb +3 -1
  19. data/lib/regexp_parser/expression/classes/literal.rb +2 -0
  20. data/lib/regexp_parser/expression/classes/posix_class.rb +2 -4
  21. data/lib/regexp_parser/expression/classes/root.rb +2 -0
  22. data/lib/regexp_parser/expression/classes/unicode_property.rb +8 -9
  23. data/lib/regexp_parser/expression/methods/construct.rb +2 -0
  24. data/lib/regexp_parser/expression/methods/escape_sequence_char.rb +7 -0
  25. data/lib/regexp_parser/expression/methods/escape_sequence_codepoint.rb +76 -0
  26. data/lib/regexp_parser/expression/methods/human_name.rb +2 -0
  27. data/lib/regexp_parser/expression/methods/match.rb +2 -0
  28. data/lib/regexp_parser/expression/methods/match_length.rb +2 -0
  29. data/lib/regexp_parser/expression/methods/negative.rb +22 -0
  30. data/lib/regexp_parser/expression/methods/options.rb +2 -0
  31. data/lib/regexp_parser/expression/methods/parts.rb +2 -0
  32. data/lib/regexp_parser/expression/methods/printing.rb +2 -0
  33. data/lib/regexp_parser/expression/methods/referenced_expressions.rb +30 -0
  34. data/lib/regexp_parser/expression/methods/strfregexp.rb +2 -0
  35. data/lib/regexp_parser/expression/methods/tests.rb +2 -0
  36. data/lib/regexp_parser/expression/methods/traverse.rb +2 -0
  37. data/lib/regexp_parser/expression/quantifier.rb +3 -1
  38. data/lib/regexp_parser/expression/sequence.rb +2 -0
  39. data/lib/regexp_parser/expression/sequence_operation.rb +2 -0
  40. data/lib/regexp_parser/expression/shared.rb +6 -3
  41. data/lib/regexp_parser/expression/subexpression.rb +2 -0
  42. data/lib/regexp_parser/expression.rb +39 -33
  43. data/lib/regexp_parser/lexer.rb +2 -0
  44. data/lib/regexp_parser/parser.rb +16 -9
  45. data/lib/regexp_parser/scanner/errors/premature_end_error.rb +2 -0
  46. data/lib/regexp_parser/scanner/errors/scanner_error.rb +3 -1
  47. data/lib/regexp_parser/scanner/errors/validation_error.rb +2 -0
  48. data/lib/regexp_parser/scanner/properties/long.csv +37 -0
  49. data/lib/regexp_parser/scanner/properties/short.csv +9 -0
  50. data/lib/regexp_parser/scanner/scanner.rl +62 -18
  51. data/lib/regexp_parser/scanner.rb +1041 -936
  52. data/lib/regexp_parser/syntax/any.rb +2 -0
  53. data/lib/regexp_parser/syntax/base.rb +2 -0
  54. data/lib/regexp_parser/syntax/token/anchor.rb +5 -3
  55. data/lib/regexp_parser/syntax/token/assertion.rb +4 -2
  56. data/lib/regexp_parser/syntax/token/backreference.rb +8 -6
  57. data/lib/regexp_parser/syntax/token/character_set.rb +3 -1
  58. data/lib/regexp_parser/syntax/token/character_type.rb +6 -4
  59. data/lib/regexp_parser/syntax/token/conditional.rb +5 -3
  60. data/lib/regexp_parser/syntax/token/escape.rb +9 -7
  61. data/lib/regexp_parser/syntax/token/group.rb +8 -6
  62. data/lib/regexp_parser/syntax/token/keep.rb +3 -1
  63. data/lib/regexp_parser/syntax/token/meta.rb +4 -2
  64. data/lib/regexp_parser/syntax/token/posix_class.rb +4 -2
  65. data/lib/regexp_parser/syntax/token/quantifier.rb +8 -6
  66. data/lib/regexp_parser/syntax/token/unicode_property.rb +79 -46
  67. data/lib/regexp_parser/syntax/token/virtual.rb +5 -3
  68. data/lib/regexp_parser/syntax/token.rb +18 -16
  69. data/lib/regexp_parser/syntax/version_lookup.rb +4 -2
  70. data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -0
  71. data/lib/regexp_parser/syntax/versions/1.9.1.rb +2 -0
  72. data/lib/regexp_parser/syntax/versions/1.9.3.rb +2 -0
  73. data/lib/regexp_parser/syntax/versions/2.0.0.rb +2 -0
  74. data/lib/regexp_parser/syntax/versions/2.2.0.rb +2 -0
  75. data/lib/regexp_parser/syntax/versions/2.3.0.rb +2 -0
  76. data/lib/regexp_parser/syntax/versions/2.4.0.rb +2 -0
  77. data/lib/regexp_parser/syntax/versions/2.4.1.rb +2 -0
  78. data/lib/regexp_parser/syntax/versions/2.5.0.rb +2 -0
  79. data/lib/regexp_parser/syntax/versions/2.6.0.rb +2 -0
  80. data/lib/regexp_parser/syntax/versions/2.6.2.rb +2 -0
  81. data/lib/regexp_parser/syntax/versions/2.6.3.rb +2 -0
  82. data/lib/regexp_parser/syntax/versions/3.1.0.rb +2 -0
  83. data/lib/regexp_parser/syntax/versions/3.2.0.rb +2 -0
  84. data/lib/regexp_parser/syntax/versions/3.5.0.rb +4 -0
  85. data/lib/regexp_parser/syntax/versions.rb +3 -1
  86. data/lib/regexp_parser/syntax.rb +3 -1
  87. data/lib/regexp_parser/token.rb +2 -0
  88. data/lib/regexp_parser/version.rb +3 -1
  89. data/lib/regexp_parser.rb +8 -6
  90. data/regexp_parser.gemspec +7 -5
  91. metadata +12 -11
  92. data/CHANGELOG.md +0 -691
  93. data/README.md +0 -506
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V1_8_6 < Regexp::Syntax::Base
2
4
  implements :anchor, Anchor::All
3
5
  implements :assertion, Assertion::Lookahead
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V1_9_1 < Regexp::Syntax::V1_8_6
2
4
  implements :assertion, Assertion::Lookbehind
3
5
  implements :backref, Backreference::V1_9_1 + SubexpressionCall::All
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V1_9_3 < Regexp::Syntax::V1_9_1
2
4
  implements :property, UnicodeProperty::V1_9_3
3
5
  implements :nonproperty, UnicodeProperty::V1_9_3
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_0_0 < Regexp::Syntax::V1_9_3
2
4
  implements :keep, Keep::All
3
5
  implements :conditional, Conditional::All
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_2_0 < Regexp::Syntax::V2_0_0
2
4
  implements :property, UnicodeProperty::V2_2_0
3
5
  implements :nonproperty, UnicodeProperty::V2_2_0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_3_0 < Regexp::Syntax::V2_2_0
2
4
  implements :property, UnicodeProperty::V2_3_0
3
5
  implements :nonproperty, UnicodeProperty::V2_3_0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_4_0 < Regexp::Syntax::V2_3_0
2
4
  implements :property, UnicodeProperty::V2_4_0
3
5
  implements :nonproperty, UnicodeProperty::V2_4_0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_4_1 < Regexp::Syntax::V2_4_0
2
4
  implements :group, Group::V2_4_1
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_5_0 < Regexp::Syntax::V2_4_1
2
4
  implements :property, UnicodeProperty::V2_5_0
3
5
  implements :nonproperty, UnicodeProperty::V2_5_0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_6_0 < Regexp::Syntax::V2_5_0
2
4
  implements :property, UnicodeProperty::V2_6_0
3
5
  implements :nonproperty, UnicodeProperty::V2_6_0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_6_2 < Regexp::Syntax::V2_6_0
2
4
  implements :property, UnicodeProperty::V2_6_2
3
5
  implements :nonproperty, UnicodeProperty::V2_6_2
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V2_6_3 < Regexp::Syntax::V2_6_2
2
4
  implements :property, UnicodeProperty::V2_6_3
3
5
  implements :nonproperty, UnicodeProperty::V2_6_3
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V3_1_0 < Regexp::Syntax::V2_6_3
2
4
  implements :property, UnicodeProperty::V3_1_0
3
5
  implements :nonproperty, UnicodeProperty::V3_1_0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp::Syntax::V3_2_0 < Regexp::Syntax::V3_1_0
2
4
  implements :property, UnicodeProperty::V3_2_0
3
5
  implements :nonproperty, UnicodeProperty::V3_2_0
@@ -0,0 +1,4 @@
1
+ class Regexp::Syntax::V3_5_0 < Regexp::Syntax::V3_2_0
2
+ implements :property, UnicodeProperty::V3_5_0
3
+ implements :nonproperty, UnicodeProperty::V3_5_0
4
+ end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Ruby 1.x is no longer a supported runtime,
2
4
  # but its regex features are still recognized.
3
5
  #
4
6
  # Aliases for the latest patch version are provided as 'ruby/n.n',
5
7
  # e.g. 'ruby/1.9' refers to Ruby v1.9.3.
6
- Dir[File.expand_path('../versions/*.rb', __FILE__)].sort.each { |f| require f }
8
+ Dir[File.expand_path('../versions/*.rb', __FILE__)].sort.each { |f| require_relative f }
7
9
 
8
10
  Regexp::Syntax::CURRENT = Regexp::Syntax.for("ruby/#{RUBY_VERSION}")
@@ -1,4 +1,6 @@
1
- require 'regexp_parser/error'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'error'
2
4
 
3
5
  module Regexp::Syntax
4
6
  class SyntaxError < Regexp::Parser::Error; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp
2
4
  TOKEN_KEYS = %i[
3
5
  type
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Regexp
2
4
  class Parser
3
- VERSION = '2.8.1'
5
+ VERSION = '2.11.3'
4
6
  end
5
7
  end
data/lib/regexp_parser.rb CHANGED
@@ -1,6 +1,8 @@
1
- require 'regexp_parser/version'
2
- require 'regexp_parser/token'
3
- require 'regexp_parser/scanner'
4
- require 'regexp_parser/syntax'
5
- require 'regexp_parser/lexer'
6
- require 'regexp_parser/parser'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'regexp_parser/version'
4
+ require_relative 'regexp_parser/token'
5
+ require_relative 'regexp_parser/scanner'
6
+ require_relative 'regexp_parser/syntax'
7
+ require_relative 'regexp_parser/lexer'
8
+ require_relative 'regexp_parser/parser'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  $:.unshift File.join(File.dirname(__FILE__), 'lib')
2
4
 
3
5
  require 'regexp_parser/version'
@@ -16,17 +18,17 @@ Gem::Specification.new do |spec|
16
18
  spec.metadata['source_code_uri'] = spec.homepage
17
19
  spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki"
18
20
 
19
- spec.authors = ['Ammar Ali']
20
- spec.email = ['ammarabuali@gmail.com']
21
+ spec.metadata['rubygems_mfa_required'] = 'true'
22
+
23
+ spec.authors = ['Ammar Ali', 'Janosch Müller']
24
+ spec.email = ['ammarabuali@gmail.com', 'janosch84@gmail.com']
21
25
 
22
26
  spec.license = 'MIT'
23
27
 
24
28
  spec.require_paths = ['lib']
25
29
 
26
30
  spec.files = Dir.glob('lib/**/*.{csv,rb,rl}') +
27
- %w[Gemfile Rakefile LICENSE README.md CHANGELOG.md regexp_parser.gemspec]
28
-
29
- spec.rdoc_options = ["--inline-source", "--charset=UTF-8"]
31
+ %w[Gemfile Rakefile LICENSE regexp_parser.gemspec]
30
32
 
31
33
  spec.platform = Gem::Platform::RUBY
32
34
 
metadata CHANGED
@@ -1,26 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regexp_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.1
4
+ version: 2.11.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ammar Ali
8
- autorequire:
8
+ - Janosch Müller
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-10 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A library for tokenizing, lexing, and parsing Ruby regular expressions.
14
14
  email:
15
15
  - ammarabuali@gmail.com
16
+ - janosch84@gmail.com
16
17
  executables: []
17
18
  extensions: []
18
19
  extra_rdoc_files: []
19
20
  files:
20
- - CHANGELOG.md
21
21
  - Gemfile
22
22
  - LICENSE
23
- - README.md
24
23
  - Rakefile
25
24
  - lib/regexp_parser.rb
26
25
  - lib/regexp_parser/error.rb
@@ -43,12 +42,16 @@ files:
43
42
  - lib/regexp_parser/expression/classes/root.rb
44
43
  - lib/regexp_parser/expression/classes/unicode_property.rb
45
44
  - lib/regexp_parser/expression/methods/construct.rb
45
+ - lib/regexp_parser/expression/methods/escape_sequence_char.rb
46
+ - lib/regexp_parser/expression/methods/escape_sequence_codepoint.rb
46
47
  - lib/regexp_parser/expression/methods/human_name.rb
47
48
  - lib/regexp_parser/expression/methods/match.rb
48
49
  - lib/regexp_parser/expression/methods/match_length.rb
50
+ - lib/regexp_parser/expression/methods/negative.rb
49
51
  - lib/regexp_parser/expression/methods/options.rb
50
52
  - lib/regexp_parser/expression/methods/parts.rb
51
53
  - lib/regexp_parser/expression/methods/printing.rb
54
+ - lib/regexp_parser/expression/methods/referenced_expressions.rb
52
55
  - lib/regexp_parser/expression/methods/strfregexp.rb
53
56
  - lib/regexp_parser/expression/methods/tests.rb
54
57
  - lib/regexp_parser/expression/methods/traverse.rb
@@ -102,6 +105,7 @@ files:
102
105
  - lib/regexp_parser/syntax/versions/2.6.3.rb
103
106
  - lib/regexp_parser/syntax/versions/3.1.0.rb
104
107
  - lib/regexp_parser/syntax/versions/3.2.0.rb
108
+ - lib/regexp_parser/syntax/versions/3.5.0.rb
105
109
  - lib/regexp_parser/token.rb
106
110
  - lib/regexp_parser/version.rb
107
111
  - regexp_parser.gemspec
@@ -114,10 +118,8 @@ metadata:
114
118
  homepage_uri: https://github.com/ammar/regexp_parser
115
119
  source_code_uri: https://github.com/ammar/regexp_parser
116
120
  wiki_uri: https://github.com/ammar/regexp_parser/wiki
117
- post_install_message:
118
- rdoc_options:
119
- - "--inline-source"
120
- - "--charset=UTF-8"
121
+ rubygems_mfa_required: 'true'
122
+ rdoc_options: []
121
123
  require_paths:
122
124
  - lib
123
125
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -131,8 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
133
  - !ruby/object:Gem::Version
132
134
  version: '0'
133
135
  requirements: []
134
- rubygems_version: 3.4.10
135
- signing_key:
136
+ rubygems_version: 3.6.7
136
137
  specification_version: 4
137
138
  summary: Scanner, lexer, parser for ruby's regular expressions
138
139
  test_files: []