rbs 0.18.0 → 1.0.0.pre

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