regexp_parser 0.1.6 → 0.2.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.
- checksums.yaml +4 -4
- data/ChangeLog +57 -0
- data/Gemfile +8 -0
- data/LICENSE +1 -1
- data/README.md +225 -206
- data/Rakefile +9 -3
- data/lib/regexp_parser.rb +7 -11
- data/lib/regexp_parser/expression.rb +72 -14
- data/lib/regexp_parser/expression/classes/alternation.rb +3 -16
- data/lib/regexp_parser/expression/classes/conditional.rb +57 -0
- data/lib/regexp_parser/expression/classes/free_space.rb +17 -0
- data/lib/regexp_parser/expression/classes/keep.rb +7 -0
- data/lib/regexp_parser/expression/classes/set.rb +28 -7
- data/lib/regexp_parser/expression/methods/strfregexp.rb +113 -0
- data/lib/regexp_parser/expression/methods/tests.rb +116 -0
- data/lib/regexp_parser/expression/methods/traverse.rb +63 -0
- data/lib/regexp_parser/expression/quantifier.rb +10 -0
- data/lib/regexp_parser/expression/sequence.rb +45 -0
- data/lib/regexp_parser/expression/subexpression.rb +29 -1
- data/lib/regexp_parser/lexer.rb +31 -8
- data/lib/regexp_parser/parser.rb +118 -45
- data/lib/regexp_parser/scanner.rb +1745 -1404
- data/lib/regexp_parser/scanner/property.rl +57 -3
- data/lib/regexp_parser/scanner/scanner.rl +161 -34
- data/lib/regexp_parser/syntax.rb +12 -2
- data/lib/regexp_parser/syntax/ruby/1.9.1.rb +3 -3
- data/lib/regexp_parser/syntax/ruby/1.9.3.rb +2 -7
- data/lib/regexp_parser/syntax/ruby/2.0.0.rb +4 -1
- data/lib/regexp_parser/syntax/ruby/2.1.4.rb +13 -0
- data/lib/regexp_parser/syntax/ruby/2.1.5.rb +13 -0
- data/lib/regexp_parser/syntax/ruby/2.1.rb +2 -2
- data/lib/regexp_parser/syntax/ruby/2.2.0.rb +16 -0
- data/lib/regexp_parser/syntax/ruby/2.2.rb +8 -0
- data/lib/regexp_parser/syntax/tokens.rb +19 -2
- data/lib/regexp_parser/syntax/tokens/conditional.rb +22 -0
- data/lib/regexp_parser/syntax/tokens/keep.rb +14 -0
- data/lib/regexp_parser/syntax/tokens/unicode_property.rb +45 -4
- data/lib/regexp_parser/token.rb +23 -8
- data/lib/regexp_parser/version.rb +5 -0
- data/regexp_parser.gemspec +35 -0
- data/test/expression/test_all.rb +6 -1
- data/test/expression/test_base.rb +19 -0
- data/test/expression/test_conditionals.rb +114 -0
- data/test/expression/test_free_space.rb +33 -0
- data/test/expression/test_set.rb +61 -0
- data/test/expression/test_strfregexp.rb +214 -0
- data/test/expression/test_subexpression.rb +24 -0
- data/test/expression/test_tests.rb +99 -0
- data/test/expression/test_to_h.rb +48 -0
- data/test/expression/test_to_s.rb +46 -0
- data/test/expression/test_traverse.rb +164 -0
- data/test/lexer/test_all.rb +16 -3
- data/test/lexer/test_conditionals.rb +101 -0
- data/test/lexer/test_keep.rb +24 -0
- data/test/lexer/test_literals.rb +51 -51
- data/test/lexer/test_nesting.rb +62 -62
- data/test/lexer/test_refcalls.rb +18 -20
- data/test/parser/test_all.rb +18 -3
- data/test/parser/test_alternation.rb +11 -14
- data/test/parser/test_conditionals.rb +148 -0
- data/test/parser/test_escapes.rb +29 -5
- data/test/parser/test_free_space.rb +139 -0
- data/test/parser/test_groups.rb +40 -0
- data/test/parser/test_keep.rb +21 -0
- data/test/scanner/test_all.rb +8 -2
- data/test/scanner/test_conditionals.rb +166 -0
- data/test/scanner/test_escapes.rb +8 -5
- data/test/scanner/test_free_space.rb +133 -0
- data/test/scanner/test_groups.rb +28 -0
- data/test/scanner/test_keep.rb +33 -0
- data/test/scanner/test_properties.rb +4 -0
- data/test/scanner/test_scripts.rb +71 -1
- data/test/syntax/ruby/test_1.9.3.rb +2 -2
- data/test/syntax/ruby/test_2.0.0.rb +38 -0
- data/test/syntax/ruby/test_2.2.0.rb +38 -0
- data/test/syntax/ruby/test_all.rb +1 -8
- data/test/syntax/ruby/test_files.rb +104 -0
- data/test/test_all.rb +2 -1
- data/test/token/test_all.rb +2 -0
- data/test/token/test_token.rb +109 -0
- metadata +75 -21
- data/VERSION.yml +0 -5
- data/lib/regexp_parser/ctype.rb +0 -48
- data/test/syntax/ruby/test_2.x.rb +0 -46
data/VERSION.yml
DELETED
data/lib/regexp_parser/ctype.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
# defines character type constants (as arrays) and methods that test
|
2
|
-
# whether a given character belongs in one of them.
|
3
|
-
module CType
|
4
|
-
Digit = ('0'..'9').to_a.freeze
|
5
|
-
Lower = ('a'..'z').to_a.freeze
|
6
|
-
Upper = ('A'..'Z').to_a.freeze
|
7
|
-
|
8
|
-
Alpha = [Lower, Upper].flatten.freeze
|
9
|
-
Alnum = [Alpha, Digit].flatten.freeze
|
10
|
-
Word = [Alnum, '_'].flatten.freeze
|
11
|
-
|
12
|
-
Blank = [' ', "\t"].freeze
|
13
|
-
Space = [" ", "\t", "\r", "\n", "\v", "\f"].freeze
|
14
|
-
|
15
|
-
Cntrl = ( 0..31 ).map {|c| c.chr}.freeze
|
16
|
-
Graph = (33..126).map {|c| c.chr}.freeze
|
17
|
-
Print = (32..126).map {|c| c.chr}.freeze
|
18
|
-
ASCII = ( 0..127).map {|c| c.chr}.freeze
|
19
|
-
|
20
|
-
Punct = [
|
21
|
-
('!'..'/').to_a,
|
22
|
-
(':'..'@').to_a,
|
23
|
-
('['..'`').to_a,
|
24
|
-
('{'..'~').to_a
|
25
|
-
].flatten.freeze
|
26
|
-
|
27
|
-
XDigit = [
|
28
|
-
Digit,
|
29
|
-
('a'..'f').to_a,
|
30
|
-
('A'..'F').to_a
|
31
|
-
].flatten.freeze
|
32
|
-
|
33
|
-
def self.alnum?(c); Alnum.include?(c) end
|
34
|
-
def self.alpha?(c); Alpha.include?(c) end
|
35
|
-
def self.blank?(c); Blank.include?(c) end
|
36
|
-
def self.cntrl?(c); Cntrl.include?(c) end
|
37
|
-
def self.digit?(c); Digit.include?(c) end
|
38
|
-
def self.graph?(c); Graph.include?(c) end
|
39
|
-
def self.lower?(c); Lower.include?(c) end
|
40
|
-
def self.print?(c); Print.include?(c) end
|
41
|
-
def self.punct?(c); Punct.include?(c) end
|
42
|
-
def self.space?(c); Space.include?(c) end
|
43
|
-
def self.upper?(c); Upper.include?(c) end
|
44
|
-
def self.xdigit?(c); XDigit.include?(c) end
|
45
|
-
|
46
|
-
def self.word?(c); Word.include?(c) end
|
47
|
-
def self.ascii?(c); ASCII.include?(c) end
|
48
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require File.expand_path("../../../helpers", __FILE__)
|
2
|
-
|
3
|
-
class TestSyntaxRuby_V2x < Test::Unit::TestCase
|
4
|
-
|
5
|
-
# Since the only Regular expression change that was introduced in ruby 2.x
|
6
|
-
# (the conditional expressions) is not supportted yet, these tests only
|
7
|
-
# check that the syntax files have the correct inheritance (based off the
|
8
|
-
# last release) and load without error.
|
9
|
-
|
10
|
-
def test_syntax_file_2_0_0
|
11
|
-
syntax = Regexp::Syntax.new 'ruby/2.0.0'
|
12
|
-
|
13
|
-
assert_equal( true, syntax.kind_of?(Regexp::Syntax::Ruby::V19) )
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_syntax_file_2_0_alias
|
17
|
-
syntax = Regexp::Syntax.new 'ruby/2.0'
|
18
|
-
|
19
|
-
assert_equal( true, syntax.kind_of?(Regexp::Syntax::Ruby::V200) )
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_syntax_file_2_1_0
|
23
|
-
syntax = Regexp::Syntax.new 'ruby/2.1.0'
|
24
|
-
|
25
|
-
assert_equal( true, syntax.kind_of?(Regexp::Syntax::Ruby::V20) )
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_syntax_file_2_1_2
|
29
|
-
syntax = Regexp::Syntax.new 'ruby/2.1.2'
|
30
|
-
|
31
|
-
assert_equal( true, syntax.kind_of?(Regexp::Syntax::Ruby::V210) )
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_syntax_file_2_1_3
|
35
|
-
syntax = Regexp::Syntax.new 'ruby/2.1.3'
|
36
|
-
|
37
|
-
assert_equal( true, syntax.kind_of?(Regexp::Syntax::Ruby::V212) )
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_syntax_file_2_1_alias
|
41
|
-
syntax = Regexp::Syntax.new 'ruby/2.1'
|
42
|
-
|
43
|
-
assert_equal( true, syntax.kind_of?(Regexp::Syntax::Ruby::V213) )
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|