ruby_parser 3.19.2 → 3.20.1
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
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +20 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +2 -1
- data/Rakefile +13 -8
- data/lib/ruby20_parser.rb +171 -135
- data/lib/ruby20_parser.y +50 -16
- data/lib/ruby21_parser.rb +111 -75
- data/lib/ruby21_parser.y +50 -16
- data/lib/ruby22_parser.rb +239 -203
- data/lib/ruby22_parser.y +50 -16
- data/lib/ruby23_parser.rb +384 -348
- data/lib/ruby23_parser.y +50 -16
- data/lib/ruby24_parser.rb +97 -61
- data/lib/ruby24_parser.y +50 -16
- data/lib/ruby25_parser.rb +93 -57
- data/lib/ruby25_parser.y +50 -16
- data/lib/ruby26_parser.rb +93 -57
- data/lib/ruby26_parser.y +50 -16
- data/lib/ruby27_parser.rb +575 -539
- data/lib/ruby27_parser.y +50 -16
- data/lib/ruby30_parser.rb +358 -332
- data/lib/ruby30_parser.y +42 -16
- data/lib/ruby31_parser.rb +175 -149
- data/lib/ruby31_parser.y +42 -16
- data/lib/ruby32_parser.rb +13664 -0
- data/lib/ruby32_parser.y +3519 -0
- data/lib/ruby3_parser.yy +44 -16
- data/lib/ruby_parser.rb +2 -0
- data/lib/ruby_parser.yy +50 -16
- data/lib/ruby_parser_extras.rb +19 -13
- data/test/test_ruby_parser.rb +170 -6
- data.tar.gz.sig +0 -0
- metadata +16 -14
- metadata.gz.sig +0 -0
data/lib/ruby21_parser.y
CHANGED
@@ -220,6 +220,7 @@ rule
|
|
220
220
|
| lhs tEQL mrhs
|
221
221
|
{
|
222
222
|
lhs, _, rhs = val
|
223
|
+
|
223
224
|
result = new_assign lhs, s(:svalue, rhs).line(rhs.line)
|
224
225
|
}
|
225
226
|
| mlhs tEQL mrhs_arg
|
@@ -973,8 +974,10 @@ rule
|
|
973
974
|
|
974
975
|
paren_args: tLPAREN2 opt_call_args rparen
|
975
976
|
{
|
976
|
-
_, args, _ = val
|
977
|
+
_, args, (_, line_max) = val
|
978
|
+
|
977
979
|
result = args
|
980
|
+
result.line_max = line_max if args
|
978
981
|
}
|
979
982
|
|
980
983
|
opt_paren_args: none
|
@@ -1179,12 +1182,14 @@ rule
|
|
1179
1182
|
{
|
1180
1183
|
result = wrap :colon3, val[1]
|
1181
1184
|
}
|
1182
|
-
| tLBRACK { result = lexer.lineno } aref_args
|
1185
|
+
| tLBRACK { result = lexer.lineno } aref_args rbracket
|
1183
1186
|
{
|
1184
|
-
_, line, args, _ = val
|
1187
|
+
_, line, args, (_, line_max) = val
|
1188
|
+
|
1185
1189
|
result = args || s(:array)
|
1186
1190
|
result.sexp_type = :array # aref_args is :args
|
1187
1191
|
result.line line
|
1192
|
+
result.line_max = line_max
|
1188
1193
|
}
|
1189
1194
|
| tLBRACE
|
1190
1195
|
{
|
@@ -1772,13 +1777,19 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1772
1777
|
{
|
1773
1778
|
call, args = val
|
1774
1779
|
|
1775
|
-
result = call
|
1780
|
+
result = call
|
1781
|
+
|
1782
|
+
if args then
|
1783
|
+
call.concat args.sexp_body
|
1784
|
+
result.line_max = args.line_max
|
1785
|
+
end
|
1776
1786
|
}
|
1777
1787
|
| primary_value call_op operation2 opt_paren_args
|
1778
1788
|
{
|
1779
|
-
recv, call_op, (op,
|
1789
|
+
recv, call_op, (op, op_line), args = val
|
1780
1790
|
|
1781
1791
|
result = new_call recv, op.to_sym, args, call_op
|
1792
|
+
result.line_max = op_line unless args
|
1782
1793
|
}
|
1783
1794
|
| primary_value tCOLON2 operation2 paren_args
|
1784
1795
|
{
|
@@ -1992,15 +2003,17 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1992
2003
|
|
1993
2004
|
words: tWORDS_BEG tSPACE tSTRING_END
|
1994
2005
|
{
|
1995
|
-
(_, line), _, _ = val
|
2006
|
+
(_, line), _, (_, line_max) = val
|
1996
2007
|
|
1997
2008
|
result = s(:array).line line
|
2009
|
+
result.line_max = line_max
|
1998
2010
|
}
|
1999
2011
|
| tWORDS_BEG word_list tSTRING_END
|
2000
2012
|
{
|
2001
|
-
(_, line), list, _ = val
|
2013
|
+
(_, line), list, (_, line_max) = val
|
2002
2014
|
|
2003
2015
|
result = list.line line
|
2016
|
+
result.line_max = line_max
|
2004
2017
|
}
|
2005
2018
|
|
2006
2019
|
word_list: none
|
@@ -2020,15 +2033,17 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2020
2033
|
|
2021
2034
|
symbols: tSYMBOLS_BEG tSPACE tSTRING_END
|
2022
2035
|
{
|
2023
|
-
(_, line), _, _ = val
|
2036
|
+
(_, line), _, (_, line_max) = val
|
2024
2037
|
|
2025
2038
|
result = s(:array).line line
|
2039
|
+
result.line_max = line_max
|
2026
2040
|
}
|
2027
2041
|
| tSYMBOLS_BEG symbol_list tSTRING_END
|
2028
2042
|
{
|
2029
|
-
(_, line), list, _, = val
|
2030
|
-
|
2031
|
-
result = list
|
2043
|
+
(_, line), list, (_, line_max), = val
|
2044
|
+
|
2045
|
+
result = list.line line
|
2046
|
+
result.line_max = line_max
|
2032
2047
|
}
|
2033
2048
|
|
2034
2049
|
symbol_list: none
|
@@ -2043,28 +2058,32 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2043
2058
|
|
2044
2059
|
qwords: tQWORDS_BEG tSPACE tSTRING_END
|
2045
2060
|
{
|
2046
|
-
(_, line), _, _ = val
|
2061
|
+
(_, line), _, (_, line_max) = val
|
2047
2062
|
|
2048
2063
|
result = s(:array).line line
|
2064
|
+
result.line_max = line_max
|
2049
2065
|
}
|
2050
2066
|
| tQWORDS_BEG qword_list tSTRING_END
|
2051
2067
|
{
|
2052
|
-
(_, line), list, _ = val
|
2068
|
+
(_, line), list, (_, line_max) = val
|
2053
2069
|
|
2054
2070
|
result = list.line line
|
2071
|
+
result.line_max = line_max
|
2055
2072
|
}
|
2056
2073
|
|
2057
2074
|
qsymbols: tQSYMBOLS_BEG tSPACE tSTRING_END
|
2058
2075
|
{
|
2059
|
-
(_, line), _, _ = val
|
2076
|
+
(_, line), _, (_, line_max) = val
|
2060
2077
|
|
2061
2078
|
result = s(:array).line line
|
2079
|
+
result.line_max = line_max
|
2062
2080
|
}
|
2063
2081
|
| tQSYMBOLS_BEG qsym_list tSTRING_END
|
2064
2082
|
{
|
2065
|
-
(_, line), list, _ = val
|
2083
|
+
(_, line), list, (_, line_max) = val
|
2066
2084
|
|
2067
2085
|
result = list.line line
|
2086
|
+
result.line_max = line_max
|
2068
2087
|
}
|
2069
2088
|
|
2070
2089
|
qword_list: none
|
@@ -2466,7 +2485,14 @@ keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
|
|
2466
2485
|
result = s(:args, list).line list.line
|
2467
2486
|
end
|
2468
2487
|
|
2469
|
-
|
2488
|
+
if Sexp === item then
|
2489
|
+
line_max = item.line_max
|
2490
|
+
else
|
2491
|
+
item, line_max = item
|
2492
|
+
end
|
2493
|
+
|
2494
|
+
result << item
|
2495
|
+
result.line_max = line_max
|
2470
2496
|
}
|
2471
2497
|
|
2472
2498
|
f_label: tLABEL
|
@@ -2675,7 +2701,15 @@ keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
|
|
2675
2701
|
opt_terms: | terms
|
2676
2702
|
opt_nl: | tNL
|
2677
2703
|
rparen: opt_nl tRPAREN
|
2704
|
+
{
|
2705
|
+
_, close = val
|
2706
|
+
result = [close, lexer.lineno]
|
2707
|
+
}
|
2678
2708
|
rbracket: opt_nl tRBRACK
|
2709
|
+
{
|
2710
|
+
_, close = val
|
2711
|
+
result = [close, lexer.lineno]
|
2712
|
+
}
|
2679
2713
|
trailer: | tNL | tCOMMA
|
2680
2714
|
|
2681
2715
|
term: tSEMI { yyerrok }
|