ruby_parser 3.5.0 → 3.6.0
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 +10 -0
- data/lib/ruby18_parser.rb +2 -2
- data/lib/ruby18_parser.y +2 -2
- data/lib/ruby19_parser.rb +2 -2
- data/lib/ruby19_parser.y +2 -2
- data/lib/ruby20_parser.rb +2 -2
- data/lib/ruby20_parser.y +2 -2
- data/lib/ruby21_parser.rb +2 -2
- data/lib/ruby21_parser.y +2 -2
- data/lib/ruby_lexer.rb +4 -1
- data/lib/ruby_lexer.rex +1 -1
- data/lib/ruby_lexer.rex.rb +4 -4
- data/lib/ruby_parser_extras.rb +9 -1
- data/test/test_ruby_parser.rb +35 -0
- metadata +4 -4
- 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: fc83f0af1f2d5f783903eafe8a07f6509ea2b796
|
4
|
+
data.tar.gz: cdec9932c8de7c085557a5b581c7e450065f86a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b847d6798ceac71dba5045e33b3e7a84d113ef0b513e767d24cd4edd27a18b43e29e47397813e970ff03d76080b32baa3e9c01af4a6568863f8595b6ba721e36
|
7
|
+
data.tar.gz: 277d8e78c6b52e0959f346515b043829af531105b51adb156f2f2b09fcee670fee97f48c9222a37d727f7005973ec86d168c9a05603b77cff42ea800cbec552b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
=== 3.6.0 / 2014-04-23
|
2
|
+
|
3
|
+
* 1 minor enhancement:
|
4
|
+
|
5
|
+
* Added new_string and switched all parsers to it.
|
6
|
+
|
7
|
+
* 1 bug fix:
|
8
|
+
|
9
|
+
* Fixed line numbers of nodes following multi-line strings. (presidentbeef)
|
10
|
+
|
1
11
|
=== 3.5.0 / 2014-03-24
|
2
12
|
|
3
13
|
* 1 major enhancement:
|
data/lib/ruby18_parser.rb
CHANGED
@@ -5145,7 +5145,7 @@ def _reduce_400(val, _values, result)
|
|
5145
5145
|
end
|
5146
5146
|
|
5147
5147
|
def _reduce_401(val, _values, result)
|
5148
|
-
result =
|
5148
|
+
result = new_string val
|
5149
5149
|
|
5150
5150
|
result
|
5151
5151
|
end
|
@@ -5244,7 +5244,7 @@ def _reduce_417(val, _values, result)
|
|
5244
5244
|
end
|
5245
5245
|
|
5246
5246
|
def _reduce_418(val, _values, result)
|
5247
|
-
result =
|
5247
|
+
result = new_string val
|
5248
5248
|
|
5249
5249
|
result
|
5250
5250
|
end
|
data/lib/ruby18_parser.y
CHANGED
@@ -1471,7 +1471,7 @@ rule
|
|
1471
1471
|
}
|
1472
1472
|
| tSTRING
|
1473
1473
|
{
|
1474
|
-
result =
|
1474
|
+
result = new_string val
|
1475
1475
|
}
|
1476
1476
|
|
1477
1477
|
xstring: tXSTRING_BEG xstring_contents tSTRING_END
|
@@ -1547,7 +1547,7 @@ xstring_contents: none
|
|
1547
1547
|
|
1548
1548
|
string_content: tSTRING_CONTENT
|
1549
1549
|
{
|
1550
|
-
result =
|
1550
|
+
result = new_string val
|
1551
1551
|
}
|
1552
1552
|
| tSTRING_DVAR
|
1553
1553
|
{
|
data/lib/ruby19_parser.rb
CHANGED
@@ -5426,7 +5426,7 @@ def _reduce_440(val, _values, result)
|
|
5426
5426
|
end
|
5427
5427
|
|
5428
5428
|
def _reduce_441(val, _values, result)
|
5429
|
-
result =
|
5429
|
+
result = new_string val
|
5430
5430
|
|
5431
5431
|
result
|
5432
5432
|
end
|
@@ -5537,7 +5537,7 @@ def _reduce_459(val, _values, result)
|
|
5537
5537
|
end
|
5538
5538
|
|
5539
5539
|
def _reduce_460(val, _values, result)
|
5540
|
-
result =
|
5540
|
+
result = new_string val
|
5541
5541
|
|
5542
5542
|
result
|
5543
5543
|
end
|
data/lib/ruby19_parser.y
CHANGED
@@ -1593,7 +1593,7 @@ rule
|
|
1593
1593
|
}
|
1594
1594
|
| tSTRING
|
1595
1595
|
{
|
1596
|
-
result =
|
1596
|
+
result = new_string val
|
1597
1597
|
}
|
1598
1598
|
|
1599
1599
|
xstring: tXSTRING_BEG xstring_contents tSTRING_END
|
@@ -1678,7 +1678,7 @@ regexp_contents: none
|
|
1678
1678
|
|
1679
1679
|
string_content: tSTRING_CONTENT
|
1680
1680
|
{
|
1681
|
-
result =
|
1681
|
+
result = new_string val
|
1682
1682
|
}
|
1683
1683
|
| tSTRING_DVAR
|
1684
1684
|
{
|
data/lib/ruby20_parser.rb
CHANGED
@@ -5752,7 +5752,7 @@ def _reduce_453(val, _values, result)
|
|
5752
5752
|
end
|
5753
5753
|
|
5754
5754
|
def _reduce_454(val, _values, result)
|
5755
|
-
result =
|
5755
|
+
result = new_string val
|
5756
5756
|
|
5757
5757
|
result
|
5758
5758
|
end
|
@@ -5923,7 +5923,7 @@ def _reduce_480(val, _values, result)
|
|
5923
5923
|
end
|
5924
5924
|
|
5925
5925
|
def _reduce_481(val, _values, result)
|
5926
|
-
result =
|
5926
|
+
result = new_string val
|
5927
5927
|
|
5928
5928
|
result
|
5929
5929
|
end
|
data/lib/ruby20_parser.y
CHANGED
@@ -1680,7 +1680,7 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1680
1680
|
}
|
1681
1681
|
| tSTRING
|
1682
1682
|
{
|
1683
|
-
result =
|
1683
|
+
result = new_string val
|
1684
1684
|
}
|
1685
1685
|
|
1686
1686
|
xstring: tXSTRING_BEG xstring_contents tSTRING_END
|
@@ -1813,7 +1813,7 @@ regexp_contents: none
|
|
1813
1813
|
|
1814
1814
|
string_content: tSTRING_CONTENT
|
1815
1815
|
{
|
1816
|
-
result =
|
1816
|
+
result = new_string val
|
1817
1817
|
}
|
1818
1818
|
| tSTRING_DVAR
|
1819
1819
|
{
|
data/lib/ruby21_parser.rb
CHANGED
@@ -5805,7 +5805,7 @@ def _reduce_452(val, _values, result)
|
|
5805
5805
|
end
|
5806
5806
|
|
5807
5807
|
def _reduce_453(val, _values, result)
|
5808
|
-
result =
|
5808
|
+
result = new_string val
|
5809
5809
|
|
5810
5810
|
result
|
5811
5811
|
end
|
@@ -5976,7 +5976,7 @@ def _reduce_479(val, _values, result)
|
|
5976
5976
|
end
|
5977
5977
|
|
5978
5978
|
def _reduce_480(val, _values, result)
|
5979
|
-
result =
|
5979
|
+
result = new_string val
|
5980
5980
|
|
5981
5981
|
result
|
5982
5982
|
end
|
data/lib/ruby21_parser.y
CHANGED
@@ -1681,7 +1681,7 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1681
1681
|
}
|
1682
1682
|
| tSTRING
|
1683
1683
|
{
|
1684
|
-
result =
|
1684
|
+
result = new_string val
|
1685
1685
|
}
|
1686
1686
|
|
1687
1687
|
xstring: tXSTRING_BEG xstring_contents tSTRING_END
|
@@ -1814,7 +1814,7 @@ regexp_contents: none
|
|
1814
1814
|
|
1815
1815
|
string_content: tSTRING_CONTENT
|
1816
1816
|
{
|
1817
|
-
result =
|
1817
|
+
result = new_string val
|
1818
1818
|
}
|
1819
1819
|
| tSTRING_DVAR
|
1820
1820
|
{
|
data/lib/ruby_lexer.rb
CHANGED
@@ -73,6 +73,7 @@ class RubyLexer
|
|
73
73
|
attr_accessor :command_state
|
74
74
|
attr_accessor :last_state
|
75
75
|
attr_accessor :cond
|
76
|
+
attr_accessor :extra_lineno
|
76
77
|
|
77
78
|
##
|
78
79
|
# Additional context surrounding tokens that both the lexer and
|
@@ -184,7 +185,6 @@ class RubyLexer
|
|
184
185
|
if c != "\n" then
|
185
186
|
return :tSTRING_CONTENT, string_buffer.join.delete("\r")
|
186
187
|
else
|
187
|
-
self.lineno += 1
|
188
188
|
string_buffer << scan(/\n/)
|
189
189
|
end
|
190
190
|
|
@@ -839,6 +839,7 @@ class RubyLexer
|
|
839
839
|
self.space_seen = false
|
840
840
|
self.string_nest = 0
|
841
841
|
self.token = nil
|
842
|
+
self.extra_lineno = 0
|
842
843
|
|
843
844
|
self.cmdarg = RubyParserStuff::StackState.new(:cmdarg)
|
844
845
|
self.cond = RubyParserStuff::StackState.new(:cond)
|
@@ -1002,6 +1003,8 @@ class RubyLexer
|
|
1002
1003
|
def unescape s
|
1003
1004
|
r = ESCAPES[s]
|
1004
1005
|
|
1006
|
+
self.extra_lineno -= 1 if r && s == "n"
|
1007
|
+
|
1005
1008
|
return r if r
|
1006
1009
|
|
1007
1010
|
x = case s
|
data/lib/ruby_lexer.rex
CHANGED
@@ -123,7 +123,7 @@ rule
|
|
123
123
|
| /\>\>/ { result :arg_state, :tRSHFT, ">>" }
|
124
124
|
| /\>/ { result :arg_state, :tGT, ">" }
|
125
125
|
|
126
|
-
:
|
126
|
+
: /\`/
|
127
127
|
| expr_fname? /\`/ { result(:expr_end, :tBACK_REF2, "`") }
|
128
128
|
| expr_dot? /\`/ { result((command_state ? :expr_cmdarg : :expr_arg), :tBACK_REF2, "`") }
|
129
129
|
| /\`/ { string STR_XQUOTE, '`'; result(nil, :tXSTRING_BEG, "`") }
|
data/lib/ruby_lexer.rex.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
2
|
# This file is automatically generated. Do not modify it.
|
3
|
-
# Generated by: oedipus_lex version 2.2.
|
3
|
+
# Generated by: oedipus_lex version 2.2.1.
|
4
4
|
# Source: lib/ruby_lexer.rex
|
5
5
|
#++
|
6
6
|
|
@@ -214,7 +214,7 @@ class RubyLexer
|
|
214
214
|
when text = ss.scan(/\>/) then
|
215
215
|
action { result :arg_state, :tGT, ">" }
|
216
216
|
end # group />/
|
217
|
-
when ss.check(
|
217
|
+
when ss.check(/\`/) then
|
218
218
|
case
|
219
219
|
when expr_fname? && (text = ss.scan(/\`/)) then
|
220
220
|
action { result(:expr_end, :tBACK_REF2, "`") }
|
@@ -222,7 +222,7 @@ class RubyLexer
|
|
222
222
|
action { result((command_state ? :expr_cmdarg : :expr_arg), :tBACK_REF2, "`") }
|
223
223
|
when text = ss.scan(/\`/) then
|
224
224
|
action { string STR_XQUOTE, '`'; result(nil, :tXSTRING_BEG, "`") }
|
225
|
-
end # group
|
225
|
+
end # group /\`/
|
226
226
|
when text = ss.scan(/\?/) then
|
227
227
|
process_questionmark text
|
228
228
|
when ss.check(/&/) then
|
@@ -312,5 +312,5 @@ class RubyLexer
|
|
312
312
|
self.state = token.last if token && token.first == :state
|
313
313
|
|
314
314
|
token
|
315
|
-
end # def
|
315
|
+
end # def next_token
|
316
316
|
end # class
|
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.
|
94
|
+
VERSION = "3.6.0" unless constants.include? "VERSION" # SIGH
|
95
95
|
|
96
96
|
attr_accessor :lexer, :in_def, :in_single, :file
|
97
97
|
attr_reader :env, :comments
|
@@ -830,6 +830,14 @@ module RubyParserStuff
|
|
830
830
|
result
|
831
831
|
end
|
832
832
|
|
833
|
+
def new_string val
|
834
|
+
str = val[0]
|
835
|
+
result = s(:str, str)
|
836
|
+
self.lexer.lineno += str.count("\n") + self.lexer.extra_lineno
|
837
|
+
self.lexer.extra_lineno = 0
|
838
|
+
result
|
839
|
+
end
|
840
|
+
|
833
841
|
def new_super args
|
834
842
|
if args && args.node_type == :block_pass then
|
835
843
|
s(:super, args)
|
data/test/test_ruby_parser.rb
CHANGED
@@ -720,6 +720,23 @@ module TestRubyParserShared
|
|
720
720
|
assert_parse rb, pt
|
721
721
|
end
|
722
722
|
|
723
|
+
def test_parse_line_dstr_newline
|
724
|
+
skip "dstr line numbers are just gonna be screwed for a while..."
|
725
|
+
|
726
|
+
rb = <<-'CODE'
|
727
|
+
"a\n#{
|
728
|
+
}"
|
729
|
+
true
|
730
|
+
CODE
|
731
|
+
|
732
|
+
pt = s(:block,
|
733
|
+
s(:dstr, "a\n",
|
734
|
+
s(:evstr)).line(1),
|
735
|
+
s(:true).line(3))
|
736
|
+
|
737
|
+
assert_parse rb, pt
|
738
|
+
end
|
739
|
+
|
723
740
|
def test_parse_line_heredoc_evstr
|
724
741
|
skip "heredoc line numbers are just gonna be screwed for a while..."
|
725
742
|
|
@@ -732,6 +749,15 @@ module TestRubyParserShared
|
|
732
749
|
assert_parse rb, pt
|
733
750
|
end
|
734
751
|
|
752
|
+
def test_parse_line_multiline_str
|
753
|
+
rb = "\"a\nb\"\n1"
|
754
|
+
pt = s(:block,
|
755
|
+
s(:str, "a\nb").line(1),
|
756
|
+
s(:lit, 1).line(3)).line(1)
|
757
|
+
|
758
|
+
assert_parse rb, pt
|
759
|
+
end
|
760
|
+
|
735
761
|
def test_parse_line_iter_call_parens
|
736
762
|
rb = "f(a) do |x, y|\n x + y\nend"
|
737
763
|
|
@@ -818,6 +844,15 @@ module TestRubyParserShared
|
|
818
844
|
assert_equal 3, result.if.return.lit.line
|
819
845
|
end
|
820
846
|
|
847
|
+
def test_parse_line_str_with_newline_escape
|
848
|
+
rb = 'a("\n", true)'
|
849
|
+
pt = s(:call, nil, :a,
|
850
|
+
s(:str, "\n").line(1),
|
851
|
+
s(:true).line(1))
|
852
|
+
|
853
|
+
assert_parse rb, pt
|
854
|
+
end
|
855
|
+
|
821
856
|
def test_parse_line_trailing_newlines
|
822
857
|
rb = "a \nb"
|
823
858
|
pt = s(:block,
|
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.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
Y4evBVezr3SjXz08vPqRO5YRdO3zfeMT8gBjRqZjWJGMZ2lD4XNfrs7eky74CyZw
|
30
30
|
xx3n58i0lQkBE1EpKE0lFu/y
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2014-
|
32
|
+
date: 2014-04-23 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: sexp_processor
|
@@ -121,14 +121,14 @@ dependencies:
|
|
121
121
|
requirements:
|
122
122
|
- - ~>
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '3.
|
124
|
+
version: '3.12'
|
125
125
|
type: :development
|
126
126
|
prerelease: false
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ~>
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '3.
|
131
|
+
version: '3.12'
|
132
132
|
description: |-
|
133
133
|
ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
|
134
134
|
racc--which does by default use a C extension). RP's output is
|
metadata.gz.sig
CHANGED
Binary file
|