rbs 0.18.0 → 1.0.0.pre

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