ruby_parser 3.7.0 → 3.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.txt +11 -0
- data/lib/ruby_lexer.rb +18 -1
- data/lib/ruby_lexer.rex +1 -3
- data/lib/ruby_lexer.rex.rb +2 -4
- data/lib/ruby_parser_extras.rb +1 -1
- data/test/test_ruby_parser.rb +8 -0
- metadata +16 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54985a83895c86ee90364ad54e7325fb977b40d4
|
4
|
+
data.tar.gz: e5d03de51047979f876706e1da128242fdfa331b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b420efaa47bb45a7069312912f537fc33079d3b67f0618c6d3b62adc9a8cfb9b22ca236d1aadb2e12a1d4743624871c9f35152083436a1755073047994d7064b
|
7
|
+
data.tar.gz: c794ff4f9b6906ebaccfdbc0f5b7fd912ada0976360813b2841eade89131375eeb8e0880b05c27e8cc40abca74388b06e772e1ccabcad6944e88d5fc502153fa
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
=== 3.7.1 / 2015-08-06
|
2
|
+
|
3
|
+
* 1 minor enhancement:
|
4
|
+
|
5
|
+
* Improved understandability of lexing postfix symbols.
|
6
|
+
|
7
|
+
* 2 bug fixes:
|
8
|
+
|
9
|
+
* Fixed timeout caused by regexp backtracking bug w/ long strings in 2.2 parser. (presidentbeef)
|
10
|
+
* Rename DEBUG env toggle to RB_LINENO_DEBUG. (tenderlove)
|
11
|
+
|
1
12
|
=== 3.7.0 / 2015-05-28
|
2
13
|
|
3
14
|
* 2 major enhancements:
|
data/lib/ruby_lexer.rb
CHANGED
@@ -662,6 +662,23 @@ class RubyLexer
|
|
662
662
|
return result(:expr_end, :tSYMBOL, symbol)
|
663
663
|
end
|
664
664
|
|
665
|
+
def was_label?
|
666
|
+
@was_label = ruby22_label?
|
667
|
+
true
|
668
|
+
end
|
669
|
+
|
670
|
+
def process_label_or_string text
|
671
|
+
if @was_label && text =~ /:$/ then
|
672
|
+
@was_label = nil
|
673
|
+
return process_label text
|
674
|
+
elsif text =~ /:$/ then
|
675
|
+
ss.pos -= 1 # put back ":"
|
676
|
+
text = text[0..-2]
|
677
|
+
end
|
678
|
+
|
679
|
+
result :expr_end, :tSTRING, text[1..-2].gsub(/\\\\/, "\\").gsub(/\\'/, "'")
|
680
|
+
end
|
681
|
+
|
665
682
|
def process_label text
|
666
683
|
result = process_symbol text
|
667
684
|
result[0] = :tLABEL
|
@@ -1202,7 +1219,7 @@ end
|
|
1202
1219
|
|
1203
1220
|
require "ruby_lexer.rex"
|
1204
1221
|
|
1205
|
-
if ENV["
|
1222
|
+
if ENV["RP_LINENO_DEBUG"] then
|
1206
1223
|
class RubyLexer
|
1207
1224
|
alias :old_lineno= :lineno=
|
1208
1225
|
|
data/lib/ruby_lexer.rex
CHANGED
@@ -93,9 +93,7 @@ ruby22_label? /\"(#{SIMPLE_STRING})\":/o process_label
|
|
93
93
|
|
94
94
|
/\[/ process_square_bracket
|
95
95
|
|
96
|
-
#
|
97
|
-
ruby22_label? /\'#{SSTRING}\':/o process_label
|
98
|
-
/\'#{SSTRING}\'/o { result :expr_end, :tSTRING, matched[1..-2].gsub(/\\\\/, "\\").gsub(/\\'/, "'") } # " stupid emacs
|
96
|
+
was_label? /\'#{SSTRING}\':?/o process_label_or_string
|
99
97
|
|
100
98
|
: /\|/
|
101
99
|
| /\|\|\=/ { result :expr_beg, :tOP_ASGN, "||" }
|
data/lib/ruby_lexer.rex.rb
CHANGED
@@ -163,10 +163,8 @@ class RubyLexer
|
|
163
163
|
end # group /[+\d]/
|
164
164
|
when text = ss.scan(/\[/) then
|
165
165
|
process_square_bracket text
|
166
|
-
when
|
167
|
-
|
168
|
-
when text = ss.scan(/\'#{SSTRING}\'/o) then
|
169
|
-
action { result :expr_end, :tSTRING, matched[1..-2].gsub(/\\\\/, "\\").gsub(/\\'/, "'") } # " stupid emacs
|
166
|
+
when was_label? && (text = ss.scan(/\'#{SSTRING}\':?/o)) then
|
167
|
+
process_label_or_string text
|
170
168
|
when ss.check(/\|/) then
|
171
169
|
case
|
172
170
|
when text = ss.scan(/\|\|\=/) then
|
data/lib/ruby_parser_extras.rb
CHANGED
@@ -91,7 +91,7 @@ class RPStringScanner < StringScanner
|
|
91
91
|
end
|
92
92
|
|
93
93
|
module RubyParserStuff
|
94
|
-
VERSION = "3.7.
|
94
|
+
VERSION = "3.7.1" unless constants.include? "VERSION" # SIGH
|
95
95
|
|
96
96
|
attr_accessor :lexer, :in_def, :in_single, :file
|
97
97
|
attr_reader :env, :comments
|
data/test/test_ruby_parser.rb
CHANGED
@@ -575,6 +575,14 @@ module TestRubyParserShared
|
|
575
575
|
# TODO: add more including interpolation etc
|
576
576
|
end
|
577
577
|
|
578
|
+
def test_str_backslashes
|
579
|
+
long_string = '\n' * 100
|
580
|
+
rb = "x '#{long_string}'"
|
581
|
+
pt = s(:call, nil, :x, s(:str, long_string))
|
582
|
+
|
583
|
+
assert_parse rb, pt
|
584
|
+
end
|
585
|
+
|
578
586
|
def test_str_pct_Q_nested
|
579
587
|
rb = "%Q[before [#\{nest}] after]"
|
580
588
|
pt = s(:dstr, "before [", s(:evstr, s(:call, nil, :nest)), s(:str, "] after"))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.7.
|
4
|
+
version: 3.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
xJcC6UN6NHMOVMyAXsr2HR0gRRx4ofN1LoP2KhXzSr8UMvQYlwPmE0N5GQv1b5AO
|
30
30
|
VpzF30vNaJK6ZT7xlIsIlwmH
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2015-
|
32
|
+
date: 2015-08-06 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: sexp_processor
|
@@ -45,6 +45,20 @@ dependencies:
|
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '4.1'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: minitest
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.7'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.7'
|
48
62
|
- !ruby/object:Gem::Dependency
|
49
63
|
name: rdoc
|
50
64
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|