ruby_parser 3.19.2 → 3.20.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/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/ruby31_parser.y
CHANGED
@@ -221,6 +221,7 @@ rule
|
|
221
221
|
| lhs tEQL mrhs
|
222
222
|
{
|
223
223
|
lhs, _, rhs = val
|
224
|
+
|
224
225
|
result = new_assign lhs, s(:svalue, rhs).line(rhs.line)
|
225
226
|
}
|
226
227
|
| mlhs tEQL mrhs_arg kRESCUE_MOD stmt
|
@@ -1130,8 +1131,10 @@ rule
|
|
1130
1131
|
|
1131
1132
|
paren_args: tLPAREN2 opt_call_args rparen
|
1132
1133
|
{
|
1133
|
-
_, args, _ = val
|
1134
|
+
_, args, (_, line_max) = val
|
1135
|
+
|
1134
1136
|
result = args
|
1137
|
+
result.line_max = line_max if args
|
1135
1138
|
}
|
1136
1139
|
| tLPAREN2 args tCOMMA args_forward rparen
|
1137
1140
|
{
|
@@ -1359,12 +1362,14 @@ rule
|
|
1359
1362
|
{
|
1360
1363
|
result = wrap :colon3, val[1]
|
1361
1364
|
}
|
1362
|
-
| tLBRACK { result = lexer.lineno } aref_args
|
1365
|
+
| tLBRACK { result = lexer.lineno } aref_args rbracket
|
1363
1366
|
{
|
1364
|
-
_, line, args, _ = val
|
1367
|
+
_, line, args, (_, line_max) = val
|
1368
|
+
|
1365
1369
|
result = args || s(:array)
|
1366
1370
|
result.sexp_type = :array # aref_args is :args
|
1367
1371
|
result.line line
|
1372
|
+
result.line_max = line_max
|
1368
1373
|
}
|
1369
1374
|
| tLBRACE
|
1370
1375
|
{
|
@@ -1953,13 +1958,19 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1953
1958
|
{
|
1954
1959
|
call, args = val
|
1955
1960
|
|
1956
|
-
result = call
|
1961
|
+
result = call
|
1962
|
+
|
1963
|
+
if args then
|
1964
|
+
call.concat args.sexp_body
|
1965
|
+
result.line_max = args.line_max
|
1966
|
+
end
|
1957
1967
|
}
|
1958
1968
|
| primary_value call_op operation2 opt_paren_args
|
1959
1969
|
{
|
1960
|
-
recv, call_op, (op,
|
1970
|
+
recv, call_op, (op, op_line), args = val
|
1961
1971
|
|
1962
1972
|
result = new_call recv, op.to_sym, args, call_op
|
1973
|
+
result.line_max = op_line unless args
|
1963
1974
|
}
|
1964
1975
|
| primary_value tCOLON2 operation2 paren_args
|
1965
1976
|
{
|
@@ -2716,15 +2727,17 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2716
2727
|
|
2717
2728
|
words: tWORDS_BEG tSPACE tSTRING_END
|
2718
2729
|
{
|
2719
|
-
(_, line), _, _ = val
|
2730
|
+
(_, line), _, (_, line_max) = val
|
2720
2731
|
|
2721
2732
|
result = s(:array).line line
|
2733
|
+
result.line_max = line_max
|
2722
2734
|
}
|
2723
2735
|
| tWORDS_BEG word_list tSTRING_END
|
2724
2736
|
{
|
2725
|
-
(_, line), list, _ = val
|
2737
|
+
(_, line), list, (_, line_max) = val
|
2726
2738
|
|
2727
2739
|
result = list.line line
|
2740
|
+
result.line_max = line_max
|
2728
2741
|
}
|
2729
2742
|
|
2730
2743
|
word_list: none
|
@@ -2744,15 +2757,17 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2744
2757
|
|
2745
2758
|
symbols: tSYMBOLS_BEG tSPACE tSTRING_END
|
2746
2759
|
{
|
2747
|
-
(_, line), _, _ = val
|
2760
|
+
(_, line), _, (_, line_max) = val
|
2748
2761
|
|
2749
2762
|
result = s(:array).line line
|
2763
|
+
result.line_max = line_max
|
2750
2764
|
}
|
2751
2765
|
| tSYMBOLS_BEG symbol_list tSTRING_END
|
2752
2766
|
{
|
2753
|
-
(_, line), list, _, = val
|
2754
|
-
|
2755
|
-
result = list
|
2767
|
+
(_, line), list, (_, line_max), = val
|
2768
|
+
|
2769
|
+
result = list.line line
|
2770
|
+
result.line_max = line_max
|
2756
2771
|
}
|
2757
2772
|
|
2758
2773
|
symbol_list: none
|
@@ -2767,28 +2782,32 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2767
2782
|
|
2768
2783
|
qwords: tQWORDS_BEG tSPACE tSTRING_END
|
2769
2784
|
{
|
2770
|
-
(_, line), _, _ = val
|
2785
|
+
(_, line), _, (_, line_max) = val
|
2771
2786
|
|
2772
2787
|
result = s(:array).line line
|
2788
|
+
result.line_max = line_max
|
2773
2789
|
}
|
2774
2790
|
| tQWORDS_BEG qword_list tSTRING_END
|
2775
2791
|
{
|
2776
|
-
(_, line), list, _ = val
|
2792
|
+
(_, line), list, (_, line_max) = val
|
2777
2793
|
|
2778
2794
|
result = list.line line
|
2795
|
+
result.line_max = line_max
|
2779
2796
|
}
|
2780
2797
|
|
2781
2798
|
qsymbols: tQSYMBOLS_BEG tSPACE tSTRING_END
|
2782
2799
|
{
|
2783
|
-
(_, line), _, _ = val
|
2800
|
+
(_, line), _, (_, line_max) = val
|
2784
2801
|
|
2785
2802
|
result = s(:array).line line
|
2803
|
+
result.line_max = line_max
|
2786
2804
|
}
|
2787
2805
|
| tQSYMBOLS_BEG qsym_list tSTRING_END
|
2788
2806
|
{
|
2789
|
-
(_, line), list, _ = val
|
2807
|
+
(_, line), list, (_, line_max) = val
|
2790
2808
|
|
2791
2809
|
result = list.line line
|
2810
|
+
result.line_max = line_max
|
2792
2811
|
}
|
2793
2812
|
|
2794
2813
|
qword_list: none
|
@@ -3210,7 +3229,14 @@ f_opt_paren_args: f_paren_args
|
|
3210
3229
|
result = s(:args, list).line list.line
|
3211
3230
|
end
|
3212
3231
|
|
3213
|
-
|
3232
|
+
if Sexp === item then
|
3233
|
+
line_max = item.line_max
|
3234
|
+
else
|
3235
|
+
item, line_max = item
|
3236
|
+
end
|
3237
|
+
|
3238
|
+
result << item
|
3239
|
+
result.line_max = line_max
|
3214
3240
|
}
|
3215
3241
|
|
3216
3242
|
f_label: tLABEL
|