ruby_parser 3.20.2 → 3.20.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
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +12 -0
- data/lib/ruby30_parser.rb +27 -4
- data/lib/ruby30_parser.y +24 -2
- data/lib/ruby31_parser.rb +2777 -2669
- data/lib/ruby31_parser.y +25 -3
- data/lib/ruby32_parser.rb +2724 -2706
- data/lib/ruby32_parser.y +25 -3
- data/lib/ruby3_parser.yy +25 -3
- data/lib/ruby_lexer.rb +13 -7
- data/lib/ruby_parser_extras.rb +3 -2
- data/test/test_ruby_parser.rb +8 -0
- data/tools/munge.rb +8 -2
- data/tools/ripper.rb +14 -12
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c0c3e107b8953bdbaf64c24c32d5428696fa648398c4fdc896cba560547341b
|
4
|
+
data.tar.gz: b268454b6584eee700d5d90e37c7986e252a024b89422d47db69d5c0cfd7f917
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f466e027ad5467b7a799a44378756fb082cd86d59c7696815347af2be9360b21f2ff9f5f5e8687b7073cc9ab2432330808a07eaee57e8802783ffe6b6a16b602
|
7
|
+
data.tar.gz: 8eb1af21a6936f44bcc8ea42b8dae4773e1a86a8e4815c67a536e1d10363e5c95123d77c04402f156e8f9e7b786b21ff382d3134a650c6428f903552a61ec495
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 3.20.3 / 2023-07-11
|
2
|
+
|
3
|
+
* 2 minor enhancements:
|
4
|
+
|
5
|
+
* Added Parser#in_argdef and integrated into 3.x parsers.
|
6
|
+
* Improved tools/munge.rb to handler MRI 3.2 output
|
7
|
+
|
8
|
+
* 2 bug fixes:
|
9
|
+
|
10
|
+
* Fixed process_dots to properly deal with paren-less forward_args. (eric1234)
|
11
|
+
* Fixed tools/ripper.rb to properly print ripper sexp at the end
|
12
|
+
|
1
13
|
=== 3.20.2 / 2023-06-06
|
2
14
|
|
3
15
|
* 1 bug fix:
|
data/lib/ruby30_parser.rb
CHANGED
@@ -8013,7 +8013,7 @@ racc_reduce_table = [
|
|
8013
8013
|
3, 395, :_reduce_692,
|
8014
8014
|
1, 309, :_reduce_693,
|
8015
8015
|
3, 309, :_reduce_694,
|
8016
|
-
1, 396, :
|
8016
|
+
1, 396, :_reduce_695,
|
8017
8017
|
2, 397, :_reduce_696,
|
8018
8018
|
1, 397, :_reduce_697,
|
8019
8019
|
2, 398, :_reduce_698,
|
@@ -9109,6 +9109,7 @@ end
|
|
9109
9109
|
|
9110
9110
|
def _reduce_64(val, _values, result)
|
9111
9111
|
lexer.lex_state = EXPR_FNAME
|
9112
|
+
self.in_argdef = true
|
9112
9113
|
|
9113
9114
|
result
|
9114
9115
|
end
|
@@ -10806,6 +10807,7 @@ end
|
|
10806
10807
|
|
10807
10808
|
def _reduce_366(val, _values, result)
|
10808
10809
|
self.comments.push self.lexer.comments
|
10810
|
+
self.in_argdef = true
|
10809
10811
|
|
10810
10812
|
result
|
10811
10813
|
end
|
@@ -11105,6 +11107,7 @@ end
|
|
11105
11107
|
def _reduce_424(val, _values, result)
|
11106
11108
|
# TODO: current_arg = 0
|
11107
11109
|
result = args val
|
11110
|
+
self.in_argdef = false
|
11108
11111
|
|
11109
11112
|
result
|
11110
11113
|
end
|
@@ -11120,6 +11123,7 @@ end
|
|
11120
11123
|
def _reduce_426(val, _values, result)
|
11121
11124
|
# TODO: current_arg = 0
|
11122
11125
|
result = args val
|
11126
|
+
self.in_argdef = false
|
11123
11127
|
|
11124
11128
|
result
|
11125
11129
|
end
|
@@ -11182,12 +11186,14 @@ def _reduce_435(val, _values, result)
|
|
11182
11186
|
end
|
11183
11187
|
|
11184
11188
|
def _reduce_436(val, _values, result)
|
11189
|
+
self.in_argdef = false
|
11185
11190
|
result = args val
|
11186
11191
|
|
11187
11192
|
result
|
11188
11193
|
end
|
11189
11194
|
|
11190
11195
|
def _reduce_437(val, _values, result)
|
11196
|
+
self.in_argdef = false
|
11191
11197
|
result = val[0]
|
11192
11198
|
result = 0 if result == s(:args)
|
11193
11199
|
|
@@ -12678,12 +12684,14 @@ end
|
|
12678
12684
|
# reduce 654 omitted
|
12679
12685
|
|
12680
12686
|
def _reduce_655(val, _values, result)
|
12687
|
+
self.in_argdef = false
|
12681
12688
|
result = end_args val
|
12682
12689
|
|
12683
12690
|
result
|
12684
12691
|
end
|
12685
12692
|
|
12686
12693
|
def _reduce_656(val, _values, result)
|
12694
|
+
self.in_argdef = false
|
12687
12695
|
result = end_args val
|
12688
12696
|
|
12689
12697
|
result
|
@@ -12706,12 +12714,14 @@ end
|
|
12706
12714
|
def _reduce_660(val, _values, result)
|
12707
12715
|
result = self.in_kwarg
|
12708
12716
|
self.in_kwarg = true
|
12717
|
+
self.in_argdef = true
|
12709
12718
|
self.lexer.lex_state |= EXPR_LABEL
|
12710
12719
|
|
12711
12720
|
result
|
12712
12721
|
end
|
12713
12722
|
|
12714
12723
|
def _reduce_661(val, _values, result)
|
12724
|
+
self.in_argdef = false
|
12715
12725
|
result = end_args val
|
12716
12726
|
|
12717
12727
|
result
|
@@ -12921,7 +12931,16 @@ def _reduce_694(val, _values, result)
|
|
12921
12931
|
result
|
12922
12932
|
end
|
12923
12933
|
|
12924
|
-
|
12934
|
+
def _reduce_695(val, _values, result)
|
12935
|
+
label, = val
|
12936
|
+
# arg_var(p, formal_argument(p, $1));
|
12937
|
+
# p->cur_arg = get_id($1);
|
12938
|
+
# p->max_numparam = ORDINAL_PARAM;
|
12939
|
+
self.in_argdef = false
|
12940
|
+
result = label
|
12941
|
+
|
12942
|
+
result
|
12943
|
+
end
|
12925
12944
|
|
12926
12945
|
def _reduce_696(val, _values, result)
|
12927
12946
|
# TODO: new_kw_arg
|
@@ -12929,6 +12948,7 @@ def _reduce_696(val, _values, result)
|
|
12929
12948
|
|
12930
12949
|
identifier = label.to_sym
|
12931
12950
|
self.env[identifier] = :lvar
|
12951
|
+
self.in_argdef = true
|
12932
12952
|
|
12933
12953
|
kwarg = s(:kwarg, identifier, arg).line line
|
12934
12954
|
result = s(:array, kwarg).line line
|
@@ -12941,6 +12961,7 @@ def _reduce_697(val, _values, result)
|
|
12941
12961
|
|
12942
12962
|
id = label.to_sym
|
12943
12963
|
self.env[id] = :lvar
|
12964
|
+
self.in_argdef = true
|
12944
12965
|
|
12945
12966
|
result = s(:array, s(:kwarg, id).line(line)).line line
|
12946
12967
|
|
@@ -12952,6 +12973,7 @@ def _reduce_698(val, _values, result)
|
|
12952
12973
|
(label, line), expr = val
|
12953
12974
|
id = label.to_sym
|
12954
12975
|
self.env[id] = :lvar
|
12976
|
+
self.in_argdef = true
|
12955
12977
|
|
12956
12978
|
result = s(:array, s(:kwarg, id, expr).line(line)).line line
|
12957
12979
|
|
@@ -12963,6 +12985,7 @@ def _reduce_699(val, _values, result)
|
|
12963
12985
|
(label, line), = val
|
12964
12986
|
id = label.to_sym
|
12965
12987
|
self.env[id] = :lvar
|
12988
|
+
self.in_argdef = true
|
12966
12989
|
|
12967
12990
|
result = s(:array, s(:kwarg, id).line(line)).line line
|
12968
12991
|
|
@@ -13018,19 +13041,19 @@ end
|
|
13018
13041
|
|
13019
13042
|
def _reduce_709(val, _values, result)
|
13020
13043
|
lhs, _, rhs = val
|
13044
|
+
self.in_argdef = true
|
13021
13045
|
result = self.assignable lhs, rhs
|
13022
13046
|
# TODO: detect duplicate names
|
13023
13047
|
# TODO? p->cur_arg = 0;
|
13024
|
-
# TODO? p->ctxt.in_argdef = 1;
|
13025
13048
|
|
13026
13049
|
result
|
13027
13050
|
end
|
13028
13051
|
|
13029
13052
|
def _reduce_710(val, _values, result)
|
13030
13053
|
lhs, _, rhs = val
|
13054
|
+
self.in_argdef = true
|
13031
13055
|
result = self.assignable lhs, rhs
|
13032
13056
|
# TODO? p->cur_arg = 0;
|
13033
|
-
# TODO? p->ctxt.in_argdef = 1;
|
13034
13057
|
|
13035
13058
|
result
|
13036
13059
|
end
|
data/lib/ruby30_parser.y
CHANGED
@@ -392,6 +392,7 @@ rule
|
|
392
392
|
defs_head: k_def singleton dot_or_colon
|
393
393
|
{
|
394
394
|
lexer.lex_state = EXPR_FNAME
|
395
|
+
self.in_argdef = true
|
395
396
|
}
|
396
397
|
def_name
|
397
398
|
{
|
@@ -1588,6 +1589,7 @@ rule
|
|
1588
1589
|
k_def: kDEF
|
1589
1590
|
{
|
1590
1591
|
self.comments.push self.lexer.comments
|
1592
|
+
self.in_argdef = true
|
1591
1593
|
}
|
1592
1594
|
k_do: kDO
|
1593
1595
|
k_do_block: kDO_BLOCK
|
@@ -1806,6 +1808,7 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1806
1808
|
{
|
1807
1809
|
# TODO: current_arg = 0
|
1808
1810
|
result = args val
|
1811
|
+
self.in_argdef = false
|
1809
1812
|
}
|
1810
1813
|
| tOROP
|
1811
1814
|
{
|
@@ -1817,6 +1820,7 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1817
1820
|
{
|
1818
1821
|
# TODO: current_arg = 0
|
1819
1822
|
result = args val
|
1823
|
+
self.in_argdef = false
|
1820
1824
|
}
|
1821
1825
|
|
1822
1826
|
opt_bv_decl: opt_nl
|
@@ -1866,10 +1870,12 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1866
1870
|
|
1867
1871
|
f_larglist: tLPAREN2 f_args opt_bv_decl rparen
|
1868
1872
|
{
|
1873
|
+
self.in_argdef = false
|
1869
1874
|
result = args val
|
1870
1875
|
}
|
1871
1876
|
| f_args
|
1872
1877
|
{
|
1878
|
+
self.in_argdef = false
|
1873
1879
|
result = val[0]
|
1874
1880
|
result = 0 if result == s(:args)
|
1875
1881
|
}
|
@@ -3027,11 +3033,13 @@ keyword_variable: kNIL { (_, line), = val; result = s(:nil).line line }
|
|
3027
3033
|
f_opt_paren_args: f_paren_args
|
3028
3034
|
| none
|
3029
3035
|
{
|
3036
|
+
self.in_argdef = false
|
3030
3037
|
result = end_args val
|
3031
3038
|
}
|
3032
3039
|
|
3033
3040
|
f_paren_args: tLPAREN2 f_args rparen
|
3034
3041
|
{
|
3042
|
+
self.in_argdef = false
|
3035
3043
|
result = end_args val
|
3036
3044
|
}
|
3037
3045
|
| tLPAREN2 f_arg tCOMMA args_forward rparen
|
@@ -3047,10 +3055,12 @@ f_opt_paren_args: f_paren_args
|
|
3047
3055
|
| {
|
3048
3056
|
result = self.in_kwarg
|
3049
3057
|
self.in_kwarg = true
|
3058
|
+
self.in_argdef = true
|
3050
3059
|
self.lexer.lex_state |= EXPR_LABEL
|
3051
3060
|
}
|
3052
3061
|
f_args term
|
3053
3062
|
{
|
3063
|
+
self.in_argdef = false
|
3054
3064
|
result = end_args val
|
3055
3065
|
}
|
3056
3066
|
|
@@ -3206,6 +3216,14 @@ f_opt_paren_args: f_paren_args
|
|
3206
3216
|
}
|
3207
3217
|
|
3208
3218
|
f_label: tLABEL
|
3219
|
+
{
|
3220
|
+
label, = val
|
3221
|
+
# arg_var(p, formal_argument(p, $1));
|
3222
|
+
# p->cur_arg = get_id($1);
|
3223
|
+
# p->max_numparam = ORDINAL_PARAM;
|
3224
|
+
self.in_argdef = false
|
3225
|
+
result = label
|
3226
|
+
}
|
3209
3227
|
|
3210
3228
|
f_kw: f_label arg_value
|
3211
3229
|
{
|
@@ -3214,6 +3232,7 @@ f_opt_paren_args: f_paren_args
|
|
3214
3232
|
|
3215
3233
|
identifier = label.to_sym
|
3216
3234
|
self.env[identifier] = :lvar
|
3235
|
+
self.in_argdef = true
|
3217
3236
|
|
3218
3237
|
kwarg = s(:kwarg, identifier, arg).line line
|
3219
3238
|
result = s(:array, kwarg).line line
|
@@ -3224,6 +3243,7 @@ f_opt_paren_args: f_paren_args
|
|
3224
3243
|
|
3225
3244
|
id = label.to_sym
|
3226
3245
|
self.env[id] = :lvar
|
3246
|
+
self.in_argdef = true
|
3227
3247
|
|
3228
3248
|
result = s(:array, s(:kwarg, id).line(line)).line line
|
3229
3249
|
}
|
@@ -3234,6 +3254,7 @@ f_opt_paren_args: f_paren_args
|
|
3234
3254
|
(label, line), expr = val
|
3235
3255
|
id = label.to_sym
|
3236
3256
|
self.env[id] = :lvar
|
3257
|
+
self.in_argdef = true
|
3237
3258
|
|
3238
3259
|
result = s(:array, s(:kwarg, id, expr).line(line)).line line
|
3239
3260
|
}
|
@@ -3243,6 +3264,7 @@ f_opt_paren_args: f_paren_args
|
|
3243
3264
|
(label, line), = val
|
3244
3265
|
id = label.to_sym
|
3245
3266
|
self.env[id] = :lvar
|
3267
|
+
self.in_argdef = true
|
3246
3268
|
|
3247
3269
|
result = s(:array, s(:kwarg, id).line(line)).line line
|
3248
3270
|
}
|
@@ -3290,10 +3312,10 @@ f_opt_paren_args: f_paren_args
|
|
3290
3312
|
arg_value
|
3291
3313
|
{
|
3292
3314
|
lhs, _, rhs = val
|
3315
|
+
self.in_argdef = true
|
3293
3316
|
result = self.assignable lhs, rhs
|
3294
3317
|
# TODO: detect duplicate names
|
3295
3318
|
# TODO? p->cur_arg = 0;
|
3296
|
-
# TODO? p->ctxt.in_argdef = 1;
|
3297
3319
|
}
|
3298
3320
|
|
3299
3321
|
f_block_opt: f_arg_asgn
|
@@ -3301,9 +3323,9 @@ f_opt_paren_args: f_paren_args
|
|
3301
3323
|
primary_value
|
3302
3324
|
{
|
3303
3325
|
lhs, _, rhs = val
|
3326
|
+
self.in_argdef = true
|
3304
3327
|
result = self.assignable lhs, rhs
|
3305
3328
|
# TODO? p->cur_arg = 0;
|
3306
|
-
# TODO? p->ctxt.in_argdef = 1;
|
3307
3329
|
}
|
3308
3330
|
|
3309
3331
|
f_block_optarg: f_block_opt
|