regexp_parser 2.8.2 → 2.8.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.
- checksums.yaml +4 -4
- data/lib/regexp_parser/scanner/scanner.rl +6 -5
- data/lib/regexp_parser/scanner.rb +6 -5
- data/lib/regexp_parser/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53bc2105c4601ec650c24172f48b4dfa4ffa356f84f4de2a58cca4429cff45a4
|
4
|
+
data.tar.gz: 3cb580ee3db70e9490b350722fcd63b77640cc1cbaed4c7555b192f9ddcc341b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcdf19c19bc62b11a3c8a22a75c54ef996635dfc3cbabf7512eee49090c0215b21c751a275923561a0be33bb0070e04ce57f49a5bc95bedb386afd763ba6d7ba
|
7
|
+
data.tar.gz: 5744e2e8baa4ecf52d87718a821c4ba69e8d2d1ced6deffca3224cf415a72714726f8465d50c0f504421fed5992c94519c3c8e0a0e7f79e24037a9fad5386347
|
@@ -364,6 +364,7 @@
|
|
364
364
|
conditional_expression := |*
|
365
365
|
group_lookup . ')' {
|
366
366
|
text = copy(data, ts, te-1)
|
367
|
+
text =~ /[^0]/ or raise ValidationError.for(:backref, 'condition', 'invalid ref ID')
|
367
368
|
emit(:conditional, :condition, text)
|
368
369
|
emit(:conditional, :condition_close, ')')
|
369
370
|
};
|
@@ -541,13 +542,13 @@
|
|
541
542
|
case text = copy(data, ts, te)
|
542
543
|
when /^\\k(.)[^0-9\-][^+\-]*['>]$/
|
543
544
|
emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
|
544
|
-
when /^\\k(.)[1-9]\d*['>]$/
|
545
|
+
when /^\\k(.)0*[1-9]\d*['>]$/
|
545
546
|
emit(:backref, $1 == '<' ? :number_ref_ab : :number_ref_sq, text)
|
546
|
-
when /^\\k(.)-[1-9]\d*['>]$/
|
547
|
+
when /^\\k(.)-0*[1-9]\d*['>]$/
|
547
548
|
emit(:backref, $1 == '<' ? :number_rel_ref_ab : :number_rel_ref_sq, text)
|
548
549
|
when /^\\k(.)[^0-9\-].*[+\-]\d+['>]$/
|
549
550
|
emit(:backref, $1 == '<' ? :name_recursion_ref_ab : :name_recursion_ref_sq, text)
|
550
|
-
when /^\\k(.)-?[1-9]\d*[+\-]\d+['>]$/
|
551
|
+
when /^\\k(.)-?0*[1-9]\d*[+\-]\d+['>]$/
|
551
552
|
emit(:backref, $1 == '<' ? :number_recursion_ref_ab : :number_recursion_ref_sq, text)
|
552
553
|
else
|
553
554
|
raise ValidationError.for(:backref, 'backreference', 'invalid ref ID')
|
@@ -560,9 +561,9 @@
|
|
560
561
|
case text = copy(data, ts, te)
|
561
562
|
when /^\\g(.)[^0-9+\-].*['>]$/
|
562
563
|
emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
|
563
|
-
when /^\\g(.)\d
|
564
|
+
when /^\\g(.)(?:0|0*[1-9]\d*)['>]$/
|
564
565
|
emit(:backref, $1 == '<' ? :number_call_ab : :number_call_sq, text)
|
565
|
-
when /^\\g(.)[+-]\d
|
566
|
+
when /^\\g(.)[+-]0*[1-9]\d*/
|
566
567
|
emit(:backref, $1 == '<' ? :number_rel_call_ab : :number_rel_call_sq, text)
|
567
568
|
else
|
568
569
|
raise ValidationError.for(:backref, 'subexpression call', 'invalid ref ID')
|
@@ -1570,6 +1570,7 @@ end
|
|
1570
1570
|
te = p+1
|
1571
1571
|
begin
|
1572
1572
|
text = copy(data, ts, te-1)
|
1573
|
+
text =~ /[^0]/ or raise ValidationError.for(:backref, 'condition', 'invalid ref ID')
|
1573
1574
|
emit(:conditional, :condition, text)
|
1574
1575
|
emit(:conditional, :condition_close, ')')
|
1575
1576
|
end
|
@@ -1750,13 +1751,13 @@ te = p+1
|
|
1750
1751
|
case text = copy(data, ts, te)
|
1751
1752
|
when /^\\k(.)[^0-9\-][^+\-]*['>]$/
|
1752
1753
|
emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
|
1753
|
-
when /^\\k(.)[1-9]\d*['>]$/
|
1754
|
+
when /^\\k(.)0*[1-9]\d*['>]$/
|
1754
1755
|
emit(:backref, $1 == '<' ? :number_ref_ab : :number_ref_sq, text)
|
1755
|
-
when /^\\k(.)-[1-9]\d*['>]$/
|
1756
|
+
when /^\\k(.)-0*[1-9]\d*['>]$/
|
1756
1757
|
emit(:backref, $1 == '<' ? :number_rel_ref_ab : :number_rel_ref_sq, text)
|
1757
1758
|
when /^\\k(.)[^0-9\-].*[+\-]\d+['>]$/
|
1758
1759
|
emit(:backref, $1 == '<' ? :name_recursion_ref_ab : :name_recursion_ref_sq, text)
|
1759
|
-
when /^\\k(.)-?[1-9]\d*[+\-]\d+['>]$/
|
1760
|
+
when /^\\k(.)-?0*[1-9]\d*[+\-]\d+['>]$/
|
1760
1761
|
emit(:backref, $1 == '<' ? :number_recursion_ref_ab : :number_recursion_ref_sq, text)
|
1761
1762
|
else
|
1762
1763
|
raise ValidationError.for(:backref, 'backreference', 'invalid ref ID')
|
@@ -1770,9 +1771,9 @@ te = p+1
|
|
1770
1771
|
case text = copy(data, ts, te)
|
1771
1772
|
when /^\\g(.)[^0-9+\-].*['>]$/
|
1772
1773
|
emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
|
1773
|
-
when /^\\g(.)\d
|
1774
|
+
when /^\\g(.)(?:0|0*[1-9]\d*)['>]$/
|
1774
1775
|
emit(:backref, $1 == '<' ? :number_call_ab : :number_call_sq, text)
|
1775
|
-
when /^\\g(.)[+-]\d
|
1776
|
+
when /^\\g(.)[+-]0*[1-9]\d*/
|
1776
1777
|
emit(:backref, $1 == '<' ? :number_rel_call_ab : :number_rel_call_sq, text)
|
1777
1778
|
else
|
1778
1779
|
raise ValidationError.for(:backref, 'subexpression call', 'invalid ref ID')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: regexp_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ammar Ali
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-12-04 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A library for tokenizing, lexing, and parsing Ruby regular expressions.
|
15
15
|
email:
|