rbs 0.18.1 → 1.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
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