ruby_parser 3.19.1 → 3.20.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2901404db3548ad6415060c14df20ae11431fff4a97420659187601a534eb256
4
- data.tar.gz: 69705481ccbd6a8ffafbb81c25c40890a4683a19440196a19bbcc119f093612a
3
+ metadata.gz: 1fe94228dc0622091501dfb99f5fe522983b9ac8daa618eaf50e8925ce818aae
4
+ data.tar.gz: f40651573fa4769fdb77e2bdddc1429aa7b5a02c78753bf762311fac18d37dc7
5
5
  SHA512:
6
- metadata.gz: 1a5d89ba1fed1a0a49b5eb71eeb8cc6f80a396d6eaf49bec5742d62cd503916b90136ae689de4fa3a5de180544ba3ef6e8fca03e52bd8349b32c65dfa7962a28
7
- data.tar.gz: c68ae86de3cbd9a1b86b6c5acbd0ecc8d809a30c42f7b50217d5038f262a6f61a3baa739332285d59158af9d3c9c3c8d8742e2eca499cf41536f14332e9f7eb9
6
+ metadata.gz: 52eeaa22c91a134e7d61fd11d8ecf366b6634f80940450802460f57dcd2e1483cfdfabc455007b11c3bf468974d24c78641b0c0cd677d366070a11da7da63acc
7
+ data.tar.gz: f517db6a7e6bb364638a6aa3c81b6304d6b1b90b6e92702675b4a601badb117efdf5254ff753675274d6ed95b9db097f1ef7d82c601b7b664ae35ff76e4d6415
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,27 @@
1
+ === 3.20.0 / 2023-03-04
2
+
3
+ * 1 major enhancement:
4
+
5
+ * Added tentative 3.2 support.
6
+
7
+ * 1 minor enhancement:
8
+
9
+ * Change minimum ruby version to 2.6. (want higher)
10
+
11
+ * 1 bug fix:
12
+
13
+ * Fix up compare tasks for ruby 3.2 differences.
14
+
15
+ === 3.19.2 / 2022-12-03
16
+
17
+ * 5 bug fixes:
18
+
19
+ * Fixed bug parsing array patterns using %w, %i, etc.
20
+ * Fixed dedenting when heredoc has only empty line and interpolation. (mvz)
21
+ * Fixed dsym unescaping. (mvz)
22
+ * Fixed vars in pattern matching that should be lasgn, not lvar.
23
+ * find_pat mid-patterns are now splatted inline, not wrapped in an array_pat.
24
+
1
25
  === 3.19.1 / 2022-04-05
2
26
 
3
27
  * 2 bug fixes:
data/Manifest.txt CHANGED
@@ -31,6 +31,8 @@ lib/ruby30_parser.rb
31
31
  lib/ruby30_parser.y
32
32
  lib/ruby31_parser.rb
33
33
  lib/ruby31_parser.y
34
+ lib/ruby32_parser.rb
35
+ lib/ruby32_parser.y
34
36
  lib/ruby3_parser.yy
35
37
  lib/ruby_lexer.rb
36
38
  lib/ruby_lexer.rex
data/README.rdoc CHANGED
@@ -68,8 +68,9 @@ To add a new version:
68
68
  * New parser should be generated from lib/ruby[3]_parser.yy.
69
69
  * Extend lib/ruby[3]_parser.yy with new class name.
70
70
  * Add new version number to V2/V3 in Rakefile for rule creation.
71
- * Add new (full) version to `ruby_parse` section of Rakefile for rake compare
71
+ * Add new `ruby_parse "x.y.z"` line to Rakefile for rake compare (line ~300).
72
72
  * Require generated parser in lib/ruby_parser.rb.
73
+ * Add new V## = ::Ruby##Parser; end to ruby_parser.rb (bottom of file).
73
74
  * Add empty TestRubyParserShared##Plus module and TestRubyParserV## to test/test_ruby_parser.rb.
74
75
  * Extend Manifest.txt with generated file names.
75
76
  * Add new version number to sexp_processor's pt_testcase.rb in all_versions
data/Rakefile CHANGED
@@ -12,9 +12,10 @@ Hoe.add_include_dirs "lib"
12
12
  Hoe.add_include_dirs "../../sexp_processor/dev/lib"
13
13
  Hoe.add_include_dirs "../../minitest/dev/lib"
14
14
  Hoe.add_include_dirs "../../oedipus_lex/dev/lib"
15
+ Hoe.add_include_dirs "../../ruby2ruby/dev/lib"
15
16
 
16
17
  V2 = %w[20 21 22 23 24 25 26 27]
17
- V3 = %w[30 31]
18
+ V3 = %w[30 31 32]
18
19
 
19
20
  VERS = V2 + V3
20
21
 
@@ -37,7 +38,7 @@ Hoe.spec "ruby_parser" do
37
38
 
38
39
  dependency "racc", "~> 1.5", :developer
39
40
 
40
- require_ruby_version [">= 2.1", "< 4"]
41
+ require_ruby_version [">= 2.6", "< 4"]
41
42
 
42
43
  if plugin? :perforce then # generated files
43
44
  VERS.each do |n|
@@ -185,6 +186,9 @@ def ruby_parse version
185
186
  file c_parse_y => c_tarball do
186
187
  in_compare do
187
188
  extract_glob = case
189
+ # defs/id.def
190
+ when version > "3.2" then
191
+ "{id.h,parse.y,tool/{id2token.rb,lib/vpath.rb},defs/id.def}"
188
192
  when version > "2.7" then
189
193
  "{id.h,parse.y,tool/{id2token.rb,lib/vpath.rb}}"
190
194
  else
@@ -194,7 +198,8 @@ def ruby_parse version
194
198
 
195
199
  Dir.chdir ruby_dir do
196
200
  if File.exist? "tool/id2token.rb" then
197
- sh "ruby tool/id2token.rb --path-separator=.:./ id.h parse.y | expand > ../#{parse_y}"
201
+ args = version < "3.2" ? "--path-separator=.:./ id.h" : ""
202
+ sh "ruby tool/id2token.rb #{args} parse.y | expand > ../#{parse_y}"
198
203
  else
199
204
  sh "expand parse.y > ../#{parse_y}"
200
205
  end
@@ -249,7 +254,7 @@ def ruby_parse version
249
254
  end
250
255
 
251
256
  task :realclean do
252
- rm_f Dir[c_parse_y, tarball]
257
+ rm_f Dir[c_parse_y, c_tarball]
253
258
  end
254
259
  end
255
260
 
@@ -291,10 +296,11 @@ ruby_parse "2.2.10"
291
296
  ruby_parse "2.3.8"
292
297
  ruby_parse "2.4.10"
293
298
  ruby_parse "2.5.9"
294
- ruby_parse "2.6.9"
295
- ruby_parse "2.7.5"
296
- ruby_parse "3.0.3"
297
- ruby_parse "3.1.1"
299
+ ruby_parse "2.6.10"
300
+ ruby_parse "2.7.7"
301
+ ruby_parse "3.0.5"
302
+ ruby_parse "3.1.3"
303
+ ruby_parse "3.2.1"
298
304
 
299
305
  task :debug => :isolate do
300
306
  ENV["V"] ||= VERS.last
data/lib/ruby20_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby21_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby22_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby23_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby24_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby25_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby26_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
data/lib/ruby27_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -7722,10 +7722,10 @@ racc_reduce_table = [
7722
7722
  1, 364, :_reduce_none,
7723
7723
  1, 364, :_reduce_none,
7724
7724
  1, 364, :_reduce_none,
7725
- 1, 364, :_reduce_none,
7726
- 1, 364, :_reduce_none,
7727
- 1, 364, :_reduce_none,
7728
- 1, 364, :_reduce_none,
7725
+ 1, 364, :_reduce_548,
7726
+ 1, 364, :_reduce_549,
7727
+ 1, 364, :_reduce_550,
7728
+ 1, 364, :_reduce_551,
7729
7729
  1, 364, :_reduce_552,
7730
7730
  1, 364, :_reduce_none,
7731
7731
  1, 344, :_reduce_554,
@@ -11813,13 +11813,29 @@ end
11813
11813
 
11814
11814
  # reduce 547 omitted
11815
11815
 
11816
- # reduce 548 omitted
11816
+ def _reduce_548(val, _values, result)
11817
+ result = ary_to_pat val[0]
11818
+
11819
+ result
11820
+ end
11821
+
11822
+ def _reduce_549(val, _values, result)
11823
+ result = ary_to_pat val[0]
11817
11824
 
11818
- # reduce 549 omitted
11825
+ result
11826
+ end
11827
+
11828
+ def _reduce_550(val, _values, result)
11829
+ result = ary_to_pat val[0]
11830
+
11831
+ result
11832
+ end
11819
11833
 
11820
- # reduce 550 omitted
11834
+ def _reduce_551(val, _values, result)
11835
+ result = ary_to_pat val[0]
11821
11836
 
11822
- # reduce 551 omitted
11837
+ result
11838
+ end
11823
11839
 
11824
11840
  def _reduce_552(val, _values, result)
11825
11841
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -11835,7 +11851,7 @@ end
11835
11851
  def _reduce_554(val, _values, result)
11836
11852
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
11837
11853
  # TODO: assignable(p, $1, 0, &@$);
11838
- result = wrap :lvar, val[0]
11854
+ result = wrap :lasgn, val[0]
11839
11855
 
11840
11856
  result
11841
11857
  end
data/lib/ruby27_parser.y CHANGED
@@ -2453,9 +2453,21 @@ opt_block_args_tail: tCOMMA block_args_tail
2453
2453
  | xstring
2454
2454
  | regexp
2455
2455
  | words
2456
+ {
2457
+ result = ary_to_pat val[0]
2458
+ }
2456
2459
  | qwords
2460
+ {
2461
+ result = ary_to_pat val[0]
2462
+ }
2457
2463
  | symbols
2464
+ {
2465
+ result = ary_to_pat val[0]
2466
+ }
2458
2467
  | qsymbols
2468
+ {
2469
+ result = ary_to_pat val[0]
2470
+ }
2459
2471
  | keyword_variable
2460
2472
  {
2461
2473
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -2469,7 +2481,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2469
2481
  {
2470
2482
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
2471
2483
  # TODO: assignable(p, $1, 0, &@$);
2472
- result = wrap :lvar, val[0]
2484
+ result = wrap :lasgn, val[0]
2473
2485
  }
2474
2486
 
2475
2487
  p_var_ref: tCARET tIDENTIFIER
data/lib/ruby30_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -7841,10 +7841,10 @@ racc_reduce_table = [
7841
7841
  1, 371, :_reduce_none,
7842
7842
  1, 371, :_reduce_none,
7843
7843
  1, 371, :_reduce_none,
7844
- 1, 371, :_reduce_none,
7845
- 1, 371, :_reduce_none,
7846
- 1, 371, :_reduce_none,
7847
- 1, 371, :_reduce_none,
7844
+ 1, 371, :_reduce_561,
7845
+ 1, 371, :_reduce_562,
7846
+ 1, 371, :_reduce_563,
7847
+ 1, 371, :_reduce_564,
7848
7848
  1, 371, :_reduce_565,
7849
7849
  1, 371, :_reduce_none,
7850
7850
  1, 350, :_reduce_567,
@@ -12038,13 +12038,29 @@ end
12038
12038
 
12039
12039
  # reduce 560 omitted
12040
12040
 
12041
- # reduce 561 omitted
12041
+ def _reduce_561(val, _values, result)
12042
+ result = ary_to_pat val[0]
12043
+
12044
+ result
12045
+ end
12046
+
12047
+ def _reduce_562(val, _values, result)
12048
+ result = ary_to_pat val[0]
12042
12049
 
12043
- # reduce 562 omitted
12050
+ result
12051
+ end
12052
+
12053
+ def _reduce_563(val, _values, result)
12054
+ result = ary_to_pat val[0]
12055
+
12056
+ result
12057
+ end
12044
12058
 
12045
- # reduce 563 omitted
12059
+ def _reduce_564(val, _values, result)
12060
+ result = ary_to_pat val[0]
12046
12061
 
12047
- # reduce 564 omitted
12062
+ result
12063
+ end
12048
12064
 
12049
12065
  def _reduce_565(val, _values, result)
12050
12066
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -12060,7 +12076,7 @@ end
12060
12076
  def _reduce_567(val, _values, result)
12061
12077
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
12062
12078
  # TODO: assignable(p, $1, 0, &@$);
12063
- result = wrap :lvar, val[0]
12079
+ result = wrap :lasgn, val[0]
12064
12080
 
12065
12081
  result
12066
12082
  end
data/lib/ruby30_parser.y CHANGED
@@ -2534,9 +2534,21 @@ opt_block_args_tail: tCOMMA block_args_tail
2534
2534
  | xstring
2535
2535
  | regexp
2536
2536
  | words
2537
+ {
2538
+ result = ary_to_pat val[0]
2539
+ }
2537
2540
  | qwords
2541
+ {
2542
+ result = ary_to_pat val[0]
2543
+ }
2538
2544
  | symbols
2545
+ {
2546
+ result = ary_to_pat val[0]
2547
+ }
2539
2548
  | qsymbols
2549
+ {
2550
+ result = ary_to_pat val[0]
2551
+ }
2540
2552
  | keyword_variable
2541
2553
  {
2542
2554
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -2550,7 +2562,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2550
2562
  {
2551
2563
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
2552
2564
  # TODO: assignable(p, $1, 0, &@$);
2553
- result = wrap :lvar, val[0]
2565
+ result = wrap :lasgn, val[0]
2554
2566
  }
2555
2567
 
2556
2568
  p_var_ref: tCARET tIDENTIFIER
data/lib/ruby31_parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.0
3
+ # This file is automatically generated by Racc 1.6.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -8153,10 +8153,10 @@ racc_reduce_table = [
8153
8153
  1, 373, :_reduce_none,
8154
8154
  1, 373, :_reduce_none,
8155
8155
  1, 373, :_reduce_none,
8156
- 1, 373, :_reduce_none,
8157
- 1, 373, :_reduce_none,
8158
- 1, 373, :_reduce_none,
8159
- 1, 373, :_reduce_none,
8156
+ 1, 373, :_reduce_569,
8157
+ 1, 373, :_reduce_570,
8158
+ 1, 373, :_reduce_571,
8159
+ 1, 373, :_reduce_572,
8160
8160
  1, 373, :_reduce_573,
8161
8161
  1, 373, :_reduce_none,
8162
8162
  1, 351, :_reduce_575,
@@ -12399,13 +12399,29 @@ end
12399
12399
 
12400
12400
  # reduce 568 omitted
12401
12401
 
12402
- # reduce 569 omitted
12402
+ def _reduce_569(val, _values, result)
12403
+ result = ary_to_pat val[0]
12404
+
12405
+ result
12406
+ end
12407
+
12408
+ def _reduce_570(val, _values, result)
12409
+ result = ary_to_pat val[0]
12403
12410
 
12404
- # reduce 570 omitted
12411
+ result
12412
+ end
12413
+
12414
+ def _reduce_571(val, _values, result)
12415
+ result = ary_to_pat val[0]
12416
+
12417
+ result
12418
+ end
12405
12419
 
12406
- # reduce 571 omitted
12420
+ def _reduce_572(val, _values, result)
12421
+ result = ary_to_pat val[0]
12407
12422
 
12408
- # reduce 572 omitted
12423
+ result
12424
+ end
12409
12425
 
12410
12426
  def _reduce_573(val, _values, result)
12411
12427
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -12421,7 +12437,7 @@ end
12421
12437
  def _reduce_575(val, _values, result)
12422
12438
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
12423
12439
  # TODO: assignable(p, $1, 0, &@$);
12424
- result = wrap :lvar, val[0]
12440
+ result = wrap :lasgn, val[0]
12425
12441
 
12426
12442
  result
12427
12443
  end
data/lib/ruby31_parser.y CHANGED
@@ -2562,9 +2562,21 @@ opt_block_args_tail: tCOMMA block_args_tail
2562
2562
  | xstring
2563
2563
  | regexp
2564
2564
  | words
2565
+ {
2566
+ result = ary_to_pat val[0]
2567
+ }
2565
2568
  | qwords
2569
+ {
2570
+ result = ary_to_pat val[0]
2571
+ }
2566
2572
  | symbols
2573
+ {
2574
+ result = ary_to_pat val[0]
2575
+ }
2567
2576
  | qsymbols
2577
+ {
2578
+ result = ary_to_pat val[0]
2579
+ }
2568
2580
  | keyword_variable
2569
2581
  {
2570
2582
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -2578,7 +2590,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2578
2590
  {
2579
2591
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
2580
2592
  # TODO: assignable(p, $1, 0, &@$);
2581
- result = wrap :lvar, val[0]
2593
+ result = wrap :lasgn, val[0]
2582
2594
  }
2583
2595
 
2584
2596
  p_var_ref: tCARET tIDENTIFIER