rbs 0.18.1 → 1.0.0.pre2

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/Rakefile +12 -0
  4. data/Steepfile +2 -1
  5. data/bin/annotate-with-rdoc +0 -4
  6. data/core/builtin.rbs +4 -0
  7. data/core/file.rbs +3 -4
  8. data/core/hash.rbs +1 -3
  9. data/core/io.rbs +165 -7
  10. data/core/kernel.rbs +1 -1
  11. data/core/module.rbs +41 -0
  12. data/core/time.rbs +0 -12
  13. data/docs/syntax.md +0 -17
  14. data/goodcheck.yml +22 -2
  15. data/lib/rbs.rb +2 -0
  16. data/lib/rbs/ast/declarations.rb +7 -49
  17. data/lib/rbs/ast/members.rb +10 -4
  18. data/lib/rbs/cli.rb +10 -10
  19. data/lib/rbs/definition.rb +70 -3
  20. data/lib/rbs/definition_builder.rb +573 -984
  21. data/lib/rbs/definition_builder/ancestor_builder.rb +525 -0
  22. data/lib/rbs/definition_builder/method_builder.rb +217 -0
  23. data/lib/rbs/environment.rb +6 -8
  24. data/lib/rbs/environment_loader.rb +8 -4
  25. data/lib/rbs/errors.rb +88 -121
  26. data/lib/rbs/method_type.rb +1 -31
  27. data/lib/rbs/parser.rb +1082 -1014
  28. data/lib/rbs/parser.y +108 -76
  29. data/lib/rbs/prototype/rb.rb +18 -3
  30. data/lib/rbs/prototype/rbi.rb +6 -6
  31. data/lib/rbs/prototype/runtime.rb +71 -35
  32. data/lib/rbs/substitution.rb +4 -0
  33. data/lib/rbs/test.rb +3 -1
  34. data/lib/rbs/test/hook.rb +26 -8
  35. data/lib/rbs/types.rb +68 -7
  36. data/lib/rbs/validator.rb +4 -2
  37. data/lib/rbs/variance_calculator.rb +5 -1
  38. data/lib/rbs/version.rb +1 -1
  39. data/lib/rbs/writer.rb +13 -4
  40. data/schema/members.json +5 -1
  41. data/sig/ancestor_builder.rbs +98 -0
  42. data/sig/declarations.rbs +4 -16
  43. data/sig/definition.rbs +6 -1
  44. data/sig/definition_builder.rbs +15 -67
  45. data/sig/errors.rbs +159 -0
  46. data/sig/members.rbs +4 -1
  47. data/sig/method_builder.rbs +71 -0
  48. data/sig/method_types.rbs +3 -16
  49. data/sig/substitution.rbs +3 -0
  50. data/sig/type_name_resolver.rbs +4 -2
  51. data/sig/types.rbs +17 -15
  52. data/sig/validator.rbs +12 -0
  53. data/stdlib/csv/0/csv.rbs +3 -0
  54. data/stdlib/dbm/0/dbm.rbs +0 -2
  55. data/stdlib/logger/0/log_device.rbs +1 -2
  56. data/stdlib/monitor/0/monitor.rbs +119 -0
  57. data/stdlib/pathname/0/pathname.rbs +1 -1
  58. data/stdlib/prime/0/prime.rbs +6 -0
  59. data/stdlib/securerandom/0/securerandom.rbs +2 -0
  60. data/stdlib/time/0/time.rbs +327 -0
  61. data/stdlib/tsort/0/tsort.rbs +8 -0
  62. data/stdlib/uri/0/common.rbs +401 -0
  63. data/stdlib/uri/0/rfc2396_parser.rbs +9 -0
  64. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  65. data/steep/Gemfile.lock +13 -14
  66. metadata +16 -5
@@ -1,35 +1,5 @@
1
1
  module RBS
2
2
  class MethodType
3
- class Block
4
- attr_reader :type
5
- attr_reader :required
6
-
7
- def initialize(type:, required:)
8
- @type = type
9
- @required = required
10
- end
11
-
12
- def ==(other)
13
- other.is_a?(Block) &&
14
- other.type == type &&
15
- other.required == required
16
- end
17
-
18
- def to_json(*a)
19
- {
20
- type: type,
21
- required: required
22
- }.to_json(*a)
23
- end
24
-
25
- def sub(s)
26
- self.class.new(
27
- type: type.sub(s),
28
- required: required
29
- )
30
- end
31
- end
32
-
33
3
  attr_reader :type_params
34
4
  attr_reader :type
35
5
  attr_reader :block
@@ -86,7 +56,7 @@ module RBS
86
56
  type_params: type_params,
87
57
  type: type.map_type(&block),
88
58
  block: self.block&.yield_self do |b|
89
- Block.new(type: b.type.map_type(&block), required: b.required)
59
+ Types::Block.new(type: b.type.map_type(&block), required: b.required)
90
60
  end,
91
61
  location: location
92
62
  )
@@ -8,7 +8,7 @@ require 'racc/parser.rb'
8
8
  module RBS
9
9
  class Parser < Racc::Parser
10
10
 
11
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1044)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1058)
12
12
 
13
13
  Types = RBS::Types
14
14
  Namespace = RBS::Namespace
@@ -262,6 +262,10 @@ ANNOTATION_RE = Regexp.union(/%a\{.*?\}/,
262
262
  /%a\(.*?\)/,
263
263
  /%a\<.*?\>/,
264
264
  /%a\|.*?\|/)
265
+
266
+ escape_sequences = %w[a b e f n r s t v "].map { |l| "\\\\#{l}" }
267
+ DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE = /(#{escape_sequences.join("|")})/
268
+
265
269
  def next_token
266
270
  if @type
267
271
  type = @type
@@ -341,7 +345,21 @@ def next_token
341
345
  when input.scan(/[a-z_]\w*\b/)
342
346
  new_token(:tLIDENT)
343
347
  when input.scan(/"(\\"|[^"])*"/)
344
- s = input.matched.yield_self {|s| s[1, s.length - 2] }.gsub(/\\"/, '"')
348
+ s = input.matched.yield_self {|s| s[1, s.length - 2] }
349
+ .gsub(DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE) do |match|
350
+ case match
351
+ when '\\a' then "\a"
352
+ when '\\b' then "\b"
353
+ when '\\e' then "\e"
354
+ when '\\f' then "\f"
355
+ when '\\n' then "\n"
356
+ when '\\r' then "\r"
357
+ when '\\s' then "\s"
358
+ when '\\t' then "\t"
359
+ when '\\v' then "\v"
360
+ when '\\"' then '"'
361
+ end
362
+ end
345
363
  new_token(:tSTRING, s)
346
364
  when input.scan(/'(\\'|[^'])*'/)
347
365
  s = input.matched.yield_self {|s| s[1, s.length - 2] }.gsub(/\\'/, "'")
@@ -383,118 +401,119 @@ end
383
401
  ##### State transition tables begin ###
384
402
 
385
403
  clist = [
386
- '341,342,33,343,5,58,59,60,61,37,354,380,33,33,33,340,42,50,352,379,40',
387
- '41,209,210,211,212,213,214,215,216,220,33,217,208,218,219,104,115,105',
388
- '106,107,121,76,32,196,336,330,331,33,51,334,332,335,32,32,32,33,333',
389
- '120,108,109,110,112,114,113,329,338,339,111,116,118,43,32,197,48,122',
390
- '123,119,124,341,342,33,343,66,58,59,60,61,39,32,301,33,33,33,340,231',
391
- '50,32,40,41,83,209,210,211,212,213,214,215,216,220,33,217,208,218,219',
392
- '104,115,105,106,107,121,33,32,144,336,330,331,39,51,334,332,335,32,32',
393
- '32,50,333,120,108,109,110,112,114,113,329,338,339,111,116,118,89,32',
394
- '87,320,122,123,119,124,341,342,145,343,32,58,59,60,61,51,158,2,3,4,316',
395
- '340,157,164,199,88,40,41,209,210,211,212,213,214,215,216,220,276,217',
396
- '208,218,219,104,115,105,106,107,121,88,200,146,336,330,331,324,147,334',
397
- '332,335,40,41,361,277,333,120,108,109,110,112,114,113,329,338,339,111',
398
- '116,118,341,342,88,343,122,123,119,124,-4,88,-239,148,33,76,80,340,-239',
399
- '395,396,397,156,76,209,210,211,212,213,214,215,216,355,159,217,208,218',
400
- '219,104,115,105,106,107,121,88,88,88,336,330,331,40,41,334,332,335,32',
401
- '40,41,161,333,120,108,109,110,112,114,113,329,338,339,111,116,118,341',
402
- '342,163,343,122,123,119,124,41,58,59,60,61,39,166,340,55,54,56,40,41',
403
- '158,209,210,211,212,213,214,215,216,220,-107,217,208,218,219,104,115',
404
- '105,106,107,121,40,41,-108,336,330,331,40,41,334,332,335,63,64,-109',
405
- '65,333,120,108,109,110,112,114,113,329,338,339,111,116,118,341,342,-110',
406
- '343,122,123,119,124,-111,58,59,60,61,40,41,340,55,54,56,40,41,-112,209',
407
- '210,211,212,213,214,215,216,220,-113,217,208,218,219,104,115,105,106',
408
- '107,121,40,41,-114,336,330,331,272,273,334,332,335,279,280,365,366,333',
409
- '120,108,109,110,112,114,113,329,338,339,111,116,118,40,41,40,41,122',
410
- '123,119,124,341,342,-115,343,-116,58,59,60,61,40,41,40,41,40,41,340',
411
- '387,388,40,41,40,41,209,210,211,212,213,214,215,216,220,-117,217,208',
412
- '218,219,104,115,105,106,107,121,40,41,48,336,330,331,40,41,334,332,335',
413
- '-132,171,172,173,333,120,108,109,110,112,114,113,329,338,339,111,116',
414
- '118,341,342,174,343,122,123,119,124,175,176,177,42,201,234,235,340,237',
415
- '238,239,241,83,245,209,210,211,212,213,214,215,216,220,245,217,208,218',
416
- '219,104,115,105,106,107,121,245,251,254,336,330,331,42,257,334,332,335',
417
- '259,263,265,267,333,120,108,109,110,112,114,113,329,338,339,111,116',
418
- '118,268,42,270,307,122,123,119,124,33,309,263,58,59,60,61,311,267,321',
419
- '22,23,21,322,26,-217,25,323,30,359,93,94,95,96,97,98,99,100,117,16,101',
420
- '92,102,103,104,115,105,106,107,121,364,32,364,364,371,28,372,139,373',
421
- '140,142,374,375,377,378,381,120,108,109,110,112,114,113,382,392,401',
422
- '111,116,118,402,403,406,407,122,123,119,124,33,408,409,58,59,60,61,406',
423
- ',,22,23,21,,26,,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103',
424
- '104,115,105,106,107,121,,32,,,,28,,,,,,,,,,,120,108,109,110,112,114',
425
- '113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23,21',
426
- ',26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
427
- '115,105,106,107,121,,32,,,,28,,139,,140,142,,,,,,120,108,109,110,112',
428
- '114,113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23',
429
- '21,,26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
430
- '115,105,106,107,121,,32,,,,28,,139,,140,142,,,,,,120,108,109,110,112',
431
- '114,113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23',
432
- '21,,26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
433
- '115,105,106,107,121,,32,,,,28,,139,,140,142,,,,,,120,108,109,110,112',
434
- '114,113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23',
435
- '21,,26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
436
- '115,105,106,107,121,,32,,,,28,,207,,,142,,,,,,120,108,109,110,112,114',
437
- '113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23,21',
438
- ',26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
439
- '115,105,106,107,121,168,32,169,,,28,,207,,,142,,,,,,120,108,109,110',
440
- '112,114,113,168,,169,111,116,118,58,59,60,61,122,123,119,124,,,,,,,',
441
- '40,41,209,210,211,212,213,214,215,216,220,,217,208,218,219,104,115,105',
442
- '106,107,121,170,40,41,,,,,207,,,142,,,,,,120,108,109,110,112,114,113',
443
- '170,,,111,116,118,58,59,60,61,122,123,119,124,,,,,,,,,,209,210,211,212',
444
- '213,214,215,216,220,,217,208,218,219,104,115,105,106,107,121,168,,169',
445
- ',,,,207,,,142,,,,,,120,108,109,110,112,114,113,168,,169,111,116,118',
446
- '58,59,60,61,122,123,119,124,,,,,,,,40,41,209,210,211,212,213,214,215',
447
- '216,220,,217,208,218,219,104,115,105,106,107,121,170,40,41,168,152,169',
448
- '168,155,169,153,,,,,,,120,108,109,110,112,114,113,170,,,111,116,118',
449
- '154,,,,122,123,119,124,,,,151,,,,,,,40,41,,40,41,-239,,33,,80,,-239',
450
- ',,296,297,76,-239,,33,,80,170,-239,,170,296,297,76,,,,-239,,33,298,80',
451
- ',-239,,,296,297,76,293,292,,298,32,,,,,,,,293,292,,-239,32,33,298,80',
452
- '284,-239,,,296,297,76,293,292,,,32,308,,,,,,,,,,,,,298,,312,,,,,,,293',
453
- '292,,33,32,,,,,,,,,22,23,21,,26,,25,360,30,,8,12,19,20,9,10,13,14,15',
454
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20',
455
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
456
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
457
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
458
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
459
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
460
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
461
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
462
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
463
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
464
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
465
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
466
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
467
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
468
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
469
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
470
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
471
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
472
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
473
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
474
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
475
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
476
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
477
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
478
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
479
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
480
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
481
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
482
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
483
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
484
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
485
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
486
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
487
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
488
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
489
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
490
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
491
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
492
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
493
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
494
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
495
- '11,27,152,,,155,,153,,32,320,,,28,,,,,,,,,,,,,,154,,316,317,313,314',
496
- '315,,,,318,151' ]
497
- racc_action_table = arr = ::Array.new(2779, nil)
404
+ '349,350,33,351,5,113,37,33,33,42,336,392,49,33,33,348,43,244,334,391',
405
+ '40,41,55,56,57,58,59,60,61,62,353,33,63,54,64,65,66,77,67,68,69,83,33',
406
+ '32,53,344,338,339,32,32,342,340,343,303,32,32,33,341,82,70,71,72,74',
407
+ '76,75,337,346,347,73,78,80,126,32,124,48,84,85,81,86,349,350,33,351',
408
+ '32,96,97,98,99,104,49,39,33,33,33,348,205,205,32,125,40,41,55,56,57',
409
+ '58,59,60,61,62,79,185,63,54,64,65,66,77,67,68,69,83,53,32,160,344,338',
410
+ '339,53,53,342,340,343,32,32,32,125,341,82,70,71,72,74,76,75,337,346',
411
+ '347,73,78,80,40,41,161,222,84,85,81,86,349,350,120,351,180,96,97,98',
412
+ '99,164,179,101,102,165,103,348,166,278,325,358,223,39,55,56,57,58,59',
413
+ '60,61,62,79,395,63,54,64,65,66,77,67,68,69,83,279,125,125,344,338,339',
414
+ '396,397,342,340,343,321,40,41,125,341,82,70,71,72,74,76,75,337,346,347',
415
+ '73,78,80,167,317,125,125,84,85,81,86,349,350,168,351,170,96,97,98,99',
416
+ '2,3,4,40,41,171,348,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,172',
417
+ '63,54,64,65,66,77,67,68,69,83,40,41,113,344,338,339,40,41,342,340,343',
418
+ '40,41,40,41,341,82,70,71,72,74,76,75,337,346,347,73,78,80,349,350,178',
419
+ '351,84,85,81,86,-4,181,-241,184,33,41,117,348,-241,40,41,40,41,113,55',
420
+ '56,57,58,59,60,61,62,79,187,63,54,64,65,66,77,67,68,69,83,40,41,180',
421
+ '344,338,339,281,282,342,340,343,32,370,371,188,341,82,70,71,72,74,76',
422
+ '75,337,346,347,73,78,80,349,350,-104,351,84,85,81,86,40,41,40,41,-105',
423
+ '39,-106,348,386,387,40,41,40,41,55,56,57,58,59,60,61,62,79,-107,63,54',
424
+ '64,65,66,77,67,68,69,83,40,41,-108,344,338,339,40,41,342,340,343,40',
425
+ '41,40,41,341,82,70,71,72,74,76,75,337,346,347,73,78,80,40,41,-109,-110',
426
+ '84,85,81,86,349,350,-111,351,-112,96,97,98,99,-113,-114,48,-129,193',
427
+ '194,348,195,196,197,198,206,207,55,56,57,58,59,60,61,62,79,42,63,54',
428
+ '64,65,66,77,67,68,69,83,224,238,247,344,338,339,248,250,342,340,343',
429
+ '252,253,42,255,341,82,70,71,72,74,76,75,337,346,347,73,78,80,349,350',
430
+ '255,351,84,85,81,86,255,261,42,224,265,269,271,348,273,274,310,269,312',
431
+ '273,55,56,57,58,59,60,61,62,79,322,63,54,64,65,66,77,67,68,69,83,323',
432
+ '324,327,344,338,339,327,327,342,340,343,357,359,366,367,341,82,70,71',
433
+ '72,74,76,75,337,346,347,73,78,80,368,369,372,374,84,85,81,86,33,377',
434
+ '377,96,97,98,99,377,390,393,22,23,21,394,26,-219,25,401,30,402,131,132',
435
+ '133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,403',
436
+ '32,405,410,411,28,412,156,413,157,159,410,,,,,82,70,71,72,74,76,75,',
437
+ ',,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,,25,,30',
438
+ ',131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68',
439
+ '69,83,,32,,,174,28,,177,,175,,,,,,,82,70,71,72,74,76,75,,,,73,78,80',
440
+ '176,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131',
441
+ '132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83',
442
+ ',32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84',
443
+ '85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134',
444
+ '135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,',
445
+ '156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33',
446
+ ',,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137',
447
+ '138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,230,,,159,,',
448
+ ',,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99',
449
+ ',,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16',
450
+ '139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157,159,,,,,,82,70',
451
+ '71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23',
452
+ '21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16,139,130,140',
453
+ '141,66,77,67,68,69,83,,32,,,,28,,230,,,159,,,,,,82,70,71,72,74,76,75',
454
+ ',,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90,89,91,,,,,,,,55,56,57',
455
+ '58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,,190,,191,,',
456
+ ',,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81,86,96,97,98,99',
457
+ ',,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77',
458
+ '67,68,69,83,192,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80',
459
+ '96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64',
460
+ '65,66,77,67,68,69,83,190,,191,,,,,230,,,159,,,,,,82,70,71,72,74,76,75',
461
+ '190,,191,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,40,41,55,56,57,58,59',
462
+ '60,61,62,79,,63,54,64,65,66,77,67,68,69,83,192,40,41,,,,,230,,,159,',
463
+ ',,,,82,70,71,72,74,76,75,192,,,73,78,80,96,97,98,99,84,85,81,86,,,,',
464
+ ',,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,190,',
465
+ '191,190,,191,190,,191,,,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84',
466
+ '85,81,86,,,,,,,,40,41,,40,41,,40,41,-241,,33,,117,,-241,,,298,299,113',
467
+ ',,192,,,192,,,192,,-241,,33,,117,,-241,,300,298,299,113,,,,,,295,294',
468
+ ',,32,-241,,33,,117,,-241,,300,298,299,113,,,,286,,295,294,,174,32,,177',
469
+ ',175,,,321,,300,,,,,,,309,,295,294,,33,32,,176,,317,318,314,315,316',
470
+ '22,23,21,319,26,,25,313,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
471
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10,13,14,15,16',
472
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
473
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
474
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
475
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
476
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
477
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
478
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
479
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
480
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
481
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
482
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
483
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
484
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
485
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
486
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
487
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
488
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
489
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
490
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
491
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
492
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
493
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
494
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
495
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
496
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
497
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
498
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
499
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
500
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
501
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
502
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
503
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
504
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
505
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
506
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
507
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
508
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
509
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
510
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
511
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
512
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
513
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
514
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
515
+ '13,14,15,16,17,18,11,27,,,,,,,,32,,,,28' ]
516
+ racc_action_table = arr = ::Array.new(3008, nil)
498
517
  idx = 0
499
518
  clist.each do |str|
500
519
  str.split(',', -1).each do |i|
@@ -504,129 +523,139 @@ clist = [
504
523
  end
505
524
 
506
525
  clist = [
507
- '313,313,48,313,1,313,313,313,313,5,319,364,155,187,188,313,7,28,319',
508
- '364,44,44,313,313,313,313,313,313,313,313,313,190,313,313,313,313,313',
509
- '313,313,313,313,313,269,48,160,313,313,313,231,28,313,313,313,155,187',
510
- '188,259,313,313,313,313,313,313,313,313,313,313,313,313,313,313,24,190',
511
- '160,27,313,313,313,313,314,314,265,314,32,314,314,314,314,35,231,269',
512
- '189,267,316,314,189,196,259,6,6,36,314,314,314,314,314,314,314,314,314',
513
- '317,314,314,314,314,314,314,314,314,314,314,318,265,52,314,314,314,6',
514
- '196,314,314,314,189,267,316,237,314,314,314,314,314,314,314,314,314',
515
- '314,314,314,314,314,47,317,46,306,314,314,314,314,315,315,53,315,318',
516
- '315,315,315,315,237,79,0,0,0,306,315,79,86,162,46,47,47,315,315,315',
517
- '315,315,315,315,315,315,260,315,315,315,315,315,315,315,315,315,315',
518
- '86,162,54,315,315,315,300,55,315,315,315,149,149,326,260,315,315,315',
519
- '315,315,315,315,315,315,315,315,315,315,315,320,320,300,320,315,315',
520
- '315,315,34,326,34,56,34,76,34,320,34,383,384,385,78,34,320,320,320,320',
521
- '320,320,320,320,320,80,320,320,320,320,320,320,320,320,320,320,383,384',
522
- '385,320,320,320,165,165,320,320,320,34,184,184,82,320,320,320,320,320',
523
- '320,320,320,320,320,320,320,320,320,356,356,83,356,320,320,320,320,84',
524
- '30,30,30,30,34,90,356,30,30,30,185,185,91,356,356,356,356,356,356,356',
525
- '356,356,92,356,356,356,356,356,356,356,356,356,356,186,186,93,356,356',
526
- '356,192,192,356,356,356,31,31,94,31,356,356,356,356,356,356,356,356',
527
- '356,356,356,356,356,356,375,375,95,375,356,356,356,356,96,145,145,145',
528
- '145,193,193,375,145,145,145,194,194,97,375,375,375,375,375,375,375,375',
529
- '375,98,375,375,375,375,375,375,375,375,375,375,252,252,99,375,375,375',
530
- '257,257,375,375,375,262,262,337,337,375,375,375,375,375,375,375,375',
531
- '375,375,375,375,375,375,357,357,358,358,375,375,375,375,386,386,100',
532
- '386,101,386,386,386,386,362,362,367,367,369,369,386,374,374,390,390',
533
- '391,391,386,386,386,386,386,386,386,386,386,102,386,386,386,386,386',
534
- '386,386,386,386,386,393,393,103,386,386,386,394,394,386,386,386,117',
535
- '127,128,129,386,386,386,386,386,386,386,386,386,386,386,386,386,386',
536
- '408,408,131,408,386,386,386,386,133,136,137,143,172,191,195,408,197',
537
- '198,200,205,228,229,408,408,408,408,408,408,408,408,408,230,408,408',
538
- '408,408,408,408,408,408,408,408,232,233,236,408,408,408,240,243,408',
539
- '408,408,244,245,246,247,408,408,408,408,408,408,408,408,408,408,408',
540
- '408,408,408,249,253,255,271,408,408,408,408,50,275,277,50,50,50,50,278',
541
- '282,296,50,50,50,297,50,50,50,298,50,323,50,50,50,50,50,50,50,50,50',
542
- '50,50,50,50,50,50,50,50,50,50,50,328,50,346,348,349,50,350,50,351,50',
543
- '50,353,355,359,363,368,50,50,50,50,50,50,50,370,380,387,50,50,50,388',
544
- '389,398,400,50,50,50,50,139,403,405,139,139,139,139,409,,,139,139,139',
545
- ',139,,139,,139,,139,139,139,139,139,139,139,139,139,139,139,139,139',
546
- '139,139,139,139,139,139,139,,139,,,,139,,,,,,,,,,,139,139,139,139,139',
547
- '139,139,,,,139,139,139,,,,,139,139,139,139,161,,,161,161,161,161,,,',
548
- '161,161,161,,161,161,161,,161,,161,161,161,161,161,161,161,161,161,161',
549
- '161,161,161,161,161,161,161,161,161,161,,161,,,,161,,161,,161,161,,',
550
- ',,,161,161,161,161,161,161,161,,,,161,161,161,,,,,161,161,161,161,173',
551
- ',,173,173,173,173,,,,173,173,173,,173,173,173,,173,,173,173,173,173',
552
- '173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,,173',
553
- ',,,173,,173,,173,173,,,,,,173,173,173,173,173,173,173,,,,173,173,173',
554
- ',,,,173,173,173,173,174,,,174,174,174,174,,,,174,174,174,,174,174,174',
555
- ',174,,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174',
556
- '174,174,174,174,,174,,,,174,,174,,174,174,,,,,,174,174,174,174,174,174',
557
- '174,,,,174,174,174,,,,,174,174,174,174,175,,,175,175,175,175,,,,175',
558
- '175,175,,175,175,175,,175,,175,175,175,175,175,175,175,175,175,175,175',
559
- '175,175,175,175,175,175,175,175,175,,175,,,,175,,175,,,175,,,,,,175',
560
- '175,175,175,175,175,175,,,,175,175,175,,,,,175,175,175,175,241,,,241',
561
- '241,241,241,,,,241,241,241,,241,241,241,,241,,241,241,241,241,241,241',
562
- '241,241,241,241,241,241,241,241,241,241,241,241,241,241,125,241,125',
563
- ',,241,,241,,,241,,,,,,241,241,241,241,241,241,241,178,,178,241,241,241',
564
- '176,176,176,176,241,241,241,241,,,,,,,,125,125,176,176,176,176,176,176',
565
- '176,176,176,,176,176,176,176,176,176,176,176,176,176,125,178,178,,,',
566
- ',176,,,176,,,,,,176,176,176,176,176,176,176,178,,,176,176,176,177,177',
567
- '177,177,176,176,176,176,,,,,,,,,,177,177,177,177,177,177,177,177,177',
568
- ',177,177,177,177,177,177,177,177,177,177,180,,180,,,,,177,,,177,,,,',
569
- ',177,177,177,177,177,177,177,181,,181,177,177,177,207,207,207,207,177',
570
- '177,177,177,,,,,,,,180,180,207,207,207,207,207,207,207,207,207,,207',
571
- '207,207,207,207,207,207,207,207,207,180,181,181,182,77,182,224,77,224',
572
- '77,,,,,,,207,207,207,207,207,207,207,181,,,207,207,207,77,,,,207,207',
573
- '207,207,,,,77,,,,,,,182,182,,224,224,266,,266,,266,,266,,,266,266,266',
574
- '274,,274,,274,182,274,,224,274,274,274,,,,281,,281,266,281,,281,,,281',
575
- '281,281,266,266,,274,266,,,,,,,,274,274,,325,274,325,281,325,266,325',
576
- ',,325,325,325,281,281,,,281,274,,,,,,,,,,,,,325,,281,,,,,,,325,325,',
577
- '2,325,,,,,,,,,2,2,2,,2,,2,325,2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,25,,',
578
- ',,2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25,25,25,25,25,25,25,25,25',
579
- '25,25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26,,26,26,26,26,26,26,26,26',
580
- '26,26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40,,40,,40,,40,,40,40,40,40',
581
- '40,40,40,40,40,40,40,40,40,40,,,41,,,,,40,,,,40,41,41,41,,41,,41,,41',
582
- ',41,41,41,41,41,41,41,41,41,41,41,41,41,41,,,43,,,,,41,,,,41,43,43,43',
583
- ',43,,43,,43,,43,43,43,43,43,43,43,43,43,43,43,43,43,43,,,51,,,,,43,',
584
- ',,43,51,51,51,,51,,51,,51,,51,51,51,51,51,51,51,51,51,51,51,51,51,51',
585
- ',,57,,,,,51,,,,51,57,57,57,,57,,57,,57,,57,57,57,57,57,57,57,57,57,57',
586
- '57,57,57,57,,,88,,,,,57,,,,57,88,88,88,,88,,88,,88,,88,88,88,88,88,88',
587
- '88,88,88,88,88,88,88,88,,,140,,,,,88,,,,88,140,140,140,,140,,140,,140',
588
- ',140,140,140,140,140,140,140,140,140,140,140,140,140,140,,,141,,,,,140',
589
- ',,,140,141,141,141,,141,,141,,141,,141,141,141,141,141,141,141,141,141',
590
- '141,141,141,141,141,,,142,,,,,141,,,,141,142,142,142,,142,,142,,142',
591
- ',142,142,142,142,142,142,142,142,142,142,142,142,142,142,,,146,,,,,142',
592
- ',,,142,146,146,146,,146,,146,,146,,146,146,146,146,146,146,146,146,146',
593
- '146,146,146,146,146,,,147,,,,,146,,,,146,147,147,147,,147,,147,,147',
594
- ',147,147,147,147,147,147,147,147,147,147,147,147,147,147,,,148,,,,,147',
595
- ',,,147,148,148,148,,148,,148,,148,,148,148,148,148,148,148,148,148,148',
596
- '148,148,148,148,148,,,156,,,,,148,,,,148,156,156,156,,156,,156,,156',
597
- ',156,156,156,156,156,156,156,156,156,156,156,156,156,156,,,157,,,,,156',
598
- ',,,156,157,157,157,,157,,157,,157,,157,157,157,157,157,157,157,157,157',
599
- '157,157,157,157,157,,,159,,,,,157,,,,157,159,159,159,,159,,159,,159',
600
- ',159,159,159,159,159,159,159,159,159,159,159,159,159,159,,,179,,,,,159',
601
- ',,,159,179,179,179,,179,,179,,179,,179,179,179,179,179,179,179,179,179',
602
- '179,179,179,179,179,,,201,,,,,179,,,,179,201,201,201,,201,,201,,201',
603
- ',201,201,201,201,201,201,201,201,201,201,201,201,201,201,,,234,,,,,201',
604
- ',,,201,234,234,234,,234,,234,,234,,234,234,234,234,234,234,234,234,234',
605
- '234,234,234,234,234,,,235,,,,,234,,,,234,235,235,235,,235,,235,,235',
606
- ',235,235,235,235,235,235,235,235,235,235,235,235,235,235,,,268,,,,,235',
607
- ',,,235,268,268,268,,268,,268,,268,,268,268,268,268,268,268,268,268,268',
608
- '268,268,268,268,268,,,309,,,,,268,,,,268,309,309,309,,309,,309,,309',
609
- ',309,309,309,309,309,309,309,309,309,309,309,309,309,309,,,321,,,,,309',
610
- ',,,309,321,321,321,,321,,321,,321,,321,321,321,321,321,321,321,321,321',
611
- '321,321,321,321,321,,,322,,,,,321,,,,321,322,322,322,,322,,322,,322',
612
- ',322,322,322,322,322,322,322,322,322,322,322,322,322,322,,,327,,,,,322',
613
- ',,,322,327,327,327,,327,,327,,327,,327,327,327,327,327,327,327,327,327',
614
- '327,327,327,327,327,,,345,,,,,327,,,,327,345,345,345,,345,,345,,345',
615
- ',345,345,345,345,345,345,345,345,345,345,345,345,345,345,,,347,,,,,345',
616
- ',,,345,347,347,347,,347,,347,,347,,347,347,347,347,347,347,347,347,347',
617
- '347,347,347,347,347,,,371,,,,,347,,,,347,371,371,371,,371,,371,,371',
618
- ',371,371,371,371,371,371,371,371,371,371,371,371,371,371,,,372,,,,,371',
619
- ',,,371,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372',
620
- '372,372,372,372,372,,,373,,,,,372,,,,372,373,373,373,,373,,373,,373',
621
- ',373,373,373,373,373,373,373,373,373,373,373,373,373,373,,,377,,,,,373',
622
- ',,,373,377,377,377,,377,,377,,377,,377,377,377,377,377,377,377,377,377',
623
- '377,377,377,377,377,,,378,,,,,377,,,,377,378,378,378,,378,,378,,378',
624
- ',378,378,378,378,378,378,378,378,378,378,378,378,378,378,,,381,,,,,378',
625
- ',,,378,381,381,381,,381,,381,,381,,381,381,381,381,381,381,381,381,381',
626
- '381,381,381,381,381,,,382,,,,,381,,,,381,382,382,382,,382,,382,,382',
627
- ',382,382,382,382,382,382,382,382,382,382,382,382,382,382,283,,,283,',
628
- '283,,382,283,,,382,,,,,,,,,,,,,,283,,283,283,283,283,283,,,,283,283' ]
629
- racc_action_check = arr = ::Array.new(2779, nil)
526
+ '321,321,48,321,1,275,5,177,215,7,320,377,28,216,217,321,24,216,320,377',
527
+ '44,44,321,321,321,321,321,321,321,321,321,244,321,321,321,321,321,321',
528
+ '321,321,321,321,265,48,28,321,321,321,177,215,321,321,321,275,216,217',
529
+ '271,321,321,321,321,321,321,321,321,321,321,321,321,321,321,47,244,46',
530
+ '27,321,321,321,321,328,328,273,328,265,328,328,328,328,32,119,35,317',
531
+ '318,319,328,160,206,271,46,47,47,328,328,328,328,328,328,328,328,328',
532
+ '123,328,328,328,328,328,328,328,328,328,328,119,273,51,328,328,328,160',
533
+ '206,328,328,328,317,318,319,123,328,328,328,328,328,328,328,328,328',
534
+ '328,328,328,328,328,6,6,51,183,328,328,328,328,329,329,36,329,116,329',
535
+ '329,329,329,87,116,31,31,88,31,329,89,266,302,326,183,6,329,329,329',
536
+ '329,329,329,329,329,329,382,329,329,329,329,329,329,329,329,329,329',
537
+ '266,302,326,329,329,329,383,384,329,329,329,308,169,169,382,329,329',
538
+ '329,329,329,329,329,329,329,329,329,329,329,329,90,308,383,384,329,329',
539
+ '329,329,330,330,91,330,93,330,330,330,330,0,0,0,186,186,94,330,209,209',
540
+ '210,210,211,211,330,330,330,330,330,330,330,330,330,95,330,330,330,330',
541
+ '330,330,330,330,330,330,212,212,113,330,330,330,213,213,330,330,330',
542
+ '214,214,219,219,330,330,330,330,330,330,330,330,330,330,330,330,330',
543
+ '330,354,354,115,354,330,330,330,330,34,117,34,120,34,121,34,354,34,220',
544
+ '220,221,221,34,354,354,354,354,354,354,354,354,354,127,354,354,354,354',
545
+ '354,354,354,354,354,354,262,262,128,354,354,354,268,268,354,354,354',
546
+ '34,345,345,129,354,354,354,354,354,354,354,354,354,354,354,354,354,354',
547
+ '372,372,130,372,354,354,354,354,355,355,356,356,131,34,132,372,369,369',
548
+ '375,375,378,378,372,372,372,372,372,372,372,372,372,133,372,372,372',
549
+ '372,372,372,372,372,372,372,380,380,134,372,372,372,389,389,372,372',
550
+ '372,404,404,406,406,372,372,372,372,372,372,372,372,372,372,372,372',
551
+ '372,372,407,407,135,136,372,372,372,372,385,385,137,385,138,385,385',
552
+ '385,385,139,140,141,142,145,146,385,148,150,153,154,161,162,385,385',
553
+ '385,385,385,385,385,385,385,163,385,385,385,385,385,385,385,385,385',
554
+ '385,188,204,218,385,385,385,223,228,385,385,385,239,240,241,242,385',
555
+ '385,385,385,385,385,385,385,385,385,385,385,385,385,412,412,243,412',
556
+ '385,385,385,385,245,246,249,252,254,255,256,412,257,259,277,279,280',
557
+ '284,412,412,412,412,412,412,412,412,412,298,412,412,412,412,412,412',
558
+ '412,412,412,412,299,300,314,412,412,412,315,316,412,412,412,324,327',
559
+ '331,332,412,412,412,412,412,412,412,412,412,412,412,412,412,412,333',
560
+ '335,353,357,412,412,412,412,49,361,363,49,49,49,49,365,376,379,49,49',
561
+ '49,381,49,49,49,386,49,387,49,49,49,49,49,49,49,49,49,49,49,49,49,49',
562
+ '49,49,49,49,49,49,388,49,392,398,400,49,403,49,409,49,49,413,,,,,49',
563
+ '49,49,49,49,49,49,,,,49,49,49,,,,,49,49,49,49,156,,,156,156,156,156',
564
+ ',,,156,156,156,,156,,156,,156,,156,156,156,156,156,156,156,156,156,156',
565
+ '156,156,156,156,156,156,156,156,156,156,,156,,,114,156,,114,,114,,,',
566
+ ',,,156,156,156,156,156,156,156,,,,156,156,156,114,,,,156,156,156,156',
567
+ '194,,,194,194,194,194,,,,194,194,194,,194,194,194,,194,,194,194,194',
568
+ '194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194',
569
+ ',194,,,,194,,194,,194,194,,,,,,194,194,194,194,194,194,194,,,,194,194',
570
+ '194,,,,,194,194,194,194,195,,,195,195,195,195,,,,195,195,195,,195,195',
571
+ '195,,195,,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195',
572
+ '195,195,195,195,195,,195,,,,195,,195,,195,195,,,,,,195,195,195,195,195',
573
+ '195,195,,,,195,195,195,,,,,195,195,195,195,196,,,196,196,196,196,,,',
574
+ '196,196,196,,196,196,196,,196,,196,196,196,196,196,196,196,196,196,196',
575
+ '196,196,196,196,196,196,196,196,196,196,,196,,,,196,,196,,,196,,,,,',
576
+ '196,196,196,196,196,196,196,,,,196,196,196,,,,,196,196,196,196,205,',
577
+ ',205,205,205,205,,,,205,205,205,,205,205,205,,205,,205,205,205,205,205',
578
+ '205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,,205,,,',
579
+ '205,,205,,205,205,,,,,,205,205,205,205,205,205,205,,,,205,205,205,,',
580
+ ',,205,205,205,205,250,,,250,250,250,250,,,,250,250,250,,250,250,250',
581
+ ',250,,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250',
582
+ '250,250,250,250,,250,,,,250,,250,,,250,,,,,,250,250,250,250,250,250',
583
+ '250,,,,250,250,250,,,,,250,250,250,250,30,30,30,30,,,,30,30,30,,,,,',
584
+ ',,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30,30,30,,,,,,,,',
585
+ '143,,143,,,,,,30,30,30,30,30,30,30,,30,30,30,30,30,,,,,30,30,30,30,165',
586
+ '165,165,165,,,,165,165,165,,,,,,143,143,165,165,165,165,165,165,165',
587
+ '165,165,,165,165,165,165,165,165,165,165,165,165,143,,,,,,,,,,,,,,,',
588
+ '165,165,165,165,165,165,165,,165,165,165,165,165,197,197,197,197,165',
589
+ '165,165,165,,,,,,,,,,197,197,197,197,197,197,197,197,197,,197,197,197',
590
+ '197,197,197,197,197,197,197,199,,199,,,,,197,,,197,,,,,,197,197,197',
591
+ '197,197,197,197,201,,201,197,197,197,198,198,198,198,197,197,197,197',
592
+ ',,,,,,,199,199,198,198,198,198,198,198,198,198,198,,198,198,198,198',
593
+ '198,198,198,198,198,198,199,201,201,,,,,198,,,198,,,,,,198,198,198,198',
594
+ '198,198,198,201,,,198,198,198,230,230,230,230,198,198,198,198,,,,,,',
595
+ ',,,230,230,230,230,230,230,230,230,230,,230,230,230,230,230,230,230',
596
+ '230,230,230,202,,202,203,,203,234,,234,,,,,,,,230,230,230,230,230,230',
597
+ '230,,,,230,230,230,,,,,230,230,230,230,,,,,,,,202,202,,203,203,,234',
598
+ '234,272,,272,,272,,272,,,272,272,272,,,202,,,203,,,234,,276,,276,,276',
599
+ ',276,,272,276,276,276,,,,,,272,272,,,272,283,,283,,283,,283,,276,283',
600
+ '283,283,,,,272,,276,276,,285,276,,285,,285,,,285,,283,,,,,,,276,,283',
601
+ '283,,2,283,,285,,285,285,285,285,285,2,2,2,285,2,,2,283,2,,2,2,2,2,2',
602
+ '2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25',
603
+ '25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26',
604
+ ',26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40',
605
+ ',40,,40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,,41,,,,,40,',
606
+ ',,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41,41,41,41,41',
607
+ ',,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43,43,43,43,43',
608
+ '43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53,53,53,53,53',
609
+ '53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53,92,92,92,,92,,92,,92,,92,92',
610
+ '92,92,92,92,92,92,92,92,92,92,92,92,,,125,,,,,92,,,,92,125,125,125,',
611
+ '125,,125,,125,,125,125,125,125,125,125,125,125,125,125,125,125,125,125',
612
+ ',,157,,,,,125,,,,125,157,157,157,,157,,157,,157,,157,157,157,157,157',
613
+ '157,157,157,157,157,157,157,157,157,,,158,,,,,157,,,,157,158,158,158',
614
+ ',158,,158,,158,,158,158,158,158,158,158,158,158,158,158,158,158,158',
615
+ '158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159,,159,159,159,159',
616
+ '159,159,159,159,159,159,159,159,159,159,,,166,,,,,159,,,,159,166,166',
617
+ '166,,166,,166,,166,,166,166,166,166,166,166,166,166,166,166,166,166',
618
+ '166,166,,,167,,,,,166,,,,166,167,167,167,,167,,167,,167,,167,167,167',
619
+ '167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167,,,,167,168',
620
+ '168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168,168,168',
621
+ '168,168,168,,,170,,,,,168,,,,168,170,170,170,,170,,170,,170,,170,170',
622
+ '170,170,170,170,170,170,170,170,170,170,170,170,,,171,,,,,170,,,,170',
623
+ '171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171,171',
624
+ '171,171,171,171,,,172,,,,,171,,,,171,172,172,172,,172,,172,,172,,172',
625
+ '172,172,172,172,172,172,172,172,172,172,172,172,172,,,178,,,,,172,,',
626
+ ',172,178,178,178,,178,,178,,178,,178,178,178,178,178,178,178,178,178',
627
+ '178,178,178,178,178,,,179,,,,,178,,,,178,179,179,179,,179,,179,,179',
628
+ ',179,179,179,179,179,179,179,179,179,179,179,179,179,179,,,181,,,,,179',
629
+ ',,,179,181,181,181,,181,,181,,181,,181,181,181,181,181,181,181,181,181',
630
+ '181,181,181,181,181,,,200,,,,,181,,,,181,200,200,200,,200,,200,,200',
631
+ ',200,200,200,200,200,200,200,200,200,200,200,200,200,200,,,207,,,,,200',
632
+ ',,,200,207,207,207,,207,,207,,207,,207,207,207,207,207,207,207,207,207',
633
+ '207,207,207,207,207,,,224,,,,,207,,,,207,224,224,224,,224,,224,,224',
634
+ ',224,224,224,224,224,224,224,224,224,224,224,224,224,224,,,247,,,,,224',
635
+ ',,,224,247,247,247,,247,,247,,247,,247,247,247,247,247,247,247,247,247',
636
+ '247,247,247,247,247,,,274,,,,,247,,,,247,274,274,274,,274,,274,,274',
637
+ ',274,274,274,274,274,274,274,274,274,274,274,274,274,274,,,310,,,,,274',
638
+ ',,,274,310,310,310,,310,,310,,310,,310,310,310,310,310,310,310,310,310',
639
+ '310,310,310,310,310,,,322,,,,,310,,,,310,322,322,322,,322,,322,,322',
640
+ ',322,322,322,322,322,322,322,322,322,322,322,322,322,322,,,323,,,,,322',
641
+ ',,,322,323,323,323,,323,,323,,323,,323,323,323,323,323,323,323,323,323',
642
+ '323,323,323,323,323,,,360,,,,,323,,,,323,360,360,360,,360,,360,,360',
643
+ ',360,360,360,360,360,360,360,360,360,360,360,360,360,360,,,362,,,,,360',
644
+ ',,,360,362,362,362,,362,,362,,362,,362,362,362,362,362,362,362,362,362',
645
+ '362,362,362,362,362,,,364,,,,,362,,,,362,364,364,364,,364,,364,,364',
646
+ ',364,364,364,364,364,364,364,364,364,364,364,364,364,364,,,366,,,,,364',
647
+ ',,,364,366,366,366,,366,,366,,366,,366,366,366,366,366,366,366,366,366',
648
+ '366,366,366,366,366,,,367,,,,,366,,,,366,367,367,367,,367,,367,,367',
649
+ ',367,367,367,367,367,367,367,367,367,367,367,367,367,367,,,368,,,,,367',
650
+ ',,,367,368,368,368,,368,,368,,368,,368,368,368,368,368,368,368,368,368',
651
+ '368,368,368,368,368,,,374,,,,,368,,,,368,374,374,374,,374,,374,,374',
652
+ ',374,374,374,374,374,374,374,374,374,374,374,374,374,374,,,390,,,,,374',
653
+ ',,,374,390,390,390,,390,,390,,390,,390,390,390,390,390,390,390,390,390',
654
+ '390,390,390,390,390,,,393,,,,,390,,,,390,393,393,393,,393,,393,,393',
655
+ ',393,393,393,393,393,393,393,393,393,393,393,393,393,393,,,394,,,,,393',
656
+ ',,,393,394,394,394,,394,,394,,394,,394,394,394,394,394,394,394,394,394',
657
+ '394,394,394,394,394,,,,,,,,394,,,,394' ]
658
+ racc_action_check = arr = ::Array.new(3008, nil)
630
659
  idx = 0
631
660
  clist.each do |str|
632
661
  str.split(',', -1).each do |i|
@@ -636,194 +665,196 @@ clist = [
636
665
  end
637
666
 
638
667
  racc_action_pointer = [
639
- 96, 4, 1444, nil, nil, 9, 51, -35, nil, nil,
668
+ 173, 4, 1590, nil, nil, 6, 103, -42, nil, nil,
640
669
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
641
- nil, nil, nil, nil, 51, 1480, 1516, 56, -1, nil,
642
- 302, 351, 79, nil, 237, 12, 80, nil, nil, nil,
643
- 1552, 1588, nil, 1624, -27, nil, 131, 131, -2, nil,
644
- 596, 1660, 100, 114, 147, 152, 185, 1696, nil, nil,
670
+ nil, nil, nil, nil, -4, 1626, 1662, 56, -6, nil,
671
+ 1140, 167, 84, nil, 316, 14, 140, nil, nil, nil,
672
+ 1698, 1734, nil, 1770, -27, nil, 52, 52, -2, 604,
673
+ nil, 101, nil, 1806, nil, nil, nil, nil, nil, nil,
645
674
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
646
- nil, nil, nil, nil, nil, nil, 229, 1269, 205, 166,
647
- 216, nil, 267, 300, 260, nil, 154, nil, 1732, nil,
648
- 295, 319, 287, 300, 311, 329, 335, 348, 358, 371,
649
- 408, 410, 437, 476, nil, nil, nil, nil, nil, nil,
650
- nil, nil, nil, nil, nil, nil, nil, 459, nil, nil,
651
- nil, nil, nil, nil, nil, 1099, nil, 460, 486, 460,
652
- nil, 477, nil, 483, nil, nil, 484, 485, nil, 673,
653
- 1768, 1804, 1840, 481, nil, 373, 1876, 1912, 1948, 164,
654
- nil, nil, nil, nil, nil, 8, 1984, 2020, nil, 2056,
655
- 22, 750, 155, nil, nil, 230, nil, nil, nil, nil,
656
- nil, nil, 483, 827, 904, 981, 1124, 1190, 1122, 2092,
657
- 1231, 1254, 1300, nil, 236, 272, 295, 9, 10, 87,
658
- 27, 478, 301, 337, 343, 485, 78, 515, 519, nil,
659
- 537, 2128, nil, nil, nil, 494, nil, 1256, nil, nil,
660
675
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
661
- nil, nil, nil, nil, 1303, nil, nil, nil, 521, 522,
662
- 532, 44, 543, 559, 2164, 2200, 542, 117, nil, nil,
663
- 518, 1058, nil, 552, 515, 496, 532, 531, nil, 572,
664
- nil, nil, 366, 542, nil, 571, nil, 417, nil, 52,
665
- 168, nil, 347, nil, nil, 77, 1350, 88, 2236, 29,
666
- nil, 576, nil, nil, 1362, 581, nil, 523, 605, nil,
667
- nil, 1377, 562, 2707, nil, nil, nil, nil, nil, nil,
668
- nil, nil, nil, nil, nil, nil, 565, 569, 560, nil,
669
- 185, nil, nil, nil, nil, nil, 110, nil, nil, 2272,
670
- nil, nil, nil, -2, 77, 156, 89, 106, 117, -62,
671
- 227, 2308, 2344, 608, nil, 1404, 192, 2380, 622, nil,
672
- nil, nil, nil, nil, nil, nil, nil, 375, nil, nil,
673
- nil, nil, nil, nil, nil, 2416, 624, 2452, 625, 624,
674
- 626, 628, nil, 612, nil, 595, 298, 395, 397, 609,
675
- nil, nil, 412, 610, 0, nil, nil, 414, 611, 416,
676
- 619, 2488, 2524, 2560, 434, 369, nil, 2596, 2632, nil,
677
- 645, 2668, 2704, 225, 226, 227, 448, 608, 612, 638,
678
- 421, 423, nil, 445, 451, nil, nil, nil, 613, nil,
679
- 628, nil, nil, 621, nil, 632, nil, nil, 519, 626,
680
- nil, nil ]
676
+ nil, nil, nil, nil, nil, nil, nil, 144, 125, 119,
677
+ 174, 184, 1842, 197, 207, 224, nil, nil, nil, nil,
678
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
679
+ nil, nil, nil, 268, 694, 266, 160, 273, nil, 71,
680
+ 317, 273, nil, 89, nil, 1878, nil, 320, 350, 345,
681
+ 337, 347, 349, 366, 379, 408, 409, 416, 418, 423,
682
+ 424, 451, 426, 1189, nil, 427, 426, nil, 428, nil,
683
+ 429, nil, nil, 430, 431, nil, 681, 1914, 1950, 1986,
684
+ 77, 456, 429, 438, nil, 1214, 2022, 2058, 2094, 165,
685
+ 2130, 2166, 2202, nil, nil, nil, nil, 3, 2238, 2274,
686
+ nil, 2310, nil, 132, nil, nil, 202, nil, 450, nil,
687
+ nil, nil, nil, nil, 758, 835, 912, 1280, 1346, 1321,
688
+ 2346, 1344, 1453, 1456, 478, 989, 78, 2382, nil, 206,
689
+ 208, 210, 232, 238, 243, 4, 9, 10, 446, 245,
690
+ 278, 280, nil, 504, 2418, nil, nil, nil, 461, nil,
691
+ 1412, nil, nil, nil, 1459, nil, nil, nil, nil, 492,
692
+ 489, 462, 494, 511, 27, 517, 533, 2454, nil, 488,
693
+ 1066, nil, 490, nil, 482, 463, 499, 499, nil, 526,
694
+ nil, nil, 303, nil, nil, 38, 154, nil, 279, nil,
695
+ nil, 52, 1506, 77, 2490, -8, 1528, 527, nil, 469,
696
+ 547, nil, nil, 1550, 504, 1537, nil, nil, nil, nil,
697
+ nil, nil, nil, nil, nil, nil, nil, nil, 516, 527,
698
+ 515, nil, 155, nil, nil, nil, nil, nil, 168, nil,
699
+ 2526, nil, nil, nil, 541, 545, 546, 87, 88, 89,
700
+ -62, -2, 2562, 2598, 571, nil, 156, 526, 77, 156,
701
+ 235, 564, 565, 580, nil, 562, nil, nil, nil, nil,
702
+ nil, nil, nil, nil, nil, 311, nil, nil, nil, nil,
703
+ nil, nil, nil, 545, 306, 340, 342, 559, nil, nil,
704
+ 2634, 591, 2670, 592, 2706, 597, 2742, 2778, 2814, 363,
705
+ nil, nil, 377, nil, 2850, 350, 572, 0, 352, 573,
706
+ 374, 577, 168, 185, 186, 456, 568, 570, 616, 380,
707
+ 2886, nil, 631, 2922, 2958, nil, nil, nil, 593, nil,
708
+ 608, nil, nil, 597, 385, nil, 387, 403, nil, 609,
709
+ nil, nil, 527, 601, nil, nil ]
681
710
 
682
711
  racc_action_default = [
683
- -243, -243, -239, -6, -16, -243, -4, -160, -163, -164,
684
- -165, -166, -167, -168, -169, -170, -171, -172, -173, -174,
685
- -175, -176, -177, -178, -179, -239, -239, -243, -243, -187,
686
- -243, -243, -240, -242, -17, -4, -150, 412, -1, -5,
687
- -239, -239, -186, -239, -188, -181, -243, -243, -239, -185,
688
- -239, -239, -243, -191, -243, -243, -243, -239, -199, -200,
689
- -201, -202, -233, -234, -235, -236, -241, -2, -7, -8,
690
- -9, -10, -11, -12, -13, -14, -17, -243, -243, -243,
691
- -243, -3, -82, -243, -161, -162, -243, -182, -239, -183,
692
- -243, -243, -173, -163, -167, -174, -175, -164, -165, -168,
693
- -169, -172, -166, -118, -119, -120, -121, -122, -123, -124,
694
- -125, -126, -127, -128, -129, -130, -131, -170, -133, -134,
695
- -135, -136, -137, -138, -139, -229, -197, -243, -243, -206,
696
- -207, -209, -210, -212, -213, -216, -219, -221, -222, -239,
697
- -239, -239, -239, -204, -190, -243, -239, -239, -239, -196,
698
- -18, -15, -15, -15, -15, -239, -239, -239, -238, -239,
699
- -84, -239, -243, -152, -180, -189, -184, -223, -230, -231,
700
- -232, -198, -243, -239, -239, -239, -217, -217, -229, -239,
701
- -229, -229, -229, -192, -193, -194, -195, -239, -239, -239,
702
- -239, -243, -157, -158, -159, -243, -243, -243, -243, -151,
703
- -243, -239, -205, -213, -208, -215, -211, -243, -107, -108,
704
- -109, -110, -111, -112, -113, -114, -115, -116, -117, -118,
705
- -132, -218, -220, -224, -229, -225, -226, -228, -150, -140,
706
- -140, -239, -140, -243, -239, -239, -243, -243, -83, -153,
707
- -203, -239, -227, -243, -23, -148, -28, -34, -30, -33,
708
- -59, -237, -156, -81, -85, -243, -214, -243, -34, -239,
709
- -243, -142, -145, -149, -34, -239, -17, -239, -239, -17,
710
- -86, -243, -20, -21, -17, -24, -141, -148, -243, -146,
711
- -147, -17, -29, -73, -27, -35, -36, -37, -38, -39,
712
- -40, -41, -42, -43, -44, -45, -243, -243, -243, -31,
713
- -243, -58, -60, -61, -62, -63, -73, -34, -22, -239,
714
- -143, -144, -26, -243, -243, -243, -239, -239, -239, -70,
715
- -243, -239, -239, -243, -32, -17, -243, -239, -52, -89,
716
- -90, -91, -92, -93, -94, -95, -96, -97, -100, -101,
717
- -102, -103, -104, -105, -106, -239, -52, -239, -52, -64,
718
- -66, -68, -71, -243, -74, -132, -243, -55, -56, -243,
719
- -19, -25, -46, -243, -243, -98, -99, -48, -243, -50,
720
- -243, -239, -239, -239, -75, -243, -154, -239, -239, -53,
721
- -243, -239, -239, -243, -243, -243, -243, -243, -243, -243,
722
- -57, -47, -54, -49, -51, -65, -67, -69, -16, -87,
723
- -243, -76, -77, -243, -72, -78, -79, -88, -243, -16,
724
- -155, -80 ]
712
+ -245, -245, -241, -6, -15, -245, -4, -157, -160, -161,
713
+ -162, -163, -164, -165, -166, -167, -168, -169, -170, -171,
714
+ -172, -173, -174, -175, -176, -241, -241, -245, -80, -184,
715
+ -245, -245, -242, -244, -16, -4, -147, 416, -1, -5,
716
+ -241, -241, -183, -241, -185, -178, -245, -245, -241, -241,
717
+ -182, -245, -204, -241, -104, -105, -106, -107, -108, -109,
718
+ -110, -111, -112, -113, -114, -115, -116, -117, -118, -119,
719
+ -120, -121, -122, -123, -124, -125, -126, -127, -128, -129,
720
+ -130, -131, -132, -133, -134, -135, -136, -245, -188, -245,
721
+ -245, -245, -241, -245, -245, -245, -199, -200, -201, -202,
722
+ -235, -236, -237, -238, -243, -2, -7, -8, -9, -10,
723
+ -11, -12, -13, -16, -245, -245, -245, -245, -3, -80,
724
+ -245, -158, -159, -245, -179, -241, -180, -245, -245, -245,
725
+ -170, -160, -164, -171, -172, -161, -162, -165, -166, -169,
726
+ -163, -115, -167, -231, -197, -245, -208, -209, -211, -212,
727
+ -214, -215, -218, -221, -223, -224, -241, -241, -241, -241,
728
+ -245, -245, -245, -206, -187, -245, -241, -241, -241, -193,
729
+ -241, -241, -241, -17, -14, -14, -14, -241, -241, -241,
730
+ -240, -241, -79, -245, -149, -177, -186, -181, -81, -225,
731
+ -232, -233, -234, -198, -241, -241, -241, -219, -219, -231,
732
+ -241, -231, -231, -231, -245, -241, -245, -241, -189, -190,
733
+ -191, -192, -194, -195, -196, -241, -241, -241, -245, -154,
734
+ -155, -156, -148, -245, -241, -207, -215, -210, -217, -213,
735
+ -245, -220, -222, -226, -231, -227, -228, -230, -82, -245,
736
+ -245, -203, -137, -137, -241, -137, -245, -241, -150, -205,
737
+ -241, -229, -245, -83, -19, -145, -24, -30, -26, -29,
738
+ -57, -239, -153, -216, -30, -241, -245, -139, -142, -146,
739
+ -30, -241, -16, -241, -241, -16, -16, -20, -138, -145,
740
+ -245, -143, -144, -16, -25, -71, -23, -31, -32, -33,
741
+ -34, -35, -36, -37, -38, -39, -40, -41, -245, -245,
742
+ -245, -27, -245, -56, -58, -59, -60, -61, -71, -18,
743
+ -241, -140, -141, -22, -42, -42, -42, -241, -241, -241,
744
+ -68, -245, -241, -241, -245, -28, -245, -245, -245, -245,
745
+ -245, -62, -64, -66, -69, -245, -72, -86, -87, -88,
746
+ -89, -90, -91, -92, -93, -94, -97, -98, -99, -100,
747
+ -101, -102, -103, -129, -245, -53, -54, -245, -21, -43,
748
+ -241, -50, -241, -50, -241, -50, -241, -241, -241, -73,
749
+ -95, -96, -245, -151, -241, -44, -245, -245, -46, -245,
750
+ -48, -245, -245, -245, -245, -245, -245, -245, -245, -55,
751
+ -241, -51, -245, -241, -241, -63, -65, -67, -15, -84,
752
+ -245, -74, -75, -245, -45, -52, -47, -49, -70, -76,
753
+ -77, -85, -245, -15, -152, -78 ]
725
754
 
726
755
  racc_goto_table = [
727
- 6, 57, 77, 46, 82, 191, 49, 128, 79, 90,
728
- 143, 52, 167, 247, 179, 203, 1, 206, 328, 346,
729
- 348, 86, 91, 38, 47, 356, 261, 344, 344, 344,
730
- 205, 205, 266, 34, 344, 404, 363, 35, 84, 85,
731
- 221, 222, 68, 274, 150, 271, 411, 282, 125, 281,
732
- 258, 67, 81, 264, 368, 149, 370, 299, 310, 244,
733
- 246, 376, 250, 303, 304, 223, 305, 225, 226, 227,
734
- 344, 187, 188, 189, 190, 232, 269, 302, 353, 386,
735
- 389, 249, 179, 256, 398, 160, 165, 195, 260, 344,
736
- 278, 400, 325, 162, 204, 62, nil, 205, nil, nil,
737
- 344, nil, nil, nil, nil, nil, nil, nil, nil, nil,
738
- nil, 242, nil, 410, nil, 249, 57, 249, 198, nil,
739
- nil, nil, 344, nil, nil, nil, 183, nil, nil, nil,
740
- 202, nil, nil, nil, nil, nil, nil, 178, 180, 181,
741
- 182, nil, nil, nil, 184, 185, 186, nil, 228, 229,
742
- 230, nil, nil, nil, 192, 193, nil, 194, nil, 125,
743
- 240, 91, 91, 91, 233, nil, 349, 350, 351, nil,
744
- nil, 125, 125, 125, 236, nil, nil, 224, nil, nil,
745
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
746
- nil, nil, nil, nil, 253, nil, 243, nil, nil, nil,
756
+ 6, 93, 116, 46, 92, 114, 127, 163, 218, 87,
757
+ 354, 200, 50, 228, 228, 129, 128, 361, 363, 365,
758
+ 189, 123, 38, 204, 47, 226, 257, 229, 267, 408,
759
+ 376, 1, 379, 272, 381, 215, 216, 217, 121, 122,
760
+ 276, 231, 232, 373, 415, 34, 283, 143, 35, 106,
761
+ 105, 118, 311, 284, 254, 256, 264, 260, 328, 329,
762
+ 330, 388, 270, 301, 305, 306, 307, 245, 228, 240,
763
+ 275, 304, 335, 385, 400, 259, 233, 398, 235, 236,
764
+ 237, 263, 119, 162, 173, 200, 266, 280, 183, 227,
765
+ 169, 100, nil, nil, nil, nil, nil, nil, nil, nil,
766
+ nil, 414, 259, 182, 259, nil, nil, nil, nil, nil,
767
+ nil, 251, nil, nil, nil, nil, nil, nil, nil, nil,
768
+ nil, nil, nil, 186, nil, nil, nil, nil, nil, nil,
769
+ nil, nil, nil, nil, nil, nil, 93, nil, nil, 92,
770
+ nil, nil, nil, nil, 208, nil, nil, nil, 331, 332,
771
+ 333, nil, nil, nil, 199, 201, 202, 203, nil, nil,
772
+ 225, 241, nil, nil, 209, 210, 211, nil, 212, 213,
773
+ 214, 239, nil, 242, 243, nil, 219, 220, 249, 221,
774
+ nil, nil, nil, 128, 128, 246, nil, nil, nil, nil,
775
+ nil, nil, 143, 143, 143, nil, nil, nil, 234, nil,
776
+ nil, nil, nil, 143, nil, nil, nil, nil, nil, nil,
747
777
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
748
- nil, nil, nil, nil, nil, 255, nil, nil, nil, nil,
749
- 275, nil, nil, nil, nil, nil, nil, nil, nil, nil,
750
- nil, nil, 252, 91, nil, nil, nil, 306, nil, 125,
751
- 79, nil, nil, nil, nil, nil, 300, nil, 79, nil,
752
- nil, nil, nil, nil, nil, 79, nil, nil, nil, nil,
778
+ nil, nil, nil, 277, nil, nil, nil, nil, nil, nil,
779
+ nil, nil, nil, 128, nil, nil, nil, nil, nil, nil,
780
+ 116, nil, nil, nil, 116, 262, 308, nil, 143, nil,
781
+ nil, 116, 302, nil, nil, nil, nil, nil, nil, nil,
753
782
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
754
783
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
755
- nil, nil, nil, nil, 327, 345, 347, 326, nil, nil,
756
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 79,
784
+ nil, nil, nil, nil, nil, nil, nil, nil, 326, nil,
785
+ nil, nil, 352, nil, nil, nil, nil, nil, nil, 352,
786
+ 352, 352, 360, 362, 364, nil, nil, nil, nil, nil,
757
787
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
758
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 357,
759
- 358, nil, nil, nil, nil, 362, nil, nil, nil, nil,
788
+ 355, 356, nil, nil, nil, 352, nil, nil, nil, nil,
760
789
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
761
- nil, nil, nil, 367, nil, 369, nil, nil, nil, 383,
762
- 384, 385, nil, nil, nil, nil, nil, 399, nil, nil,
763
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
764
- nil, nil, nil, nil, nil, 390, 391, nil, nil, 393,
765
- 394 ]
790
+ nil, nil, nil, 352, 382, 383, 384, nil, nil, nil,
791
+ nil, nil, nil, nil, nil, nil, 352, nil, 375, 399,
792
+ 378, nil, 380, nil, nil, nil, nil, nil, nil, nil,
793
+ nil, nil, 389, nil, nil, nil, nil, nil, nil, nil,
794
+ nil, nil, nil, 352, nil, nil, nil, nil, 404, nil,
795
+ nil, 406, 407 ]
766
796
 
767
797
  racc_goto_check = [
768
- 2, 36, 16, 23, 18, 27, 51, 50, 59, 17,
769
- 49, 61, 74, 25, 63, 69, 1, 69, 37, 37,
770
- 37, 23, 59, 3, 2, 37, 55, 53, 53, 53,
771
- 64, 64, 20, 4, 53, 46, 38, 5, 2, 2,
772
- 70, 70, 6, 20, 16, 19, 46, 25, 2, 20,
773
- 22, 3, 3, 24, 38, 2, 38, 26, 55, 21,
774
- 21, 37, 21, 29, 30, 74, 35, 74, 74, 74,
775
- 53, 14, 14, 14, 14, 39, 40, 41, 42, 44,
776
- 37, 27, 63, 69, 45, 47, 2, 48, 54, 53,
777
- 57, 37, 20, 58, 65, 75, nil, 64, nil, nil,
778
- 53, nil, nil, nil, nil, nil, nil, nil, nil, nil,
779
- nil, 74, nil, 37, nil, 27, 36, 27, 50, nil,
780
- nil, nil, 53, nil, nil, nil, 61, nil, nil, nil,
781
- 50, nil, nil, nil, nil, nil, nil, 2, 2, 2,
782
- 2, nil, nil, nil, 2, 2, 2, nil, 17, 17,
783
- 17, nil, nil, nil, 2, 2, nil, 2, nil, 2,
784
- 49, 59, 59, 59, 59, nil, 27, 27, 27, nil,
785
- nil, 2, 2, 2, 51, nil, nil, 2, nil, nil,
786
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
787
- nil, nil, nil, nil, 49, nil, 18, nil, nil, nil,
798
+ 2, 52, 58, 20, 34, 15, 16, 59, 24, 61,
799
+ 35, 63, 46, 64, 64, 48, 58, 35, 35, 35,
800
+ 74, 20, 3, 50, 2, 69, 22, 69, 54, 44,
801
+ 36, 1, 36, 19, 36, 13, 13, 13, 2, 2,
802
+ 19, 70, 70, 35, 44, 4, 19, 2, 5, 6,
803
+ 3, 3, 54, 22, 17, 17, 18, 17, 33, 33,
804
+ 33, 35, 21, 23, 26, 27, 32, 37, 64, 50,
805
+ 38, 39, 40, 42, 35, 24, 74, 43, 74, 74,
806
+ 74, 69, 45, 49, 15, 63, 53, 56, 57, 65,
807
+ 2, 75, nil, nil, nil, nil, nil, nil, nil, nil,
808
+ nil, 35, 24, 46, 24, nil, nil, nil, nil, nil,
809
+ nil, 74, nil, nil, nil, nil, nil, nil, nil, nil,
810
+ nil, nil, nil, 2, nil, nil, nil, nil, nil, nil,
811
+ nil, nil, nil, nil, nil, nil, 52, nil, nil, 34,
812
+ nil, nil, nil, nil, 61, nil, nil, nil, 24, 24,
813
+ 24, nil, nil, nil, 2, 2, 2, 2, nil, nil,
814
+ 48, 59, nil, nil, 2, 2, 2, nil, 2, 2,
815
+ 2, 48, nil, 16, 16, nil, 2, 2, 59, 2,
816
+ nil, nil, nil, 58, 58, 58, nil, nil, nil, nil,
817
+ nil, nil, 2, 2, 2, nil, nil, nil, 2, nil,
818
+ nil, nil, nil, 2, nil, nil, nil, nil, nil, nil,
788
819
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
789
- nil, nil, nil, nil, nil, 51, nil, nil, nil, nil,
790
- 17, nil, nil, nil, nil, nil, nil, nil, nil, nil,
791
- nil, nil, 2, 59, nil, nil, nil, 16, nil, 2,
792
- 59, nil, nil, nil, nil, nil, 23, nil, 59, nil,
793
- nil, nil, nil, nil, nil, 59, nil, nil, nil, nil,
820
+ nil, nil, nil, 16, nil, nil, nil, nil, nil, nil,
821
+ nil, nil, nil, 58, nil, nil, nil, nil, nil, nil,
822
+ 58, nil, nil, nil, 58, 2, 15, nil, 2, nil,
823
+ nil, 58, 20, nil, nil, nil, nil, nil, nil, nil,
794
824
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
795
825
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
796
- nil, nil, nil, nil, 36, 36, 36, 23, nil, nil,
797
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 59,
826
+ nil, nil, nil, nil, nil, nil, nil, nil, 20, nil,
827
+ nil, nil, 52, nil, nil, nil, nil, nil, nil, 52,
828
+ 52, 52, 34, 34, 34, nil, nil, nil, nil, nil,
798
829
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
799
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 2,
800
- 2, nil, nil, nil, nil, 2, nil, nil, nil, nil,
830
+ 2, 2, nil, nil, nil, 52, nil, nil, nil, nil,
801
831
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
802
- nil, nil, nil, 2, nil, 2, nil, nil, nil, 23,
803
- 23, 23, nil, nil, nil, nil, nil, 36, nil, nil,
804
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
805
- nil, nil, nil, nil, nil, 2, 2, nil, nil, 2,
806
- 2 ]
832
+ nil, nil, nil, 52, 20, 20, 20, nil, nil, nil,
833
+ nil, nil, nil, nil, nil, nil, 52, nil, 2, 34,
834
+ 2, nil, 2, nil, nil, nil, nil, nil, nil, nil,
835
+ nil, nil, 2, nil, nil, nil, nil, nil, nil, nil,
836
+ nil, nil, nil, 52, nil, nil, nil, nil, 2, nil,
837
+ nil, 2, 2 ]
807
838
 
808
839
  racc_goto_pointer = [
809
- nil, 16, -2, 17, 30, 33, 8, nil, nil, nil,
810
- nil, nil, nil, nil, -80, nil, -32, -39, -32, -212,
811
- -215, -170, -194, -22, -193, -218, -210, -150, nil, -206,
812
- -205, nil, nil, nil, nil, -203, -29, -295, -292, -115,
813
- -174, -192, -241, nil, -295, -302, -363, 3, -73, -41,
814
- -43, -22, nil, -286, -157, -219, nil, -172, 10, -26,
815
- nil, -19, nil, -125, -144, -80, nil, nil, nil, -158,
816
- -136, nil, nil, nil, -113, 64 ]
840
+ nil, 31, -2, 16, 42, 44, 15, nil, nil, nil,
841
+ nil, nil, nil, -139, nil, -29, -42, -188, -198, -224,
842
+ -22, -194, -218, -210, -169, nil, -211, -210, nil, nil,
843
+ nil, nil, -209, -256, -26, -311, -331, -150, -190, -204,
844
+ -248, nil, -296, -308, -369, 46, -16, nil, -34, 32,
845
+ -137, nil, -29, -169, -227, nil, -181, -32, -32, -46,
846
+ nil, -21, nil, -145, -182, -106, nil, nil, nil, -169,
847
+ -156, nil, nil, nil, -123, 60 ]
817
848
 
818
849
  racc_goto_default = [
819
- nil, nil, 44, nil, nil, 405, 295, 69, 70, 71,
820
- 72, 73, 74, 75, nil, 36, 283, 78, nil, nil,
821
- nil, nil, nil, nil, nil, nil, 248, 24, 285, 286,
822
- 287, 288, 289, 290, 291, 294, 126, nil, nil, nil,
823
- nil, nil, nil, 319, nil, nil, nil, nil, nil, 7,
824
- nil, nil, 337, 127, nil, nil, 262, nil, nil, 31,
825
- 29, nil, 53, 141, 129, 130, 131, 132, 133, 134,
826
- 135, 136, 137, 138, nil, nil ]
850
+ nil, nil, 44, nil, nil, 409, 297, 107, 108, 109,
851
+ 110, 111, 112, nil, 36, 285, 115, nil, nil, nil,
852
+ nil, nil, nil, 258, 24, 287, 288, 289, 290, 291,
853
+ 292, 293, 296, nil, 144, nil, nil, nil, nil, nil,
854
+ nil, 320, nil, nil, nil, nil, nil, 51, nil, nil,
855
+ 52, 345, 145, nil, nil, 268, nil, nil, 31, 7,
856
+ 29, nil, 88, 158, 146, 147, 148, 149, 150, 151,
857
+ 152, 153, 154, 155, nil, nil ]
827
858
 
828
859
  racc_reduce_table = [
829
860
  0, 0, :racc_error,
@@ -840,239 +871,241 @@ racc_reduce_table = [
840
871
  1, 87, :_reduce_none,
841
872
  1, 87, :_reduce_none,
842
873
  1, 87, :_reduce_none,
843
- 1, 87, :_reduce_none,
874
+ 0, 94, :_reduce_14,
844
875
  0, 95, :_reduce_15,
845
876
  0, 96, :_reduce_16,
846
- 0, 97, :_reduce_17,
847
- 2, 97, :_reduce_18,
848
- 10, 94, :_reduce_19,
849
- 1, 100, :_reduce_none,
850
- 1, 100, :_reduce_none,
851
- 8, 93, :_reduce_22,
852
- 0, 103, :_reduce_23,
853
- 2, 103, :_reduce_24,
854
- 5, 103, :_reduce_25,
855
- 8, 92, :_reduce_26,
856
- 7, 92, :_reduce_27,
857
- 0, 105, :_reduce_28,
858
- 2, 105, :_reduce_29,
859
- 1, 106, :_reduce_30,
860
- 3, 106, :_reduce_31,
861
- 4, 107, :_reduce_32,
862
- 1, 107, :_reduce_33,
863
- 0, 101, :_reduce_34,
864
- 2, 101, :_reduce_35,
865
- 1, 109, :_reduce_none,
866
- 1, 109, :_reduce_none,
867
- 1, 109, :_reduce_none,
868
- 1, 109, :_reduce_none,
869
- 1, 109, :_reduce_none,
870
- 1, 109, :_reduce_none,
871
- 1, 109, :_reduce_42,
872
- 1, 109, :_reduce_43,
873
- 1, 109, :_reduce_none,
874
- 1, 109, :_reduce_none,
875
- 4, 115, :_reduce_46,
876
- 6, 115, :_reduce_47,
877
- 4, 115, :_reduce_48,
878
- 6, 115, :_reduce_49,
879
- 4, 115, :_reduce_50,
880
- 6, 115, :_reduce_51,
881
- 0, 119, :_reduce_52,
882
- 2, 119, :_reduce_53,
883
- 3, 119, :_reduce_54,
884
- 3, 114, :_reduce_55,
885
- 3, 114, :_reduce_56,
886
- 5, 114, :_reduce_57,
887
- 7, 91, :_reduce_58,
888
- 0, 121, :_reduce_59,
889
- 2, 121, :_reduce_60,
890
- 1, 122, :_reduce_61,
891
- 1, 122, :_reduce_62,
892
- 1, 122, :_reduce_none,
893
- 3, 111, :_reduce_64,
894
- 6, 111, :_reduce_65,
895
- 3, 112, :_reduce_66,
896
- 6, 112, :_reduce_67,
897
- 3, 113, :_reduce_68,
898
- 6, 113, :_reduce_69,
899
- 0, 123, :_reduce_70,
900
- 1, 123, :_reduce_71,
901
- 7, 110, :_reduce_72,
902
- 0, 124, :_reduce_none,
903
- 2, 124, :_reduce_74,
904
- 0, 125, :_reduce_75,
905
- 2, 125, :_reduce_76,
906
- 2, 125, :_reduce_77,
907
- 1, 127, :_reduce_78,
908
- 1, 127, :_reduce_79,
909
- 3, 127, :_reduce_80,
910
- 6, 86, :_reduce_81,
911
- 0, 128, :_reduce_82,
912
- 3, 128, :_reduce_83,
913
- 0, 129, :_reduce_84,
914
- 3, 129, :_reduce_85,
915
- 4, 129, :_reduce_86,
916
- 1, 126, :_reduce_none,
917
- 2, 126, :_reduce_88,
918
- 1, 118, :_reduce_none,
919
- 1, 118, :_reduce_none,
920
- 1, 118, :_reduce_none,
921
- 1, 118, :_reduce_none,
922
- 1, 118, :_reduce_none,
923
- 1, 118, :_reduce_none,
924
- 1, 118, :_reduce_none,
925
- 1, 118, :_reduce_none,
926
- 1, 118, :_reduce_none,
927
- 2, 118, :_reduce_98,
928
- 2, 118, :_reduce_99,
929
- 1, 118, :_reduce_none,
930
- 1, 118, :_reduce_none,
931
- 1, 118, :_reduce_none,
877
+ 2, 96, :_reduce_17,
878
+ 8, 93, :_reduce_18,
879
+ 0, 99, :_reduce_19,
880
+ 2, 99, :_reduce_20,
881
+ 5, 99, :_reduce_21,
882
+ 8, 92, :_reduce_22,
883
+ 7, 92, :_reduce_23,
884
+ 0, 102, :_reduce_24,
885
+ 2, 102, :_reduce_25,
886
+ 1, 103, :_reduce_26,
887
+ 3, 103, :_reduce_27,
888
+ 4, 104, :_reduce_28,
889
+ 1, 104, :_reduce_29,
890
+ 0, 100, :_reduce_30,
891
+ 2, 100, :_reduce_31,
892
+ 1, 106, :_reduce_none,
893
+ 1, 106, :_reduce_none,
894
+ 1, 106, :_reduce_none,
895
+ 1, 106, :_reduce_none,
896
+ 1, 106, :_reduce_none,
897
+ 1, 106, :_reduce_none,
898
+ 1, 106, :_reduce_38,
899
+ 1, 106, :_reduce_39,
900
+ 1, 106, :_reduce_none,
901
+ 1, 106, :_reduce_none,
902
+ 0, 114, :_reduce_42,
903
+ 2, 114, :_reduce_43,
904
+ 5, 112, :_reduce_44,
905
+ 7, 112, :_reduce_45,
906
+ 5, 112, :_reduce_46,
907
+ 7, 112, :_reduce_47,
908
+ 5, 112, :_reduce_48,
909
+ 7, 112, :_reduce_49,
910
+ 0, 117, :_reduce_50,
911
+ 2, 117, :_reduce_51,
912
+ 3, 117, :_reduce_52,
913
+ 3, 111, :_reduce_53,
914
+ 3, 111, :_reduce_54,
915
+ 5, 111, :_reduce_55,
916
+ 7, 91, :_reduce_56,
917
+ 0, 119, :_reduce_57,
918
+ 2, 119, :_reduce_58,
919
+ 1, 120, :_reduce_59,
920
+ 1, 120, :_reduce_60,
921
+ 1, 120, :_reduce_none,
922
+ 3, 108, :_reduce_62,
923
+ 6, 108, :_reduce_63,
924
+ 3, 109, :_reduce_64,
925
+ 6, 109, :_reduce_65,
926
+ 3, 110, :_reduce_66,
927
+ 6, 110, :_reduce_67,
928
+ 0, 121, :_reduce_68,
929
+ 1, 121, :_reduce_69,
930
+ 7, 107, :_reduce_70,
931
+ 0, 122, :_reduce_none,
932
+ 2, 122, :_reduce_72,
933
+ 0, 123, :_reduce_73,
934
+ 2, 123, :_reduce_74,
935
+ 2, 123, :_reduce_75,
936
+ 1, 125, :_reduce_76,
937
+ 1, 125, :_reduce_77,
938
+ 3, 125, :_reduce_78,
939
+ 3, 86, :_reduce_79,
940
+ 0, 128, :_reduce_80,
941
+ 3, 128, :_reduce_81,
942
+ 3, 130, :_reduce_82,
943
+ 4, 130, :_reduce_83,
944
+ 1, 124, :_reduce_none,
945
+ 2, 124, :_reduce_85,
946
+ 1, 116, :_reduce_none,
947
+ 1, 116, :_reduce_none,
948
+ 1, 116, :_reduce_none,
949
+ 1, 116, :_reduce_none,
950
+ 1, 116, :_reduce_none,
951
+ 1, 116, :_reduce_none,
952
+ 1, 116, :_reduce_none,
953
+ 1, 116, :_reduce_none,
954
+ 1, 116, :_reduce_none,
955
+ 2, 116, :_reduce_95,
956
+ 2, 116, :_reduce_96,
957
+ 1, 116, :_reduce_none,
958
+ 1, 116, :_reduce_none,
959
+ 1, 116, :_reduce_none,
960
+ 1, 132, :_reduce_none,
961
+ 1, 132, :_reduce_none,
962
+ 1, 132, :_reduce_none,
963
+ 1, 132, :_reduce_none,
964
+ 1, 133, :_reduce_none,
965
+ 1, 133, :_reduce_none,
966
+ 1, 133, :_reduce_none,
967
+ 1, 133, :_reduce_none,
968
+ 1, 133, :_reduce_none,
969
+ 1, 133, :_reduce_none,
970
+ 1, 133, :_reduce_none,
971
+ 1, 133, :_reduce_none,
972
+ 1, 133, :_reduce_none,
973
+ 1, 133, :_reduce_none,
974
+ 1, 133, :_reduce_none,
975
+ 1, 133, :_reduce_none,
976
+ 1, 133, :_reduce_none,
977
+ 1, 133, :_reduce_none,
978
+ 1, 133, :_reduce_none,
979
+ 1, 133, :_reduce_none,
980
+ 1, 133, :_reduce_none,
981
+ 1, 133, :_reduce_none,
982
+ 1, 133, :_reduce_none,
983
+ 1, 133, :_reduce_none,
984
+ 1, 133, :_reduce_none,
932
985
  1, 133, :_reduce_none,
933
986
  1, 133, :_reduce_none,
934
987
  1, 133, :_reduce_none,
935
988
  1, 133, :_reduce_none,
936
- 1, 134, :_reduce_none,
937
- 1, 134, :_reduce_none,
938
- 1, 134, :_reduce_none,
939
- 1, 134, :_reduce_none,
940
- 1, 134, :_reduce_none,
941
- 1, 134, :_reduce_none,
942
- 1, 134, :_reduce_none,
943
- 1, 134, :_reduce_none,
944
- 1, 134, :_reduce_none,
945
- 1, 134, :_reduce_none,
946
- 1, 134, :_reduce_none,
947
- 1, 134, :_reduce_none,
948
- 1, 134, :_reduce_none,
949
- 1, 134, :_reduce_none,
950
- 1, 134, :_reduce_none,
951
- 1, 134, :_reduce_none,
952
- 1, 134, :_reduce_none,
953
- 1, 134, :_reduce_none,
954
- 1, 134, :_reduce_none,
955
- 1, 134, :_reduce_none,
956
- 1, 134, :_reduce_none,
957
- 1, 134, :_reduce_none,
958
- 1, 134, :_reduce_none,
959
- 1, 134, :_reduce_none,
960
- 1, 134, :_reduce_none,
961
- 1, 134, :_reduce_none,
962
- 1, 134, :_reduce_none,
963
- 1, 134, :_reduce_none,
964
- 1, 134, :_reduce_none,
965
- 1, 134, :_reduce_none,
966
- 1, 134, :_reduce_none,
967
- 1, 134, :_reduce_none,
968
- 1, 134, :_reduce_none,
969
- 0, 102, :_reduce_140,
970
- 3, 102, :_reduce_141,
971
- 1, 135, :_reduce_142,
972
- 3, 135, :_reduce_143,
973
- 3, 136, :_reduce_144,
974
- 0, 138, :_reduce_145,
975
- 1, 138, :_reduce_146,
976
- 1, 138, :_reduce_147,
977
- 0, 137, :_reduce_148,
978
- 1, 137, :_reduce_149,
979
- 0, 99, :_reduce_150,
980
- 3, 99, :_reduce_151,
981
- 1, 139, :_reduce_152,
982
- 3, 139, :_reduce_153,
983
- 4, 116, :_reduce_154,
984
- 8, 116, :_reduce_155,
985
- 5, 88, :_reduce_156,
986
- 3, 89, :_reduce_157,
987
- 3, 89, :_reduce_158,
988
- 3, 90, :_reduce_159,
989
+ 1, 133, :_reduce_none,
990
+ 1, 133, :_reduce_none,
991
+ 1, 133, :_reduce_none,
992
+ 1, 133, :_reduce_none,
993
+ 1, 133, :_reduce_none,
994
+ 1, 133, :_reduce_none,
995
+ 1, 133, :_reduce_none,
996
+ 1, 133, :_reduce_none,
997
+ 0, 98, :_reduce_137,
998
+ 3, 98, :_reduce_138,
999
+ 1, 134, :_reduce_139,
1000
+ 3, 134, :_reduce_140,
1001
+ 3, 135, :_reduce_141,
1002
+ 0, 137, :_reduce_142,
1003
+ 1, 137, :_reduce_143,
1004
+ 1, 137, :_reduce_144,
1005
+ 0, 136, :_reduce_145,
1006
+ 1, 136, :_reduce_146,
1007
+ 0, 126, :_reduce_147,
1008
+ 3, 126, :_reduce_148,
1009
+ 1, 138, :_reduce_149,
1010
+ 3, 138, :_reduce_150,
1011
+ 4, 113, :_reduce_151,
1012
+ 8, 113, :_reduce_152,
1013
+ 5, 88, :_reduce_153,
1014
+ 3, 89, :_reduce_154,
1015
+ 3, 89, :_reduce_155,
1016
+ 3, 90, :_reduce_156,
989
1017
  1, 83, :_reduce_none,
990
- 3, 83, :_reduce_161,
991
- 3, 83, :_reduce_162,
992
- 1, 130, :_reduce_163,
993
- 1, 130, :_reduce_164,
994
- 1, 130, :_reduce_165,
995
- 1, 130, :_reduce_166,
996
- 1, 130, :_reduce_167,
997
- 1, 130, :_reduce_168,
998
- 1, 130, :_reduce_169,
999
- 1, 130, :_reduce_170,
1000
- 1, 130, :_reduce_171,
1001
- 1, 130, :_reduce_172,
1002
- 1, 130, :_reduce_173,
1003
- 1, 130, :_reduce_174,
1004
- 1, 130, :_reduce_175,
1005
- 1, 130, :_reduce_176,
1006
- 1, 130, :_reduce_177,
1007
- 1, 130, :_reduce_178,
1008
- 1, 130, :_reduce_179,
1009
- 4, 130, :_reduce_180,
1010
- 2, 130, :_reduce_181,
1011
- 3, 130, :_reduce_182,
1012
- 3, 130, :_reduce_183,
1013
- 4, 130, :_reduce_184,
1014
- 2, 130, :_reduce_185,
1015
- 2, 130, :_reduce_186,
1016
- 1, 130, :_reduce_none,
1017
- 1, 104, :_reduce_188,
1018
- 3, 104, :_reduce_189,
1019
- 3, 141, :_reduce_190,
1020
- 1, 142, :_reduce_191,
1021
- 3, 142, :_reduce_192,
1022
- 3, 143, :_reduce_193,
1018
+ 3, 83, :_reduce_158,
1019
+ 3, 83, :_reduce_159,
1020
+ 1, 140, :_reduce_160,
1021
+ 1, 140, :_reduce_161,
1022
+ 1, 140, :_reduce_162,
1023
+ 1, 140, :_reduce_163,
1024
+ 1, 140, :_reduce_164,
1025
+ 1, 140, :_reduce_165,
1026
+ 1, 140, :_reduce_166,
1027
+ 1, 140, :_reduce_167,
1028
+ 1, 140, :_reduce_168,
1029
+ 1, 140, :_reduce_169,
1030
+ 1, 140, :_reduce_170,
1031
+ 1, 140, :_reduce_171,
1032
+ 1, 140, :_reduce_172,
1033
+ 1, 140, :_reduce_173,
1034
+ 1, 140, :_reduce_174,
1035
+ 1, 140, :_reduce_175,
1036
+ 1, 140, :_reduce_176,
1037
+ 4, 140, :_reduce_177,
1038
+ 2, 140, :_reduce_178,
1039
+ 3, 140, :_reduce_179,
1040
+ 3, 140, :_reduce_180,
1041
+ 4, 140, :_reduce_181,
1042
+ 2, 140, :_reduce_182,
1043
+ 2, 140, :_reduce_183,
1044
+ 1, 140, :_reduce_none,
1045
+ 1, 101, :_reduce_185,
1046
+ 3, 101, :_reduce_186,
1047
+ 3, 141, :_reduce_187,
1048
+ 1, 142, :_reduce_188,
1049
+ 3, 142, :_reduce_189,
1050
+ 3, 143, :_reduce_190,
1051
+ 3, 143, :_reduce_191,
1052
+ 3, 143, :_reduce_192,
1053
+ 2, 143, :_reduce_193,
1023
1054
  3, 143, :_reduce_194,
1024
1055
  3, 143, :_reduce_195,
1025
- 2, 143, :_reduce_196,
1056
+ 3, 143, :_reduce_196,
1026
1057
  1, 144, :_reduce_none,
1027
1058
  2, 144, :_reduce_198,
1028
- 1, 117, :_reduce_none,
1029
- 1, 117, :_reduce_none,
1030
- 1, 117, :_reduce_none,
1031
- 1, 117, :_reduce_none,
1032
- 5, 132, :_reduce_203,
1033
- 2, 132, :_reduce_204,
1034
- 3, 131, :_reduce_205,
1035
- 1, 131, :_reduce_206,
1036
- 1, 131, :_reduce_none,
1037
- 3, 146, :_reduce_208,
1038
- 1, 146, :_reduce_209,
1059
+ 1, 115, :_reduce_none,
1060
+ 1, 115, :_reduce_none,
1061
+ 1, 115, :_reduce_none,
1062
+ 1, 115, :_reduce_none,
1063
+ 4, 127, :_reduce_203,
1064
+ 1, 127, :_reduce_204,
1065
+ 5, 131, :_reduce_205,
1066
+ 2, 131, :_reduce_206,
1067
+ 3, 129, :_reduce_207,
1068
+ 1, 129, :_reduce_208,
1069
+ 1, 129, :_reduce_none,
1070
+ 3, 146, :_reduce_210,
1071
+ 1, 146, :_reduce_211,
1039
1072
  1, 146, :_reduce_none,
1040
- 3, 148, :_reduce_211,
1041
- 1, 148, :_reduce_212,
1073
+ 3, 148, :_reduce_213,
1074
+ 1, 148, :_reduce_214,
1042
1075
  1, 148, :_reduce_none,
1043
- 3, 150, :_reduce_214,
1044
- 1, 150, :_reduce_215,
1076
+ 3, 150, :_reduce_216,
1077
+ 1, 150, :_reduce_217,
1045
1078
  1, 150, :_reduce_none,
1046
- 0, 151, :_reduce_217,
1047
- 3, 151, :_reduce_218,
1048
- 1, 151, :_reduce_219,
1079
+ 0, 151, :_reduce_219,
1049
1080
  3, 151, :_reduce_220,
1050
1081
  1, 151, :_reduce_221,
1051
- 1, 151, :_reduce_222,
1052
- 2, 145, :_reduce_223,
1053
- 3, 147, :_reduce_224,
1054
- 3, 149, :_reduce_225,
1055
- 3, 152, :_reduce_226,
1056
- 4, 153, :_reduce_227,
1057
- 3, 154, :_reduce_228,
1082
+ 3, 151, :_reduce_222,
1083
+ 1, 151, :_reduce_223,
1084
+ 1, 151, :_reduce_224,
1085
+ 2, 145, :_reduce_225,
1086
+ 3, 147, :_reduce_226,
1087
+ 3, 149, :_reduce_227,
1088
+ 3, 152, :_reduce_228,
1089
+ 4, 153, :_reduce_229,
1090
+ 3, 154, :_reduce_230,
1058
1091
  0, 155, :_reduce_none,
1059
1092
  1, 155, :_reduce_none,
1060
1093
  1, 155, :_reduce_none,
1061
1094
  1, 155, :_reduce_none,
1062
- 2, 108, :_reduce_233,
1095
+ 2, 105, :_reduce_235,
1063
1096
  1, 156, :_reduce_none,
1064
1097
  1, 156, :_reduce_none,
1065
1098
  1, 156, :_reduce_none,
1066
- 2, 120, :_reduce_237,
1067
- 2, 98, :_reduce_238,
1068
- 0, 140, :_reduce_239,
1069
- 1, 140, :_reduce_240,
1070
- 2, 140, :_reduce_241,
1071
- 1, 140, :_reduce_242 ]
1099
+ 2, 118, :_reduce_239,
1100
+ 2, 97, :_reduce_240,
1101
+ 0, 139, :_reduce_241,
1102
+ 1, 139, :_reduce_242,
1103
+ 2, 139, :_reduce_243,
1104
+ 1, 139, :_reduce_244 ]
1072
1105
 
1073
- racc_reduce_n = 243
1106
+ racc_reduce_n = 245
1074
1107
 
1075
- racc_shift_n = 412
1108
+ racc_shift_n = 416
1076
1109
 
1077
1110
  racc_token_table = {
1078
1111
  false => 0,
@@ -1272,16 +1305,13 @@ Racc_token_to_s_table = [
1272
1305
  "interface_decl",
1273
1306
  "module_decl",
1274
1307
  "class_decl",
1275
- "extension_decl",
1276
1308
  "start_new_scope",
1277
1309
  "start_merged_scope",
1278
1310
  "annotations",
1279
1311
  "class_name",
1280
- "type_params",
1281
- "extension_name",
1282
- "class_members",
1283
1312
  "module_type_params",
1284
1313
  "super_class",
1314
+ "class_members",
1285
1315
  "type_list",
1286
1316
  "colon_module_self_types",
1287
1317
  "module_self_types",
@@ -1295,6 +1325,7 @@ Racc_token_to_s_table = [
1295
1325
  "var_type_member",
1296
1326
  "attribute_member",
1297
1327
  "alias_member",
1328
+ "attribute_kind",
1298
1329
  "keyword",
1299
1330
  "method_name",
1300
1331
  "attr_var_opt",
@@ -1306,11 +1337,12 @@ Racc_token_to_s_table = [
1306
1337
  "method_kind",
1307
1338
  "def_name",
1308
1339
  "method_types",
1340
+ "type_params",
1341
+ "proc_type",
1309
1342
  "params_opt",
1310
- "block_opt",
1311
- "simple_type",
1312
1343
  "params",
1313
- "function_type",
1344
+ "block",
1345
+ "simple_function_type",
1314
1346
  "method_name0",
1315
1347
  "identifier_keywords",
1316
1348
  "module_type_params0",
@@ -1319,6 +1351,7 @@ Racc_token_to_s_table = [
1319
1351
  "type_param_variance",
1320
1352
  "type_params0",
1321
1353
  "namespace",
1354
+ "simple_type",
1322
1355
  "record_type",
1323
1356
  "record_fields",
1324
1357
  "record_field",
@@ -1397,62 +1430,37 @@ module_eval(<<'.,.,', 'parser.y', 42)
1397
1430
 
1398
1431
  # reduce 13 omitted
1399
1432
 
1400
- # reduce 14 omitted
1401
-
1402
- module_eval(<<'.,.,', 'parser.y', 54)
1403
- def _reduce_15(val, _values, result)
1433
+ module_eval(<<'.,.,', 'parser.y', 53)
1434
+ def _reduce_14(val, _values, result)
1404
1435
  start_new_variables_scope
1405
1436
  result
1406
1437
  end
1407
1438
  .,.,
1408
1439
 
1409
- module_eval(<<'.,.,', 'parser.y', 55)
1410
- def _reduce_16(val, _values, result)
1440
+ module_eval(<<'.,.,', 'parser.y', 54)
1441
+ def _reduce_15(val, _values, result)
1411
1442
  start_merged_variables_scope
1412
1443
  result
1413
1444
  end
1414
1445
  .,.,
1415
1446
 
1416
- module_eval(<<'.,.,', 'parser.y', 58)
1417
- def _reduce_17(val, _values, result)
1447
+ module_eval(<<'.,.,', 'parser.y', 57)
1448
+ def _reduce_16(val, _values, result)
1418
1449
  result = []
1419
1450
  result
1420
1451
  end
1421
1452
  .,.,
1422
1453
 
1423
- module_eval(<<'.,.,', 'parser.y', 60)
1424
- def _reduce_18(val, _values, result)
1454
+ module_eval(<<'.,.,', 'parser.y', 59)
1455
+ def _reduce_17(val, _values, result)
1425
1456
  result = val[1].unshift(Annotation.new(string: val[0].value, location: val[0].location))
1426
1457
 
1427
1458
  result
1428
1459
  end
1429
1460
  .,.,
1430
1461
 
1431
- module_eval(<<'.,.,', 'parser.y', 65)
1432
- def _reduce_19(val, _values, result)
1433
- reset_variable_scope
1434
-
1435
- location = val[1].location + val[9].location
1436
- result = Declarations::Extension.new(
1437
- name: val[3].value,
1438
- type_params: val[4]&.value || [],
1439
- extension_name: val[6].value.to_sym,
1440
- members: val[8],
1441
- annotations: val[0],
1442
- location: location,
1443
- comment: leading_comment(val[0].first&.location || location)
1444
- )
1445
-
1446
- result
1447
- end
1448
- .,.,
1449
-
1450
- # reduce 20 omitted
1451
-
1452
- # reduce 21 omitted
1453
-
1454
- module_eval(<<'.,.,', 'parser.y', 83)
1455
- def _reduce_22(val, _values, result)
1462
+ module_eval(<<'.,.,', 'parser.y', 64)
1463
+ def _reduce_18(val, _values, result)
1456
1464
  reset_variable_scope
1457
1465
 
1458
1466
  location = val[1].location + val[7].location
@@ -1470,33 +1478,35 @@ module_eval(<<'.,.,', 'parser.y', 83)
1470
1478
  end
1471
1479
  .,.,
1472
1480
 
1473
- module_eval(<<'.,.,', 'parser.y', 98)
1474
- def _reduce_23(val, _values, result)
1481
+ module_eval(<<'.,.,', 'parser.y', 79)
1482
+ def _reduce_19(val, _values, result)
1475
1483
  result = nil
1476
1484
  result
1477
1485
  end
1478
1486
  .,.,
1479
1487
 
1480
- module_eval(<<'.,.,', 'parser.y', 100)
1481
- def _reduce_24(val, _values, result)
1488
+ module_eval(<<'.,.,', 'parser.y', 81)
1489
+ def _reduce_20(val, _values, result)
1482
1490
  result = Declarations::Class::Super.new(name: val[1].value,
1483
- args: [])
1491
+ args: [],
1492
+ location: val[1].location)
1484
1493
 
1485
1494
  result
1486
1495
  end
1487
1496
  .,.,
1488
1497
 
1489
- module_eval(<<'.,.,', 'parser.y', 104)
1490
- def _reduce_25(val, _values, result)
1498
+ module_eval(<<'.,.,', 'parser.y', 86)
1499
+ def _reduce_21(val, _values, result)
1491
1500
  result = Declarations::Class::Super.new(name: val[1].value,
1492
- args: val[3])
1501
+ args: val[3],
1502
+ location: val[1].location + val[4].location)
1493
1503
 
1494
1504
  result
1495
1505
  end
1496
1506
  .,.,
1497
1507
 
1498
- module_eval(<<'.,.,', 'parser.y', 110)
1499
- def _reduce_26(val, _values, result)
1508
+ module_eval(<<'.,.,', 'parser.y', 93)
1509
+ def _reduce_22(val, _values, result)
1500
1510
  reset_variable_scope
1501
1511
 
1502
1512
  location = val[1].location + val[7].location
@@ -1514,8 +1524,8 @@ module_eval(<<'.,.,', 'parser.y', 110)
1514
1524
  end
1515
1525
  .,.,
1516
1526
 
1517
- module_eval(<<'.,.,', 'parser.y', 124)
1518
- def _reduce_27(val, _values, result)
1527
+ module_eval(<<'.,.,', 'parser.y', 107)
1528
+ def _reduce_23(val, _values, result)
1519
1529
  reset_variable_scope
1520
1530
 
1521
1531
  location = val[1].location + val[6].location
@@ -1533,39 +1543,39 @@ module_eval(<<'.,.,', 'parser.y', 124)
1533
1543
  end
1534
1544
  .,.,
1535
1545
 
1536
- module_eval(<<'.,.,', 'parser.y', 139)
1537
- def _reduce_28(val, _values, result)
1546
+ module_eval(<<'.,.,', 'parser.y', 122)
1547
+ def _reduce_24(val, _values, result)
1538
1548
  result = []
1539
1549
  result
1540
1550
  end
1541
1551
  .,.,
1542
1552
 
1543
- module_eval(<<'.,.,', 'parser.y', 141)
1544
- def _reduce_29(val, _values, result)
1553
+ module_eval(<<'.,.,', 'parser.y', 124)
1554
+ def _reduce_25(val, _values, result)
1545
1555
  result = val[1]
1546
1556
 
1547
1557
  result
1548
1558
  end
1549
1559
  .,.,
1550
1560
 
1551
- module_eval(<<'.,.,', 'parser.y', 146)
1552
- def _reduce_30(val, _values, result)
1561
+ module_eval(<<'.,.,', 'parser.y', 129)
1562
+ def _reduce_26(val, _values, result)
1553
1563
  result = [val[0]]
1554
1564
 
1555
1565
  result
1556
1566
  end
1557
1567
  .,.,
1558
1568
 
1559
- module_eval(<<'.,.,', 'parser.y', 149)
1560
- def _reduce_31(val, _values, result)
1569
+ module_eval(<<'.,.,', 'parser.y', 132)
1570
+ def _reduce_27(val, _values, result)
1561
1571
  result = val[0].push(val[2])
1562
1572
 
1563
1573
  result
1564
1574
  end
1565
1575
  .,.,
1566
1576
 
1567
- module_eval(<<'.,.,', 'parser.y', 154)
1568
- def _reduce_32(val, _values, result)
1577
+ module_eval(<<'.,.,', 'parser.y', 137)
1578
+ def _reduce_28(val, _values, result)
1569
1579
  name = val[0].value
1570
1580
  args = val[2]
1571
1581
  location = val[0].location + val[3].location
@@ -1583,8 +1593,8 @@ module_eval(<<'.,.,', 'parser.y', 154)
1583
1593
  end
1584
1594
  .,.,
1585
1595
 
1586
- module_eval(<<'.,.,', 'parser.y', 168)
1587
- def _reduce_33(val, _values, result)
1596
+ module_eval(<<'.,.,', 'parser.y', 151)
1597
+ def _reduce_29(val, _values, result)
1588
1598
  name = val[0].value
1589
1599
  args = []
1590
1600
  location = val[0].location
@@ -1602,59 +1612,74 @@ module_eval(<<'.,.,', 'parser.y', 168)
1602
1612
  end
1603
1613
  .,.,
1604
1614
 
1605
- module_eval(<<'.,.,', 'parser.y', 183)
1606
- def _reduce_34(val, _values, result)
1615
+ module_eval(<<'.,.,', 'parser.y', 166)
1616
+ def _reduce_30(val, _values, result)
1607
1617
  result = []
1608
1618
  result
1609
1619
  end
1610
1620
  .,.,
1611
1621
 
1612
- module_eval(<<'.,.,', 'parser.y', 185)
1613
- def _reduce_35(val, _values, result)
1622
+ module_eval(<<'.,.,', 'parser.y', 168)
1623
+ def _reduce_31(val, _values, result)
1614
1624
  result = val[0].push(val[1])
1615
1625
 
1616
1626
  result
1617
1627
  end
1618
1628
  .,.,
1619
1629
 
1620
- # reduce 36 omitted
1630
+ # reduce 32 omitted
1621
1631
 
1622
- # reduce 37 omitted
1632
+ # reduce 33 omitted
1623
1633
 
1624
- # reduce 38 omitted
1634
+ # reduce 34 omitted
1625
1635
 
1626
- # reduce 39 omitted
1636
+ # reduce 35 omitted
1627
1637
 
1628
- # reduce 40 omitted
1638
+ # reduce 36 omitted
1629
1639
 
1630
- # reduce 41 omitted
1640
+ # reduce 37 omitted
1631
1641
 
1632
- module_eval(<<'.,.,', 'parser.y', 196)
1633
- def _reduce_42(val, _values, result)
1642
+ module_eval(<<'.,.,', 'parser.y', 179)
1643
+ def _reduce_38(val, _values, result)
1634
1644
  result = Members::Public.new(location: val[0].location)
1635
1645
 
1636
1646
  result
1637
1647
  end
1638
1648
  .,.,
1639
1649
 
1640
- module_eval(<<'.,.,', 'parser.y', 199)
1641
- def _reduce_43(val, _values, result)
1650
+ module_eval(<<'.,.,', 'parser.y', 182)
1651
+ def _reduce_39(val, _values, result)
1642
1652
  result = Members::Private.new(location: val[0].location)
1643
1653
 
1644
1654
  result
1645
1655
  end
1646
1656
  .,.,
1647
1657
 
1648
- # reduce 44 omitted
1658
+ # reduce 40 omitted
1649
1659
 
1650
- # reduce 45 omitted
1660
+ # reduce 41 omitted
1651
1661
 
1652
- module_eval(<<'.,.,', 'parser.y', 206)
1653
- def _reduce_46(val, _values, result)
1654
- location = val[1].location + val[3].location
1655
- result = Members::AttrReader.new(name: val[2].value,
1662
+ module_eval(<<'.,.,', 'parser.y', 188)
1663
+ def _reduce_42(val, _values, result)
1664
+ result = :instance
1665
+ result
1666
+ end
1667
+ .,.,
1668
+
1669
+ module_eval(<<'.,.,', 'parser.y', 189)
1670
+ def _reduce_43(val, _values, result)
1671
+ result = :singleton
1672
+ result
1673
+ end
1674
+ .,.,
1675
+
1676
+ module_eval(<<'.,.,', 'parser.y', 193)
1677
+ def _reduce_44(val, _values, result)
1678
+ location = val[1].location + val[4].location
1679
+ result = Members::AttrReader.new(name: val[3].value,
1656
1680
  ivar_name: nil,
1657
- type: val[3],
1681
+ type: val[4],
1682
+ kind: val[2],
1658
1683
  annotations: val[0],
1659
1684
  location: location,
1660
1685
  comment: leading_comment(val[0].first&.location || location))
@@ -1663,12 +1688,13 @@ module_eval(<<'.,.,', 'parser.y', 206)
1663
1688
  end
1664
1689
  .,.,
1665
1690
 
1666
- module_eval(<<'.,.,', 'parser.y', 215)
1667
- def _reduce_47(val, _values, result)
1668
- location = val[1].location + val[5].location
1669
- result = Members::AttrReader.new(name: val[2].value.to_sym,
1670
- ivar_name: val[3],
1671
- type: val[5],
1691
+ module_eval(<<'.,.,', 'parser.y', 203)
1692
+ def _reduce_45(val, _values, result)
1693
+ location = val[1].location + val[6].location
1694
+ result = Members::AttrReader.new(name: val[3].value.to_sym,
1695
+ ivar_name: val[4],
1696
+ type: val[6],
1697
+ kind: val[2],
1672
1698
  annotations: val[0],
1673
1699
  location: location,
1674
1700
  comment: leading_comment(val[0].first&.location || location))
@@ -1677,12 +1703,13 @@ module_eval(<<'.,.,', 'parser.y', 215)
1677
1703
  end
1678
1704
  .,.,
1679
1705
 
1680
- module_eval(<<'.,.,', 'parser.y', 224)
1681
- def _reduce_48(val, _values, result)
1682
- location = val[1].location + val[3].location
1683
- result = Members::AttrWriter.new(name: val[2].value,
1706
+ module_eval(<<'.,.,', 'parser.y', 213)
1707
+ def _reduce_46(val, _values, result)
1708
+ location = val[1].location + val[4].location
1709
+ result = Members::AttrWriter.new(name: val[3].value,
1684
1710
  ivar_name: nil,
1685
- type: val[3],
1711
+ kind: val[2],
1712
+ type: val[4],
1686
1713
  annotations: val[0],
1687
1714
  location: location,
1688
1715
  comment: leading_comment(val[0].first&.location || location))
@@ -1691,12 +1718,13 @@ module_eval(<<'.,.,', 'parser.y', 224)
1691
1718
  end
1692
1719
  .,.,
1693
1720
 
1694
- module_eval(<<'.,.,', 'parser.y', 233)
1695
- def _reduce_49(val, _values, result)
1696
- location = val[1].location + val[5].location
1697
- result = Members::AttrWriter.new(name: val[2].value.to_sym,
1698
- ivar_name: val[3],
1699
- type: val[5],
1721
+ module_eval(<<'.,.,', 'parser.y', 223)
1722
+ def _reduce_47(val, _values, result)
1723
+ location = val[1].location + val[6].location
1724
+ result = Members::AttrWriter.new(name: val[3].value.to_sym,
1725
+ ivar_name: val[4],
1726
+ kind: val[2],
1727
+ type: val[6],
1700
1728
  annotations: val[0],
1701
1729
  location: location,
1702
1730
  comment: leading_comment(val[0].first&.location || location))
@@ -1705,12 +1733,13 @@ module_eval(<<'.,.,', 'parser.y', 233)
1705
1733
  end
1706
1734
  .,.,
1707
1735
 
1708
- module_eval(<<'.,.,', 'parser.y', 242)
1709
- def _reduce_50(val, _values, result)
1710
- location = val[1].location + val[3].location
1711
- result = Members::AttrAccessor.new(name: val[2].value,
1736
+ module_eval(<<'.,.,', 'parser.y', 233)
1737
+ def _reduce_48(val, _values, result)
1738
+ location = val[1].location + val[4].location
1739
+ result = Members::AttrAccessor.new(name: val[3].value,
1712
1740
  ivar_name: nil,
1713
- type: val[3],
1741
+ kind: val[2],
1742
+ type: val[4],
1714
1743
  annotations: val[0],
1715
1744
  location: location,
1716
1745
  comment: leading_comment(val[0].first&.location || location))
@@ -1719,12 +1748,13 @@ module_eval(<<'.,.,', 'parser.y', 242)
1719
1748
  end
1720
1749
  .,.,
1721
1750
 
1722
- module_eval(<<'.,.,', 'parser.y', 251)
1723
- def _reduce_51(val, _values, result)
1724
- location = val[1].location + val[5].location
1725
- result = Members::AttrAccessor.new(name: val[2].value.to_sym,
1726
- ivar_name: val[3],
1727
- type: val[5],
1751
+ module_eval(<<'.,.,', 'parser.y', 243)
1752
+ def _reduce_49(val, _values, result)
1753
+ location = val[1].location + val[6].location
1754
+ result = Members::AttrAccessor.new(name: val[3].value.to_sym,
1755
+ ivar_name: val[4],
1756
+ kind: val[2],
1757
+ type: val[6],
1728
1758
  annotations: val[0],
1729
1759
  location: location,
1730
1760
  comment: leading_comment(val[0].first&.location || location))
@@ -1733,29 +1763,29 @@ module_eval(<<'.,.,', 'parser.y', 251)
1733
1763
  end
1734
1764
  .,.,
1735
1765
 
1736
- module_eval(<<'.,.,', 'parser.y', 261)
1737
- def _reduce_52(val, _values, result)
1766
+ module_eval(<<'.,.,', 'parser.y', 254)
1767
+ def _reduce_50(val, _values, result)
1738
1768
  result = nil
1739
1769
  result
1740
1770
  end
1741
1771
  .,.,
1742
1772
 
1743
- module_eval(<<'.,.,', 'parser.y', 262)
1744
- def _reduce_53(val, _values, result)
1773
+ module_eval(<<'.,.,', 'parser.y', 255)
1774
+ def _reduce_51(val, _values, result)
1745
1775
  result = false
1746
1776
  result
1747
1777
  end
1748
1778
  .,.,
1749
1779
 
1750
- module_eval(<<'.,.,', 'parser.y', 263)
1751
- def _reduce_54(val, _values, result)
1780
+ module_eval(<<'.,.,', 'parser.y', 256)
1781
+ def _reduce_52(val, _values, result)
1752
1782
  result = val[1].value
1753
1783
  result
1754
1784
  end
1755
1785
  .,.,
1756
1786
 
1757
- module_eval(<<'.,.,', 'parser.y', 267)
1758
- def _reduce_55(val, _values, result)
1787
+ module_eval(<<'.,.,', 'parser.y', 260)
1788
+ def _reduce_53(val, _values, result)
1759
1789
  location = val[0].location + val[2].location
1760
1790
  result = Members::InstanceVariable.new(
1761
1791
  name: val[0].value,
@@ -1768,8 +1798,8 @@ module_eval(<<'.,.,', 'parser.y', 267)
1768
1798
  end
1769
1799
  .,.,
1770
1800
 
1771
- module_eval(<<'.,.,', 'parser.y', 276)
1772
- def _reduce_56(val, _values, result)
1801
+ module_eval(<<'.,.,', 'parser.y', 269)
1802
+ def _reduce_54(val, _values, result)
1773
1803
  type = val[2]
1774
1804
 
1775
1805
  if type.is_a?(Types::Variable)
@@ -1792,8 +1822,8 @@ module_eval(<<'.,.,', 'parser.y', 276)
1792
1822
  end
1793
1823
  .,.,
1794
1824
 
1795
- module_eval(<<'.,.,', 'parser.y', 295)
1796
- def _reduce_57(val, _values, result)
1825
+ module_eval(<<'.,.,', 'parser.y', 288)
1826
+ def _reduce_55(val, _values, result)
1797
1827
  type = val[4]
1798
1828
 
1799
1829
  if type.is_a?(Types::Variable)
@@ -1816,8 +1846,8 @@ module_eval(<<'.,.,', 'parser.y', 295)
1816
1846
  end
1817
1847
  .,.,
1818
1848
 
1819
- module_eval(<<'.,.,', 'parser.y', 316)
1820
- def _reduce_58(val, _values, result)
1849
+ module_eval(<<'.,.,', 'parser.y', 309)
1850
+ def _reduce_56(val, _values, result)
1821
1851
  reset_variable_scope
1822
1852
 
1823
1853
  location = val[1].location + val[6].location
@@ -1834,23 +1864,23 @@ module_eval(<<'.,.,', 'parser.y', 316)
1834
1864
  end
1835
1865
  .,.,
1836
1866
 
1837
- module_eval(<<'.,.,', 'parser.y', 330)
1838
- def _reduce_59(val, _values, result)
1867
+ module_eval(<<'.,.,', 'parser.y', 323)
1868
+ def _reduce_57(val, _values, result)
1839
1869
  result = []
1840
1870
  result
1841
1871
  end
1842
1872
  .,.,
1843
1873
 
1844
- module_eval(<<'.,.,', 'parser.y', 332)
1845
- def _reduce_60(val, _values, result)
1874
+ module_eval(<<'.,.,', 'parser.y', 325)
1875
+ def _reduce_58(val, _values, result)
1846
1876
  result = val[0].push(val[1])
1847
1877
 
1848
1878
  result
1849
1879
  end
1850
1880
  .,.,
1851
1881
 
1852
- module_eval(<<'.,.,', 'parser.y', 337)
1853
- def _reduce_61(val, _values, result)
1882
+ module_eval(<<'.,.,', 'parser.y', 330)
1883
+ def _reduce_59(val, _values, result)
1854
1884
  unless val[0].kind == :instance
1855
1885
  raise SemanticsError.new("Interface cannot have singleton method", subject: val[0], location: val[0].location)
1856
1886
  end
@@ -1865,8 +1895,8 @@ module_eval(<<'.,.,', 'parser.y', 337)
1865
1895
  end
1866
1896
  .,.,
1867
1897
 
1868
- module_eval(<<'.,.,', 'parser.y', 348)
1869
- def _reduce_62(val, _values, result)
1898
+ module_eval(<<'.,.,', 'parser.y', 341)
1899
+ def _reduce_60(val, _values, result)
1870
1900
  unless val[0].name.interface?
1871
1901
  raise SemanticsError.new("Interface should include an interface", subject: val[0], location: val[0].location)
1872
1902
  end
@@ -1877,10 +1907,10 @@ module_eval(<<'.,.,', 'parser.y', 348)
1877
1907
  end
1878
1908
  .,.,
1879
1909
 
1880
- # reduce 63 omitted
1910
+ # reduce 61 omitted
1881
1911
 
1882
- module_eval(<<'.,.,', 'parser.y', 358)
1883
- def _reduce_64(val, _values, result)
1912
+ module_eval(<<'.,.,', 'parser.y', 351)
1913
+ def _reduce_62(val, _values, result)
1884
1914
  if val[2].value.alias?
1885
1915
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1886
1916
  end
@@ -1895,8 +1925,8 @@ module_eval(<<'.,.,', 'parser.y', 358)
1895
1925
  end
1896
1926
  .,.,
1897
1927
 
1898
- module_eval(<<'.,.,', 'parser.y', 369)
1899
- def _reduce_65(val, _values, result)
1928
+ module_eval(<<'.,.,', 'parser.y', 362)
1929
+ def _reduce_63(val, _values, result)
1900
1930
  if val[2].value.alias?
1901
1931
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1902
1932
  end
@@ -1911,8 +1941,8 @@ module_eval(<<'.,.,', 'parser.y', 369)
1911
1941
  end
1912
1942
  .,.,
1913
1943
 
1914
- module_eval(<<'.,.,', 'parser.y', 382)
1915
- def _reduce_66(val, _values, result)
1944
+ module_eval(<<'.,.,', 'parser.y', 375)
1945
+ def _reduce_64(val, _values, result)
1916
1946
  if val[2].value.alias?
1917
1947
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1918
1948
  end
@@ -1927,8 +1957,8 @@ module_eval(<<'.,.,', 'parser.y', 382)
1927
1957
  end
1928
1958
  .,.,
1929
1959
 
1930
- module_eval(<<'.,.,', 'parser.y', 393)
1931
- def _reduce_67(val, _values, result)
1960
+ module_eval(<<'.,.,', 'parser.y', 386)
1961
+ def _reduce_65(val, _values, result)
1932
1962
  if val[2].value.alias?
1933
1963
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1934
1964
  end
@@ -1943,8 +1973,8 @@ module_eval(<<'.,.,', 'parser.y', 393)
1943
1973
  end
1944
1974
  .,.,
1945
1975
 
1946
- module_eval(<<'.,.,', 'parser.y', 406)
1947
- def _reduce_68(val, _values, result)
1976
+ module_eval(<<'.,.,', 'parser.y', 399)
1977
+ def _reduce_66(val, _values, result)
1948
1978
  unless val[2].value.class?
1949
1979
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
1950
1980
  end
@@ -1959,8 +1989,8 @@ module_eval(<<'.,.,', 'parser.y', 406)
1959
1989
  end
1960
1990
  .,.,
1961
1991
 
1962
- module_eval(<<'.,.,', 'parser.y', 417)
1963
- def _reduce_69(val, _values, result)
1992
+ module_eval(<<'.,.,', 'parser.y', 410)
1993
+ def _reduce_67(val, _values, result)
1964
1994
  unless val[2].value.class?
1965
1995
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
1966
1996
  end
@@ -1975,15 +2005,15 @@ module_eval(<<'.,.,', 'parser.y', 417)
1975
2005
  end
1976
2006
  .,.,
1977
2007
 
1978
- module_eval(<<'.,.,', 'parser.y', 429)
1979
- def _reduce_70(val, _values, result)
2008
+ module_eval(<<'.,.,', 'parser.y', 422)
2009
+ def _reduce_68(val, _values, result)
1980
2010
  result = nil
1981
2011
  result
1982
2012
  end
1983
2013
  .,.,
1984
2014
 
1985
- module_eval(<<'.,.,', 'parser.y', 431)
1986
- def _reduce_71(val, _values, result)
2015
+ module_eval(<<'.,.,', 'parser.y', 424)
2016
+ def _reduce_69(val, _values, result)
1987
2017
  RBS.logger.warn "`overload def` syntax is deprecated. Use `...` syntax instead."
1988
2018
  result = val[0]
1989
2019
 
@@ -1991,8 +2021,8 @@ module_eval(<<'.,.,', 'parser.y', 431)
1991
2021
  end
1992
2022
  .,.,
1993
2023
 
1994
- module_eval(<<'.,.,', 'parser.y', 437)
1995
- def _reduce_72(val, _values, result)
2024
+ module_eval(<<'.,.,', 'parser.y', 430)
2025
+ def _reduce_70(val, _values, result)
1996
2026
  location = val[3].location + val[6].last.location
1997
2027
 
1998
2028
  last_type = val[6].last
@@ -2017,80 +2047,67 @@ module_eval(<<'.,.,', 'parser.y', 437)
2017
2047
  end
2018
2048
  .,.,
2019
2049
 
2020
- # reduce 73 omitted
2050
+ # reduce 71 omitted
2021
2051
 
2022
- module_eval(<<'.,.,', 'parser.y', 460)
2023
- def _reduce_74(val, _values, result)
2052
+ module_eval(<<'.,.,', 'parser.y', 453)
2053
+ def _reduce_72(val, _values, result)
2024
2054
  RBS.logger.warn "`incompatible` method attribute is deprecated and ignored."
2025
2055
 
2026
2056
  result
2027
2057
  end
2028
2058
  .,.,
2029
2059
 
2030
- module_eval(<<'.,.,', 'parser.y', 464)
2031
- def _reduce_75(val, _values, result)
2060
+ module_eval(<<'.,.,', 'parser.y', 457)
2061
+ def _reduce_73(val, _values, result)
2032
2062
  result = :instance
2033
2063
  result
2034
2064
  end
2035
2065
  .,.,
2036
2066
 
2037
- module_eval(<<'.,.,', 'parser.y', 465)
2038
- def _reduce_76(val, _values, result)
2067
+ module_eval(<<'.,.,', 'parser.y', 458)
2068
+ def _reduce_74(val, _values, result)
2039
2069
  result = :singleton
2040
2070
  result
2041
2071
  end
2042
2072
  .,.,
2043
2073
 
2044
- module_eval(<<'.,.,', 'parser.y', 466)
2045
- def _reduce_77(val, _values, result)
2074
+ module_eval(<<'.,.,', 'parser.y', 459)
2075
+ def _reduce_75(val, _values, result)
2046
2076
  result = :singleton_instance
2047
2077
  result
2048
2078
  end
2049
2079
  .,.,
2050
2080
 
2051
- module_eval(<<'.,.,', 'parser.y', 469)
2052
- def _reduce_78(val, _values, result)
2081
+ module_eval(<<'.,.,', 'parser.y', 462)
2082
+ def _reduce_76(val, _values, result)
2053
2083
  result = [val[0]]
2054
2084
  result
2055
2085
  end
2056
2086
  .,.,
2057
2087
 
2058
- module_eval(<<'.,.,', 'parser.y', 470)
2059
- def _reduce_79(val, _values, result)
2088
+ module_eval(<<'.,.,', 'parser.y', 463)
2089
+ def _reduce_77(val, _values, result)
2060
2090
  result = [LocatedValue.new(value: :dot3, location: val[0].location)]
2061
2091
  result
2062
2092
  end
2063
2093
  .,.,
2064
2094
 
2065
- module_eval(<<'.,.,', 'parser.y', 472)
2066
- def _reduce_80(val, _values, result)
2095
+ module_eval(<<'.,.,', 'parser.y', 465)
2096
+ def _reduce_78(val, _values, result)
2067
2097
  result = val[2].unshift(val[0])
2068
2098
 
2069
2099
  result
2070
2100
  end
2071
2101
  .,.,
2072
2102
 
2073
- module_eval(<<'.,.,', 'parser.y', 477)
2074
- def _reduce_81(val, _values, result)
2103
+ module_eval(<<'.,.,', 'parser.y', 470)
2104
+ def _reduce_79(val, _values, result)
2075
2105
  reset_variable_scope
2076
2106
 
2077
- location = (val[1] || val[2] || val[3] || val[4]).location + val[5].location
2107
+ location = (val[1] || val[2]).location + val[2].location
2078
2108
  type_params = val[1]&.value || []
2079
2109
 
2080
- params = val[2]&.value || empty_params_result
2081
-
2082
- type = Types::Function.new(
2083
- required_positionals: params[0],
2084
- optional_positionals: params[1],
2085
- rest_positionals: params[2],
2086
- trailing_positionals: params[3],
2087
- required_keywords: params[4],
2088
- optional_keywords: params[5],
2089
- rest_keywords: params[6],
2090
- return_type: val[5]
2091
- )
2092
-
2093
- block = val[3]&.value
2110
+ type, block = val[2].value
2094
2111
 
2095
2112
  result = MethodType.new(type_params: type_params,
2096
2113
  type: type,
@@ -2101,50 +2118,43 @@ module_eval(<<'.,.,', 'parser.y', 477)
2101
2118
  end
2102
2119
  .,.,
2103
2120
 
2104
- module_eval(<<'.,.,', 'parser.y', 504)
2105
- def _reduce_82(val, _values, result)
2121
+ module_eval(<<'.,.,', 'parser.y', 484)
2122
+ def _reduce_80(val, _values, result)
2106
2123
  result = nil
2107
2124
  result
2108
2125
  end
2109
2126
  .,.,
2110
2127
 
2111
- module_eval(<<'.,.,', 'parser.y', 506)
2112
- def _reduce_83(val, _values, result)
2128
+ module_eval(<<'.,.,', 'parser.y', 486)
2129
+ def _reduce_81(val, _values, result)
2113
2130
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
2114
2131
 
2115
2132
  result
2116
2133
  end
2117
2134
  .,.,
2118
2135
 
2119
- module_eval(<<'.,.,', 'parser.y', 510)
2120
- def _reduce_84(val, _values, result)
2121
- result = nil
2122
- result
2123
- end
2124
- .,.,
2125
-
2126
- module_eval(<<'.,.,', 'parser.y', 512)
2127
- def _reduce_85(val, _values, result)
2128
- block = MethodType::Block.new(type: val[1].value, required: true)
2136
+ module_eval(<<'.,.,', 'parser.y', 491)
2137
+ def _reduce_82(val, _values, result)
2138
+ block = Types::Block.new(type: val[1].value, required: true)
2129
2139
  result = LocatedValue.new(value: block, location: val[0].location + val[2].location)
2130
2140
 
2131
2141
  result
2132
2142
  end
2133
2143
  .,.,
2134
2144
 
2135
- module_eval(<<'.,.,', 'parser.y', 516)
2136
- def _reduce_86(val, _values, result)
2137
- block = MethodType::Block.new(type: val[2].value, required: false)
2145
+ module_eval(<<'.,.,', 'parser.y', 495)
2146
+ def _reduce_83(val, _values, result)
2147
+ block = Types::Block.new(type: val[2].value, required: false)
2138
2148
  result = LocatedValue.new(value: block, location: val[0].location + val[3].location)
2139
2149
 
2140
2150
  result
2141
2151
  end
2142
2152
  .,.,
2143
2153
 
2144
- # reduce 87 omitted
2154
+ # reduce 84 omitted
2145
2155
 
2146
- module_eval(<<'.,.,', 'parser.y', 523)
2147
- def _reduce_88(val, _values, result)
2156
+ module_eval(<<'.,.,', 'parser.y', 502)
2157
+ def _reduce_85(val, _values, result)
2148
2158
  result = LocatedValue.new(value: val[0].value.to_sym,
2149
2159
  location: val[0].location + val[1].location)
2150
2160
 
@@ -2152,6 +2162,12 @@ module_eval(<<'.,.,', 'parser.y', 523)
2152
2162
  end
2153
2163
  .,.,
2154
2164
 
2165
+ # reduce 86 omitted
2166
+
2167
+ # reduce 87 omitted
2168
+
2169
+ # reduce 88 omitted
2170
+
2155
2171
  # reduce 89 omitted
2156
2172
 
2157
2173
  # reduce 90 omitted
@@ -2164,14 +2180,8 @@ module_eval(<<'.,.,', 'parser.y', 523)
2164
2180
 
2165
2181
  # reduce 94 omitted
2166
2182
 
2167
- # reduce 95 omitted
2168
-
2169
- # reduce 96 omitted
2170
-
2171
- # reduce 97 omitted
2172
-
2173
- module_eval(<<'.,.,', 'parser.y', 532)
2174
- def _reduce_98(val, _values, result)
2183
+ module_eval(<<'.,.,', 'parser.y', 511)
2184
+ def _reduce_95(val, _values, result)
2175
2185
  unless val[0].location.pred?(val[1].location)
2176
2186
  raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1])
2177
2187
  end
@@ -2183,8 +2193,8 @@ module_eval(<<'.,.,', 'parser.y', 532)
2183
2193
  end
2184
2194
  .,.,
2185
2195
 
2186
- module_eval(<<'.,.,', 'parser.y', 540)
2187
- def _reduce_99(val, _values, result)
2196
+ module_eval(<<'.,.,', 'parser.y', 519)
2197
+ def _reduce_96(val, _values, result)
2188
2198
  unless val[0].location.pred?(val[1].location)
2189
2199
  raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1])
2190
2200
  end
@@ -2196,6 +2206,12 @@ module_eval(<<'.,.,', 'parser.y', 540)
2196
2206
  end
2197
2207
  .,.,
2198
2208
 
2209
+ # reduce 97 omitted
2210
+
2211
+ # reduce 98 omitted
2212
+
2213
+ # reduce 99 omitted
2214
+
2199
2215
  # reduce 100 omitted
2200
2216
 
2201
2217
  # reduce 101 omitted
@@ -2270,21 +2286,15 @@ module_eval(<<'.,.,', 'parser.y', 540)
2270
2286
 
2271
2287
  # reduce 136 omitted
2272
2288
 
2273
- # reduce 137 omitted
2274
-
2275
- # reduce 138 omitted
2276
-
2277
- # reduce 139 omitted
2278
-
2279
- module_eval(<<'.,.,', 'parser.y', 560)
2280
- def _reduce_140(val, _values, result)
2289
+ module_eval(<<'.,.,', 'parser.y', 539)
2290
+ def _reduce_137(val, _values, result)
2281
2291
  result = nil
2282
2292
  result
2283
2293
  end
2284
2294
  .,.,
2285
2295
 
2286
- module_eval(<<'.,.,', 'parser.y', 562)
2287
- def _reduce_141(val, _values, result)
2296
+ module_eval(<<'.,.,', 'parser.y', 541)
2297
+ def _reduce_138(val, _values, result)
2288
2298
  val[1].each {|p| insert_bound_variable(p.name) }
2289
2299
 
2290
2300
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
@@ -2293,8 +2303,8 @@ module_eval(<<'.,.,', 'parser.y', 562)
2293
2303
  end
2294
2304
  .,.,
2295
2305
 
2296
- module_eval(<<'.,.,', 'parser.y', 569)
2297
- def _reduce_142(val, _values, result)
2306
+ module_eval(<<'.,.,', 'parser.y', 548)
2307
+ def _reduce_139(val, _values, result)
2298
2308
  result = Declarations::ModuleTypeParams.new()
2299
2309
  result.add(val[0])
2300
2310
 
@@ -2302,16 +2312,16 @@ module_eval(<<'.,.,', 'parser.y', 569)
2302
2312
  end
2303
2313
  .,.,
2304
2314
 
2305
- module_eval(<<'.,.,', 'parser.y', 573)
2306
- def _reduce_143(val, _values, result)
2315
+ module_eval(<<'.,.,', 'parser.y', 552)
2316
+ def _reduce_140(val, _values, result)
2307
2317
  result = val[0].add(val[2])
2308
2318
 
2309
2319
  result
2310
2320
  end
2311
2321
  .,.,
2312
2322
 
2313
- module_eval(<<'.,.,', 'parser.y', 578)
2314
- def _reduce_144(val, _values, result)
2323
+ module_eval(<<'.,.,', 'parser.y', 557)
2324
+ def _reduce_141(val, _values, result)
2315
2325
  result = Declarations::ModuleTypeParams::TypeParam.new(name: val[2].value.to_sym,
2316
2326
  variance: val[1],
2317
2327
  skip_validation: val[0])
@@ -2320,50 +2330,50 @@ module_eval(<<'.,.,', 'parser.y', 578)
2320
2330
  end
2321
2331
  .,.,
2322
2332
 
2323
- module_eval(<<'.,.,', 'parser.y', 584)
2324
- def _reduce_145(val, _values, result)
2333
+ module_eval(<<'.,.,', 'parser.y', 563)
2334
+ def _reduce_142(val, _values, result)
2325
2335
  result = :invariant
2326
2336
  result
2327
2337
  end
2328
2338
  .,.,
2329
2339
 
2330
- module_eval(<<'.,.,', 'parser.y', 585)
2331
- def _reduce_146(val, _values, result)
2340
+ module_eval(<<'.,.,', 'parser.y', 564)
2341
+ def _reduce_143(val, _values, result)
2332
2342
  result = :covariant
2333
2343
  result
2334
2344
  end
2335
2345
  .,.,
2336
2346
 
2337
- module_eval(<<'.,.,', 'parser.y', 586)
2338
- def _reduce_147(val, _values, result)
2347
+ module_eval(<<'.,.,', 'parser.y', 565)
2348
+ def _reduce_144(val, _values, result)
2339
2349
  result = :contravariant
2340
2350
  result
2341
2351
  end
2342
2352
  .,.,
2343
2353
 
2344
- module_eval(<<'.,.,', 'parser.y', 589)
2345
- def _reduce_148(val, _values, result)
2354
+ module_eval(<<'.,.,', 'parser.y', 568)
2355
+ def _reduce_145(val, _values, result)
2346
2356
  result = false
2347
2357
  result
2348
2358
  end
2349
2359
  .,.,
2350
2360
 
2351
- module_eval(<<'.,.,', 'parser.y', 590)
2352
- def _reduce_149(val, _values, result)
2361
+ module_eval(<<'.,.,', 'parser.y', 569)
2362
+ def _reduce_146(val, _values, result)
2353
2363
  result = true
2354
2364
  result
2355
2365
  end
2356
2366
  .,.,
2357
2367
 
2358
- module_eval(<<'.,.,', 'parser.y', 593)
2359
- def _reduce_150(val, _values, result)
2368
+ module_eval(<<'.,.,', 'parser.y', 572)
2369
+ def _reduce_147(val, _values, result)
2360
2370
  result = nil
2361
2371
  result
2362
2372
  end
2363
2373
  .,.,
2364
2374
 
2365
- module_eval(<<'.,.,', 'parser.y', 595)
2366
- def _reduce_151(val, _values, result)
2375
+ module_eval(<<'.,.,', 'parser.y', 574)
2376
+ def _reduce_148(val, _values, result)
2367
2377
  val[1].each {|var| insert_bound_variable(var) }
2368
2378
 
2369
2379
  result = LocatedValue.new(value: val[1],
@@ -2373,24 +2383,24 @@ module_eval(<<'.,.,', 'parser.y', 595)
2373
2383
  end
2374
2384
  .,.,
2375
2385
 
2376
- module_eval(<<'.,.,', 'parser.y', 603)
2377
- def _reduce_152(val, _values, result)
2386
+ module_eval(<<'.,.,', 'parser.y', 582)
2387
+ def _reduce_149(val, _values, result)
2378
2388
  result = [val[0].value.to_sym]
2379
2389
 
2380
2390
  result
2381
2391
  end
2382
2392
  .,.,
2383
2393
 
2384
- module_eval(<<'.,.,', 'parser.y', 606)
2385
- def _reduce_153(val, _values, result)
2394
+ module_eval(<<'.,.,', 'parser.y', 585)
2395
+ def _reduce_150(val, _values, result)
2386
2396
  result = val[0].push(val[2].value.to_sym)
2387
2397
 
2388
2398
  result
2389
2399
  end
2390
2400
  .,.,
2391
2401
 
2392
- module_eval(<<'.,.,', 'parser.y', 611)
2393
- def _reduce_154(val, _values, result)
2402
+ module_eval(<<'.,.,', 'parser.y', 590)
2403
+ def _reduce_151(val, _values, result)
2394
2404
  location = val[1].location + val[3].location
2395
2405
  result = Members::Alias.new(
2396
2406
  new_name: val[2].value.to_sym,
@@ -2405,8 +2415,8 @@ module_eval(<<'.,.,', 'parser.y', 611)
2405
2415
  end
2406
2416
  .,.,
2407
2417
 
2408
- module_eval(<<'.,.,', 'parser.y', 622)
2409
- def _reduce_155(val, _values, result)
2418
+ module_eval(<<'.,.,', 'parser.y', 601)
2419
+ def _reduce_152(val, _values, result)
2410
2420
  location = val[1].location + val[7].location
2411
2421
  result = Members::Alias.new(
2412
2422
  new_name: val[4].value.to_sym,
@@ -2421,8 +2431,8 @@ module_eval(<<'.,.,', 'parser.y', 622)
2421
2431
  end
2422
2432
  .,.,
2423
2433
 
2424
- module_eval(<<'.,.,', 'parser.y', 635)
2425
- def _reduce_156(val, _values, result)
2434
+ module_eval(<<'.,.,', 'parser.y', 614)
2435
+ def _reduce_153(val, _values, result)
2426
2436
  location = val[1].location + val[4].location
2427
2437
  result = Declarations::Alias.new(name: val[2].value,
2428
2438
  type: val[4],
@@ -2434,8 +2444,8 @@ module_eval(<<'.,.,', 'parser.y', 635)
2434
2444
  end
2435
2445
  .,.,
2436
2446
 
2437
- module_eval(<<'.,.,', 'parser.y', 645)
2438
- def _reduce_157(val, _values, result)
2447
+ module_eval(<<'.,.,', 'parser.y', 624)
2448
+ def _reduce_154(val, _values, result)
2439
2449
  location = val[0].location + val[2].location
2440
2450
  result = Declarations::Constant.new(name: val[0].value,
2441
2451
  type: val[2],
@@ -2446,8 +2456,8 @@ module_eval(<<'.,.,', 'parser.y', 645)
2446
2456
  end
2447
2457
  .,.,
2448
2458
 
2449
- module_eval(<<'.,.,', 'parser.y', 652)
2450
- def _reduce_158(val, _values, result)
2459
+ module_eval(<<'.,.,', 'parser.y', 631)
2460
+ def _reduce_155(val, _values, result)
2451
2461
  location = (val[0] || val[1]).location + val[2].location
2452
2462
  name = TypeName.new(name: val[1].value, namespace: val[0]&.value || Namespace.empty)
2453
2463
  result = Declarations::Constant.new(name: name,
@@ -2459,8 +2469,8 @@ module_eval(<<'.,.,', 'parser.y', 652)
2459
2469
  end
2460
2470
  .,.,
2461
2471
 
2462
- module_eval(<<'.,.,', 'parser.y', 662)
2463
- def _reduce_159(val, _values, result)
2472
+ module_eval(<<'.,.,', 'parser.y', 641)
2473
+ def _reduce_156(val, _values, result)
2464
2474
  location = val[0].location + val[2].location
2465
2475
  result = Declarations::Global.new(name: val[0].value.to_sym,
2466
2476
  type: val[2],
@@ -2471,10 +2481,10 @@ module_eval(<<'.,.,', 'parser.y', 662)
2471
2481
  end
2472
2482
  .,.,
2473
2483
 
2474
- # reduce 160 omitted
2484
+ # reduce 157 omitted
2475
2485
 
2476
- module_eval(<<'.,.,', 'parser.y', 672)
2477
- def _reduce_161(val, _values, result)
2486
+ module_eval(<<'.,.,', 'parser.y', 651)
2487
+ def _reduce_158(val, _values, result)
2478
2488
  types = case l = val[0]
2479
2489
  when Types::Union
2480
2490
  l.types + [val[2]]
@@ -2488,8 +2498,8 @@ module_eval(<<'.,.,', 'parser.y', 672)
2488
2498
  end
2489
2499
  .,.,
2490
2500
 
2491
- module_eval(<<'.,.,', 'parser.y', 682)
2492
- def _reduce_162(val, _values, result)
2501
+ module_eval(<<'.,.,', 'parser.y', 661)
2502
+ def _reduce_159(val, _values, result)
2493
2503
  types = case l = val[0]
2494
2504
  when Types::Intersection
2495
2505
  l.types + [val[2]]
@@ -2504,16 +2514,16 @@ module_eval(<<'.,.,', 'parser.y', 682)
2504
2514
  end
2505
2515
  .,.,
2506
2516
 
2507
- module_eval(<<'.,.,', 'parser.y', 695)
2508
- def _reduce_163(val, _values, result)
2517
+ module_eval(<<'.,.,', 'parser.y', 674)
2518
+ def _reduce_160(val, _values, result)
2509
2519
  result = Types::Bases::Void.new(location: val[0].location)
2510
2520
 
2511
2521
  result
2512
2522
  end
2513
2523
  .,.,
2514
2524
 
2515
- module_eval(<<'.,.,', 'parser.y', 698)
2516
- def _reduce_164(val, _values, result)
2525
+ module_eval(<<'.,.,', 'parser.y', 677)
2526
+ def _reduce_161(val, _values, result)
2517
2527
  RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})"
2518
2528
  result = Types::Bases::Any.new(location: val[0].location)
2519
2529
 
@@ -2521,56 +2531,56 @@ module_eval(<<'.,.,', 'parser.y', 698)
2521
2531
  end
2522
2532
  .,.,
2523
2533
 
2524
- module_eval(<<'.,.,', 'parser.y', 702)
2525
- def _reduce_165(val, _values, result)
2534
+ module_eval(<<'.,.,', 'parser.y', 681)
2535
+ def _reduce_162(val, _values, result)
2526
2536
  result = Types::Bases::Any.new(location: val[0].location)
2527
2537
 
2528
2538
  result
2529
2539
  end
2530
2540
  .,.,
2531
2541
 
2532
- module_eval(<<'.,.,', 'parser.y', 705)
2533
- def _reduce_166(val, _values, result)
2542
+ module_eval(<<'.,.,', 'parser.y', 684)
2543
+ def _reduce_163(val, _values, result)
2534
2544
  result = Types::Bases::Bool.new(location: val[0].location)
2535
2545
 
2536
2546
  result
2537
2547
  end
2538
2548
  .,.,
2539
2549
 
2540
- module_eval(<<'.,.,', 'parser.y', 708)
2541
- def _reduce_167(val, _values, result)
2550
+ module_eval(<<'.,.,', 'parser.y', 687)
2551
+ def _reduce_164(val, _values, result)
2542
2552
  result = Types::Bases::Nil.new(location: val[0].location)
2543
2553
 
2544
2554
  result
2545
2555
  end
2546
2556
  .,.,
2547
2557
 
2548
- module_eval(<<'.,.,', 'parser.y', 711)
2549
- def _reduce_168(val, _values, result)
2558
+ module_eval(<<'.,.,', 'parser.y', 690)
2559
+ def _reduce_165(val, _values, result)
2550
2560
  result = Types::Bases::Top.new(location: val[0].location)
2551
2561
 
2552
2562
  result
2553
2563
  end
2554
2564
  .,.,
2555
2565
 
2556
- module_eval(<<'.,.,', 'parser.y', 714)
2557
- def _reduce_169(val, _values, result)
2566
+ module_eval(<<'.,.,', 'parser.y', 693)
2567
+ def _reduce_166(val, _values, result)
2558
2568
  result = Types::Bases::Bottom.new(location: val[0].location)
2559
2569
 
2560
2570
  result
2561
2571
  end
2562
2572
  .,.,
2563
2573
 
2564
- module_eval(<<'.,.,', 'parser.y', 717)
2565
- def _reduce_170(val, _values, result)
2574
+ module_eval(<<'.,.,', 'parser.y', 696)
2575
+ def _reduce_167(val, _values, result)
2566
2576
  result = Types::Bases::Self.new(location: val[0].location)
2567
2577
 
2568
2578
  result
2569
2579
  end
2570
2580
  .,.,
2571
2581
 
2572
- module_eval(<<'.,.,', 'parser.y', 720)
2573
- def _reduce_171(val, _values, result)
2582
+ module_eval(<<'.,.,', 'parser.y', 699)
2583
+ def _reduce_168(val, _values, result)
2574
2584
  result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location),
2575
2585
  location: val[0].location)
2576
2586
 
@@ -2578,64 +2588,64 @@ module_eval(<<'.,.,', 'parser.y', 720)
2578
2588
  end
2579
2589
  .,.,
2580
2590
 
2581
- module_eval(<<'.,.,', 'parser.y', 724)
2582
- def _reduce_172(val, _values, result)
2591
+ module_eval(<<'.,.,', 'parser.y', 703)
2592
+ def _reduce_169(val, _values, result)
2583
2593
  result = Types::Bases::Instance.new(location: val[0].location)
2584
2594
 
2585
2595
  result
2586
2596
  end
2587
2597
  .,.,
2588
2598
 
2589
- module_eval(<<'.,.,', 'parser.y', 727)
2590
- def _reduce_173(val, _values, result)
2599
+ module_eval(<<'.,.,', 'parser.y', 706)
2600
+ def _reduce_170(val, _values, result)
2591
2601
  result = Types::Bases::Class.new(location: val[0].location)
2592
2602
 
2593
2603
  result
2594
2604
  end
2595
2605
  .,.,
2596
2606
 
2597
- module_eval(<<'.,.,', 'parser.y', 730)
2598
- def _reduce_174(val, _values, result)
2607
+ module_eval(<<'.,.,', 'parser.y', 709)
2608
+ def _reduce_171(val, _values, result)
2599
2609
  result = Types::Literal.new(literal: true, location: val[0].location)
2600
2610
 
2601
2611
  result
2602
2612
  end
2603
2613
  .,.,
2604
2614
 
2605
- module_eval(<<'.,.,', 'parser.y', 733)
2606
- def _reduce_175(val, _values, result)
2615
+ module_eval(<<'.,.,', 'parser.y', 712)
2616
+ def _reduce_172(val, _values, result)
2607
2617
  result = Types::Literal.new(literal: false, location: val[0].location)
2608
2618
 
2609
2619
  result
2610
2620
  end
2611
2621
  .,.,
2612
2622
 
2613
- module_eval(<<'.,.,', 'parser.y', 736)
2614
- def _reduce_176(val, _values, result)
2623
+ module_eval(<<'.,.,', 'parser.y', 715)
2624
+ def _reduce_173(val, _values, result)
2615
2625
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2616
2626
 
2617
2627
  result
2618
2628
  end
2619
2629
  .,.,
2620
2630
 
2621
- module_eval(<<'.,.,', 'parser.y', 739)
2622
- def _reduce_177(val, _values, result)
2631
+ module_eval(<<'.,.,', 'parser.y', 718)
2632
+ def _reduce_174(val, _values, result)
2623
2633
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2624
2634
 
2625
2635
  result
2626
2636
  end
2627
2637
  .,.,
2628
2638
 
2629
- module_eval(<<'.,.,', 'parser.y', 742)
2630
- def _reduce_178(val, _values, result)
2639
+ module_eval(<<'.,.,', 'parser.y', 721)
2640
+ def _reduce_175(val, _values, result)
2631
2641
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2632
2642
 
2633
2643
  result
2634
2644
  end
2635
2645
  .,.,
2636
2646
 
2637
- module_eval(<<'.,.,', 'parser.y', 745)
2638
- def _reduce_179(val, _values, result)
2647
+ module_eval(<<'.,.,', 'parser.y', 724)
2648
+ def _reduce_176(val, _values, result)
2639
2649
  name = val[0].value
2640
2650
  args = []
2641
2651
  location = val[0].location
@@ -2657,8 +2667,8 @@ module_eval(<<'.,.,', 'parser.y', 745)
2657
2667
  end
2658
2668
  .,.,
2659
2669
 
2660
- module_eval(<<'.,.,', 'parser.y', 763)
2661
- def _reduce_180(val, _values, result)
2670
+ module_eval(<<'.,.,', 'parser.y', 742)
2671
+ def _reduce_177(val, _values, result)
2662
2672
  name = val[0].value
2663
2673
  args = val[2]
2664
2674
  location = val[0].location + val[3].location
@@ -2679,8 +2689,8 @@ module_eval(<<'.,.,', 'parser.y', 763)
2679
2689
  end
2680
2690
  .,.,
2681
2691
 
2682
- module_eval(<<'.,.,', 'parser.y', 780)
2683
- def _reduce_181(val, _values, result)
2692
+ module_eval(<<'.,.,', 'parser.y', 759)
2693
+ def _reduce_178(val, _values, result)
2684
2694
  location = val[0].location + val[1].location
2685
2695
  result = Types::Tuple.new(types: [], location: location)
2686
2696
 
@@ -2688,8 +2698,8 @@ module_eval(<<'.,.,', 'parser.y', 780)
2688
2698
  end
2689
2699
  .,.,
2690
2700
 
2691
- module_eval(<<'.,.,', 'parser.y', 784)
2692
- def _reduce_182(val, _values, result)
2701
+ module_eval(<<'.,.,', 'parser.y', 763)
2702
+ def _reduce_179(val, _values, result)
2693
2703
  location = val[0].location + val[2].location
2694
2704
  types = val[1]
2695
2705
  result = Types::Tuple.new(types: types, location: location)
@@ -2698,8 +2708,8 @@ module_eval(<<'.,.,', 'parser.y', 784)
2698
2708
  end
2699
2709
  .,.,
2700
2710
 
2701
- module_eval(<<'.,.,', 'parser.y', 789)
2702
- def _reduce_183(val, _values, result)
2711
+ module_eval(<<'.,.,', 'parser.y', 768)
2712
+ def _reduce_180(val, _values, result)
2703
2713
  type = val[1].dup
2704
2714
  type.instance_eval do
2705
2715
  @location = val[0].location + val[2].location
@@ -2710,8 +2720,8 @@ module_eval(<<'.,.,', 'parser.y', 789)
2710
2720
  end
2711
2721
  .,.,
2712
2722
 
2713
- module_eval(<<'.,.,', 'parser.y', 796)
2714
- def _reduce_184(val, _values, result)
2723
+ module_eval(<<'.,.,', 'parser.y', 775)
2724
+ def _reduce_181(val, _values, result)
2715
2725
  result = Types::ClassSingleton.new(name: val[2].value,
2716
2726
  location: val[0].location + val[3].location)
2717
2727
 
@@ -2719,42 +2729,43 @@ module_eval(<<'.,.,', 'parser.y', 796)
2719
2729
  end
2720
2730
  .,.,
2721
2731
 
2722
- module_eval(<<'.,.,', 'parser.y', 800)
2723
- def _reduce_185(val, _values, result)
2724
- result = Types::Proc.new(type: val[1].value, location: val[0].location + val[1].location)
2732
+ module_eval(<<'.,.,', 'parser.y', 779)
2733
+ def _reduce_182(val, _values, result)
2734
+ type, block = val[1].value
2735
+ result = Types::Proc.new(type: type, block: block, location: val[0].location + val[1].location)
2725
2736
 
2726
2737
  result
2727
2738
  end
2728
2739
  .,.,
2729
2740
 
2730
- module_eval(<<'.,.,', 'parser.y', 803)
2731
- def _reduce_186(val, _values, result)
2741
+ module_eval(<<'.,.,', 'parser.y', 783)
2742
+ def _reduce_183(val, _values, result)
2732
2743
  result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location)
2733
2744
 
2734
2745
  result
2735
2746
  end
2736
2747
  .,.,
2737
2748
 
2738
- # reduce 187 omitted
2749
+ # reduce 184 omitted
2739
2750
 
2740
- module_eval(<<'.,.,', 'parser.y', 809)
2741
- def _reduce_188(val, _values, result)
2751
+ module_eval(<<'.,.,', 'parser.y', 789)
2752
+ def _reduce_185(val, _values, result)
2742
2753
  result = [val[0]]
2743
2754
 
2744
2755
  result
2745
2756
  end
2746
2757
  .,.,
2747
2758
 
2748
- module_eval(<<'.,.,', 'parser.y', 812)
2749
- def _reduce_189(val, _values, result)
2759
+ module_eval(<<'.,.,', 'parser.y', 792)
2760
+ def _reduce_186(val, _values, result)
2750
2761
  result = val[0] + [val[2]]
2751
2762
 
2752
2763
  result
2753
2764
  end
2754
2765
  .,.,
2755
2766
 
2756
- module_eval(<<'.,.,', 'parser.y', 817)
2757
- def _reduce_190(val, _values, result)
2767
+ module_eval(<<'.,.,', 'parser.y', 797)
2768
+ def _reduce_187(val, _values, result)
2758
2769
  result = Types::Record.new(
2759
2770
  fields: val[1],
2760
2771
  location: val[0].location + val[2].location
@@ -2764,31 +2775,55 @@ module_eval(<<'.,.,', 'parser.y', 817)
2764
2775
  end
2765
2776
  .,.,
2766
2777
 
2767
- module_eval(<<'.,.,', 'parser.y', 825)
2768
- def _reduce_191(val, _values, result)
2778
+ module_eval(<<'.,.,', 'parser.y', 805)
2779
+ def _reduce_188(val, _values, result)
2769
2780
  result = val[0]
2770
2781
 
2771
2782
  result
2772
2783
  end
2773
2784
  .,.,
2774
2785
 
2775
- module_eval(<<'.,.,', 'parser.y', 828)
2776
- def _reduce_192(val, _values, result)
2786
+ module_eval(<<'.,.,', 'parser.y', 808)
2787
+ def _reduce_189(val, _values, result)
2777
2788
  result = val[0].merge!(val[2])
2778
2789
 
2779
2790
  result
2780
2791
  end
2781
2792
  .,.,
2782
2793
 
2783
- module_eval(<<'.,.,', 'parser.y', 833)
2784
- def _reduce_193(val, _values, result)
2794
+ module_eval(<<'.,.,', 'parser.y', 813)
2795
+ def _reduce_190(val, _values, result)
2785
2796
  result = { val[0].value => val[2] }
2786
2797
 
2787
2798
  result
2788
2799
  end
2789
2800
  .,.,
2790
2801
 
2791
- module_eval(<<'.,.,', 'parser.y', 836)
2802
+ module_eval(<<'.,.,', 'parser.y', 816)
2803
+ def _reduce_191(val, _values, result)
2804
+ result = { val[0].value => val[2] }
2805
+
2806
+ result
2807
+ end
2808
+ .,.,
2809
+
2810
+ module_eval(<<'.,.,', 'parser.y', 819)
2811
+ def _reduce_192(val, _values, result)
2812
+ result = { val[0].value => val[2] }
2813
+
2814
+ result
2815
+ end
2816
+ .,.,
2817
+
2818
+ module_eval(<<'.,.,', 'parser.y', 822)
2819
+ def _reduce_193(val, _values, result)
2820
+ result = { val[0].value => val[1] }
2821
+
2822
+ result
2823
+ end
2824
+ .,.,
2825
+
2826
+ module_eval(<<'.,.,', 'parser.y', 825)
2792
2827
  def _reduce_194(val, _values, result)
2793
2828
  result = { val[0].value => val[2] }
2794
2829
 
@@ -2796,7 +2831,7 @@ module_eval(<<'.,.,', 'parser.y', 836)
2796
2831
  end
2797
2832
  .,.,
2798
2833
 
2799
- module_eval(<<'.,.,', 'parser.y', 839)
2834
+ module_eval(<<'.,.,', 'parser.y', 828)
2800
2835
  def _reduce_195(val, _values, result)
2801
2836
  result = { val[0].value => val[2] }
2802
2837
 
@@ -2804,9 +2839,9 @@ module_eval(<<'.,.,', 'parser.y', 839)
2804
2839
  end
2805
2840
  .,.,
2806
2841
 
2807
- module_eval(<<'.,.,', 'parser.y', 842)
2842
+ module_eval(<<'.,.,', 'parser.y', 831)
2808
2843
  def _reduce_196(val, _values, result)
2809
- result = { val[0].value => val[1] }
2844
+ result = { val[0].value => val[2] }
2810
2845
 
2811
2846
  result
2812
2847
  end
@@ -2814,7 +2849,7 @@ module_eval(<<'.,.,', 'parser.y', 842)
2814
2849
 
2815
2850
  # reduce 197 omitted
2816
2851
 
2817
- module_eval(<<'.,.,', 'parser.y', 848)
2852
+ module_eval(<<'.,.,', 'parser.y', 837)
2818
2853
  def _reduce_198(val, _values, result)
2819
2854
  result = val[0]
2820
2855
 
@@ -2830,8 +2865,41 @@ module_eval(<<'.,.,', 'parser.y', 848)
2830
2865
 
2831
2866
  # reduce 202 omitted
2832
2867
 
2833
- module_eval(<<'.,.,', 'parser.y', 855)
2868
+ module_eval(<<'.,.,', 'parser.y', 844)
2834
2869
  def _reduce_203(val, _values, result)
2870
+ location = (val[0] || val[1] || val[2]).location + val[3].location
2871
+
2872
+ params = val[0]&.value || [[], [], nil, [], {}, {}, nil]
2873
+
2874
+ type = Types::Function.new(
2875
+ required_positionals: params[0],
2876
+ optional_positionals: params[1],
2877
+ rest_positionals: params[2],
2878
+ trailing_positionals: params[3],
2879
+ required_keywords: params[4],
2880
+ optional_keywords: params[5],
2881
+ rest_keywords: params[6],
2882
+ return_type: val[3]
2883
+ )
2884
+
2885
+ block = val[1].value
2886
+
2887
+ result = LocatedValue.new(value: [type, block], location: location)
2888
+
2889
+ result
2890
+ end
2891
+ .,.,
2892
+
2893
+ module_eval(<<'.,.,', 'parser.y', 864)
2894
+ def _reduce_204(val, _values, result)
2895
+ result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location)
2896
+
2897
+ result
2898
+ end
2899
+ .,.,
2900
+
2901
+ module_eval(<<'.,.,', 'parser.y', 869)
2902
+ def _reduce_205(val, _values, result)
2835
2903
  location = val[0].location + val[4].location
2836
2904
  type = Types::Function.new(
2837
2905
  required_positionals: val[1][0],
@@ -2850,8 +2918,8 @@ module_eval(<<'.,.,', 'parser.y', 855)
2850
2918
  end
2851
2919
  .,.,
2852
2920
 
2853
- module_eval(<<'.,.,', 'parser.y', 870)
2854
- def _reduce_204(val, _values, result)
2921
+ module_eval(<<'.,.,', 'parser.y', 884)
2922
+ def _reduce_206(val, _values, result)
2855
2923
  location = val[0].location + val[1].location
2856
2924
  type = Types::Function.new(
2857
2925
  required_positionals: [],
@@ -2870,8 +2938,8 @@ module_eval(<<'.,.,', 'parser.y', 870)
2870
2938
  end
2871
2939
  .,.,
2872
2940
 
2873
- module_eval(<<'.,.,', 'parser.y', 887)
2874
- def _reduce_205(val, _values, result)
2941
+ module_eval(<<'.,.,', 'parser.y', 901)
2942
+ def _reduce_207(val, _values, result)
2875
2943
  result = val[2]
2876
2944
  result[0].unshift(val[0])
2877
2945
 
@@ -2879,8 +2947,8 @@ module_eval(<<'.,.,', 'parser.y', 887)
2879
2947
  end
2880
2948
  .,.,
2881
2949
 
2882
- module_eval(<<'.,.,', 'parser.y', 891)
2883
- def _reduce_206(val, _values, result)
2950
+ module_eval(<<'.,.,', 'parser.y', 905)
2951
+ def _reduce_208(val, _values, result)
2884
2952
  result = empty_params_result
2885
2953
  result[0].unshift(val[0])
2886
2954
 
@@ -2888,10 +2956,10 @@ module_eval(<<'.,.,', 'parser.y', 891)
2888
2956
  end
2889
2957
  .,.,
2890
2958
 
2891
- # reduce 207 omitted
2959
+ # reduce 209 omitted
2892
2960
 
2893
- module_eval(<<'.,.,', 'parser.y', 898)
2894
- def _reduce_208(val, _values, result)
2961
+ module_eval(<<'.,.,', 'parser.y', 912)
2962
+ def _reduce_210(val, _values, result)
2895
2963
  result = val[2]
2896
2964
  result[1].unshift(val[0])
2897
2965
 
@@ -2899,8 +2967,8 @@ module_eval(<<'.,.,', 'parser.y', 898)
2899
2967
  end
2900
2968
  .,.,
2901
2969
 
2902
- module_eval(<<'.,.,', 'parser.y', 902)
2903
- def _reduce_209(val, _values, result)
2970
+ module_eval(<<'.,.,', 'parser.y', 916)
2971
+ def _reduce_211(val, _values, result)
2904
2972
  result = empty_params_result
2905
2973
  result[1].unshift(val[0])
2906
2974
 
@@ -2908,10 +2976,10 @@ module_eval(<<'.,.,', 'parser.y', 902)
2908
2976
  end
2909
2977
  .,.,
2910
2978
 
2911
- # reduce 210 omitted
2979
+ # reduce 212 omitted
2912
2980
 
2913
- module_eval(<<'.,.,', 'parser.y', 909)
2914
- def _reduce_211(val, _values, result)
2981
+ module_eval(<<'.,.,', 'parser.y', 923)
2982
+ def _reduce_213(val, _values, result)
2915
2983
  result = val[2]
2916
2984
  result[2] = val[0]
2917
2985
 
@@ -2919,8 +2987,8 @@ module_eval(<<'.,.,', 'parser.y', 909)
2919
2987
  end
2920
2988
  .,.,
2921
2989
 
2922
- module_eval(<<'.,.,', 'parser.y', 913)
2923
- def _reduce_212(val, _values, result)
2990
+ module_eval(<<'.,.,', 'parser.y', 927)
2991
+ def _reduce_214(val, _values, result)
2924
2992
  result = empty_params_result
2925
2993
  result[2] = val[0]
2926
2994
 
@@ -2928,10 +2996,10 @@ module_eval(<<'.,.,', 'parser.y', 913)
2928
2996
  end
2929
2997
  .,.,
2930
2998
 
2931
- # reduce 213 omitted
2999
+ # reduce 215 omitted
2932
3000
 
2933
- module_eval(<<'.,.,', 'parser.y', 920)
2934
- def _reduce_214(val, _values, result)
3001
+ module_eval(<<'.,.,', 'parser.y', 934)
3002
+ def _reduce_216(val, _values, result)
2935
3003
  result = val[2]
2936
3004
  result[3].unshift(val[0])
2937
3005
 
@@ -2939,8 +3007,8 @@ module_eval(<<'.,.,', 'parser.y', 920)
2939
3007
  end
2940
3008
  .,.,
2941
3009
 
2942
- module_eval(<<'.,.,', 'parser.y', 924)
2943
- def _reduce_215(val, _values, result)
3010
+ module_eval(<<'.,.,', 'parser.y', 938)
3011
+ def _reduce_217(val, _values, result)
2944
3012
  result = empty_params_result
2945
3013
  result[3].unshift(val[0])
2946
3014
 
@@ -2948,18 +3016,18 @@ module_eval(<<'.,.,', 'parser.y', 924)
2948
3016
  end
2949
3017
  .,.,
2950
3018
 
2951
- # reduce 216 omitted
3019
+ # reduce 218 omitted
2952
3020
 
2953
- module_eval(<<'.,.,', 'parser.y', 931)
2954
- def _reduce_217(val, _values, result)
3021
+ module_eval(<<'.,.,', 'parser.y', 945)
3022
+ def _reduce_219(val, _values, result)
2955
3023
  result = empty_params_result
2956
3024
 
2957
3025
  result
2958
3026
  end
2959
3027
  .,.,
2960
3028
 
2961
- module_eval(<<'.,.,', 'parser.y', 934)
2962
- def _reduce_218(val, _values, result)
3029
+ module_eval(<<'.,.,', 'parser.y', 948)
3030
+ def _reduce_220(val, _values, result)
2963
3031
  result = val[2]
2964
3032
  result[4].merge!(val[0])
2965
3033
 
@@ -2967,8 +3035,8 @@ module_eval(<<'.,.,', 'parser.y', 934)
2967
3035
  end
2968
3036
  .,.,
2969
3037
 
2970
- module_eval(<<'.,.,', 'parser.y', 938)
2971
- def _reduce_219(val, _values, result)
3038
+ module_eval(<<'.,.,', 'parser.y', 952)
3039
+ def _reduce_221(val, _values, result)
2972
3040
  result = empty_params_result
2973
3041
  result[4].merge!(val[0])
2974
3042
 
@@ -2976,8 +3044,8 @@ module_eval(<<'.,.,', 'parser.y', 938)
2976
3044
  end
2977
3045
  .,.,
2978
3046
 
2979
- module_eval(<<'.,.,', 'parser.y', 942)
2980
- def _reduce_220(val, _values, result)
3047
+ module_eval(<<'.,.,', 'parser.y', 956)
3048
+ def _reduce_222(val, _values, result)
2981
3049
  result = val[2]
2982
3050
  result[5].merge!(val[0])
2983
3051
 
@@ -2985,8 +3053,8 @@ module_eval(<<'.,.,', 'parser.y', 942)
2985
3053
  end
2986
3054
  .,.,
2987
3055
 
2988
- module_eval(<<'.,.,', 'parser.y', 946)
2989
- def _reduce_221(val, _values, result)
3056
+ module_eval(<<'.,.,', 'parser.y', 960)
3057
+ def _reduce_223(val, _values, result)
2990
3058
  result = empty_params_result
2991
3059
  result[5].merge!(val[0])
2992
3060
 
@@ -2994,8 +3062,8 @@ module_eval(<<'.,.,', 'parser.y', 946)
2994
3062
  end
2995
3063
  .,.,
2996
3064
 
2997
- module_eval(<<'.,.,', 'parser.y', 950)
2998
- def _reduce_222(val, _values, result)
3065
+ module_eval(<<'.,.,', 'parser.y', 964)
3066
+ def _reduce_224(val, _values, result)
2999
3067
  result = empty_params_result
3000
3068
  result[6] = val[0]
3001
3069
 
@@ -3003,8 +3071,8 @@ module_eval(<<'.,.,', 'parser.y', 950)
3003
3071
  end
3004
3072
  .,.,
3005
3073
 
3006
- module_eval(<<'.,.,', 'parser.y', 956)
3007
- def _reduce_223(val, _values, result)
3074
+ module_eval(<<'.,.,', 'parser.y', 970)
3075
+ def _reduce_225(val, _values, result)
3008
3076
  result = Types::Function::Param.new(type: val[0],
3009
3077
  name: val[1]&.value&.to_sym)
3010
3078
 
@@ -3012,8 +3080,8 @@ module_eval(<<'.,.,', 'parser.y', 956)
3012
3080
  end
3013
3081
  .,.,
3014
3082
 
3015
- module_eval(<<'.,.,', 'parser.y', 962)
3016
- def _reduce_224(val, _values, result)
3083
+ module_eval(<<'.,.,', 'parser.y', 976)
3084
+ def _reduce_226(val, _values, result)
3017
3085
  result = Types::Function::Param.new(type: val[1],
3018
3086
  name: val[2]&.value&.to_sym)
3019
3087
 
@@ -3021,8 +3089,8 @@ module_eval(<<'.,.,', 'parser.y', 962)
3021
3089
  end
3022
3090
  .,.,
3023
3091
 
3024
- module_eval(<<'.,.,', 'parser.y', 968)
3025
- def _reduce_225(val, _values, result)
3092
+ module_eval(<<'.,.,', 'parser.y', 982)
3093
+ def _reduce_227(val, _values, result)
3026
3094
  result = Types::Function::Param.new(type: val[1],
3027
3095
  name: val[2]&.value&.to_sym)
3028
3096
 
@@ -3030,8 +3098,8 @@ module_eval(<<'.,.,', 'parser.y', 968)
3030
3098
  end
3031
3099
  .,.,
3032
3100
 
3033
- module_eval(<<'.,.,', 'parser.y', 974)
3034
- def _reduce_226(val, _values, result)
3101
+ module_eval(<<'.,.,', 'parser.y', 988)
3102
+ def _reduce_228(val, _values, result)
3035
3103
  param = Types::Function::Param.new(type: val[1],
3036
3104
  name: val[2]&.value&.to_sym)
3037
3105
  result = { val[0].value => param }
@@ -3040,8 +3108,8 @@ module_eval(<<'.,.,', 'parser.y', 974)
3040
3108
  end
3041
3109
  .,.,
3042
3110
 
3043
- module_eval(<<'.,.,', 'parser.y', 981)
3044
- def _reduce_227(val, _values, result)
3111
+ module_eval(<<'.,.,', 'parser.y', 995)
3112
+ def _reduce_229(val, _values, result)
3045
3113
  param = Types::Function::Param.new(type: val[2],
3046
3114
  name: val[3]&.value&.to_sym)
3047
3115
  result = { val[1].value => param }
@@ -3050,8 +3118,8 @@ module_eval(<<'.,.,', 'parser.y', 981)
3050
3118
  end
3051
3119
  .,.,
3052
3120
 
3053
- module_eval(<<'.,.,', 'parser.y', 988)
3054
- def _reduce_228(val, _values, result)
3121
+ module_eval(<<'.,.,', 'parser.y', 1002)
3122
+ def _reduce_230(val, _values, result)
3055
3123
  result = Types::Function::Param.new(type: val[1],
3056
3124
  name: val[2]&.value&.to_sym)
3057
3125
 
@@ -3059,16 +3127,16 @@ module_eval(<<'.,.,', 'parser.y', 988)
3059
3127
  end
3060
3128
  .,.,
3061
3129
 
3062
- # reduce 229 omitted
3063
-
3064
- # reduce 230 omitted
3065
-
3066
3130
  # reduce 231 omitted
3067
3131
 
3068
3132
  # reduce 232 omitted
3069
3133
 
3070
- module_eval(<<'.,.,', 'parser.y', 997)
3071
- def _reduce_233(val, _values, result)
3134
+ # reduce 233 omitted
3135
+
3136
+ # reduce 234 omitted
3137
+
3138
+ module_eval(<<'.,.,', 'parser.y', 1011)
3139
+ def _reduce_235(val, _values, result)
3072
3140
  namespace = val[0]&.value || Namespace.empty
3073
3141
  name = val[1].value.to_sym
3074
3142
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3079,14 +3147,14 @@ module_eval(<<'.,.,', 'parser.y', 997)
3079
3147
  end
3080
3148
  .,.,
3081
3149
 
3082
- # reduce 234 omitted
3150
+ # reduce 236 omitted
3083
3151
 
3084
- # reduce 235 omitted
3152
+ # reduce 237 omitted
3085
3153
 
3086
- # reduce 236 omitted
3154
+ # reduce 238 omitted
3087
3155
 
3088
- module_eval(<<'.,.,', 'parser.y', 1009)
3089
- def _reduce_237(val, _values, result)
3156
+ module_eval(<<'.,.,', 'parser.y', 1023)
3157
+ def _reduce_239(val, _values, result)
3090
3158
  namespace = val[0]&.value || Namespace.empty
3091
3159
  name = val[1].value.to_sym
3092
3160
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3097,8 +3165,8 @@ module_eval(<<'.,.,', 'parser.y', 1009)
3097
3165
  end
3098
3166
  .,.,
3099
3167
 
3100
- module_eval(<<'.,.,', 'parser.y', 1018)
3101
- def _reduce_238(val, _values, result)
3168
+ module_eval(<<'.,.,', 'parser.y', 1032)
3169
+ def _reduce_240(val, _values, result)
3102
3170
  namespace = val[0]&.value || Namespace.empty
3103
3171
  name = val[1].value.to_sym
3104
3172
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3109,24 +3177,24 @@ module_eval(<<'.,.,', 'parser.y', 1018)
3109
3177
  end
3110
3178
  .,.,
3111
3179
 
3112
- module_eval(<<'.,.,', 'parser.y', 1027)
3113
- def _reduce_239(val, _values, result)
3180
+ module_eval(<<'.,.,', 'parser.y', 1041)
3181
+ def _reduce_241(val, _values, result)
3114
3182
  result = nil
3115
3183
 
3116
3184
  result
3117
3185
  end
3118
3186
  .,.,
3119
3187
 
3120
- module_eval(<<'.,.,', 'parser.y', 1030)
3121
- def _reduce_240(val, _values, result)
3188
+ module_eval(<<'.,.,', 'parser.y', 1044)
3189
+ def _reduce_242(val, _values, result)
3122
3190
  result = LocatedValue.new(value: Namespace.root, location: val[0].location)
3123
3191
 
3124
3192
  result
3125
3193
  end
3126
3194
  .,.,
3127
3195
 
3128
- module_eval(<<'.,.,', 'parser.y', 1033)
3129
- def _reduce_241(val, _values, result)
3196
+ module_eval(<<'.,.,', 'parser.y', 1047)
3197
+ def _reduce_243(val, _values, result)
3130
3198
  namespace = Namespace.parse(val[1].value).absolute!
3131
3199
  result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location)
3132
3200
 
@@ -3134,8 +3202,8 @@ module_eval(<<'.,.,', 'parser.y', 1033)
3134
3202
  end
3135
3203
  .,.,
3136
3204
 
3137
- module_eval(<<'.,.,', 'parser.y', 1037)
3138
- def _reduce_242(val, _values, result)
3205
+ module_eval(<<'.,.,', 'parser.y', 1051)
3206
+ def _reduce_244(val, _values, result)
3139
3207
  namespace = Namespace.parse(val[0].value)
3140
3208
  result = LocatedValue.new(value: namespace, location: val[0].location)
3141
3209