rbs 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +5 -1
  3. data/.gitignore +2 -0
  4. data/CHANGELOG.md +81 -0
  5. data/README.md +1 -1
  6. data/Rakefile +11 -0
  7. data/Steepfile +1 -0
  8. data/core/array.rbs +2 -2
  9. data/core/basic_object.rbs +1 -1
  10. data/core/enumerable.rbs +1 -1
  11. data/core/hash.rbs +13 -5
  12. data/core/io.rbs +4 -4
  13. data/core/kernel.rbs +2 -2
  14. data/core/marshal.rbs +4 -3
  15. data/core/module.rbs +1 -1
  16. data/core/numeric.rbs +10 -0
  17. data/core/proc.rbs +1 -1
  18. data/core/random.rbs +4 -2
  19. data/core/range.rbs +2 -2
  20. data/core/struct.rbs +3 -2
  21. data/core/thread.rbs +1 -1
  22. data/docs/CONTRIBUTING.md +5 -3
  23. data/docs/rbs_by_example.md +328 -0
  24. data/docs/sigs.md +21 -2
  25. data/docs/stdlib.md +1 -1
  26. data/docs/syntax.md +11 -14
  27. data/lib/rbs.rb +1 -0
  28. data/lib/rbs/ast/annotation.rb +2 -2
  29. data/lib/rbs/ast/comment.rb +2 -2
  30. data/lib/rbs/ast/declarations.rb +37 -22
  31. data/lib/rbs/ast/members.rb +26 -26
  32. data/lib/rbs/cli.rb +3 -0
  33. data/lib/rbs/constant_table.rb +4 -1
  34. data/lib/rbs/definition.rb +1 -1
  35. data/lib/rbs/definition_builder.rb +16 -18
  36. data/lib/rbs/definition_builder/ancestor_builder.rb +10 -2
  37. data/lib/rbs/definition_builder/method_builder.rb +4 -2
  38. data/lib/rbs/errors.rb +36 -0
  39. data/lib/rbs/location.rb +106 -2
  40. data/lib/rbs/locator.rb +205 -0
  41. data/lib/rbs/method_type.rb +2 -2
  42. data/lib/rbs/parser.rb +1315 -962
  43. data/lib/rbs/parser.y +411 -75
  44. data/lib/rbs/prototype/rb.rb +7 -3
  45. data/lib/rbs/prototype/runtime.rb +118 -42
  46. data/lib/rbs/test/hook.rb +8 -2
  47. data/lib/rbs/type_name.rb +2 -3
  48. data/lib/rbs/type_name_resolver.rb +1 -1
  49. data/lib/rbs/types.rb +36 -34
  50. data/lib/rbs/version.rb +1 -1
  51. data/lib/rbs/writer.rb +4 -2
  52. data/rbs.gemspec +1 -1
  53. data/sig/ancestor_builder.rbs +2 -0
  54. data/sig/annotation.rbs +1 -1
  55. data/sig/cli.rbs +31 -21
  56. data/sig/comment.rbs +1 -1
  57. data/sig/declarations.rbs +106 -21
  58. data/sig/environment.rbs +2 -2
  59. data/sig/errors.rbs +15 -0
  60. data/sig/location.rbs +84 -3
  61. data/sig/locator.rbs +44 -0
  62. data/sig/members.rbs +76 -12
  63. data/sig/method_builder.rbs +1 -1
  64. data/sig/method_types.rbs +1 -1
  65. data/sig/namespace.rbs +1 -1
  66. data/sig/polyfill.rbs +4 -17
  67. data/sig/rbs.rbs +8 -4
  68. data/sig/typename.rbs +1 -1
  69. data/sig/types.rbs +67 -20
  70. data/sig/util.rbs +0 -4
  71. data/sig/writer.rbs +8 -2
  72. data/stdlib/dbm/0/dbm.rbs +43 -30
  73. data/stdlib/mutex_m/0/mutex_m.rbs +1 -1
  74. data/stdlib/net-http/0/net-http.rbs +1846 -0
  75. data/stdlib/optparse/0/optparse.rbs +1214 -0
  76. data/stdlib/resolv/0/resolv.rbs +1504 -0
  77. data/stdlib/rubygems/0/requirement.rbs +84 -2
  78. data/stdlib/rubygems/0/rubygems.rbs +2 -2
  79. data/stdlib/rubygems/0/version.rbs +2 -1
  80. data/stdlib/shellwords/0/shellwords.rbs +252 -0
  81. data/stdlib/socket/0/addrinfo.rbs +469 -0
  82. data/stdlib/socket/0/basic_socket.rbs +503 -0
  83. data/stdlib/socket/0/ip_socket.rbs +72 -0
  84. data/stdlib/socket/0/socket.rbs +2687 -0
  85. data/stdlib/socket/0/tcp_server.rbs +177 -0
  86. data/stdlib/socket/0/tcp_socket.rbs +35 -0
  87. data/stdlib/socket/0/udp_socket.rbs +111 -0
  88. data/stdlib/socket/0/unix_server.rbs +154 -0
  89. data/stdlib/socket/0/unix_socket.rbs +132 -0
  90. data/stdlib/timeout/0/timeout.rbs +5 -0
  91. data/steep/Gemfile.lock +19 -16
  92. metadata +18 -11
  93. data/bin/annotate-with-rdoc +0 -153
  94. data/bin/console +0 -14
  95. data/bin/query-rdoc +0 -103
  96. data/bin/rbs-prof +0 -9
  97. data/bin/run_in_md.rb +0 -49
  98. data/bin/setup +0 -8
  99. data/bin/sort +0 -89
  100. data/bin/steep +0 -4
  101. data/bin/test_runner.rb +0 -29
@@ -19,13 +19,13 @@ module RBS
19
19
  other.block == block
20
20
  end
21
21
 
22
- def to_json(*a)
22
+ def to_json(state = _ = nil)
23
23
  {
24
24
  type_params: type_params,
25
25
  type: type,
26
26
  block: block,
27
27
  location: location
28
- }.to_json(*a)
28
+ }.to_json(state)
29
29
  end
30
30
 
31
31
  def sub(s)
data/lib/rbs/parser.rb CHANGED
@@ -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', 1072)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1394)
12
12
 
13
13
  Types = RBS::Types
14
14
  Namespace = RBS::Namespace
@@ -332,12 +332,16 @@ def next_token
332
332
  new_token(:tIVAR, input.matched.to_sym)
333
333
  when input.scan(/@@[a-zA-Z_]\w*/)
334
334
  new_token(:tCLASSVAR, input.matched.to_sym)
335
- when input.scan(/_[a-zA-Z]\w*\b/)
335
+ when input.scan(/_[A-Z]\w*\b/)
336
336
  new_token(:tINTERFACEIDENT)
337
337
  when input.scan(/[A-Z]\w*\b/)
338
338
  new_token(:tUIDENT)
339
- when input.scan(/[a-z_]\w*\b/)
339
+ when input.scan(/[a-z]\w*\b/)
340
340
  new_token(:tLIDENT)
341
+ when input.scan(/_[a-z]\w*\b/)
342
+ new_token(:tUNDERSCOREIDENT)
343
+ when input.scan(/_/)
344
+ new_token(:kUNDERSCORE)
341
345
  when input.scan(/"(\\"|[^"])*"/)
342
346
  s = input.matched.yield_self {|s| s[1, s.length - 2] }
343
347
  .gsub(DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE) do |match|
@@ -371,6 +375,16 @@ def on_error(token_id, error_value, value_stack)
371
375
  raise SyntaxError.new(token_str: token_to_str(token_id), error_value: error_value, value_stack: value_stack)
372
376
  end
373
377
 
378
+ def split_kw_loc(loc)
379
+ buf = loc.buffer
380
+ start_pos = loc.start_pos
381
+ end_pos = loc.end_pos
382
+ [
383
+ Location.new(buffer: buf, start_pos: start_pos, end_pos: end_pos - 1),
384
+ Location.new(buffer: buf, start_pos: end_pos - 1, end_pos: end_pos)
385
+ ]
386
+ end
387
+
374
388
  class SyntaxError < ParsingError
375
389
  attr_reader :token_str, :error_value, :value_stack
376
390
 
@@ -410,74 +424,109 @@ end
410
424
  ##### State transition tables begin ###
411
425
 
412
426
  clist = [
413
- '354,355,33,356,5,113,37,33,33,42,341,397,49,33,33,353,43,248,339,396',
414
- '40,41,55,56,57,58,59,60,61,62,358,33,63,54,64,65,66,77,67,68,69,83,33',
415
- '32,53,349,343,344,32,32,347,345,348,308,32,32,33,346,82,70,71,72,74',
416
- '76,75,342,351,352,73,78,80,126,32,185,48,84,85,81,86,354,355,33,356',
417
- '32,96,97,98,99,104,49,39,33,33,33,353,207,207,32,186,40,41,55,56,57',
418
- '58,59,60,61,62,79,226,63,54,64,65,66,77,67,68,69,83,53,32,160,349,343',
419
- '344,53,53,347,345,348,32,32,32,227,346,82,70,71,72,74,76,75,342,351',
420
- '352,73,78,80,40,41,161,283,84,85,81,86,354,355,120,356,180,96,97,98',
421
- '99,125,179,101,102,165,103,353,166,330,363,400,284,39,55,56,57,58,59',
422
- '60,61,62,79,401,63,54,64,65,66,77,67,68,69,83,186,186,186,349,343,344',
423
- '402,167,347,345,348,326,40,41,186,346,82,70,71,72,74,76,75,342,351,352',
424
- '73,78,80,168,322,186,170,84,85,81,86,354,355,171,356,172,96,97,98,99',
425
- '2,3,4,40,41,113,353,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,178',
426
- '63,54,64,65,66,77,67,68,69,83,40,41,181,349,343,344,40,41,347,345,348',
427
- '40,41,40,41,346,82,70,71,72,74,76,75,342,351,352,73,78,80,354,355,184',
428
- '356,84,85,81,86,-4,41,-242,187,33,189,117,353,-242,40,41,40,41,113,55',
429
- '56,57,58,59,60,61,62,79,180,63,54,64,65,66,77,67,68,69,83,40,41,190',
430
- '349,343,344,286,287,347,345,348,32,375,376,-104,346,82,70,71,72,74,76',
431
- '75,342,351,352,73,78,80,354,355,-105,356,84,85,81,86,40,41,40,41,-106',
432
- '39,-107,353,391,392,40,41,40,41,55,56,57,58,59,60,61,62,79,-108,63,54',
433
- '64,65,66,77,67,68,69,83,40,41,-109,349,343,344,40,41,347,345,348,40',
434
- '41,40,41,346,82,70,71,72,74,76,75,342,351,352,73,78,80,40,41,-110,-111',
435
- '84,85,81,86,354,355,-112,356,-113,96,97,98,99,-114,48,-129,195,196,197',
436
- '353,198,199,200,208,209,42,55,56,57,58,59,60,61,62,79,210,63,54,64,65',
437
- '66,77,67,68,69,83,228,242,251,349,343,344,252,253,347,345,348,255,257',
438
- '258,42,346,82,70,71,72,74,76,75,342,351,352,73,78,80,354,355,260,356',
439
- '84,85,81,86,260,260,266,42,228,270,274,353,276,278,279,315,274,317,55',
440
- '56,57,58,59,60,61,62,79,278,63,54,64,65,66,77,67,68,69,83,327,328,329',
441
- '349,343,344,332,332,347,345,348,332,362,364,371,346,82,70,71,72,74,76',
442
- '75,342,351,352,73,78,80,372,373,374,377,84,85,81,86,33,379,382,96,97',
443
- '98,99,382,382,395,22,23,21,398,26,-219,25,399,30,406,131,132,133,134',
444
- '135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,407,32,408',
445
- '410,415,28,416,156,417,157,159,418,415,,,,82,70,71,72,74,76,75,,,,73',
446
- '78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,,25,,30,,131',
447
- '132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83',
448
- ',32,,,174,28,,177,,175,,,,,,,82,70,71,72,74,76,75,,,,73,78,80,176,,',
427
+ '192,195,33,193,192,195,33,193,192,195,33,193,113,192,195,33,193,192',
428
+ '195,160,193,180,324,192,195,33,193,185,179,33,228,33,33,33,5,33,33,33',
429
+ '37,174,283,322,177,32,175,40,41,32,161,40,41,32,186,40,41,229,32,49',
430
+ '40,41,293,49,40,41,176,284,32,194,40,41,32,194,32,32,32,194,32,32,32',
431
+ '196,194,351,352,196,194,353,42,196,334,53,194,338,196,53,209,407,196',
432
+ '350,209,336,40,41,196,406,55,56,57,58,59,60,61,62,355,186,63,54,64,65',
433
+ '66,77,67,68,69,83,40,41,53,346,340,341,53,366,344,342,345,126,2,3,4',
434
+ '343,82,70,71,72,74,76,75,339,348,349,73,78,80,39,398,410,186,84,85,81',
435
+ '86,351,352,40,41,353,180,43,411,-4,48,-244,104,264,33,39,117,350,-244',
436
+ '186,186,40,41,113,55,56,57,58,59,60,61,62,79,186,63,54,64,65,66,77,67',
437
+ '68,69,83,40,41,120,346,340,341,40,41,344,342,345,32,40,41,125,343,82',
438
+ '70,71,72,74,76,75,339,348,349,73,78,80,40,41,40,41,84,85,81,86,351,352',
439
+ '40,41,353,39,96,97,98,99,101,102,40,41,103,165,350,40,41,40,41,40,41',
440
+ '55,56,57,58,59,60,61,62,79,166,63,54,64,65,66,77,67,68,69,83,40,41,167',
441
+ '346,340,341,286,287,344,342,345,369,370,40,41,343,82,70,71,72,74,76',
442
+ '75,339,348,349,73,78,80,40,41,385,386,84,85,81,86,351,352,40,41,353',
443
+ '168,96,97,98,99,40,41,40,41,40,41,350,40,41,40,41,40,41,55,56,57,58',
444
+ '59,60,61,62,79,170,63,54,64,65,66,77,67,68,69,83,171,172,113,346,340',
445
+ '341,178,181,344,342,345,184,41,187,189,343,82,70,71,72,74,76,75,339',
446
+ '348,349,73,78,80,180,190,-104,-105,84,85,81,86,351,352,-106,-107,353',
447
+ '-108,96,97,98,99,-109,-110,-111,-112,-113,-114,350,48,-129,197,198,199',
448
+ '200,55,56,57,58,59,60,61,62,79,201,63,54,64,65,66,77,67,68,69,83,202',
449
+ '210,211,346,340,341,42,212,344,342,345,230,244,253,254,343,82,70,71',
450
+ '72,74,76,75,339,348,349,73,78,80,255,257,259,260,84,85,81,86,351,352',
451
+ '42,262,353,262,262,266,42,230,270,274,276,291,292,315,350,274,317,291',
452
+ '330,331,332,55,56,57,58,59,60,61,62,79,357,63,54,64,65,66,77,67,68,69',
453
+ '83,357,357,365,346,340,341,367,368,344,342,345,371,373,380,381,343,82',
454
+ '70,71,72,74,76,75,339,348,349,73,78,80,382,390,390,390,84,85,81,86,351',
455
+ '352,402,403,353,404,96,97,98,99,405,408,409,414,415,416,350,418,421',
456
+ '414,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,',
457
+ '346,340,341,,,344,342,345,,,,,343,82,70,71,72,74,76,75,339,348,349,73',
458
+ '78,80,,,,,84,85,81,86,351,352,,,353,,,,,,,,,,,,350,,,,,,,55,56,57,58',
459
+ '59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,346,340,341,,,344,342',
460
+ '345,,,,,343,82,70,71,72,74,76,75,339,348,349,73,78,80,,,,,84,85,81,86',
461
+ '33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136',
462
+ '137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157',
463
+ '159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97',
464
+ '98,99,,,,22,23,21,,26,,25,,30,,131,132,133,134,135,136,137,138,142,16',
465
+ '139,130,140,141,66,77,67,68,69,83,,32,,,,28,,,,,,,,,,,82,70,71,72,74',
466
+ '76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219',
467
+ '25,,30,,131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77',
468
+ '67,68,69,83,,32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73',
469
+ '78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,',
470
+ '131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69',
471
+ '83,,32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,',
449
472
  ',84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133',
450
473
  '134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,',
451
- '28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81',
452
- '86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135',
453
- '136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156',
454
- ',157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,',
455
- '96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137',
456
- '138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,234,,,159,,',
457
- ',,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99',
458
- ',,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16',
459
- '139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157,159,,,,,,82,70',
460
- '71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23',
461
- '21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16,139,130,140',
462
- '141,66,77,67,68,69,83,,32,,,,28,,234,,,159,,,,,,82,70,71,72,74,76,75',
463
- ',,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90,89,91,,,,,,,,55,56,57',
464
- '58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,,192,,193,,',
465
- ',,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81,86,96,97,98,99',
466
- ',,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77',
467
- '67,68,69,83,194,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80',
468
- '96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64',
469
- '65,66,77,67,68,69,83,192,,193,,,,,234,,,159,,,,,,82,70,71,72,74,76,75',
470
- '192,,193,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,40,41,55,56,57,58,59',
471
- '60,61,62,79,,63,54,64,65,66,77,67,68,69,83,194,40,41,,,,,234,,,159,',
472
- ',,,,82,70,71,72,74,76,75,194,,,73,78,80,96,97,98,99,84,85,81,86,,,,',
473
- ',,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,192,',
474
- '193,192,,193,192,,193,,,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84',
475
- '85,81,86,,,,,,,,40,41,,40,41,,40,41,-242,,33,,117,,-242,,,303,304,113',
476
- ',,194,,,194,,,194,,-242,,33,,117,,-242,,305,303,304,113,,,,,,300,299',
477
- ',,32,-242,,33,,117,,-242,,305,303,304,113,,,,291,,300,299,,174,32,,177',
478
- ',175,,,326,,305,,,,,,,314,,300,299,,33,32,,176,,322,323,319,320,321',
479
- '22,23,21,324,26,,25,318,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
480
- ',,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10,13,14,15,16',
474
+ '28,,236,,,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86',
475
+ '33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136',
476
+ '137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157',
477
+ '159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97',
478
+ '98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142',
479
+ '16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,236,,,159,,,,,,82,70',
480
+ '71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90,89,91,',
481
+ ',,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,',
482
+ ',,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81,86,96',
483
+ '97,98,99,,,,90,89,91,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65',
484
+ '66,77,67,68,69,83,,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78',
485
+ '80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54',
486
+ '64,65,66,77,67,68,69,83,,,,,,,,236,,,159,,,,,,82,70,71,72,74,76,75,',
487
+ ',,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62',
488
+ '79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,236,,,159,,,,,,82,70,71,72',
489
+ '74,76,75,,,,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59',
490
+ '60,61,62,79,,63,54,64,65,66,77,67,68,69,83,-244,,,33,,117,,-244,,,312',
491
+ '313,113,,,,82,70,71,72,74,76,75,,,,73,78,80,,,314,,84,85,81,86,,,,309',
492
+ '308,-244,,32,33,,117,,-244,,,312,313,113,,-244,,,33,300,117,,-244,,',
493
+ '312,313,113,,,,,314,,,,,,,,,309,308,,,32,314,,,,,,,,,309,308,,33,32',
494
+ ',318,,,,,,,22,23,21,,26,,25,319,30,,8,12,19,20,9,10,13,14,15,16,17,18',
495
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10,13,14',
496
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
497
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
498
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
499
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
500
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
501
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
502
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
503
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,-248,30,,8,12,19',
504
+ '20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,',
505
+ '30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
506
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
507
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
508
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
509
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
510
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
511
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
512
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
513
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
514
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
515
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
516
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
517
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
518
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
519
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
520
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
521
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
522
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
523
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
524
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
525
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
526
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
527
+ '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
528
+ ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
529
+ ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
481
530
  '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
482
531
  '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
483
532
  '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
@@ -485,45 +534,12 @@ clist = [
485
534
  '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
486
535
  ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
487
536
  ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
488
- '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,-246,30,,8,12,19,20,9',
489
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
490
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
491
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
492
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
493
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
494
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
495
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
496
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
497
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
498
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
499
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
500
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
501
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
502
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
503
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
504
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
505
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
506
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
507
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
508
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
509
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
510
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
511
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
512
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
513
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
514
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
515
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
516
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
517
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
518
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
519
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
520
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
521
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
522
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
523
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
524
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
525
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,,,,,,32,,,,28' ]
526
- racc_action_table = arr = ::Array.new(3044, nil)
537
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
538
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
539
+ '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
540
+ ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,174,,,177,,175,,32,324',
541
+ ',,28,,,,,,,,,,,,,,176,,322,328,325,326,327,,,,329' ]
542
+ racc_action_table = arr = ::Array.new(3142, nil)
527
543
  idx = 0
528
544
  clist.each do |str|
529
545
  str.split(',', -1).each do |i|
@@ -533,104 +549,105 @@ clist = [
533
549
  end
534
550
 
535
551
  clist = [
536
- '326,326,48,326,1,280,5,177,218,7,325,382,28,219,220,326,24,219,325,382',
537
- '44,44,326,326,326,326,326,326,326,326,326,248,326,326,326,326,326,326',
538
- '326,326,326,326,270,48,28,326,326,326,177,218,326,326,326,280,219,220',
539
- '276,326,326,326,326,326,326,326,326,326,326,326,326,326,326,47,248,123',
540
- '27,326,326,326,326,333,333,278,333,270,333,333,333,333,32,119,35,322',
541
- '323,324,333,160,208,276,123,47,47,333,333,333,333,333,333,333,333,333',
542
- '183,333,333,333,333,333,333,333,333,333,333,119,278,51,333,333,333,160',
543
- '208,333,333,333,322,323,324,183,333,333,333,333,333,333,333,333,333',
544
- '333,333,333,333,333,6,6,51,271,333,333,333,333,334,334,36,334,116,334',
545
- '334,334,334,46,116,31,31,87,31,334,89,307,331,387,271,6,334,334,334',
546
- '334,334,334,334,334,334,388,334,334,334,334,334,334,334,334,334,334',
547
- '307,331,387,334,334,334,389,90,334,334,334,313,169,169,388,334,334,334',
548
- '334,334,334,334,334,334,334,334,334,334,334,91,313,389,93,334,334,334',
549
- '334,335,335,94,335,95,335,335,335,335,0,0,0,188,188,113,335,212,212',
550
- '213,213,214,214,335,335,335,335,335,335,335,335,335,115,335,335,335',
551
- '335,335,335,335,335,335,335,215,215,117,335,335,335,216,216,335,335',
552
- '335,217,217,223,223,335,335,335,335,335,335,335,335,335,335,335,335',
553
- '335,335,359,359,120,359,335,335,335,335,34,121,34,124,34,127,34,359',
554
- '34,224,224,225,225,34,359,359,359,359,359,359,359,359,359,128,359,359',
555
- '359,359,359,359,359,359,359,359,267,267,129,359,359,359,273,273,359',
556
- '359,359,34,350,350,130,359,359,359,359,359,359,359,359,359,359,359,359',
557
- '359,359,377,377,131,377,359,359,359,359,360,360,361,361,132,34,133,377',
558
- '374,374,380,380,383,383,377,377,377,377,377,377,377,377,377,134,377',
559
- '377,377,377,377,377,377,377,377,377,385,385,135,377,377,377,394,394',
560
- '377,377,377,409,409,411,411,377,377,377,377,377,377,377,377,377,377',
561
- '377,377,377,377,412,412,136,137,377,377,377,377,390,390,138,390,139',
562
- '390,390,390,390,140,141,142,145,146,148,390,150,153,154,161,162,163',
563
- '390,390,390,390,390,390,390,390,390,164,390,390,390,390,390,390,390',
564
- '390,390,390,190,206,221,390,390,390,222,227,390,390,390,232,243,244',
565
- '245,390,390,390,390,390,390,390,390,390,390,390,390,390,390,417,417',
566
- '246,417,390,390,390,390,247,249,250,254,257,259,260,417,261,262,264',
567
- '282,284,285,417,417,417,417,417,417,417,417,417,289,417,417,417,417',
568
- '417,417,417,417,417,417,303,304,305,417,417,417,319,320,417,417,417',
569
- '321,329,332,336,417,417,417,417,417,417,417,417,417,417,417,417,417',
570
- '417,337,338,340,358,417,417,417,417,49,362,366,49,49,49,49,368,370,381',
571
- '49,49,49,384,49,49,49,386,49,391,49,49,49,49,49,49,49,49,49,49,49,49',
572
- '49,49,49,49,49,49,49,49,392,49,393,397,403,49,405,49,408,49,49,414,418',
573
- ',,,49,49,49,49,49,49,49,,,,49,49,49,,,,,49,49,49,49,156,,,156,156,156',
574
- '156,,,,156,156,156,,156,,156,,156,,156,156,156,156,156,156,156,156,156',
575
- '156,156,156,156,156,156,156,156,156,156,156,,156,,,114,156,,114,,114',
576
- ',,,,,,156,156,156,156,156,156,156,,,,156,156,156,114,,,,156,156,156',
577
- '156,196,,,196,196,196,196,,,,196,196,196,,196,196,196,,196,,196,196',
578
- '196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196',
579
- '196,,196,,,,196,,196,,196,196,,,,,,196,196,196,196,196,196,196,,,,196',
580
- '196,196,,,,,196,196,196,196,197,,,197,197,197,197,,,,197,197,197,,197',
581
- '197,197,,197,,197,197,197,197,197,197,197,197,197,197,197,197,197,197',
582
- '197,197,197,197,197,197,,197,,,,197,,197,,197,197,,,,,,197,197,197,197',
583
- '197,197,197,,,,197,197,197,,,,,197,197,197,197,198,,,198,198,198,198',
584
- ',,,198,198,198,,198,198,198,,198,,198,198,198,198,198,198,198,198,198',
585
- '198,198,198,198,198,198,198,198,198,198,198,,198,,,,198,,198,,,198,',
586
- ',,,,198,198,198,198,198,198,198,,,,198,198,198,,,,,198,198,198,198,207',
587
- ',,207,207,207,207,,,,207,207,207,,207,207,207,,207,,207,207,207,207',
588
- '207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,,207',
589
- ',,,207,,207,,207,207,,,,,,207,207,207,207,207,207,207,,,,207,207,207',
590
- ',,,,207,207,207,207,255,,,255,255,255,255,,,,255,255,255,,255,255,255',
591
- ',255,,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255',
592
- '255,255,255,255,,255,,,,255,,255,,,255,,,,,,255,255,255,255,255,255',
593
- '255,,,,255,255,255,,,,,255,255,255,255,30,30,30,30,,,,30,30,30,,,,,',
594
- ',,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30,30,30,,,,,,,,',
595
- '143,,143,,,,,,30,30,30,30,30,30,30,,30,30,30,30,30,,,,,30,30,30,30,165',
596
- '165,165,165,,,,165,165,165,,,,,,143,143,165,165,165,165,165,165,165',
597
- '165,165,,165,165,165,165,165,165,165,165,165,165,143,,,,,,,,,,,,,,,',
598
- '165,165,165,165,165,165,165,,165,165,165,165,165,199,199,199,199,165',
599
- '165,165,165,,,,,,,,,,199,199,199,199,199,199,199,199,199,,199,199,199',
600
- '199,199,199,199,199,199,199,201,,201,,,,,199,,,199,,,,,,199,199,199',
601
- '199,199,199,199,203,,203,199,199,199,200,200,200,200,199,199,199,199',
602
- ',,,,,,,201,201,200,200,200,200,200,200,200,200,200,,200,200,200,200',
603
- '200,200,200,200,200,200,201,203,203,,,,,200,,,200,,,,,,200,200,200,200',
604
- '200,200,200,203,,,200,200,200,234,234,234,234,200,200,200,200,,,,,,',
605
- ',,,234,234,234,234,234,234,234,234,234,,234,234,234,234,234,234,234',
606
- '234,234,234,204,,204,205,,205,238,,238,,,,,,,,234,234,234,234,234,234',
607
- '234,,,,234,234,234,,,,,234,234,234,234,,,,,,,,204,204,,205,205,,238',
608
- '238,277,,277,,277,,277,,,277,277,277,,,204,,,205,,,238,,281,,281,,281',
609
- ',281,,277,281,281,281,,,,,,277,277,,,277,288,,288,,288,,288,,281,288',
610
- '288,288,,,,277,,281,281,,290,281,,290,,290,,,290,,288,,,,,,,281,,288',
611
- '288,,2,288,,290,,290,290,290,290,290,2,2,2,290,2,,2,288,2,,2,2,2,2,2',
612
- '2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25',
613
- '25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26',
614
- ',26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40',
615
- ',40,,40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,,41,,,,,40,',
616
- ',,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41,41,41,41,41',
617
- ',,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43,43,43,43,43',
618
- '43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53,53,53,53,53',
619
- '53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53,92,92,92,,92,,92,,92,,92,92',
620
- '92,92,92,92,92,92,92,92,92,92,92,92,,,125,,,,,92,,,,92,125,125,125,',
621
- '125,,125,125,125,,125,125,125,125,125,125,125,125,125,125,125,125,125',
622
- '125,,,157,,,,,125,,,,125,157,157,157,,157,,157,,157,,157,157,157,157',
623
- '157,157,157,157,157,157,157,157,157,157,,,158,,,,,157,,,,157,158,158',
624
- '158,,158,,158,,158,,158,158,158,158,158,158,158,158,158,158,158,158',
625
- '158,158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159,,159,159,159',
626
- '159,159,159,159,159,159,159,159,159,159,159,,,166,,,,,159,,,,159,166',
627
- '166,166,,166,,166,,166,,166,166,166,166,166,166,166,166,166,166,166',
628
- '166,166,166,,,167,,,,,166,,,,166,167,167,167,,167,,167,,167,,167,167',
629
- '167,167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167,,,,167',
630
- '168,168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168,168',
631
- '168,168,168,168,,,170,,,,,168,,,,168,170,170,170,,170,,170,,170,,170',
632
- '170,170,170,170,170,170,170,170,170,170,170,170,170,,,171,,,,,170,,',
633
- ',170,171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171',
552
+ '143,143,48,143,203,203,177,203,205,205,220,205,280,206,206,221,206,207',
553
+ '207,51,207,116,298,240,240,222,240,123,116,264,183,270,276,291,1,322',
554
+ '328,329,5,114,271,298,114,48,114,143,143,177,51,203,203,220,123,205',
555
+ '205,183,221,28,206,206,280,119,207,207,114,271,222,143,240,240,264,203',
556
+ '270,276,291,205,322,328,329,143,206,324,324,203,207,324,7,205,321,28',
557
+ '240,323,206,119,160,390,207,324,210,323,44,44,240,390,324,324,324,324',
558
+ '324,324,324,324,324,321,324,324,324,324,324,324,324,324,324,324,6,6',
559
+ '160,324,324,324,210,333,324,324,324,47,0,0,0,324,324,324,324,324,324',
560
+ '324,324,324,324,324,324,324,324,6,383,395,333,324,324,324,324,356,356',
561
+ '47,47,356,250,24,396,34,27,34,32,250,34,35,34,356,34,383,395,169,169',
562
+ '34,356,356,356,356,356,356,356,356,356,396,356,356,356,356,356,356,356',
563
+ '356,356,356,188,188,36,356,356,356,214,214,356,356,356,34,215,215,46',
564
+ '356,356,356,356,356,356,356,356,356,356,356,356,356,356,216,216,217',
565
+ '217,356,356,356,356,358,358,218,218,358,34,358,358,358,358,31,31,219',
566
+ '219,31,87,358,225,225,226,226,227,227,358,358,358,358,358,358,358,358',
567
+ '358,89,358,358,358,358,358,358,358,358,358,358,267,267,90,358,358,358',
568
+ '273,273,358,358,358,347,347,363,363,358,358,358,358,358,358,358,358',
569
+ '358,358,358,358,358,358,364,364,368,368,358,358,358,358,359,359,388',
570
+ '388,359,91,359,359,359,359,391,391,393,393,397,397,359,417,417,419,419',
571
+ '420,420,359,359,359,359,359,359,359,359,359,93,359,359,359,359,359,359',
572
+ '359,359,359,359,94,95,113,359,359,359,115,117,359,359,359,120,121,124',
573
+ '127,359,359,359,359,359,359,359,359,359,359,359,359,359,359,128,129',
574
+ '130,131,359,359,359,359,360,360,132,133,360,134,360,360,360,360,135',
575
+ '136,137,138,139,140,360,141,142,145,146,148,150,360,360,360,360,360',
576
+ '360,360,360,360,153,360,360,360,360,360,360,360,360,360,360,154,161',
577
+ '162,360,360,360,163,164,360,360,360,190,208,223,224,360,360,360,360',
578
+ '360,360,360,360,360,360,360,360,360,360,229,234,245,246,360,360,360',
579
+ '360,371,371,247,248,371,249,251,252,256,259,261,262,263,277,279,282',
580
+ '371,284,285,289,312,313,314,371,371,371,371,371,371,371,371,371,325',
581
+ '371,371,371,371,371,371,371,371,371,371,326,327,332,371,371,371,335',
582
+ '337,371,371,371,355,357,361,362,371,371,371,371,371,371,371,371,371',
583
+ '371,371,371,371,371,365,375,377,379,371,371,371,371,384,384,385,386',
584
+ '384,387,384,384,384,384,389,392,394,399,401,404,384,407,413,421,,,,384',
585
+ '384,384,384,384,384,384,384,384,,384,384,384,384,384,384,384,384,384',
586
+ '384,,,,384,384,384,,,384,384,384,,,,,384,384,384,384,384,384,384,384',
587
+ '384,384,384,384,384,384,,,,,384,384,384,384,416,416,,,416,,,,,,,,,,',
588
+ ',416,,,,,,,416,416,416,416,416,416,416,416,416,,416,416,416,416,416',
589
+ '416,416,416,416,416,,,,416,416,416,,,416,416,416,,,,,416,416,416,416',
590
+ '416,416,416,416,416,416,416,416,416,416,,,,,416,416,416,416,49,,,49',
591
+ '49,49,49,,,,49,49,49,,49,49,49,,49,,49,49,49,49,49,49,49,49,49,49,49',
592
+ '49,49,49,49,49,49,49,49,49,,49,,,,49,,49,,49,49,,,,,,49,49,49,49,49',
593
+ '49,49,,,,49,49,49,,,,,49,49,49,49,156,,,156,156,156,156,,,,156,156,156',
594
+ ',156,,156,,156,,156,156,156,156,156,156,156,156,156,156,156,156,156',
595
+ '156,156,156,156,156,156,156,,156,,,,156,,,,,,,,,,,156,156,156,156,156',
596
+ '156,156,,,,156,156,156,,,,,156,156,156,156,198,,,198,198,198,198,,,',
597
+ '198,198,198,,198,198,198,,198,,198,198,198,198,198,198,198,198,198,198',
598
+ '198,198,198,198,198,198,198,198,198,198,,198,,,,198,,198,,198,198,,',
599
+ ',,,198,198,198,198,198,198,198,,,,198,198,198,,,,,198,198,198,198,199',
600
+ ',,199,199,199,199,,,,199,199,199,,199,199,199,,199,,199,199,199,199',
601
+ '199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,,199',
602
+ ',,,199,,199,,199,199,,,,,,199,199,199,199,199,199,199,,,,199,199,199',
603
+ ',,,,199,199,199,199,200,,,200,200,200,200,,,,200,200,200,,200,200,200',
604
+ ',200,,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200',
605
+ '200,200,200,200,,200,,,,200,,200,,,200,,,,,,200,200,200,200,200,200',
606
+ '200,,,,200,200,200,,,,,200,200,200,200,209,,,209,209,209,209,,,,209',
607
+ '209,209,,209,209,209,,209,,209,209,209,209,209,209,209,209,209,209,209',
608
+ '209,209,209,209,209,209,209,209,209,,209,,,,209,,209,,209,209,,,,,,209',
609
+ '209,209,209,209,209,209,,,,209,209,209,,,,,209,209,209,209,257,,,257',
610
+ '257,257,257,,,,257,257,257,,257,257,257,,257,,257,257,257,257,257,257',
611
+ '257,257,257,257,257,257,257,257,257,257,257,257,257,257,,257,,,,257',
612
+ ',257,,,257,,,,,,257,257,257,257,257,257,257,,,,257,257,257,,,,,257,257',
613
+ '257,257,30,30,30,30,,,,30,30,30,,,,,,,,30,30,30,30,30,30,30,30,30,,30',
614
+ '30,30,30,30,30,30,30,30,30,,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,,30',
615
+ '30,30,30,30,,,,,30,30,30,30,165,165,165,165,,,,165,165,165,,,,,,,,165',
616
+ '165,165,165,165,165,165,165,165,,165,165,165,165,165,165,165,165,165',
617
+ '165,,,,,,,,,,,,,,,,,165,165,165,165,165,165,165,,165,165,165,165,165',
618
+ '201,201,201,201,165,165,165,165,,,,,,,,,,201,201,201,201,201,201,201',
619
+ '201,201,,201,201,201,201,201,201,201,201,201,201,,,,,,,,201,,,201,,',
620
+ ',,,201,201,201,201,201,201,201,,,,201,201,201,202,202,202,202,201,201',
621
+ '201,201,,,,,,,,,,202,202,202,202,202,202,202,202,202,,202,202,202,202',
622
+ '202,202,202,202,202,202,,,,,,,,202,,,202,,,,,,202,202,202,202,202,202',
623
+ '202,,,,202,202,202,236,236,236,236,202,202,202,202,,,,,,,,,,236,236',
624
+ '236,236,236,236,236,236,236,,236,236,236,236,236,236,236,236,236,236',
625
+ '281,,,281,,281,,281,,,281,281,281,,,,236,236,236,236,236,236,236,,,',
626
+ '236,236,236,,,281,,236,236,236,236,,,,281,281,288,,281,288,,288,,288',
627
+ ',,288,288,288,,290,,,290,281,290,,290,,,290,290,290,,,,,288,,,,,,,,',
628
+ '288,288,,,288,290,,,,,,,,,290,290,,2,290,,288,,,,,,,2,2,2,,2,,2,290',
629
+ '2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25',
630
+ ',25,25,25,25,25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26',
631
+ ',26,,26,,26,,26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,',
632
+ ',,26,40,40,40,,40,,40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40',
633
+ ',,41,,,,,40,,,,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41',
634
+ '41,41,41,41,,,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43',
635
+ '43,43,43,43,43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53',
636
+ '53,53,53,53,53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53,92,92,92,,92,',
637
+ '92,,92,,92,92,92,92,92,92,92,92,92,92,92,92,92,92,,,125,,,,,92,,,,92',
638
+ '125,125,125,,125,,125,125,125,,125,125,125,125,125,125,125,125,125,125',
639
+ '125,125,125,125,,,157,,,,,125,,,,125,157,157,157,,157,,157,,157,,157',
640
+ '157,157,157,157,157,157,157,157,157,157,157,157,157,,,158,,,,,157,,',
641
+ ',157,158,158,158,,158,,158,,158,,158,158,158,158,158,158,158,158,158',
642
+ '158,158,158,158,158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159',
643
+ ',159,159,159,159,159,159,159,159,159,159,159,159,159,159,,,166,,,,,159',
644
+ ',,,159,166,166,166,,166,,166,,166,,166,166,166,166,166,166,166,166,166',
645
+ '166,166,166,166,166,,,167,,,,,166,,,,166,167,167,167,,167,,167,,167',
646
+ ',167,167,167,167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167',
647
+ ',,,167,168,168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168',
648
+ '168,168,168,168,168,,,170,,,,,168,,,,168,170,170,170,,170,,170,,170',
649
+ ',170,170,170,170,170,170,170,170,170,170,170,170,170,170,,,171,,,,,170',
650
+ ',,,170,171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171',
634
651
  '171,171,171,171,171,,,172,,,,,171,,,,171,172,172,172,,172,,172,,172',
635
652
  ',172,172,172,172,172,172,172,172,172,172,172,172,172,172,,,178,,,,,172',
636
653
  ',,,172,178,178,178,,178,,178,,178,,178,178,178,178,178,178,178,178,178',
@@ -638,36 +655,36 @@ clist = [
638
655
  ',179,179,179,179,179,179,179,179,179,179,179,179,179,179,,,181,,,,,179',
639
656
  ',,,179,181,181,181,,181,,181,,181,,181,181,181,181,181,181,181,181,181',
640
657
  '181,181,181,181,181,,,186,,,,,181,,,,181,186,186,186,,186,,186,,186',
641
- ',186,186,186,186,186,186,186,186,186,186,186,186,186,186,,,202,,,,,186',
642
- ',,,186,202,202,202,,202,,202,,202,,202,202,202,202,202,202,202,202,202',
643
- '202,202,202,202,202,,,209,,,,,202,,,,202,209,209,209,,209,,209,,209',
644
- ',209,209,209,209,209,209,209,209,209,209,209,209,209,209,,,228,,,,,209',
645
- ',,,209,228,228,228,,228,,228,,228,,228,228,228,228,228,228,228,228,228',
646
- '228,228,228,228,228,,,251,,,,,228,,,,228,251,251,251,,251,,251,,251',
647
- ',251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,279,,,,,251',
648
- ',,,251,279,279,279,,279,,279,,279,,279,279,279,279,279,279,279,279,279',
649
- '279,279,279,279,279,,,315,,,,,279,,,,279,315,315,315,,315,,315,,315',
650
- ',315,315,315,315,315,315,315,315,315,315,315,315,315,315,,,327,,,,,315',
651
- ',,,315,327,327,327,,327,,327,,327,,327,327,327,327,327,327,327,327,327',
652
- '327,327,327,327,327,,,328,,,,,327,,,,327,328,328,328,,328,,328,,328',
653
- ',328,328,328,328,328,328,328,328,328,328,328,328,328,328,,,365,,,,,328',
654
- ',,,328,365,365,365,,365,,365,,365,,365,365,365,365,365,365,365,365,365',
655
- '365,365,365,365,365,,,367,,,,,365,,,,365,367,367,367,,367,,367,,367',
656
- ',367,367,367,367,367,367,367,367,367,367,367,367,367,367,,,369,,,,,367',
657
- ',,,367,369,369,369,,369,,369,,369,,369,369,369,369,369,369,369,369,369',
658
- '369,369,369,369,369,,,371,,,,,369,,,,369,371,371,371,,371,,371,,371',
659
- ',371,371,371,371,371,371,371,371,371,371,371,371,371,371,,,372,,,,,371',
660
- ',,,371,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372',
661
- '372,372,372,372,372,,,373,,,,,372,,,,372,373,373,373,,373,,373,,373',
662
- ',373,373,373,373,373,373,373,373,373,373,373,373,373,373,,,379,,,,,373',
663
- ',,,373,379,379,379,,379,,379,,379,,379,379,379,379,379,379,379,379,379',
664
- '379,379,379,379,379,,,395,,,,,379,,,,379,395,395,395,,395,,395,,395',
665
- ',395,395,395,395,395,395,395,395,395,395,395,395,395,395,,,398,,,,,395',
666
- ',,,395,398,398,398,,398,,398,,398,,398,398,398,398,398,398,398,398,398',
667
- '398,398,398,398,398,,,399,,,,,398,,,,398,399,399,399,,399,,399,,399',
668
- ',399,399,399,399,399,399,399,399,399,399,399,399,399,399,,,,,,,,399',
669
- ',,,399' ]
670
- racc_action_check = arr = ::Array.new(3044, nil)
658
+ ',186,186,186,186,186,186,186,186,186,186,186,186,186,186,,,204,,,,,186',
659
+ ',,,186,204,204,204,,204,,204,,204,,204,204,204,204,204,204,204,204,204',
660
+ '204,204,204,204,204,,,211,,,,,204,,,,204,211,211,211,,211,,211,,211',
661
+ ',211,211,211,211,211,211,211,211,211,211,211,211,211,211,,,230,,,,,211',
662
+ ',,,211,230,230,230,,230,,230,,230,,230,230,230,230,230,230,230,230,230',
663
+ '230,230,230,230,230,,,253,,,,,230,,,,230,253,253,253,,253,,253,,253',
664
+ ',253,253,253,253,253,253,253,253,253,253,253,253,253,253,,,292,,,,,253',
665
+ ',,,253,292,292,292,,292,,292,,292,,292,292,292,292,292,292,292,292,292',
666
+ '292,292,292,292,292,,,315,,,,,292,,,,292,315,315,315,,315,,315,,315',
667
+ ',315,315,315,315,315,315,315,315,315,315,315,315,315,315,,,330,,,,,315',
668
+ ',,,315,330,330,330,,330,,330,,330,,330,330,330,330,330,330,330,330,330',
669
+ '330,330,330,330,330,,,331,,,,,330,,,,330,331,331,331,,331,,331,,331',
670
+ ',331,331,331,331,331,331,331,331,331,331,331,331,331,331,,,367,,,,,331',
671
+ ',,,331,367,367,367,,367,,367,,367,,367,367,367,367,367,367,367,367,367',
672
+ '367,367,367,367,367,,,374,,,,,367,,,,367,374,374,374,,374,,374,,374',
673
+ ',374,374,374,374,374,374,374,374,374,374,374,374,374,374,,,376,,,,,374',
674
+ ',,,374,376,376,376,,376,,376,,376,,376,376,376,376,376,376,376,376,376',
675
+ '376,376,376,376,376,,,378,,,,,376,,,,376,378,378,378,,378,,378,,378',
676
+ ',378,378,378,378,378,378,378,378,378,378,378,378,378,378,,,380,,,,,378',
677
+ ',,,378,380,380,380,,380,,380,,380,,380,380,380,380,380,380,380,380,380',
678
+ '380,380,380,380,380,,,381,,,,,380,,,,380,381,381,381,,381,,381,,381',
679
+ ',381,381,381,381,381,381,381,381,381,381,381,381,381,381,,,382,,,,,381',
680
+ ',,,381,382,382,382,,382,,382,,382,,382,382,382,382,382,382,382,382,382',
681
+ '382,382,382,382,382,,,405,,,,,382,,,,382,405,405,405,,405,,405,,405',
682
+ ',405,405,405,405,405,405,405,405,405,405,405,405,405,405,,,408,,,,,405',
683
+ ',,,405,408,408,408,,408,,408,,408,,408,408,408,408,408,408,408,408,408',
684
+ '408,408,408,408,408,,,409,,,,,408,,,,408,409,409,409,,409,,409,,409',
685
+ ',409,409,409,409,409,409,409,409,409,409,409,409,409,409,299,,,299,',
686
+ '299,,409,299,,,409,,,,,,,,,,,,,,299,,299,299,299,299,299,,,,299' ]
687
+ racc_action_check = arr = ::Array.new(3142, nil)
671
688
  idx = 0
672
689
  clist.each do |str|
673
690
  str.split(',', -1).each do |i|
@@ -677,537 +694,543 @@ clist = [
677
694
  end
678
695
 
679
696
  racc_action_pointer = [
680
- 173, 4, 1590, nil, nil, 6, 103, -42, nil, nil,
697
+ 62, 34, 1663, nil, nil, 38, 76, 34, nil, nil,
698
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
699
+ nil, nil, nil, nil, 146, 1699, 1735, 151, 38, nil,
700
+ 1252, 249, 167, nil, 169, 98, 185, nil, nil, nil,
701
+ 1771, 1807, nil, 1843, 52, nil, 171, 115, -3, 716,
702
+ nil, -4, nil, 1879, nil, nil, nil, nil, nil, nil,
681
703
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
682
- nil, nil, nil, nil, -4, 1626, 1662, 56, -6, nil,
683
- 1140, 167, 84, nil, 316, 14, 140, nil, nil, nil,
684
- 1698, 1734, nil, 1770, -27, nil, 121, 52, -2, 604,
685
- nil, 101, nil, 1806, nil, nil, nil, nil, nil, nil,
686
704
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
705
+ nil, nil, nil, nil, nil, nil, nil, 209, nil, 217,
706
+ 230, 270, 1915, 308, 319, 320, nil, nil, nil, nil,
687
707
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
688
- nil, nil, nil, nil, nil, nil, nil, 125, nil, 119,
689
- 152, 174, 1842, 188, 195, 197, nil, nil, nil, nil,
708
+ nil, nil, nil, 352, 3, 325, 19, 326, nil, 42,
709
+ 373, 327, nil, 5, 355, 1951, nil, 358, 391, 374,
710
+ 350, 351, 358, 359, 361, 366, 367, 368, 369, 370,
711
+ 371, 399, 374, -3, nil, 375, 374, nil, 375, nil,
712
+ 376, nil, nil, 386, 397, nil, 793, 1987, 2023, 2059,
713
+ 75, 422, 395, 398, 427, 1326, 2095, 2131, 2167, 133,
714
+ 2203, 2239, 2275, nil, nil, nil, nil, 1, 2311, 2347,
715
+ nil, 2383, nil, 8, nil, nil, 2419, nil, 156, nil,
716
+ 404, nil, nil, nil, nil, nil, nil, nil, 870, 947,
717
+ 1024, 1392, 1458, 1, 2455, 5, 10, 14, 432, 1101,
718
+ 79, 2491, nil, nil, 162, 168, 185, 187, 195, 205,
719
+ 5, 10, 20, 400, 455, 210, 212, 214, nil, 471,
720
+ 2527, nil, nil, nil, 427, nil, 1524, nil, nil, nil,
721
+ 20, nil, nil, nil, nil, 455, 452, 431, 463, 465,
722
+ 164, 466, 482, 2563, nil, nil, 437, 1178, nil, 439,
723
+ nil, 431, 412, 448, 24, nil, nil, 236, nil, nil,
724
+ 26, 18, nil, 212, nil, nil, 27, 447, nil, 474,
725
+ -2, 1567, 475, nil, 418, 497, nil, nil, 1609, 453,
726
+ 1623, 28, 2599, nil, nil, nil, nil, nil, -22, 3070,
690
727
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
691
- nil, nil, nil, 238, 694, 224, 160, 237, nil, 71,
692
- 308, 269, nil, 52, 298, 1878, nil, 302, 337, 333,
693
- 320, 337, 347, 349, 366, 379, 408, 409, 416, 418,
694
- 423, 450, 425, 1189, nil, 426, 425, nil, 426, nil,
695
- 428, nil, nil, 429, 430, nil, 681, 1914, 1950, 1986,
696
- 77, 455, 428, 428, 466, 1214, 2022, 2058, 2094, 165,
697
- 2130, 2166, 2202, nil, nil, nil, nil, 3, 2238, 2274,
698
- nil, 2310, nil, 89, nil, nil, 2346, nil, 202, nil,
699
- 450, nil, nil, nil, nil, nil, 758, 835, 912, 1280,
700
- 1346, 1321, 2382, 1344, 1453, 1456, 478, 989, 78, 2418,
701
- nil, nil, 206, 208, 210, 232, 238, 243, 4, 9,
702
- 10, 446, 503, 245, 278, 280, nil, 505, 2454, nil,
703
- nil, nil, 465, nil, 1412, nil, nil, nil, 1459, nil,
704
- nil, nil, nil, 493, 490, 463, 511, 517, 27, 518,
705
- 534, 2490, nil, nil, 489, 1066, nil, 491, nil, 483,
706
- 464, 501, 500, nil, 527, nil, nil, 303, nil, nil,
707
- 38, 132, nil, 279, nil, nil, 52, 1506, 77, 2526,
708
- -8, 1528, 528, nil, 470, 548, nil, nil, 1550, 514,
709
- 1537, nil, nil, nil, nil, nil, nil, nil, nil, nil,
710
- nil, nil, nil, 527, 528, 516, nil, 154, nil, nil,
711
- nil, nil, nil, 168, nil, 2562, nil, nil, nil, 545,
712
- 546, 550, 87, 88, 89, -62, -2, 2598, 2634, 572,
713
- nil, 155, 527, 77, 156, 235, 565, 580, 581, nil,
714
- 563, nil, nil, nil, nil, nil, nil, nil, nil, nil,
715
- 311, nil, nil, nil, nil, nil, nil, nil, 546, 306,
716
- 340, 342, 565, nil, nil, 2670, 592, 2706, 597, 2742,
717
- 598, 2778, 2814, 2850, 363, nil, nil, 377, nil, 2886,
718
- 350, 573, 0, 352, 577, 374, 581, 156, 168, 185,
719
- 456, 570, 591, 618, 380, 2922, nil, 632, 2958, 2994,
720
- nil, nil, nil, 594, nil, 610, nil, nil, 599, 385,
721
- nil, 387, 403, nil, 612, nil, nil, 527, 602, nil,
722
- nil ]
728
+ nil, nil, 456, 457, 445, 2635, nil, nil, nil, nil,
729
+ nil, 66, 30, 18, 79, 480, 491, 492, 31, 32,
730
+ 2671, 2707, 514, 109, nil, 509, nil, 491, nil, nil,
731
+ nil, nil, nil, nil, nil, nil, nil, 243, nil, nil,
732
+ nil, nil, nil, nil, nil, 477, 159, 478, 239, 319,
733
+ 399, 516, 517, 249, 265, 508, nil, 2743, 282, nil,
734
+ nil, 479, nil, nil, 2779, 535, 2815, 536, 2851, 537,
735
+ 2887, 2923, 2959, 132, 559, 505, 506, 533, 275, 526,
736
+ 83, 283, 527, 285, 528, 133, 146, 287, nil, 515,
737
+ nil, 530, nil, nil, 518, 2995, nil, 558, 3031, 3067,
738
+ nil, nil, nil, 531, nil, nil, 639, 290, nil, 292,
739
+ 294, 521, nil, nil ]
723
740
 
724
741
  racc_action_default = [
725
- -248, -248, -242, -6, -15, -248, -4, -157, -160, -161,
742
+ -250, -250, -244, -6, -15, -250, -4, -157, -160, -161,
726
743
  -162, -163, -164, -165, -166, -167, -168, -169, -170, -171,
727
- -172, -173, -174, -175, -176, -242, -242, -248, -80, -184,
728
- -248, -248, -243, -245, -16, -4, -147, 421, -1, -5,
729
- -242, -242, -183, -242, -185, -178, -247, -248, -242, -242,
730
- -182, -248, -204, -242, -104, -105, -106, -107, -108, -109,
744
+ -172, -173, -174, -175, -176, -244, -244, -250, -80, -184,
745
+ -250, -250, -245, -247, -16, -4, -147, 424, -1, -5,
746
+ -244, -244, -183, -244, -185, -178, -249, -250, -244, -244,
747
+ -182, -250, -204, -244, -104, -105, -106, -107, -108, -109,
731
748
  -110, -111, -112, -113, -114, -115, -116, -117, -118, -119,
732
749
  -120, -121, -122, -123, -124, -125, -126, -127, -128, -129,
733
- -130, -131, -132, -133, -134, -135, -136, -247, -188, -248,
734
- -248, -248, -242, -248, -248, -248, -199, -200, -201, -202,
735
- -235, -236, -237, -238, -244, -2, -7, -8, -9, -10,
736
- -11, -12, -13, -16, -248, -248, -248, -248, -3, -80,
737
- -248, -158, -159, -248, -248, -242, -180, -248, -248, -248,
750
+ -130, -131, -132, -133, -134, -135, -136, -249, -188, -250,
751
+ -250, -250, -244, -250, -250, -250, -199, -200, -201, -202,
752
+ -237, -238, -239, -240, -246, -2, -7, -8, -9, -10,
753
+ -11, -12, -13, -16, -250, -250, -250, -250, -3, -80,
754
+ -250, -158, -159, -250, -250, -244, -180, -250, -250, -250,
738
755
  -170, -160, -164, -171, -172, -161, -162, -165, -166, -169,
739
- -163, -115, -167, -231, -197, -248, -208, -209, -211, -212,
740
- -214, -215, -218, -221, -223, -224, -242, -242, -242, -242,
741
- -248, -248, -248, -206, -248, -246, -242, -242, -242, -193,
742
- -242, -242, -242, -17, -14, -14, -14, -242, -242, -242,
743
- -240, -242, -79, -248, -149, -177, -242, -179, -186, -181,
744
- -81, -225, -232, -233, -234, -198, -242, -242, -242, -219,
745
- -219, -231, -242, -231, -231, -231, -248, -242, -248, -242,
746
- -187, -189, -190, -191, -192, -194, -195, -196, -242, -242,
747
- -242, -248, -248, -154, -155, -156, -148, -248, -242, -207,
748
- -215, -210, -217, -213, -248, -220, -222, -226, -231, -227,
749
- -228, -230, -82, -248, -248, -203, -137, -137, -242, -137,
750
- -248, -242, -241, -150, -205, -242, -229, -248, -83, -19,
751
- -145, -24, -30, -26, -29, -57, -239, -153, -216, -30,
752
- -242, -248, -139, -142, -146, -30, -242, -16, -242, -242,
753
- -16, -16, -20, -138, -145, -248, -143, -144, -16, -25,
754
- -71, -23, -31, -32, -33, -34, -35, -36, -37, -38,
755
- -39, -40, -41, -248, -248, -248, -27, -248, -56, -58,
756
- -59, -60, -61, -71, -18, -242, -140, -141, -22, -42,
757
- -42, -42, -242, -242, -242, -68, -248, -242, -242, -248,
758
- -28, -248, -248, -248, -248, -248, -62, -64, -66, -69,
759
- -248, -72, -86, -87, -88, -89, -90, -91, -92, -93,
760
- -94, -97, -98, -99, -100, -101, -102, -103, -129, -248,
761
- -53, -54, -248, -21, -43, -242, -50, -242, -50, -242,
762
- -50, -242, -242, -242, -73, -95, -96, -248, -151, -242,
763
- -44, -248, -248, -46, -248, -48, -248, -248, -248, -248,
764
- -248, -248, -248, -248, -55, -242, -51, -248, -242, -242,
765
- -63, -65, -67, -15, -84, -248, -74, -75, -248, -45,
766
- -52, -47, -49, -70, -76, -77, -85, -248, -15, -152,
767
- -78 ]
756
+ -163, -115, -167, -231, -197, -250, -208, -209, -211, -212,
757
+ -214, -215, -218, -221, -223, -224, -244, -244, -244, -244,
758
+ -250, -250, -250, -206, -250, -248, -244, -244, -244, -193,
759
+ -244, -244, -244, -17, -14, -14, -14, -244, -244, -244,
760
+ -242, -244, -79, -250, -149, -177, -244, -179, -186, -181,
761
+ -81, -225, -232, -233, -234, -235, -236, -198, -244, -244,
762
+ -244, -219, -219, -231, -244, -231, -231, -231, -250, -244,
763
+ -250, -244, -187, -189, -190, -191, -192, -194, -195, -196,
764
+ -244, -244, -244, -250, -250, -154, -155, -156, -148, -250,
765
+ -244, -207, -215, -210, -217, -213, -250, -220, -222, -226,
766
+ -231, -227, -228, -230, -82, -250, -250, -203, -137, -137,
767
+ -250, -137, -250, -244, -243, -150, -205, -244, -229, -250,
768
+ -83, -19, -145, -24, -244, -57, -241, -153, -216, -30,
769
+ -244, -250, -139, -142, -146, -30, -244, -30, -26, -29,
770
+ -16, -16, -20, -138, -145, -250, -143, -144, -16, -25,
771
+ -16, -244, -244, -56, -58, -59, -60, -61, -71, -71,
772
+ -18, -31, -32, -33, -34, -35, -36, -37, -38, -39,
773
+ -40, -41, -250, -250, -250, -244, -140, -141, -22, -23,
774
+ -27, -250, -244, -68, -250, -42, -42, -42, -244, -244,
775
+ -244, -244, -250, -250, -28, -62, -69, -250, -72, -86,
776
+ -87, -88, -89, -90, -91, -92, -93, -94, -97, -98,
777
+ -99, -100, -101, -102, -103, -129, -250, -250, -250, -250,
778
+ -250, -64, -66, -53, -54, -250, -21, -244, -73, -95,
779
+ -96, -250, -151, -43, -244, -50, -244, -50, -244, -50,
780
+ -244, -244, -244, -250, -250, -250, -250, -250, -44, -250,
781
+ -250, -46, -250, -48, -250, -250, -250, -55, -63, -15,
782
+ -84, -250, -74, -75, -250, -244, -51, -250, -244, -244,
783
+ -65, -67, -70, -76, -77, -85, -250, -45, -52, -47,
784
+ -49, -15, -152, -78 ]
768
785
 
769
786
  racc_goto_table = [
770
- 6, 93, 127, 46, 92, 116, 163, 88, 114, 191,
771
- 50, 202, 206, 129, 38, 230, 124, 233, 264, 128,
772
- 272, 123, 359, 262, 47, 232, 232, 1, 277, 366,
773
- 368, 370, 235, 236, 413, 281, 34, 35, 121, 122,
774
- 106, 288, 105, 118, 316, 269, 264, 143, 264, 420,
775
- 381, 289, 384, 275, 386, 378, 306, 164, 259, 261,
776
- 244, 265, 218, 219, 220, 310, 311, 237, 312, 239,
777
- 240, 241, 249, 393, 268, 333, 334, 335, 280, 309,
778
- 340, 390, 403, 232, 119, 162, 405, 173, 271, 202,
779
- 169, 285, 336, 337, 338, 183, 221, 87, 231, 100,
780
- nil, 182, nil, nil, 256, nil, nil, nil, nil, nil,
781
- nil, nil, nil, 419, nil, nil, nil, nil, nil, nil,
787
+ 6, 46, 116, 88, 93, 163, 114, 92, 127, 191,
788
+ 356, 129, 50, 204, 208, 232, 128, 235, 124, 123,
789
+ 234, 234, 279, 38, 47, 277, 412, 281, 272, 261,
790
+ 263, 1, 265, 288, 279, 290, 34, 289, 121, 122,
791
+ 237, 238, 372, 35, 375, 377, 379, 143, 423, 279,
792
+ 316, 105, 118, 106, 389, 269, 392, 387, 394, 164,
793
+ 220, 221, 222, 275, 246, 358, 359, 360, 320, 239,
794
+ 401, 241, 242, 243, 268, 295, 296, 297, 234, 251,
795
+ 335, 280, 294, 337, 384, 173, 361, 362, 399, 119,
796
+ 169, 162, 271, 204, 285, 183, 223, 87, 233, 100,
797
+ nil, nil, 422, 182, nil, nil, 258, nil, nil, nil,
798
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
782
799
  nil, nil, nil, 188, nil, nil, nil, nil, nil, nil,
783
- nil, nil, nil, nil, nil, nil, 93, nil, nil, 92,
784
- nil, nil, 211, nil, nil, nil, nil, nil, 222, nil,
785
- nil, nil, nil, nil, 201, 203, 204, 205, nil, nil,
786
- 229, nil, 245, nil, 212, 213, 214, nil, 215, 216,
787
- 217, 243, 246, 247, nil, nil, 223, 224, nil, 225,
788
- nil, 254, nil, nil, 188, nil, nil, nil, nil, 128,
789
- 128, 250, nil, nil, 143, 143, 143, nil, nil, nil,
790
- 238, nil, nil, nil, nil, 143, nil, nil, nil, nil,
800
+ nil, nil, nil, nil, nil, nil, nil, nil, 213, 93,
801
+ nil, nil, 92, nil, nil, 224, nil, nil, nil, nil,
802
+ nil, nil, nil, nil, 203, 205, 206, 207, nil, nil,
803
+ 231, nil, nil, 247, 214, 215, 216, nil, 217, 218,
804
+ 219, 245, nil, nil, nil, nil, 225, 226, nil, 227,
805
+ 248, 249, 256, nil, 188, nil, nil, nil, 128, 250,
806
+ 252, nil, nil, nil, nil, nil, 143, 143, 143, nil,
807
+ nil, nil, 240, nil, nil, nil, nil, 143, nil, nil,
791
808
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
792
- nil, nil, nil, nil, 282, nil, nil, nil, nil, nil,
793
809
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
794
- nil, 128, nil, nil, nil, nil, nil, nil, 116, 267,
795
- nil, nil, 116, 143, 313, nil, nil, 307, nil, 116,
810
+ 282, nil, nil, nil, nil, nil, nil, nil, 128, nil,
811
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 116,
812
+ nil, 267, 298, nil, nil, 143, 116, nil, 116, nil,
813
+ nil, nil, nil, nil, nil, nil, nil, nil, 321, nil,
796
814
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
797
815
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
816
+ nil, 333, nil, nil, nil, nil, nil, nil, 354, nil,
798
817
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
799
- nil, nil, nil, 331, nil, nil, nil, 357, nil, nil,
800
- nil, nil, nil, nil, 357, 357, 357, 365, 367, 369,
801
818
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
802
- nil, nil, nil, nil, nil, 360, 361, nil, nil, nil,
803
- 357, nil, nil, nil, nil, nil, nil, nil, nil, nil,
804
- nil, nil, nil, nil, nil, nil, nil, nil, 357, 387,
805
- 388, 389, nil, nil, nil, nil, nil, nil, nil, nil,
806
- nil, 357, nil, 380, 404, 383, nil, 385, nil, nil,
807
- nil, nil, nil, nil, nil, nil, nil, 394, nil, nil,
808
- nil, nil, nil, nil, nil, nil, nil, nil, 357, nil,
809
- nil, nil, nil, 409, nil, nil, 411, 412 ]
819
+ nil, nil, nil, nil, nil, nil, nil, nil, 363, 364,
820
+ 354, nil, 354, 354, 354, 374, 376, 378, nil, nil,
821
+ nil, nil, nil, 383, nil, 354, nil, nil, nil, nil,
822
+ nil, nil, nil, nil, nil, nil, 395, 396, 354, nil,
823
+ nil, 400, nil, nil, nil, nil, nil, nil, nil, nil,
824
+ nil, nil, 388, nil, 391, nil, 393, nil, nil, nil,
825
+ 397, nil, nil, nil, nil, nil, nil, nil, nil, nil,
826
+ 354, nil, nil, nil, nil, nil, nil, nil, nil, nil,
827
+ nil, nil, nil, 417, nil, nil, 419, 420 ]
810
828
 
811
829
  racc_goto_check = [
812
- 2, 52, 16, 20, 34, 59, 60, 64, 15, 76,
813
- 46, 65, 50, 48, 3, 71, 61, 71, 24, 59,
814
- 54, 20, 35, 22, 2, 66, 66, 1, 19, 35,
815
- 35, 35, 72, 72, 44, 19, 4, 5, 2, 2,
816
- 6, 19, 3, 3, 54, 18, 24, 2, 24, 44,
817
- 36, 22, 36, 21, 36, 35, 23, 61, 17, 17,
818
- 50, 17, 13, 13, 13, 26, 27, 76, 32, 76,
819
- 76, 76, 37, 35, 71, 33, 33, 33, 38, 39,
820
- 40, 42, 43, 66, 45, 49, 35, 15, 53, 65,
821
- 2, 56, 24, 24, 24, 57, 58, 63, 67, 77,
822
- nil, 46, nil, nil, 76, nil, nil, nil, nil, nil,
823
- nil, nil, nil, 35, nil, nil, nil, nil, nil, nil,
830
+ 2, 20, 22, 64, 53, 60, 15, 35, 16, 76,
831
+ 36, 49, 47, 65, 51, 71, 22, 71, 61, 20,
832
+ 66, 66, 25, 3, 2, 23, 45, 19, 55, 17,
833
+ 17, 1, 17, 19, 25, 19, 4, 23, 2, 2,
834
+ 72, 72, 36, 5, 36, 36, 36, 2, 45, 25,
835
+ 55, 3, 3, 6, 37, 18, 37, 36, 37, 61,
836
+ 13, 13, 13, 21, 51, 34, 34, 34, 24, 76,
837
+ 36, 76, 76, 76, 71, 27, 28, 33, 66, 38,
838
+ 25, 39, 40, 41, 43, 15, 25, 25, 44, 46,
839
+ 2, 50, 54, 65, 57, 58, 59, 63, 67, 77,
840
+ nil, nil, 36, 47, nil, nil, 76, nil, nil, nil,
841
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
824
842
  nil, nil, nil, 2, nil, nil, nil, nil, nil, nil,
825
- nil, nil, nil, nil, nil, nil, 52, nil, nil, 34,
826
- nil, nil, 64, nil, nil, nil, nil, nil, 59, nil,
843
+ nil, nil, nil, nil, nil, nil, nil, nil, 64, 53,
844
+ nil, nil, 35, nil, nil, 22, nil, nil, nil, nil,
827
845
  nil, nil, nil, nil, 2, 2, 2, 2, nil, nil,
828
- 48, nil, 60, nil, 2, 2, 2, nil, 2, 2,
829
- 2, 48, 16, 16, nil, nil, 2, 2, nil, 2,
830
- nil, 60, nil, nil, 2, nil, nil, nil, nil, 59,
831
- 59, 59, nil, nil, 2, 2, 2, nil, nil, nil,
832
- 2, nil, nil, nil, nil, 2, nil, nil, nil, nil,
846
+ 49, nil, nil, 60, 2, 2, 2, nil, 2, 2,
847
+ 2, 49, nil, nil, nil, nil, 2, 2, nil, 2,
848
+ 16, 16, 60, nil, 2, nil, nil, nil, 22, 22,
849
+ 22, nil, nil, nil, nil, nil, 2, 2, 2, nil,
850
+ nil, nil, 2, nil, nil, nil, nil, 2, nil, nil,
833
851
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
834
- nil, nil, nil, nil, 16, nil, nil, nil, nil, nil,
835
852
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
836
- nil, 59, nil, nil, nil, nil, nil, nil, 59, 2,
837
- nil, nil, 59, 2, 15, nil, nil, 20, nil, 59,
853
+ 16, nil, nil, nil, nil, nil, nil, nil, 22, nil,
854
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 22,
855
+ nil, 2, 15, nil, nil, 2, 22, nil, 22, nil,
856
+ nil, nil, nil, nil, nil, nil, nil, nil, 20, nil,
838
857
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
839
858
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
859
+ nil, 20, nil, nil, nil, nil, nil, nil, 53, nil,
840
860
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
841
- nil, nil, nil, 20, nil, nil, nil, 52, nil, nil,
842
- nil, nil, nil, nil, 52, 52, 52, 34, 34, 34,
843
861
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
844
- nil, nil, nil, nil, nil, 2, 2, nil, nil, nil,
845
- 52, nil, nil, nil, nil, nil, nil, nil, nil, nil,
846
- nil, nil, nil, nil, nil, nil, nil, nil, 52, 20,
847
- 20, 20, nil, nil, nil, nil, nil, nil, nil, nil,
848
- nil, 52, nil, 2, 34, 2, nil, 2, nil, nil,
849
- nil, nil, nil, nil, nil, nil, nil, 2, nil, nil,
850
- nil, nil, nil, nil, nil, nil, nil, nil, 52, nil,
862
+ nil, nil, nil, nil, nil, nil, nil, nil, 2, 2,
863
+ 53, nil, 53, 53, 53, 35, 35, 35, nil, nil,
864
+ nil, nil, nil, 20, nil, 53, nil, nil, nil, nil,
865
+ nil, nil, nil, nil, nil, nil, 20, 20, 53, nil,
866
+ nil, 35, nil, nil, nil, nil, nil, nil, nil, nil,
867
+ nil, nil, 2, nil, 2, nil, 2, nil, nil, nil,
868
+ 2, nil, nil, nil, nil, nil, nil, nil, nil, nil,
869
+ 53, nil, nil, nil, nil, nil, nil, nil, nil, nil,
851
870
  nil, nil, nil, 2, nil, nil, 2, 2 ]
852
871
 
853
872
  racc_goto_pointer = [
854
- nil, 27, -2, 8, 33, 33, 6, nil, nil, nil,
855
- nil, nil, nil, -112, nil, -26, -46, -188, -214, -234,
856
- -22, -208, -225, -222, -230, nil, -215, -214, nil, nil,
857
- nil, nil, -212, -244, -26, -304, -316, -148, -187, -201,
858
- -245, nil, -293, -308, -369, 48, -18, nil, -36, 34,
859
- -148, nil, -29, -172, -240, nil, -182, -25, -81, -29,
860
- -47, -30, nil, 67, -23, -145, -172, -99, nil, nil,
861
- nil, -181, -167, nil, nil, nil, -134, 68 ]
873
+ nil, 31, -2, 17, 33, 39, 19, nil, nil, nil,
874
+ nil, nil, nil, -114, nil, -28, -40, -219, -206, -242,
875
+ -24, -200, -32, -239, -223, -242, nil, -205, -204, nil,
876
+ nil, nil, nil, -203, -260, -23, -314, -321, -143, -184,
877
+ -198, -240, nil, -284, -296, -373, 53, -16, nil, -38,
878
+ 40, -146, nil, -26, -170, -234, nil, -179, -25, -81,
879
+ -48, -28, nil, 67, -27, -143, -179, -101, nil, nil,
880
+ nil, -183, -161, nil, nil, nil, -134, 68 ]
862
881
 
863
882
  racc_goto_default = [
864
- nil, nil, 44, nil, nil, 414, 302, 107, 108, 109,
865
- 110, 111, 112, nil, 36, 290, 115, nil, nil, nil,
866
- nil, nil, nil, 263, 24, 292, 293, 294, 295, 296,
867
- 297, 298, 301, nil, 144, nil, nil, nil, nil, nil,
868
- nil, 325, nil, nil, nil, nil, nil, 51, nil, nil,
869
- 52, 350, 145, nil, nil, 273, nil, nil, nil, 31,
883
+ nil, nil, 44, nil, nil, 413, 311, 107, 108, 109,
884
+ 110, 111, 112, nil, 36, 299, 115, nil, nil, nil,
885
+ nil, nil, 31, nil, 278, 24, 301, 302, 303, 304,
886
+ 305, 306, 307, 310, nil, 144, nil, nil, nil, nil,
887
+ nil, nil, 323, nil, nil, nil, nil, nil, 51, nil,
888
+ nil, 52, 347, 145, nil, nil, 273, nil, nil, nil,
870
889
  7, nil, 29, nil, nil, 158, 146, 147, 148, 149,
871
890
  150, 151, 152, 153, 154, 155, nil, nil ]
872
891
 
873
892
  racc_reduce_table = [
874
893
  0, 0, :racc_error,
875
- 3, 82, :_reduce_1,
876
- 3, 82, :_reduce_2,
877
- 3, 82, :_reduce_3,
878
- 0, 84, :_reduce_none,
879
- 1, 84, :_reduce_none,
880
- 0, 85, :_reduce_6,
881
- 2, 85, :_reduce_7,
882
- 1, 87, :_reduce_none,
883
- 1, 87, :_reduce_none,
884
- 1, 87, :_reduce_none,
885
- 1, 87, :_reduce_none,
886
- 1, 87, :_reduce_none,
887
- 1, 87, :_reduce_none,
888
- 0, 94, :_reduce_14,
889
- 0, 95, :_reduce_15,
890
- 0, 96, :_reduce_16,
891
- 2, 96, :_reduce_17,
892
- 8, 93, :_reduce_18,
893
- 0, 99, :_reduce_19,
894
- 2, 99, :_reduce_20,
895
- 5, 99, :_reduce_21,
896
- 8, 92, :_reduce_22,
897
- 7, 92, :_reduce_23,
898
- 0, 102, :_reduce_24,
899
- 2, 102, :_reduce_25,
900
- 1, 103, :_reduce_26,
901
- 3, 103, :_reduce_27,
902
- 4, 104, :_reduce_28,
903
- 1, 104, :_reduce_29,
904
- 0, 100, :_reduce_30,
905
- 2, 100, :_reduce_31,
906
- 1, 106, :_reduce_none,
907
- 1, 106, :_reduce_none,
908
- 1, 106, :_reduce_none,
909
- 1, 106, :_reduce_none,
910
- 1, 106, :_reduce_none,
911
- 1, 106, :_reduce_none,
912
- 1, 106, :_reduce_38,
913
- 1, 106, :_reduce_39,
914
- 1, 106, :_reduce_none,
915
- 1, 106, :_reduce_none,
916
- 0, 114, :_reduce_42,
917
- 2, 114, :_reduce_43,
918
- 5, 112, :_reduce_44,
919
- 7, 112, :_reduce_45,
920
- 5, 112, :_reduce_46,
921
- 7, 112, :_reduce_47,
922
- 5, 112, :_reduce_48,
923
- 7, 112, :_reduce_49,
924
- 0, 117, :_reduce_50,
925
- 2, 117, :_reduce_51,
926
- 3, 117, :_reduce_52,
927
- 3, 111, :_reduce_53,
928
- 3, 111, :_reduce_54,
929
- 5, 111, :_reduce_55,
930
- 7, 91, :_reduce_56,
931
- 0, 119, :_reduce_57,
932
- 2, 119, :_reduce_58,
933
- 1, 120, :_reduce_59,
934
- 1, 120, :_reduce_60,
935
- 1, 120, :_reduce_none,
936
- 3, 108, :_reduce_62,
937
- 6, 108, :_reduce_63,
938
- 3, 109, :_reduce_64,
939
- 6, 109, :_reduce_65,
940
- 3, 110, :_reduce_66,
941
- 6, 110, :_reduce_67,
942
- 0, 121, :_reduce_68,
943
- 1, 121, :_reduce_69,
944
- 7, 107, :_reduce_70,
945
- 0, 122, :_reduce_none,
946
- 2, 122, :_reduce_72,
947
- 0, 123, :_reduce_73,
948
- 2, 123, :_reduce_74,
949
- 2, 123, :_reduce_75,
950
- 1, 125, :_reduce_76,
951
- 1, 125, :_reduce_77,
952
- 3, 125, :_reduce_78,
953
- 3, 86, :_reduce_79,
954
- 0, 128, :_reduce_80,
955
- 3, 128, :_reduce_81,
956
- 3, 130, :_reduce_82,
957
- 4, 130, :_reduce_83,
958
- 1, 124, :_reduce_none,
959
- 2, 124, :_reduce_85,
960
- 1, 116, :_reduce_none,
961
- 1, 116, :_reduce_none,
962
- 1, 116, :_reduce_none,
963
- 1, 116, :_reduce_none,
964
- 1, 116, :_reduce_none,
965
- 1, 116, :_reduce_none,
966
- 1, 116, :_reduce_none,
967
- 1, 116, :_reduce_none,
968
- 1, 116, :_reduce_none,
969
- 2, 116, :_reduce_95,
970
- 2, 116, :_reduce_96,
971
- 1, 116, :_reduce_none,
972
- 1, 116, :_reduce_none,
973
- 1, 116, :_reduce_none,
974
- 1, 132, :_reduce_none,
975
- 1, 132, :_reduce_none,
976
- 1, 132, :_reduce_none,
977
- 1, 132, :_reduce_none,
978
- 1, 133, :_reduce_none,
979
- 1, 133, :_reduce_none,
980
- 1, 133, :_reduce_none,
981
- 1, 133, :_reduce_none,
982
- 1, 133, :_reduce_none,
983
- 1, 133, :_reduce_none,
984
- 1, 133, :_reduce_none,
985
- 1, 133, :_reduce_none,
986
- 1, 133, :_reduce_none,
987
- 1, 133, :_reduce_none,
988
- 1, 133, :_reduce_none,
989
- 1, 133, :_reduce_none,
990
- 1, 133, :_reduce_none,
991
- 1, 133, :_reduce_none,
992
- 1, 133, :_reduce_none,
993
- 1, 133, :_reduce_none,
994
- 1, 133, :_reduce_none,
995
- 1, 133, :_reduce_none,
996
- 1, 133, :_reduce_none,
997
- 1, 133, :_reduce_none,
998
- 1, 133, :_reduce_none,
999
- 1, 133, :_reduce_none,
1000
- 1, 133, :_reduce_none,
1001
- 1, 133, :_reduce_none,
1002
- 1, 133, :_reduce_none,
1003
- 1, 133, :_reduce_none,
1004
- 1, 133, :_reduce_none,
1005
- 1, 133, :_reduce_none,
1006
- 1, 133, :_reduce_none,
1007
- 1, 133, :_reduce_none,
1008
- 1, 133, :_reduce_none,
1009
- 1, 133, :_reduce_none,
1010
- 1, 133, :_reduce_none,
1011
- 0, 98, :_reduce_137,
1012
- 3, 98, :_reduce_138,
1013
- 1, 134, :_reduce_139,
1014
- 3, 134, :_reduce_140,
1015
- 3, 135, :_reduce_141,
1016
- 0, 137, :_reduce_142,
1017
- 1, 137, :_reduce_143,
1018
- 1, 137, :_reduce_144,
1019
- 0, 136, :_reduce_145,
1020
- 1, 136, :_reduce_146,
1021
- 0, 126, :_reduce_147,
1022
- 3, 126, :_reduce_148,
1023
- 1, 138, :_reduce_149,
1024
- 3, 138, :_reduce_150,
1025
- 4, 113, :_reduce_151,
1026
- 8, 113, :_reduce_152,
1027
- 5, 88, :_reduce_153,
1028
- 3, 89, :_reduce_154,
1029
- 3, 89, :_reduce_155,
1030
- 3, 90, :_reduce_156,
1031
- 1, 83, :_reduce_none,
1032
- 3, 83, :_reduce_158,
1033
- 3, 83, :_reduce_159,
1034
- 1, 141, :_reduce_160,
1035
- 1, 141, :_reduce_161,
1036
- 1, 141, :_reduce_162,
1037
- 1, 141, :_reduce_163,
1038
- 1, 141, :_reduce_164,
1039
- 1, 141, :_reduce_165,
1040
- 1, 141, :_reduce_166,
1041
- 1, 141, :_reduce_167,
1042
- 1, 141, :_reduce_168,
1043
- 1, 141, :_reduce_169,
1044
- 1, 141, :_reduce_170,
1045
- 1, 141, :_reduce_171,
1046
- 1, 141, :_reduce_172,
1047
- 1, 141, :_reduce_173,
1048
- 1, 141, :_reduce_174,
1049
- 1, 141, :_reduce_175,
1050
- 1, 141, :_reduce_176,
1051
- 4, 141, :_reduce_177,
1052
- 2, 141, :_reduce_178,
1053
- 4, 141, :_reduce_179,
1054
- 3, 141, :_reduce_180,
1055
- 4, 141, :_reduce_181,
1056
- 2, 141, :_reduce_182,
1057
- 2, 141, :_reduce_183,
1058
- 1, 141, :_reduce_none,
1059
- 1, 101, :_reduce_185,
1060
- 3, 101, :_reduce_186,
1061
- 4, 143, :_reduce_187,
1062
- 1, 144, :_reduce_188,
1063
- 3, 144, :_reduce_189,
1064
- 3, 145, :_reduce_190,
1065
- 3, 145, :_reduce_191,
1066
- 3, 145, :_reduce_192,
1067
- 2, 145, :_reduce_193,
1068
- 3, 145, :_reduce_194,
1069
- 3, 145, :_reduce_195,
1070
- 3, 145, :_reduce_196,
1071
- 1, 146, :_reduce_none,
1072
- 2, 146, :_reduce_198,
1073
- 1, 115, :_reduce_none,
1074
- 1, 115, :_reduce_none,
1075
- 1, 115, :_reduce_none,
1076
- 1, 115, :_reduce_none,
1077
- 4, 127, :_reduce_203,
1078
- 1, 127, :_reduce_204,
1079
- 5, 131, :_reduce_205,
1080
- 2, 131, :_reduce_206,
1081
- 3, 129, :_reduce_207,
1082
- 1, 129, :_reduce_208,
1083
- 1, 129, :_reduce_none,
1084
- 3, 148, :_reduce_210,
1085
- 1, 148, :_reduce_211,
894
+ 3, 84, :_reduce_1,
895
+ 3, 84, :_reduce_2,
896
+ 3, 84, :_reduce_3,
897
+ 0, 86, :_reduce_none,
898
+ 1, 86, :_reduce_none,
899
+ 0, 87, :_reduce_6,
900
+ 2, 87, :_reduce_7,
901
+ 1, 89, :_reduce_none,
902
+ 1, 89, :_reduce_none,
903
+ 1, 89, :_reduce_none,
904
+ 1, 89, :_reduce_none,
905
+ 1, 89, :_reduce_none,
906
+ 1, 89, :_reduce_none,
907
+ 0, 96, :_reduce_14,
908
+ 0, 97, :_reduce_15,
909
+ 0, 98, :_reduce_16,
910
+ 2, 98, :_reduce_17,
911
+ 8, 95, :_reduce_18,
912
+ 0, 101, :_reduce_19,
913
+ 2, 101, :_reduce_20,
914
+ 5, 101, :_reduce_21,
915
+ 8, 94, :_reduce_22,
916
+ 8, 94, :_reduce_23,
917
+ 0, 104, :_reduce_24,
918
+ 2, 104, :_reduce_25,
919
+ 1, 106, :_reduce_26,
920
+ 3, 106, :_reduce_27,
921
+ 4, 107, :_reduce_28,
922
+ 1, 107, :_reduce_29,
923
+ 0, 102, :_reduce_30,
924
+ 2, 102, :_reduce_31,
925
+ 1, 109, :_reduce_none,
926
+ 1, 109, :_reduce_none,
927
+ 1, 109, :_reduce_none,
928
+ 1, 109, :_reduce_none,
929
+ 1, 109, :_reduce_none,
930
+ 1, 109, :_reduce_none,
931
+ 1, 109, :_reduce_38,
932
+ 1, 109, :_reduce_39,
933
+ 1, 109, :_reduce_none,
934
+ 1, 109, :_reduce_none,
935
+ 0, 117, :_reduce_42,
936
+ 2, 117, :_reduce_43,
937
+ 5, 115, :_reduce_44,
938
+ 7, 115, :_reduce_45,
939
+ 5, 115, :_reduce_46,
940
+ 7, 115, :_reduce_47,
941
+ 5, 115, :_reduce_48,
942
+ 7, 115, :_reduce_49,
943
+ 0, 120, :_reduce_50,
944
+ 2, 120, :_reduce_51,
945
+ 3, 120, :_reduce_52,
946
+ 3, 114, :_reduce_53,
947
+ 3, 114, :_reduce_54,
948
+ 5, 114, :_reduce_55,
949
+ 7, 93, :_reduce_56,
950
+ 0, 122, :_reduce_57,
951
+ 2, 122, :_reduce_58,
952
+ 1, 123, :_reduce_59,
953
+ 1, 123, :_reduce_60,
954
+ 1, 123, :_reduce_none,
955
+ 3, 111, :_reduce_62,
956
+ 6, 111, :_reduce_63,
957
+ 3, 112, :_reduce_64,
958
+ 6, 112, :_reduce_65,
959
+ 3, 113, :_reduce_66,
960
+ 6, 113, :_reduce_67,
961
+ 0, 124, :_reduce_68,
962
+ 1, 124, :_reduce_69,
963
+ 7, 110, :_reduce_70,
964
+ 0, 125, :_reduce_none,
965
+ 2, 125, :_reduce_72,
966
+ 0, 126, :_reduce_73,
967
+ 2, 126, :_reduce_74,
968
+ 2, 126, :_reduce_75,
969
+ 1, 128, :_reduce_76,
970
+ 1, 128, :_reduce_77,
971
+ 3, 128, :_reduce_78,
972
+ 3, 88, :_reduce_79,
973
+ 0, 131, :_reduce_80,
974
+ 3, 131, :_reduce_81,
975
+ 3, 133, :_reduce_82,
976
+ 4, 133, :_reduce_83,
977
+ 1, 127, :_reduce_84,
978
+ 2, 127, :_reduce_85,
979
+ 1, 119, :_reduce_none,
980
+ 1, 119, :_reduce_none,
981
+ 1, 119, :_reduce_none,
982
+ 1, 119, :_reduce_none,
983
+ 1, 119, :_reduce_none,
984
+ 1, 119, :_reduce_none,
985
+ 1, 119, :_reduce_none,
986
+ 1, 119, :_reduce_none,
987
+ 1, 119, :_reduce_none,
988
+ 2, 119, :_reduce_95,
989
+ 2, 119, :_reduce_96,
990
+ 1, 119, :_reduce_none,
991
+ 1, 119, :_reduce_none,
992
+ 1, 119, :_reduce_none,
993
+ 1, 135, :_reduce_none,
994
+ 1, 135, :_reduce_none,
995
+ 1, 135, :_reduce_none,
996
+ 1, 135, :_reduce_none,
997
+ 1, 136, :_reduce_none,
998
+ 1, 136, :_reduce_none,
999
+ 1, 136, :_reduce_none,
1000
+ 1, 136, :_reduce_none,
1001
+ 1, 136, :_reduce_none,
1002
+ 1, 136, :_reduce_none,
1003
+ 1, 136, :_reduce_none,
1004
+ 1, 136, :_reduce_none,
1005
+ 1, 136, :_reduce_none,
1006
+ 1, 136, :_reduce_none,
1007
+ 1, 136, :_reduce_none,
1008
+ 1, 136, :_reduce_none,
1009
+ 1, 136, :_reduce_none,
1010
+ 1, 136, :_reduce_none,
1011
+ 1, 136, :_reduce_none,
1012
+ 1, 136, :_reduce_none,
1013
+ 1, 136, :_reduce_none,
1014
+ 1, 136, :_reduce_none,
1015
+ 1, 136, :_reduce_none,
1016
+ 1, 136, :_reduce_none,
1017
+ 1, 136, :_reduce_none,
1018
+ 1, 136, :_reduce_none,
1019
+ 1, 136, :_reduce_none,
1020
+ 1, 136, :_reduce_none,
1021
+ 1, 136, :_reduce_none,
1022
+ 1, 136, :_reduce_none,
1023
+ 1, 136, :_reduce_none,
1024
+ 1, 136, :_reduce_none,
1025
+ 1, 136, :_reduce_none,
1026
+ 1, 136, :_reduce_none,
1027
+ 1, 136, :_reduce_none,
1028
+ 1, 136, :_reduce_none,
1029
+ 1, 136, :_reduce_none,
1030
+ 0, 100, :_reduce_137,
1031
+ 3, 100, :_reduce_138,
1032
+ 1, 137, :_reduce_139,
1033
+ 3, 137, :_reduce_140,
1034
+ 3, 138, :_reduce_141,
1035
+ 0, 140, :_reduce_142,
1036
+ 1, 140, :_reduce_143,
1037
+ 1, 140, :_reduce_144,
1038
+ 0, 139, :_reduce_145,
1039
+ 1, 139, :_reduce_146,
1040
+ 0, 129, :_reduce_147,
1041
+ 3, 129, :_reduce_148,
1042
+ 1, 141, :_reduce_149,
1043
+ 3, 141, :_reduce_150,
1044
+ 4, 116, :_reduce_151,
1045
+ 8, 116, :_reduce_152,
1046
+ 5, 90, :_reduce_153,
1047
+ 3, 91, :_reduce_154,
1048
+ 3, 91, :_reduce_155,
1049
+ 3, 92, :_reduce_156,
1050
+ 1, 85, :_reduce_none,
1051
+ 3, 85, :_reduce_158,
1052
+ 3, 85, :_reduce_159,
1053
+ 1, 143, :_reduce_160,
1054
+ 1, 143, :_reduce_161,
1055
+ 1, 143, :_reduce_162,
1056
+ 1, 143, :_reduce_163,
1057
+ 1, 143, :_reduce_164,
1058
+ 1, 143, :_reduce_165,
1059
+ 1, 143, :_reduce_166,
1060
+ 1, 143, :_reduce_167,
1061
+ 1, 143, :_reduce_168,
1062
+ 1, 143, :_reduce_169,
1063
+ 1, 143, :_reduce_170,
1064
+ 1, 143, :_reduce_171,
1065
+ 1, 143, :_reduce_172,
1066
+ 1, 143, :_reduce_173,
1067
+ 1, 143, :_reduce_174,
1068
+ 1, 143, :_reduce_175,
1069
+ 1, 143, :_reduce_176,
1070
+ 4, 143, :_reduce_177,
1071
+ 2, 143, :_reduce_178,
1072
+ 4, 143, :_reduce_179,
1073
+ 3, 143, :_reduce_180,
1074
+ 4, 143, :_reduce_181,
1075
+ 2, 143, :_reduce_182,
1076
+ 2, 143, :_reduce_183,
1077
+ 1, 143, :_reduce_none,
1078
+ 1, 103, :_reduce_185,
1079
+ 3, 103, :_reduce_186,
1080
+ 4, 145, :_reduce_187,
1081
+ 1, 146, :_reduce_188,
1082
+ 3, 146, :_reduce_189,
1083
+ 3, 147, :_reduce_190,
1084
+ 3, 147, :_reduce_191,
1085
+ 3, 147, :_reduce_192,
1086
+ 2, 147, :_reduce_193,
1087
+ 3, 147, :_reduce_194,
1088
+ 3, 147, :_reduce_195,
1089
+ 3, 147, :_reduce_196,
1086
1090
  1, 148, :_reduce_none,
1087
- 3, 150, :_reduce_213,
1088
- 1, 150, :_reduce_214,
1091
+ 2, 148, :_reduce_198,
1092
+ 1, 118, :_reduce_none,
1093
+ 1, 118, :_reduce_none,
1094
+ 1, 118, :_reduce_none,
1095
+ 1, 118, :_reduce_none,
1096
+ 4, 130, :_reduce_203,
1097
+ 1, 130, :_reduce_204,
1098
+ 5, 134, :_reduce_205,
1099
+ 2, 134, :_reduce_206,
1100
+ 3, 132, :_reduce_207,
1101
+ 1, 132, :_reduce_208,
1102
+ 1, 132, :_reduce_none,
1103
+ 3, 150, :_reduce_210,
1104
+ 1, 150, :_reduce_211,
1089
1105
  1, 150, :_reduce_none,
1090
- 3, 152, :_reduce_216,
1091
- 1, 152, :_reduce_217,
1106
+ 3, 152, :_reduce_213,
1107
+ 1, 152, :_reduce_214,
1092
1108
  1, 152, :_reduce_none,
1093
- 0, 153, :_reduce_219,
1094
- 3, 153, :_reduce_220,
1095
- 1, 153, :_reduce_221,
1096
- 3, 153, :_reduce_222,
1097
- 1, 153, :_reduce_223,
1098
- 1, 153, :_reduce_224,
1099
- 2, 147, :_reduce_225,
1100
- 3, 149, :_reduce_226,
1101
- 3, 151, :_reduce_227,
1102
- 3, 154, :_reduce_228,
1103
- 4, 155, :_reduce_229,
1104
- 3, 156, :_reduce_230,
1105
- 0, 157, :_reduce_none,
1106
- 1, 157, :_reduce_none,
1107
- 1, 157, :_reduce_none,
1108
- 1, 157, :_reduce_none,
1109
- 2, 105, :_reduce_235,
1110
- 1, 158, :_reduce_none,
1111
- 1, 158, :_reduce_none,
1112
- 1, 158, :_reduce_none,
1113
- 2, 118, :_reduce_239,
1114
- 2, 97, :_reduce_240,
1115
- 2, 139, :_reduce_241,
1116
- 0, 140, :_reduce_242,
1117
- 1, 140, :_reduce_243,
1118
- 2, 140, :_reduce_244,
1119
- 1, 140, :_reduce_245,
1120
- 1, 142, :_reduce_none,
1121
- 0, 142, :_reduce_none ]
1122
-
1123
- racc_reduce_n = 248
1124
-
1125
- racc_shift_n = 421
1109
+ 3, 154, :_reduce_216,
1110
+ 1, 154, :_reduce_217,
1111
+ 1, 154, :_reduce_none,
1112
+ 0, 155, :_reduce_219,
1113
+ 3, 155, :_reduce_220,
1114
+ 1, 155, :_reduce_221,
1115
+ 3, 155, :_reduce_222,
1116
+ 1, 155, :_reduce_223,
1117
+ 1, 155, :_reduce_224,
1118
+ 2, 149, :_reduce_225,
1119
+ 3, 151, :_reduce_226,
1120
+ 3, 153, :_reduce_227,
1121
+ 3, 156, :_reduce_228,
1122
+ 4, 157, :_reduce_229,
1123
+ 3, 158, :_reduce_230,
1124
+ 0, 159, :_reduce_none,
1125
+ 1, 159, :_reduce_none,
1126
+ 1, 159, :_reduce_none,
1127
+ 1, 159, :_reduce_none,
1128
+ 1, 159, :_reduce_none,
1129
+ 1, 159, :_reduce_none,
1130
+ 2, 108, :_reduce_237,
1131
+ 1, 160, :_reduce_none,
1132
+ 1, 160, :_reduce_none,
1133
+ 1, 160, :_reduce_none,
1134
+ 2, 121, :_reduce_241,
1135
+ 2, 99, :_reduce_242,
1136
+ 2, 142, :_reduce_243,
1137
+ 0, 105, :_reduce_244,
1138
+ 1, 105, :_reduce_245,
1139
+ 2, 105, :_reduce_246,
1140
+ 1, 105, :_reduce_247,
1141
+ 1, 144, :_reduce_none,
1142
+ 0, 144, :_reduce_none ]
1143
+
1144
+ racc_reduce_n = 250
1145
+
1146
+ racc_shift_n = 424
1126
1147
 
1127
1148
  racc_token_table = {
1128
1149
  false => 0,
1129
1150
  :error => 1,
1130
1151
  :tUIDENT => 2,
1131
1152
  :tLIDENT => 3,
1132
- :tNAMESPACE => 4,
1133
- :tINTERFACEIDENT => 5,
1134
- :tGLOBALIDENT => 6,
1135
- :tLKEYWORD => 7,
1136
- :tUKEYWORD => 8,
1137
- :tLKEYWORD_Q_E => 9,
1138
- :tUKEYWORD_Q_E => 10,
1139
- :tIVAR => 11,
1140
- :tCLASSVAR => 12,
1141
- :tANNOTATION => 13,
1142
- :tSTRING => 14,
1143
- :tSYMBOL => 15,
1144
- :tINTEGER => 16,
1145
- :tWRITE_ATTR => 17,
1146
- :kLPAREN => 18,
1147
- :kRPAREN => 19,
1148
- :kLBRACKET => 20,
1149
- :kRBRACKET => 21,
1150
- :kLBRACE => 22,
1151
- :kRBRACE => 23,
1152
- :kVOID => 24,
1153
- :kNIL => 25,
1154
- :kTRUE => 26,
1155
- :kFALSE => 27,
1156
- :kANY => 28,
1157
- :kUNTYPED => 29,
1158
- :kTOP => 30,
1159
- :kBOT => 31,
1160
- :kSELF => 32,
1161
- :kSELFQ => 33,
1162
- :kINSTANCE => 34,
1163
- :kCLASS => 35,
1164
- :kBOOL => 36,
1165
- :kSINGLETON => 37,
1166
- :kTYPE => 38,
1167
- :kDEF => 39,
1168
- :kMODULE => 40,
1169
- :kPRIVATE => 41,
1170
- :kPUBLIC => 42,
1171
- :kALIAS => 43,
1172
- :kCOLON => 44,
1173
- :kCOLON2 => 45,
1174
- :kCOMMA => 46,
1175
- :kBAR => 47,
1176
- :kAMP => 48,
1177
- :kHAT => 49,
1178
- :kARROW => 50,
1179
- :kQUESTION => 51,
1180
- :kEXCLAMATION => 52,
1181
- :kSTAR => 53,
1182
- :kSTAR2 => 54,
1183
- :kFATARROW => 55,
1184
- :kEQ => 56,
1185
- :kDOT => 57,
1186
- :kDOT3 => 58,
1187
- :kLT => 59,
1188
- :kINTERFACE => 60,
1189
- :kEND => 61,
1190
- :kINCLUDE => 62,
1191
- :kEXTEND => 63,
1192
- :kATTRREADER => 64,
1193
- :kATTRWRITER => 65,
1194
- :kATTRACCESSOR => 66,
1195
- :tOPERATOR => 67,
1196
- :tQUOTEDMETHOD => 68,
1197
- :tQUOTEDIDENT => 69,
1198
- :kPREPEND => 70,
1199
- :kEXTENSION => 71,
1200
- :kINCOMPATIBLE => 72,
1201
- :type_TYPE => 73,
1202
- :type_SIGNATURE => 74,
1203
- :type_METHODTYPE => 75,
1204
- :tEOF => 76,
1205
- :kOUT => 77,
1206
- :kIN => 78,
1207
- :kUNCHECKED => 79,
1208
- :kOVERLOAD => 80 }
1209
-
1210
- racc_nt_base = 81
1153
+ :tUNDERSCOREIDENT => 4,
1154
+ :tNAMESPACE => 5,
1155
+ :tINTERFACEIDENT => 6,
1156
+ :tGLOBALIDENT => 7,
1157
+ :tLKEYWORD => 8,
1158
+ :tUKEYWORD => 9,
1159
+ :tLKEYWORD_Q_E => 10,
1160
+ :tUKEYWORD_Q_E => 11,
1161
+ :tIVAR => 12,
1162
+ :tCLASSVAR => 13,
1163
+ :tANNOTATION => 14,
1164
+ :tSTRING => 15,
1165
+ :tSYMBOL => 16,
1166
+ :tINTEGER => 17,
1167
+ :tWRITE_ATTR => 18,
1168
+ :kLPAREN => 19,
1169
+ :kRPAREN => 20,
1170
+ :kLBRACKET => 21,
1171
+ :kRBRACKET => 22,
1172
+ :kLBRACE => 23,
1173
+ :kRBRACE => 24,
1174
+ :kVOID => 25,
1175
+ :kNIL => 26,
1176
+ :kTRUE => 27,
1177
+ :kFALSE => 28,
1178
+ :kANY => 29,
1179
+ :kUNTYPED => 30,
1180
+ :kTOP => 31,
1181
+ :kBOT => 32,
1182
+ :kSELF => 33,
1183
+ :kSELFQ => 34,
1184
+ :kINSTANCE => 35,
1185
+ :kCLASS => 36,
1186
+ :kBOOL => 37,
1187
+ :kSINGLETON => 38,
1188
+ :kTYPE => 39,
1189
+ :kDEF => 40,
1190
+ :kMODULE => 41,
1191
+ :kPRIVATE => 42,
1192
+ :kPUBLIC => 43,
1193
+ :kALIAS => 44,
1194
+ :kCOLON => 45,
1195
+ :kCOLON2 => 46,
1196
+ :kCOMMA => 47,
1197
+ :kBAR => 48,
1198
+ :kAMP => 49,
1199
+ :kHAT => 50,
1200
+ :kARROW => 51,
1201
+ :kQUESTION => 52,
1202
+ :kEXCLAMATION => 53,
1203
+ :kSTAR => 54,
1204
+ :kSTAR2 => 55,
1205
+ :kFATARROW => 56,
1206
+ :kEQ => 57,
1207
+ :kDOT => 58,
1208
+ :kDOT3 => 59,
1209
+ :kLT => 60,
1210
+ :kINTERFACE => 61,
1211
+ :kEND => 62,
1212
+ :kINCLUDE => 63,
1213
+ :kEXTEND => 64,
1214
+ :kATTRREADER => 65,
1215
+ :kATTRWRITER => 66,
1216
+ :kATTRACCESSOR => 67,
1217
+ :tOPERATOR => 68,
1218
+ :tQUOTEDMETHOD => 69,
1219
+ :tQUOTEDIDENT => 70,
1220
+ :kPREPEND => 71,
1221
+ :kEXTENSION => 72,
1222
+ :kINCOMPATIBLE => 73,
1223
+ :type_TYPE => 74,
1224
+ :type_SIGNATURE => 75,
1225
+ :type_METHODTYPE => 76,
1226
+ :tEOF => 77,
1227
+ :kOUT => 78,
1228
+ :kIN => 79,
1229
+ :kUNCHECKED => 80,
1230
+ :kOVERLOAD => 81,
1231
+ :kUNDERSCORE => 82 }
1232
+
1233
+ racc_nt_base = 83
1211
1234
 
1212
1235
  racc_use_result_var = true
1213
1236
 
@@ -1232,6 +1255,7 @@ Racc_token_to_s_table = [
1232
1255
  "error",
1233
1256
  "tUIDENT",
1234
1257
  "tLIDENT",
1258
+ "tUNDERSCOREIDENT",
1235
1259
  "tNAMESPACE",
1236
1260
  "tINTERFACEIDENT",
1237
1261
  "tGLOBALIDENT",
@@ -1309,6 +1333,7 @@ Racc_token_to_s_table = [
1309
1333
  "kIN",
1310
1334
  "kUNCHECKED",
1311
1335
  "kOVERLOAD",
1336
+ "kUNDERSCORE",
1312
1337
  "$start",
1313
1338
  "target",
1314
1339
  "type",
@@ -1331,6 +1356,7 @@ Racc_token_to_s_table = [
1331
1356
  "class_members",
1332
1357
  "type_list",
1333
1358
  "colon_module_self_types",
1359
+ "namespace",
1334
1360
  "module_self_types",
1335
1361
  "module_self_type",
1336
1362
  "qualified_name",
@@ -1368,7 +1394,6 @@ Racc_token_to_s_table = [
1368
1394
  "type_param_variance",
1369
1395
  "type_params0",
1370
1396
  "type_alias_name",
1371
- "namespace",
1372
1397
  "simple_type",
1373
1398
  "comma_opt",
1374
1399
  "record_type",
@@ -1394,7 +1419,7 @@ Racc_debug_parser = false
1394
1419
 
1395
1420
  # reduce 0 omitted
1396
1421
 
1397
- module_eval(<<'.,.,', 'parser.y', 28)
1422
+ module_eval(<<'.,.,', 'parser.y', 29)
1398
1423
  def _reduce_1(val, _values, result)
1399
1424
  result = val[1]
1400
1425
 
@@ -1402,7 +1427,7 @@ module_eval(<<'.,.,', 'parser.y', 28)
1402
1427
  end
1403
1428
  .,.,
1404
1429
 
1405
- module_eval(<<'.,.,', 'parser.y', 31)
1430
+ module_eval(<<'.,.,', 'parser.y', 32)
1406
1431
  def _reduce_2(val, _values, result)
1407
1432
  result = val[1]
1408
1433
 
@@ -1410,7 +1435,7 @@ module_eval(<<'.,.,', 'parser.y', 31)
1410
1435
  end
1411
1436
  .,.,
1412
1437
 
1413
- module_eval(<<'.,.,', 'parser.y', 34)
1438
+ module_eval(<<'.,.,', 'parser.y', 35)
1414
1439
  def _reduce_3(val, _values, result)
1415
1440
  result = val[1]
1416
1441
 
@@ -1422,14 +1447,14 @@ module_eval(<<'.,.,', 'parser.y', 34)
1422
1447
 
1423
1448
  # reduce 5 omitted
1424
1449
 
1425
- module_eval(<<'.,.,', 'parser.y', 40)
1450
+ module_eval(<<'.,.,', 'parser.y', 41)
1426
1451
  def _reduce_6(val, _values, result)
1427
1452
  result = []
1428
1453
  result
1429
1454
  end
1430
1455
  .,.,
1431
1456
 
1432
- module_eval(<<'.,.,', 'parser.y', 42)
1457
+ module_eval(<<'.,.,', 'parser.y', 43)
1433
1458
  def _reduce_7(val, _values, result)
1434
1459
  result = val[0].push(val[1])
1435
1460
 
@@ -1449,28 +1474,28 @@ module_eval(<<'.,.,', 'parser.y', 42)
1449
1474
 
1450
1475
  # reduce 13 omitted
1451
1476
 
1452
- module_eval(<<'.,.,', 'parser.y', 53)
1477
+ module_eval(<<'.,.,', 'parser.y', 54)
1453
1478
  def _reduce_14(val, _values, result)
1454
1479
  start_new_variables_scope
1455
1480
  result
1456
1481
  end
1457
1482
  .,.,
1458
1483
 
1459
- module_eval(<<'.,.,', 'parser.y', 54)
1484
+ module_eval(<<'.,.,', 'parser.y', 55)
1460
1485
  def _reduce_15(val, _values, result)
1461
1486
  start_merged_variables_scope
1462
1487
  result
1463
1488
  end
1464
1489
  .,.,
1465
1490
 
1466
- module_eval(<<'.,.,', 'parser.y', 57)
1491
+ module_eval(<<'.,.,', 'parser.y', 58)
1467
1492
  def _reduce_16(val, _values, result)
1468
1493
  result = []
1469
1494
  result
1470
1495
  end
1471
1496
  .,.,
1472
1497
 
1473
- module_eval(<<'.,.,', 'parser.y', 59)
1498
+ module_eval(<<'.,.,', 'parser.y', 60)
1474
1499
  def _reduce_17(val, _values, result)
1475
1500
  result = val[1].unshift(Annotation.new(string: val[0].value, location: val[0].location))
1476
1501
 
@@ -1478,15 +1503,26 @@ module_eval(<<'.,.,', 'parser.y', 59)
1478
1503
  end
1479
1504
  .,.,
1480
1505
 
1481
- module_eval(<<'.,.,', 'parser.y', 64)
1506
+ module_eval(<<'.,.,', 'parser.y', 65)
1482
1507
  def _reduce_18(val, _values, result)
1483
1508
  reset_variable_scope
1484
1509
 
1485
1510
  location = val[1].location + val[7].location
1511
+ location = location.with_children(
1512
+ required: {
1513
+ keyword: val[1].location,
1514
+ name: val[3].location,
1515
+ end: val[7].location
1516
+ },
1517
+ optional: {
1518
+ type_params: val[4]&.location,
1519
+ lt: val[5]&.location
1520
+ }
1521
+ )
1486
1522
  result = Declarations::Class.new(
1487
1523
  name: val[3].value,
1488
1524
  type_params: val[4]&.value || Declarations::ModuleTypeParams.empty,
1489
- super_class: val[5],
1525
+ super_class: val[5]&.value,
1490
1526
  members: val[6],
1491
1527
  annotations: val[0],
1492
1528
  location: location,
@@ -1497,42 +1533,72 @@ module_eval(<<'.,.,', 'parser.y', 64)
1497
1533
  end
1498
1534
  .,.,
1499
1535
 
1500
- module_eval(<<'.,.,', 'parser.y', 79)
1536
+ module_eval(<<'.,.,', 'parser.y', 91)
1501
1537
  def _reduce_19(val, _values, result)
1502
1538
  result = nil
1503
1539
  result
1504
1540
  end
1505
1541
  .,.,
1506
1542
 
1507
- module_eval(<<'.,.,', 'parser.y', 81)
1543
+ module_eval(<<'.,.,', 'parser.y', 93)
1508
1544
  def _reduce_20(val, _values, result)
1509
- result = Declarations::Class::Super.new(name: val[1].value,
1510
- args: [],
1511
- location: val[1].location)
1545
+ loc = val[1].location.with_children(
1546
+ required: { name: val[1].location },
1547
+ optional: { args: nil }
1548
+ )
1549
+ sup = Declarations::Class::Super.new(name: val[1].value, args: [], location: loc)
1550
+ result = LocatedValue.new(value: sup, location: val[0].location)
1512
1551
 
1513
1552
  result
1514
1553
  end
1515
1554
  .,.,
1516
1555
 
1517
- module_eval(<<'.,.,', 'parser.y', 86)
1556
+ module_eval(<<'.,.,', 'parser.y', 101)
1518
1557
  def _reduce_21(val, _values, result)
1519
- result = Declarations::Class::Super.new(name: val[1].value,
1520
- args: val[3],
1521
- location: val[1].location + val[4].location)
1558
+ loc = (val[1].location + val[4].location).with_children(
1559
+ required: { name: val[1].location },
1560
+ optional: { args: val[2].location + val[4].location }
1561
+ )
1562
+ sup = Declarations::Class::Super.new(name: val[1].value, args: val[3], location: loc)
1563
+ result = LocatedValue.new(value: sup, location: val[0].location)
1522
1564
 
1523
1565
  result
1524
1566
  end
1525
1567
  .,.,
1526
1568
 
1527
- module_eval(<<'.,.,', 'parser.y', 93)
1569
+ module_eval(<<'.,.,', 'parser.y', 111)
1528
1570
  def _reduce_22(val, _values, result)
1529
1571
  reset_variable_scope
1530
1572
 
1573
+ colon_loc = val[5].location
1574
+ self_loc = val[5].value.yield_self do |params|
1575
+ case params.size
1576
+ when 0
1577
+ nil
1578
+ when 1
1579
+ params[0].location
1580
+ else
1581
+ params.first.location + params.last.location
1582
+ end
1583
+ end
1584
+
1531
1585
  location = val[1].location + val[7].location
1586
+ location = location.with_children(
1587
+ required: {
1588
+ keyword: val[1].location,
1589
+ name: val[3].location,
1590
+ end: val[7].location
1591
+ },
1592
+ optional: {
1593
+ type_params: val[4]&.location,
1594
+ colon: colon_loc,
1595
+ self_types: self_loc
1596
+ }
1597
+ )
1532
1598
  result = Declarations::Module.new(
1533
1599
  name: val[3].value,
1534
1600
  type_params: val[4]&.value || Declarations::ModuleTypeParams.empty,
1535
- self_types: val[5],
1601
+ self_types: val[5].value,
1536
1602
  members: val[6],
1537
1603
  annotations: val[0],
1538
1604
  location: location,
@@ -1543,16 +1609,30 @@ module_eval(<<'.,.,', 'parser.y', 93)
1543
1609
  end
1544
1610
  .,.,
1545
1611
 
1546
- module_eval(<<'.,.,', 'parser.y', 107)
1612
+ module_eval(<<'.,.,', 'parser.y', 149)
1547
1613
  def _reduce_23(val, _values, result)
1548
1614
  reset_variable_scope
1549
1615
 
1550
- location = val[1].location + val[6].location
1616
+ location = val[1].location + val[7].location
1617
+ name_loc, colon_loc = split_kw_loc(val[4].location)
1618
+ self_loc = case val[5].size
1619
+ when 0
1620
+ nil
1621
+ when 1
1622
+ val[5][0].location
1623
+ else
1624
+ val[5].first.location + val[5].last.location
1625
+ end
1626
+ location = location.with_children(
1627
+ required: { keyword: val[1].location, name: name_loc, end: val[7].location },
1628
+ optional: { colon: colon_loc, type_params: nil, self_types: self_loc }
1629
+ )
1630
+
1551
1631
  result = Declarations::Module.new(
1552
- name: val[3].value,
1632
+ name: RBS::TypeName.new(name: val[4].value, namespace: val[3]&.value || RBS::Namespace.empty),
1553
1633
  type_params: Declarations::ModuleTypeParams.empty,
1554
- self_types: val[4],
1555
- members: val[5],
1634
+ self_types: val[5],
1635
+ members: val[6],
1556
1636
  annotations: val[0],
1557
1637
  location: location,
1558
1638
  comment: leading_comment(val[0].first&.location || location)
@@ -1562,22 +1642,22 @@ module_eval(<<'.,.,', 'parser.y', 107)
1562
1642
  end
1563
1643
  .,.,
1564
1644
 
1565
- module_eval(<<'.,.,', 'parser.y', 122)
1645
+ module_eval(<<'.,.,', 'parser.y', 178)
1566
1646
  def _reduce_24(val, _values, result)
1567
- result = []
1647
+ result = LocatedValue.new(value: [], location: nil)
1568
1648
  result
1569
1649
  end
1570
1650
  .,.,
1571
1651
 
1572
- module_eval(<<'.,.,', 'parser.y', 124)
1652
+ module_eval(<<'.,.,', 'parser.y', 180)
1573
1653
  def _reduce_25(val, _values, result)
1574
- result = val[1]
1654
+ result = LocatedValue.new(value: val[1], location: val[0].location)
1575
1655
 
1576
1656
  result
1577
1657
  end
1578
1658
  .,.,
1579
1659
 
1580
- module_eval(<<'.,.,', 'parser.y', 129)
1660
+ module_eval(<<'.,.,', 'parser.y', 185)
1581
1661
  def _reduce_26(val, _values, result)
1582
1662
  result = [val[0]]
1583
1663
 
@@ -1585,7 +1665,7 @@ module_eval(<<'.,.,', 'parser.y', 129)
1585
1665
  end
1586
1666
  .,.,
1587
1667
 
1588
- module_eval(<<'.,.,', 'parser.y', 132)
1668
+ module_eval(<<'.,.,', 'parser.y', 188)
1589
1669
  def _reduce_27(val, _values, result)
1590
1670
  result = val[0].push(val[2])
1591
1671
 
@@ -1593,11 +1673,15 @@ module_eval(<<'.,.,', 'parser.y', 132)
1593
1673
  end
1594
1674
  .,.,
1595
1675
 
1596
- module_eval(<<'.,.,', 'parser.y', 137)
1676
+ module_eval(<<'.,.,', 'parser.y', 193)
1597
1677
  def _reduce_28(val, _values, result)
1598
1678
  name = val[0].value
1599
1679
  args = val[2]
1600
1680
  location = val[0].location + val[3].location
1681
+ location = location.with_children(
1682
+ required: { name: val[0].location },
1683
+ optional: { args: val[1].location + val[3].location }
1684
+ )
1601
1685
 
1602
1686
  case
1603
1687
  when name.class?
@@ -1612,11 +1696,14 @@ module_eval(<<'.,.,', 'parser.y', 137)
1612
1696
  end
1613
1697
  .,.,
1614
1698
 
1615
- module_eval(<<'.,.,', 'parser.y', 151)
1699
+ module_eval(<<'.,.,', 'parser.y', 211)
1616
1700
  def _reduce_29(val, _values, result)
1617
1701
  name = val[0].value
1618
1702
  args = []
1619
- location = val[0].location
1703
+ location = val[0].location.with_children(
1704
+ required: { name: val[0].location },
1705
+ optional: { args: nil }
1706
+ )
1620
1707
 
1621
1708
  case
1622
1709
  when name.class?
@@ -1631,14 +1718,14 @@ module_eval(<<'.,.,', 'parser.y', 151)
1631
1718
  end
1632
1719
  .,.,
1633
1720
 
1634
- module_eval(<<'.,.,', 'parser.y', 166)
1721
+ module_eval(<<'.,.,', 'parser.y', 229)
1635
1722
  def _reduce_30(val, _values, result)
1636
1723
  result = []
1637
1724
  result
1638
1725
  end
1639
1726
  .,.,
1640
1727
 
1641
- module_eval(<<'.,.,', 'parser.y', 168)
1728
+ module_eval(<<'.,.,', 'parser.y', 231)
1642
1729
  def _reduce_31(val, _values, result)
1643
1730
  result = val[0].push(val[1])
1644
1731
 
@@ -1658,7 +1745,7 @@ module_eval(<<'.,.,', 'parser.y', 168)
1658
1745
 
1659
1746
  # reduce 37 omitted
1660
1747
 
1661
- module_eval(<<'.,.,', 'parser.y', 179)
1748
+ module_eval(<<'.,.,', 'parser.y', 242)
1662
1749
  def _reduce_38(val, _values, result)
1663
1750
  result = Members::Public.new(location: val[0].location)
1664
1751
 
@@ -1666,7 +1753,7 @@ module_eval(<<'.,.,', 'parser.y', 179)
1666
1753
  end
1667
1754
  .,.,
1668
1755
 
1669
- module_eval(<<'.,.,', 'parser.y', 182)
1756
+ module_eval(<<'.,.,', 'parser.y', 245)
1670
1757
  def _reduce_39(val, _values, result)
1671
1758
  result = Members::Private.new(location: val[0].location)
1672
1759
 
@@ -1678,27 +1765,32 @@ module_eval(<<'.,.,', 'parser.y', 182)
1678
1765
 
1679
1766
  # reduce 41 omitted
1680
1767
 
1681
- module_eval(<<'.,.,', 'parser.y', 188)
1768
+ module_eval(<<'.,.,', 'parser.y', 251)
1682
1769
  def _reduce_42(val, _values, result)
1683
- result = :instance
1770
+ result = LocatedValue.new(value: :instance, location: nil)
1684
1771
  result
1685
1772
  end
1686
1773
  .,.,
1687
1774
 
1688
- module_eval(<<'.,.,', 'parser.y', 189)
1775
+ module_eval(<<'.,.,', 'parser.y', 252)
1689
1776
  def _reduce_43(val, _values, result)
1690
- result = :singleton
1777
+ result = LocatedValue.new(value: :singleton, location: val[0].location + val[1].location)
1691
1778
  result
1692
1779
  end
1693
1780
  .,.,
1694
1781
 
1695
- module_eval(<<'.,.,', 'parser.y', 193)
1782
+ module_eval(<<'.,.,', 'parser.y', 256)
1696
1783
  def _reduce_44(val, _values, result)
1697
1784
  location = val[1].location + val[4].location
1785
+ name_loc, colon_loc = split_kw_loc(val[3].location)
1786
+ location = location.with_children(
1787
+ required: { keyword: val[1].location, name: name_loc, colon: colon_loc },
1788
+ optional: { ivar: nil, ivar_name: nil, kind: val[2].location }
1789
+ )
1698
1790
  result = Members::AttrReader.new(name: val[3].value,
1699
1791
  ivar_name: nil,
1700
1792
  type: val[4],
1701
- kind: val[2],
1793
+ kind: val[2].value,
1702
1794
  annotations: val[0],
1703
1795
  location: location,
1704
1796
  comment: leading_comment(val[0].first&.location || location))
@@ -1707,13 +1799,29 @@ module_eval(<<'.,.,', 'parser.y', 193)
1707
1799
  end
1708
1800
  .,.,
1709
1801
 
1710
- module_eval(<<'.,.,', 'parser.y', 203)
1802
+ module_eval(<<'.,.,', 'parser.y', 271)
1711
1803
  def _reduce_45(val, _values, result)
1712
1804
  location = val[1].location + val[6].location
1805
+ ivar_loc = val[4]&.location
1806
+ case name_value = val[4]&.value
1807
+ when LocatedValue
1808
+ ivar_name = name_value.value
1809
+ ivar_name_loc = name_value.location
1810
+ when false
1811
+ ivar_name = false
1812
+ ivar_name_loc = nil
1813
+ else
1814
+ ivar_name = nil
1815
+ ivar_loc = nil
1816
+ end
1817
+ location = location.with_children(
1818
+ required: { keyword: val[1].location, name: val[3].location, colon: val[5].location },
1819
+ optional: { ivar: ivar_loc, ivar_name: ivar_name_loc, kind: val[2].location }
1820
+ )
1713
1821
  result = Members::AttrReader.new(name: val[3].value.to_sym,
1714
- ivar_name: val[4],
1822
+ ivar_name: ivar_name,
1715
1823
  type: val[6],
1716
- kind: val[2],
1824
+ kind: val[2].value,
1717
1825
  annotations: val[0],
1718
1826
  location: location,
1719
1827
  comment: leading_comment(val[0].first&.location || location))
@@ -1722,12 +1830,17 @@ module_eval(<<'.,.,', 'parser.y', 203)
1722
1830
  end
1723
1831
  .,.,
1724
1832
 
1725
- module_eval(<<'.,.,', 'parser.y', 213)
1833
+ module_eval(<<'.,.,', 'parser.y', 297)
1726
1834
  def _reduce_46(val, _values, result)
1727
1835
  location = val[1].location + val[4].location
1836
+ name_loc, colon_loc = split_kw_loc(val[3].location)
1837
+ location = location.with_children(
1838
+ required: { keyword: val[1].location, name: name_loc, colon: colon_loc },
1839
+ optional: { ivar: nil, ivar_name: nil, kind: val[2].location }
1840
+ )
1728
1841
  result = Members::AttrWriter.new(name: val[3].value,
1729
1842
  ivar_name: nil,
1730
- kind: val[2],
1843
+ kind: val[2].value,
1731
1844
  type: val[4],
1732
1845
  annotations: val[0],
1733
1846
  location: location,
@@ -1737,12 +1850,29 @@ module_eval(<<'.,.,', 'parser.y', 213)
1737
1850
  end
1738
1851
  .,.,
1739
1852
 
1740
- module_eval(<<'.,.,', 'parser.y', 223)
1853
+ module_eval(<<'.,.,', 'parser.y', 312)
1741
1854
  def _reduce_47(val, _values, result)
1742
1855
  location = val[1].location + val[6].location
1856
+ ivar_loc = val[4]&.location
1857
+ case name_value = val[4]&.value
1858
+ when LocatedValue
1859
+ ivar_name = name_value.value
1860
+ ivar_name_loc = name_value.location
1861
+ when false
1862
+ ivar_name = false
1863
+ ivar_name_loc = nil
1864
+ else
1865
+ ivar_name = nil
1866
+ ivar_loc = nil
1867
+ end
1868
+ location = location.with_children(
1869
+ required: { keyword: val[1].location, name: val[3].location, colon: val[5].location },
1870
+ optional: { ivar: ivar_loc, ivar_name: ivar_name_loc, kind: val[2].location }
1871
+ )
1872
+
1743
1873
  result = Members::AttrWriter.new(name: val[3].value.to_sym,
1744
- ivar_name: val[4],
1745
- kind: val[2],
1874
+ ivar_name: ivar_name,
1875
+ kind: val[2].value,
1746
1876
  type: val[6],
1747
1877
  annotations: val[0],
1748
1878
  location: location,
@@ -1752,12 +1882,18 @@ module_eval(<<'.,.,', 'parser.y', 223)
1752
1882
  end
1753
1883
  .,.,
1754
1884
 
1755
- module_eval(<<'.,.,', 'parser.y', 233)
1885
+ module_eval(<<'.,.,', 'parser.y', 339)
1756
1886
  def _reduce_48(val, _values, result)
1757
1887
  location = val[1].location + val[4].location
1888
+ name_loc, colon_loc = split_kw_loc(val[3].location)
1889
+ location = location.with_children(
1890
+ required: { keyword: val[1].location, name: name_loc, colon: colon_loc },
1891
+ optional: { ivar: nil, ivar_name: nil, kind: val[2].location }
1892
+ )
1893
+
1758
1894
  result = Members::AttrAccessor.new(name: val[3].value,
1759
1895
  ivar_name: nil,
1760
- kind: val[2],
1896
+ kind: val[2].value,
1761
1897
  type: val[4],
1762
1898
  annotations: val[0],
1763
1899
  location: location,
@@ -1767,12 +1903,29 @@ module_eval(<<'.,.,', 'parser.y', 233)
1767
1903
  end
1768
1904
  .,.,
1769
1905
 
1770
- module_eval(<<'.,.,', 'parser.y', 243)
1906
+ module_eval(<<'.,.,', 'parser.y', 355)
1771
1907
  def _reduce_49(val, _values, result)
1772
1908
  location = val[1].location + val[6].location
1909
+ ivar_loc = val[4]&.location
1910
+ case name_value = val[4]&.value
1911
+ when LocatedValue
1912
+ ivar_name = name_value.value
1913
+ ivar_name_loc = name_value.location
1914
+ when false
1915
+ ivar_name = false
1916
+ ivar_name_loc = nil
1917
+ else
1918
+ ivar_name = nil
1919
+ ivar_loc = nil
1920
+ end
1921
+ location = location.with_children(
1922
+ required: { keyword: val[1].location, name: val[3].location, colon: val[5].location },
1923
+ optional: { ivar: ivar_loc, ivar_name: ivar_name_loc, kind: val[2].location }
1924
+ )
1925
+
1773
1926
  result = Members::AttrAccessor.new(name: val[3].value.to_sym,
1774
- ivar_name: val[4],
1775
- kind: val[2],
1927
+ ivar_name: ivar_name,
1928
+ kind: val[2].value,
1776
1929
  type: val[6],
1777
1930
  annotations: val[0],
1778
1931
  location: location,
@@ -1782,30 +1935,38 @@ module_eval(<<'.,.,', 'parser.y', 243)
1782
1935
  end
1783
1936
  .,.,
1784
1937
 
1785
- module_eval(<<'.,.,', 'parser.y', 254)
1938
+ module_eval(<<'.,.,', 'parser.y', 383)
1786
1939
  def _reduce_50(val, _values, result)
1787
1940
  result = nil
1788
1941
  result
1789
1942
  end
1790
1943
  .,.,
1791
1944
 
1792
- module_eval(<<'.,.,', 'parser.y', 255)
1945
+ module_eval(<<'.,.,', 'parser.y', 384)
1793
1946
  def _reduce_51(val, _values, result)
1794
- result = false
1947
+ result = LocatedValue.new(value: false, location: val[0].location + val[1].location)
1795
1948
  result
1796
1949
  end
1797
1950
  .,.,
1798
1951
 
1799
- module_eval(<<'.,.,', 'parser.y', 256)
1952
+ module_eval(<<'.,.,', 'parser.y', 386)
1800
1953
  def _reduce_52(val, _values, result)
1801
- result = val[1].value
1954
+ result = LocatedValue.new(
1955
+ value: val[1],
1956
+ location: val[0].location + val[2].location
1957
+ )
1958
+
1802
1959
  result
1803
1960
  end
1804
1961
  .,.,
1805
1962
 
1806
- module_eval(<<'.,.,', 'parser.y', 260)
1963
+ module_eval(<<'.,.,', 'parser.y', 394)
1807
1964
  def _reduce_53(val, _values, result)
1808
- location = val[0].location + val[2].location
1965
+ location = (val[0].location + val[2].location).with_children(
1966
+ required: { name: val[0].location, colon: val[1].location },
1967
+ optional: { kind: nil }
1968
+ )
1969
+
1809
1970
  result = Members::InstanceVariable.new(
1810
1971
  name: val[0].value,
1811
1972
  type: val[2],
@@ -1817,7 +1978,7 @@ module_eval(<<'.,.,', 'parser.y', 260)
1817
1978
  end
1818
1979
  .,.,
1819
1980
 
1820
- module_eval(<<'.,.,', 'parser.y', 269)
1981
+ module_eval(<<'.,.,', 'parser.y', 407)
1821
1982
  def _reduce_54(val, _values, result)
1822
1983
  type = val[2]
1823
1984
 
@@ -1829,7 +1990,11 @@ module_eval(<<'.,.,', 'parser.y', 269)
1829
1990
  )
1830
1991
  end
1831
1992
 
1832
- location = val[0].location + val[2].location
1993
+ location = (val[0].location + val[2].location).with_children(
1994
+ required: { name: val[0].location, colon: val[1].location },
1995
+ optional: { kind: nil }
1996
+ )
1997
+
1833
1998
  result = Members::ClassVariable.new(
1834
1999
  name: val[0].value,
1835
2000
  type: type,
@@ -1841,7 +2006,7 @@ module_eval(<<'.,.,', 'parser.y', 269)
1841
2006
  end
1842
2007
  .,.,
1843
2008
 
1844
- module_eval(<<'.,.,', 'parser.y', 288)
2009
+ module_eval(<<'.,.,', 'parser.y', 430)
1845
2010
  def _reduce_55(val, _values, result)
1846
2011
  type = val[4]
1847
2012
 
@@ -1853,7 +2018,11 @@ module_eval(<<'.,.,', 'parser.y', 288)
1853
2018
  )
1854
2019
  end
1855
2020
 
1856
- location = val[0].location + val[4].location
2021
+ location = (val[0].location + val[4].location).with_children(
2022
+ required: { name: val[2].location, colon: val[3].location },
2023
+ optional: { kind: val[0].location + val[1].location }
2024
+ )
2025
+
1857
2026
  result = Members::ClassInstanceVariable.new(
1858
2027
  name: val[2].value,
1859
2028
  type: type,
@@ -1865,11 +2034,15 @@ module_eval(<<'.,.,', 'parser.y', 288)
1865
2034
  end
1866
2035
  .,.,
1867
2036
 
1868
- module_eval(<<'.,.,', 'parser.y', 309)
2037
+ module_eval(<<'.,.,', 'parser.y', 455)
1869
2038
  def _reduce_56(val, _values, result)
1870
2039
  reset_variable_scope
1871
2040
 
1872
2041
  location = val[1].location + val[6].location
2042
+ location = location.with_children(
2043
+ required: { keyword: val[1].location, name: val[3].location, end: val[6].location },
2044
+ optional: { type_params: val[4]&.location }
2045
+ )
1873
2046
  result = Declarations::Interface.new(
1874
2047
  name: val[3].value,
1875
2048
  type_params: val[4]&.value || Declarations::ModuleTypeParams.empty,
@@ -1883,14 +2056,14 @@ module_eval(<<'.,.,', 'parser.y', 309)
1883
2056
  end
1884
2057
  .,.,
1885
2058
 
1886
- module_eval(<<'.,.,', 'parser.y', 323)
2059
+ module_eval(<<'.,.,', 'parser.y', 473)
1887
2060
  def _reduce_57(val, _values, result)
1888
2061
  result = []
1889
2062
  result
1890
2063
  end
1891
2064
  .,.,
1892
2065
 
1893
- module_eval(<<'.,.,', 'parser.y', 325)
2066
+ module_eval(<<'.,.,', 'parser.y', 475)
1894
2067
  def _reduce_58(val, _values, result)
1895
2068
  result = val[0].push(val[1])
1896
2069
 
@@ -1898,7 +2071,7 @@ module_eval(<<'.,.,', 'parser.y', 325)
1898
2071
  end
1899
2072
  .,.,
1900
2073
 
1901
- module_eval(<<'.,.,', 'parser.y', 330)
2074
+ module_eval(<<'.,.,', 'parser.y', 480)
1902
2075
  def _reduce_59(val, _values, result)
1903
2076
  unless val[0].kind == :instance
1904
2077
  raise SemanticsError.new("Interface cannot have singleton method", subject: val[0], location: val[0].location)
@@ -1914,7 +2087,7 @@ module_eval(<<'.,.,', 'parser.y', 330)
1914
2087
  end
1915
2088
  .,.,
1916
2089
 
1917
- module_eval(<<'.,.,', 'parser.y', 341)
2090
+ module_eval(<<'.,.,', 'parser.y', 491)
1918
2091
  def _reduce_60(val, _values, result)
1919
2092
  unless val[0].name.interface?
1920
2093
  raise SemanticsError.new("Interface should include an interface", subject: val[0], location: val[0].location)
@@ -1928,12 +2101,17 @@ module_eval(<<'.,.,', 'parser.y', 341)
1928
2101
 
1929
2102
  # reduce 61 omitted
1930
2103
 
1931
- module_eval(<<'.,.,', 'parser.y', 351)
2104
+ module_eval(<<'.,.,', 'parser.y', 501)
1932
2105
  def _reduce_62(val, _values, result)
1933
2106
  if val[2].value.alias?
1934
2107
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1935
2108
  end
1936
- location = val[1].location + val[2].location
2109
+
2110
+ location = (val[1].location + val[2].location).with_children(
2111
+ required: { keyword: val[1].location, name: val[2].location },
2112
+ optional: { args: nil }
2113
+ )
2114
+
1937
2115
  result = Members::Include.new(name: val[2].value,
1938
2116
  args: [],
1939
2117
  annotations: val[0],
@@ -1944,12 +2122,17 @@ module_eval(<<'.,.,', 'parser.y', 351)
1944
2122
  end
1945
2123
  .,.,
1946
2124
 
1947
- module_eval(<<'.,.,', 'parser.y', 362)
2125
+ module_eval(<<'.,.,', 'parser.y', 517)
1948
2126
  def _reduce_63(val, _values, result)
1949
2127
  if val[2].value.alias?
1950
2128
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1951
2129
  end
1952
- location = val[1].location + val[5].location
2130
+
2131
+ location = (val[1].location + val[5].location).with_children(
2132
+ required: { keyword: val[1].location, name: val[2].location },
2133
+ optional: { args: val[3].location + val[5].location }
2134
+ )
2135
+
1953
2136
  result = Members::Include.new(name: val[2].value,
1954
2137
  args: val[4],
1955
2138
  annotations: val[0],
@@ -1960,12 +2143,17 @@ module_eval(<<'.,.,', 'parser.y', 362)
1960
2143
  end
1961
2144
  .,.,
1962
2145
 
1963
- module_eval(<<'.,.,', 'parser.y', 375)
2146
+ module_eval(<<'.,.,', 'parser.y', 535)
1964
2147
  def _reduce_64(val, _values, result)
1965
2148
  if val[2].value.alias?
1966
2149
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1967
2150
  end
1968
- location = val[1].location + val[2].location
2151
+
2152
+ location = (val[1].location + val[2].location).with_children(
2153
+ required: { keyword: val[1].location, name: val[2].location },
2154
+ optional: { args: nil }
2155
+ )
2156
+
1969
2157
  result = Members::Extend.new(name: val[2].value,
1970
2158
  args: [],
1971
2159
  annotations: val[0],
@@ -1976,12 +2164,17 @@ module_eval(<<'.,.,', 'parser.y', 375)
1976
2164
  end
1977
2165
  .,.,
1978
2166
 
1979
- module_eval(<<'.,.,', 'parser.y', 386)
2167
+ module_eval(<<'.,.,', 'parser.y', 551)
1980
2168
  def _reduce_65(val, _values, result)
1981
2169
  if val[2].value.alias?
1982
2170
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1983
2171
  end
1984
- location = val[1].location + val[5].location
2172
+
2173
+ location = (val[1].location + val[5].location).with_children(
2174
+ required: { keyword: val[1].location, name: val[2].location },
2175
+ optional: { args: val[3].location + val[5].location }
2176
+ )
2177
+
1985
2178
  result = Members::Extend.new(name: val[2].value,
1986
2179
  args: val[4],
1987
2180
  annotations: val[0],
@@ -1992,12 +2185,17 @@ module_eval(<<'.,.,', 'parser.y', 386)
1992
2185
  end
1993
2186
  .,.,
1994
2187
 
1995
- module_eval(<<'.,.,', 'parser.y', 399)
2188
+ module_eval(<<'.,.,', 'parser.y', 569)
1996
2189
  def _reduce_66(val, _values, result)
1997
2190
  unless val[2].value.class?
1998
2191
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
1999
2192
  end
2000
- location = val[1].location + val[2].location
2193
+
2194
+ location = (val[1].location + val[2].location).with_children(
2195
+ required: { keyword: val[1].location, name: val[2].location },
2196
+ optional: { args: nil }
2197
+ )
2198
+
2001
2199
  result = Members::Prepend.new(name: val[2].value,
2002
2200
  args: [],
2003
2201
  annotations: val[0],
@@ -2008,12 +2206,17 @@ module_eval(<<'.,.,', 'parser.y', 399)
2008
2206
  end
2009
2207
  .,.,
2010
2208
 
2011
- module_eval(<<'.,.,', 'parser.y', 410)
2209
+ module_eval(<<'.,.,', 'parser.y', 585)
2012
2210
  def _reduce_67(val, _values, result)
2013
2211
  unless val[2].value.class?
2014
2212
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
2015
2213
  end
2016
- location = val[1].location + val[5].location
2214
+
2215
+ location = (val[1].location + val[5].location).with_children(
2216
+ required: { keyword: val[1].location, name: val[2].location },
2217
+ optional: { args: val[3].location + val[5].location }
2218
+ )
2219
+
2017
2220
  result = Members::Prepend.new(name: val[2].value,
2018
2221
  args: val[4],
2019
2222
  annotations: val[0],
@@ -2024,14 +2227,14 @@ module_eval(<<'.,.,', 'parser.y', 410)
2024
2227
  end
2025
2228
  .,.,
2026
2229
 
2027
- module_eval(<<'.,.,', 'parser.y', 422)
2230
+ module_eval(<<'.,.,', 'parser.y', 602)
2028
2231
  def _reduce_68(val, _values, result)
2029
2232
  result = nil
2030
2233
  result
2031
2234
  end
2032
2235
  .,.,
2033
2236
 
2034
- module_eval(<<'.,.,', 'parser.y', 424)
2237
+ module_eval(<<'.,.,', 'parser.y', 604)
2035
2238
  def _reduce_69(val, _values, result)
2036
2239
  RBS.logger.warn "`overload def` syntax is deprecated. Use `...` syntax instead."
2037
2240
  result = val[0]
@@ -2040,13 +2243,24 @@ module_eval(<<'.,.,', 'parser.y', 424)
2040
2243
  end
2041
2244
  .,.,
2042
2245
 
2043
- module_eval(<<'.,.,', 'parser.y', 430)
2246
+ module_eval(<<'.,.,', 'parser.y', 610)
2044
2247
  def _reduce_70(val, _values, result)
2045
2248
  location = val[3].location + val[6].last.location
2046
2249
 
2250
+ required_children = { keyword: val[3].location, name: val[5].location }
2251
+ optional_children = { kind: nil, overload: nil }
2252
+
2253
+ if val[4]
2254
+ kind = val[4].value
2255
+ optional_children[:kind] = val[4].location
2256
+ else
2257
+ kind = :instance
2258
+ end
2259
+
2047
2260
  last_type = val[6].last
2048
2261
  if last_type.is_a?(LocatedValue) && last_type.value == :dot3
2049
2262
  overload = true
2263
+ optional_children[:overload] = last_type.location
2050
2264
  val[6].pop
2051
2265
  else
2052
2266
  overload = false
@@ -2054,10 +2268,10 @@ module_eval(<<'.,.,', 'parser.y', 430)
2054
2268
 
2055
2269
  result = Members::MethodDefinition.new(
2056
2270
  name: val[5].value,
2057
- kind: val[4],
2271
+ kind: kind,
2058
2272
  types: val[6],
2059
2273
  annotations: val[0],
2060
- location: location,
2274
+ location: location.with_children(required: required_children, optional: optional_children),
2061
2275
  comment: leading_comment(val[0].first&.location || val[2]&.location || val[3].location),
2062
2276
  overload: overload || !!val[2]
2063
2277
  )
@@ -2068,7 +2282,7 @@ module_eval(<<'.,.,', 'parser.y', 430)
2068
2282
 
2069
2283
  # reduce 71 omitted
2070
2284
 
2071
- module_eval(<<'.,.,', 'parser.y', 453)
2285
+ module_eval(<<'.,.,', 'parser.y', 644)
2072
2286
  def _reduce_72(val, _values, result)
2073
2287
  RBS.logger.warn "`incompatible` method attribute is deprecated and ignored."
2074
2288
 
@@ -2076,42 +2290,42 @@ module_eval(<<'.,.,', 'parser.y', 453)
2076
2290
  end
2077
2291
  .,.,
2078
2292
 
2079
- module_eval(<<'.,.,', 'parser.y', 457)
2293
+ module_eval(<<'.,.,', 'parser.y', 648)
2080
2294
  def _reduce_73(val, _values, result)
2081
- result = :instance
2295
+ result = nil
2082
2296
  result
2083
2297
  end
2084
2298
  .,.,
2085
2299
 
2086
- module_eval(<<'.,.,', 'parser.y', 458)
2300
+ module_eval(<<'.,.,', 'parser.y', 649)
2087
2301
  def _reduce_74(val, _values, result)
2088
- result = :singleton
2302
+ result = LocatedValue.new(value: :singleton, location: val[0].location + val[1].location)
2089
2303
  result
2090
2304
  end
2091
2305
  .,.,
2092
2306
 
2093
- module_eval(<<'.,.,', 'parser.y', 459)
2307
+ module_eval(<<'.,.,', 'parser.y', 650)
2094
2308
  def _reduce_75(val, _values, result)
2095
- result = :singleton_instance
2309
+ result = LocatedValue.new(value: :singleton_instance, location: val[0].location + val[1].location)
2096
2310
  result
2097
2311
  end
2098
2312
  .,.,
2099
2313
 
2100
- module_eval(<<'.,.,', 'parser.y', 462)
2314
+ module_eval(<<'.,.,', 'parser.y', 653)
2101
2315
  def _reduce_76(val, _values, result)
2102
2316
  result = [val[0]]
2103
2317
  result
2104
2318
  end
2105
2319
  .,.,
2106
2320
 
2107
- module_eval(<<'.,.,', 'parser.y', 463)
2321
+ module_eval(<<'.,.,', 'parser.y', 654)
2108
2322
  def _reduce_77(val, _values, result)
2109
2323
  result = [LocatedValue.new(value: :dot3, location: val[0].location)]
2110
2324
  result
2111
2325
  end
2112
2326
  .,.,
2113
2327
 
2114
- module_eval(<<'.,.,', 'parser.y', 465)
2328
+ module_eval(<<'.,.,', 'parser.y', 656)
2115
2329
  def _reduce_78(val, _values, result)
2116
2330
  result = val[2].unshift(val[0])
2117
2331
 
@@ -2119,7 +2333,7 @@ module_eval(<<'.,.,', 'parser.y', 465)
2119
2333
  end
2120
2334
  .,.,
2121
2335
 
2122
- module_eval(<<'.,.,', 'parser.y', 470)
2336
+ module_eval(<<'.,.,', 'parser.y', 661)
2123
2337
  def _reduce_79(val, _values, result)
2124
2338
  reset_variable_scope
2125
2339
 
@@ -2137,14 +2351,14 @@ module_eval(<<'.,.,', 'parser.y', 470)
2137
2351
  end
2138
2352
  .,.,
2139
2353
 
2140
- module_eval(<<'.,.,', 'parser.y', 484)
2354
+ module_eval(<<'.,.,', 'parser.y', 675)
2141
2355
  def _reduce_80(val, _values, result)
2142
2356
  result = nil
2143
2357
  result
2144
2358
  end
2145
2359
  .,.,
2146
2360
 
2147
- module_eval(<<'.,.,', 'parser.y', 486)
2361
+ module_eval(<<'.,.,', 'parser.y', 677)
2148
2362
  def _reduce_81(val, _values, result)
2149
2363
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
2150
2364
 
@@ -2152,7 +2366,7 @@ module_eval(<<'.,.,', 'parser.y', 486)
2152
2366
  end
2153
2367
  .,.,
2154
2368
 
2155
- module_eval(<<'.,.,', 'parser.y', 491)
2369
+ module_eval(<<'.,.,', 'parser.y', 682)
2156
2370
  def _reduce_82(val, _values, result)
2157
2371
  block = Types::Block.new(type: val[1].value, required: true)
2158
2372
  result = LocatedValue.new(value: block, location: val[0].location + val[2].location)
@@ -2161,7 +2375,7 @@ module_eval(<<'.,.,', 'parser.y', 491)
2161
2375
  end
2162
2376
  .,.,
2163
2377
 
2164
- module_eval(<<'.,.,', 'parser.y', 495)
2378
+ module_eval(<<'.,.,', 'parser.y', 686)
2165
2379
  def _reduce_83(val, _values, result)
2166
2380
  block = Types::Block.new(type: val[2].value, required: false)
2167
2381
  result = LocatedValue.new(value: block, location: val[0].location + val[3].location)
@@ -2170,9 +2384,20 @@ module_eval(<<'.,.,', 'parser.y', 495)
2170
2384
  end
2171
2385
  .,.,
2172
2386
 
2173
- # reduce 84 omitted
2387
+ module_eval(<<'.,.,', 'parser.y', 692)
2388
+ def _reduce_84(val, _values, result)
2389
+ loc = val[0].location
2174
2390
 
2175
- module_eval(<<'.,.,', 'parser.y', 502)
2391
+ result = LocatedValue.new(
2392
+ value: val[0].value,
2393
+ location: Location.new(buffer: loc.buffer, start_pos: loc.start_pos, end_pos: loc.end_pos - 1)
2394
+ )
2395
+
2396
+ result
2397
+ end
2398
+ .,.,
2399
+
2400
+ module_eval(<<'.,.,', 'parser.y', 700)
2176
2401
  def _reduce_85(val, _values, result)
2177
2402
  result = LocatedValue.new(value: val[0].value.to_sym,
2178
2403
  location: val[0].location + val[1].location)
@@ -2199,7 +2424,7 @@ module_eval(<<'.,.,', 'parser.y', 502)
2199
2424
 
2200
2425
  # reduce 94 omitted
2201
2426
 
2202
- module_eval(<<'.,.,', 'parser.y', 511)
2427
+ module_eval(<<'.,.,', 'parser.y', 709)
2203
2428
  def _reduce_95(val, _values, result)
2204
2429
  unless val[0].location.pred?(val[1].location)
2205
2430
  raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1])
@@ -2212,7 +2437,7 @@ module_eval(<<'.,.,', 'parser.y', 511)
2212
2437
  end
2213
2438
  .,.,
2214
2439
 
2215
- module_eval(<<'.,.,', 'parser.y', 519)
2440
+ module_eval(<<'.,.,', 'parser.y', 717)
2216
2441
  def _reduce_96(val, _values, result)
2217
2442
  unless val[0].location.pred?(val[1].location)
2218
2443
  raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1])
@@ -2305,14 +2530,14 @@ module_eval(<<'.,.,', 'parser.y', 519)
2305
2530
 
2306
2531
  # reduce 136 omitted
2307
2532
 
2308
- module_eval(<<'.,.,', 'parser.y', 539)
2533
+ module_eval(<<'.,.,', 'parser.y', 737)
2309
2534
  def _reduce_137(val, _values, result)
2310
2535
  result = nil
2311
2536
  result
2312
2537
  end
2313
2538
  .,.,
2314
2539
 
2315
- module_eval(<<'.,.,', 'parser.y', 541)
2540
+ module_eval(<<'.,.,', 'parser.y', 739)
2316
2541
  def _reduce_138(val, _values, result)
2317
2542
  val[1].each {|p| insert_bound_variable(p.name) }
2318
2543
 
@@ -2322,7 +2547,7 @@ module_eval(<<'.,.,', 'parser.y', 541)
2322
2547
  end
2323
2548
  .,.,
2324
2549
 
2325
- module_eval(<<'.,.,', 'parser.y', 548)
2550
+ module_eval(<<'.,.,', 'parser.y', 746)
2326
2551
  def _reduce_139(val, _values, result)
2327
2552
  result = Declarations::ModuleTypeParams.new()
2328
2553
  result.add(val[0])
@@ -2331,7 +2556,7 @@ module_eval(<<'.,.,', 'parser.y', 548)
2331
2556
  end
2332
2557
  .,.,
2333
2558
 
2334
- module_eval(<<'.,.,', 'parser.y', 552)
2559
+ module_eval(<<'.,.,', 'parser.y', 750)
2335
2560
  def _reduce_140(val, _values, result)
2336
2561
  result = val[0].add(val[2])
2337
2562
 
@@ -2339,59 +2564,74 @@ module_eval(<<'.,.,', 'parser.y', 552)
2339
2564
  end
2340
2565
  .,.,
2341
2566
 
2342
- module_eval(<<'.,.,', 'parser.y', 557)
2567
+ module_eval(<<'.,.,', 'parser.y', 755)
2343
2568
  def _reduce_141(val, _values, result)
2344
- result = Declarations::ModuleTypeParams::TypeParam.new(name: val[2].value.to_sym,
2345
- variance: val[1],
2346
- skip_validation: val[0])
2569
+ loc = case
2570
+ when l0 = val[0].location
2571
+ l0 + val[2].location
2572
+ when l1 = val[1].location
2573
+ l1 + val[2].location
2574
+ else
2575
+ val[2].location
2576
+ end
2577
+ loc = loc.with_children(
2578
+ required: { name: val[2].location },
2579
+ optional: { variance: val[1].location, unchecked: val[0].location }
2580
+ )
2581
+ result = Declarations::ModuleTypeParams::TypeParam.new(
2582
+ name: val[2].value.to_sym,
2583
+ variance: val[1].value,
2584
+ skip_validation: val[0].value,
2585
+ location: loc
2586
+ )
2347
2587
 
2348
2588
  result
2349
2589
  end
2350
2590
  .,.,
2351
2591
 
2352
- module_eval(<<'.,.,', 'parser.y', 563)
2592
+ module_eval(<<'.,.,', 'parser.y', 776)
2353
2593
  def _reduce_142(val, _values, result)
2354
- result = :invariant
2594
+ result = LocatedValue.new(value: :invariant, location: nil)
2355
2595
  result
2356
2596
  end
2357
2597
  .,.,
2358
2598
 
2359
- module_eval(<<'.,.,', 'parser.y', 564)
2599
+ module_eval(<<'.,.,', 'parser.y', 777)
2360
2600
  def _reduce_143(val, _values, result)
2361
- result = :covariant
2601
+ result = LocatedValue.new(value: :covariant, location: val[0].location)
2362
2602
  result
2363
2603
  end
2364
2604
  .,.,
2365
2605
 
2366
- module_eval(<<'.,.,', 'parser.y', 565)
2606
+ module_eval(<<'.,.,', 'parser.y', 778)
2367
2607
  def _reduce_144(val, _values, result)
2368
- result = :contravariant
2608
+ result = LocatedValue.new(value: :contravariant, location: val[0].location)
2369
2609
  result
2370
2610
  end
2371
2611
  .,.,
2372
2612
 
2373
- module_eval(<<'.,.,', 'parser.y', 568)
2613
+ module_eval(<<'.,.,', 'parser.y', 781)
2374
2614
  def _reduce_145(val, _values, result)
2375
- result = false
2615
+ result = LocatedValue.new(value: false, location: nil)
2376
2616
  result
2377
2617
  end
2378
2618
  .,.,
2379
2619
 
2380
- module_eval(<<'.,.,', 'parser.y', 569)
2620
+ module_eval(<<'.,.,', 'parser.y', 782)
2381
2621
  def _reduce_146(val, _values, result)
2382
- result = true
2622
+ result = LocatedValue.new(value: true, location: val[0].location)
2383
2623
  result
2384
2624
  end
2385
2625
  .,.,
2386
2626
 
2387
- module_eval(<<'.,.,', 'parser.y', 572)
2627
+ module_eval(<<'.,.,', 'parser.y', 785)
2388
2628
  def _reduce_147(val, _values, result)
2389
2629
  result = nil
2390
2630
  result
2391
2631
  end
2392
2632
  .,.,
2393
2633
 
2394
- module_eval(<<'.,.,', 'parser.y', 574)
2634
+ module_eval(<<'.,.,', 'parser.y', 787)
2395
2635
  def _reduce_148(val, _values, result)
2396
2636
  val[1].each {|var| insert_bound_variable(var) }
2397
2637
 
@@ -2402,7 +2642,7 @@ module_eval(<<'.,.,', 'parser.y', 574)
2402
2642
  end
2403
2643
  .,.,
2404
2644
 
2405
- module_eval(<<'.,.,', 'parser.y', 582)
2645
+ module_eval(<<'.,.,', 'parser.y', 795)
2406
2646
  def _reduce_149(val, _values, result)
2407
2647
  result = [val[0].value.to_sym]
2408
2648
 
@@ -2410,7 +2650,7 @@ module_eval(<<'.,.,', 'parser.y', 582)
2410
2650
  end
2411
2651
  .,.,
2412
2652
 
2413
- module_eval(<<'.,.,', 'parser.y', 585)
2653
+ module_eval(<<'.,.,', 'parser.y', 798)
2414
2654
  def _reduce_150(val, _values, result)
2415
2655
  result = val[0].push(val[2].value.to_sym)
2416
2656
 
@@ -2418,9 +2658,13 @@ module_eval(<<'.,.,', 'parser.y', 585)
2418
2658
  end
2419
2659
  .,.,
2420
2660
 
2421
- module_eval(<<'.,.,', 'parser.y', 590)
2661
+ module_eval(<<'.,.,', 'parser.y', 803)
2422
2662
  def _reduce_151(val, _values, result)
2423
2663
  location = val[1].location + val[3].location
2664
+ location = location.with_children(
2665
+ required: { keyword: val[1].location, new_name: val[2].location, old_name: val[3].location },
2666
+ optional: { new_kind: nil, old_kind: nil }
2667
+ )
2424
2668
  result = Members::Alias.new(
2425
2669
  new_name: val[2].value.to_sym,
2426
2670
  old_name: val[3].value.to_sym,
@@ -2434,9 +2678,16 @@ module_eval(<<'.,.,', 'parser.y', 590)
2434
2678
  end
2435
2679
  .,.,
2436
2680
 
2437
- module_eval(<<'.,.,', 'parser.y', 601)
2681
+ module_eval(<<'.,.,', 'parser.y', 818)
2438
2682
  def _reduce_152(val, _values, result)
2439
2683
  location = val[1].location + val[7].location
2684
+ location = location.with_children(
2685
+ required: { keyword: val[1].location, new_name: val[4].location, old_name: val[7].location },
2686
+ optional: {
2687
+ new_kind: val[2].location + val[3].location,
2688
+ old_kind: val[5].location + val[6].location
2689
+ }
2690
+ )
2440
2691
  result = Members::Alias.new(
2441
2692
  new_name: val[4].value.to_sym,
2442
2693
  old_name: val[7].value.to_sym,
@@ -2450,22 +2701,30 @@ module_eval(<<'.,.,', 'parser.y', 601)
2450
2701
  end
2451
2702
  .,.,
2452
2703
 
2453
- module_eval(<<'.,.,', 'parser.y', 614)
2704
+ module_eval(<<'.,.,', 'parser.y', 838)
2454
2705
  def _reduce_153(val, _values, result)
2455
2706
  location = val[1].location + val[4].location
2456
- result = Declarations::Alias.new(name: val[2].value,
2457
- type: val[4],
2458
- annotations: val[0],
2459
- location: location,
2460
- comment: leading_comment(val[0].first&.location || location))
2707
+ location = location.with_children(
2708
+ required: { keyword: val[1].location, name: val[2].location, eq: val[3].location }
2709
+ )
2710
+ result = Declarations::Alias.new(
2711
+ name: val[2].value,
2712
+ type: val[4],
2713
+ annotations: val[0],
2714
+ location: location,
2715
+ comment: leading_comment(val[0].first&.location || location)
2716
+ )
2461
2717
 
2462
2718
  result
2463
2719
  end
2464
2720
  .,.,
2465
2721
 
2466
- module_eval(<<'.,.,', 'parser.y', 624)
2722
+ module_eval(<<'.,.,', 'parser.y', 853)
2467
2723
  def _reduce_154(val, _values, result)
2468
2724
  location = val[0].location + val[2].location
2725
+ location = location.with_children(
2726
+ required: { name: val[0].location, colon: val[1].location }
2727
+ )
2469
2728
  result = Declarations::Constant.new(name: val[0].value,
2470
2729
  type: val[2],
2471
2730
  location: location,
@@ -2475,9 +2734,16 @@ module_eval(<<'.,.,', 'parser.y', 624)
2475
2734
  end
2476
2735
  .,.,
2477
2736
 
2478
- module_eval(<<'.,.,', 'parser.y', 631)
2737
+ module_eval(<<'.,.,', 'parser.y', 863)
2479
2738
  def _reduce_155(val, _values, result)
2480
2739
  location = (val[0] || val[1]).location + val[2].location
2740
+
2741
+ lhs_loc = (val[0] || val[1]).location + val[1].location
2742
+ name_loc, colon_loc = split_kw_loc(lhs_loc)
2743
+ location = location.with_children(
2744
+ required: { name: name_loc, colon: colon_loc }
2745
+ )
2746
+
2481
2747
  name = TypeName.new(name: val[1].value, namespace: val[0]&.value || Namespace.empty)
2482
2748
  result = Declarations::Constant.new(name: name,
2483
2749
  type: val[2],
@@ -2488,9 +2754,12 @@ module_eval(<<'.,.,', 'parser.y', 631)
2488
2754
  end
2489
2755
  .,.,
2490
2756
 
2491
- module_eval(<<'.,.,', 'parser.y', 641)
2757
+ module_eval(<<'.,.,', 'parser.y', 880)
2492
2758
  def _reduce_156(val, _values, result)
2493
2759
  location = val[0].location + val[2].location
2760
+ location = location.with_children(
2761
+ required: { name: val[0].location, colon: val[1].location }
2762
+ )
2494
2763
  result = Declarations::Global.new(name: val[0].value.to_sym,
2495
2764
  type: val[2],
2496
2765
  location: location,
@@ -2502,7 +2771,7 @@ module_eval(<<'.,.,', 'parser.y', 641)
2502
2771
 
2503
2772
  # reduce 157 omitted
2504
2773
 
2505
- module_eval(<<'.,.,', 'parser.y', 651)
2774
+ module_eval(<<'.,.,', 'parser.y', 893)
2506
2775
  def _reduce_158(val, _values, result)
2507
2776
  types = case l = val[0]
2508
2777
  when Types::Union
@@ -2517,7 +2786,7 @@ module_eval(<<'.,.,', 'parser.y', 651)
2517
2786
  end
2518
2787
  .,.,
2519
2788
 
2520
- module_eval(<<'.,.,', 'parser.y', 661)
2789
+ module_eval(<<'.,.,', 'parser.y', 903)
2521
2790
  def _reduce_159(val, _values, result)
2522
2791
  types = case l = val[0]
2523
2792
  when Types::Intersection
@@ -2533,7 +2802,7 @@ module_eval(<<'.,.,', 'parser.y', 661)
2533
2802
  end
2534
2803
  .,.,
2535
2804
 
2536
- module_eval(<<'.,.,', 'parser.y', 674)
2805
+ module_eval(<<'.,.,', 'parser.y', 916)
2537
2806
  def _reduce_160(val, _values, result)
2538
2807
  result = Types::Bases::Void.new(location: val[0].location)
2539
2808
 
@@ -2541,7 +2810,7 @@ module_eval(<<'.,.,', 'parser.y', 674)
2541
2810
  end
2542
2811
  .,.,
2543
2812
 
2544
- module_eval(<<'.,.,', 'parser.y', 677)
2813
+ module_eval(<<'.,.,', 'parser.y', 919)
2545
2814
  def _reduce_161(val, _values, result)
2546
2815
  RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})"
2547
2816
  result = Types::Bases::Any.new(location: val[0].location)
@@ -2550,7 +2819,7 @@ module_eval(<<'.,.,', 'parser.y', 677)
2550
2819
  end
2551
2820
  .,.,
2552
2821
 
2553
- module_eval(<<'.,.,', 'parser.y', 681)
2822
+ module_eval(<<'.,.,', 'parser.y', 923)
2554
2823
  def _reduce_162(val, _values, result)
2555
2824
  result = Types::Bases::Any.new(location: val[0].location)
2556
2825
 
@@ -2558,7 +2827,7 @@ module_eval(<<'.,.,', 'parser.y', 681)
2558
2827
  end
2559
2828
  .,.,
2560
2829
 
2561
- module_eval(<<'.,.,', 'parser.y', 684)
2830
+ module_eval(<<'.,.,', 'parser.y', 926)
2562
2831
  def _reduce_163(val, _values, result)
2563
2832
  result = Types::Bases::Bool.new(location: val[0].location)
2564
2833
 
@@ -2566,7 +2835,7 @@ module_eval(<<'.,.,', 'parser.y', 684)
2566
2835
  end
2567
2836
  .,.,
2568
2837
 
2569
- module_eval(<<'.,.,', 'parser.y', 687)
2838
+ module_eval(<<'.,.,', 'parser.y', 929)
2570
2839
  def _reduce_164(val, _values, result)
2571
2840
  result = Types::Bases::Nil.new(location: val[0].location)
2572
2841
 
@@ -2574,7 +2843,7 @@ module_eval(<<'.,.,', 'parser.y', 687)
2574
2843
  end
2575
2844
  .,.,
2576
2845
 
2577
- module_eval(<<'.,.,', 'parser.y', 690)
2846
+ module_eval(<<'.,.,', 'parser.y', 932)
2578
2847
  def _reduce_165(val, _values, result)
2579
2848
  result = Types::Bases::Top.new(location: val[0].location)
2580
2849
 
@@ -2582,7 +2851,7 @@ module_eval(<<'.,.,', 'parser.y', 690)
2582
2851
  end
2583
2852
  .,.,
2584
2853
 
2585
- module_eval(<<'.,.,', 'parser.y', 693)
2854
+ module_eval(<<'.,.,', 'parser.y', 935)
2586
2855
  def _reduce_166(val, _values, result)
2587
2856
  result = Types::Bases::Bottom.new(location: val[0].location)
2588
2857
 
@@ -2590,7 +2859,7 @@ module_eval(<<'.,.,', 'parser.y', 693)
2590
2859
  end
2591
2860
  .,.,
2592
2861
 
2593
- module_eval(<<'.,.,', 'parser.y', 696)
2862
+ module_eval(<<'.,.,', 'parser.y', 938)
2594
2863
  def _reduce_167(val, _values, result)
2595
2864
  result = Types::Bases::Self.new(location: val[0].location)
2596
2865
 
@@ -2598,7 +2867,7 @@ module_eval(<<'.,.,', 'parser.y', 696)
2598
2867
  end
2599
2868
  .,.,
2600
2869
 
2601
- module_eval(<<'.,.,', 'parser.y', 699)
2870
+ module_eval(<<'.,.,', 'parser.y', 941)
2602
2871
  def _reduce_168(val, _values, result)
2603
2872
  result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location),
2604
2873
  location: val[0].location)
@@ -2607,7 +2876,7 @@ module_eval(<<'.,.,', 'parser.y', 699)
2607
2876
  end
2608
2877
  .,.,
2609
2878
 
2610
- module_eval(<<'.,.,', 'parser.y', 703)
2879
+ module_eval(<<'.,.,', 'parser.y', 945)
2611
2880
  def _reduce_169(val, _values, result)
2612
2881
  result = Types::Bases::Instance.new(location: val[0].location)
2613
2882
 
@@ -2615,7 +2884,7 @@ module_eval(<<'.,.,', 'parser.y', 703)
2615
2884
  end
2616
2885
  .,.,
2617
2886
 
2618
- module_eval(<<'.,.,', 'parser.y', 706)
2887
+ module_eval(<<'.,.,', 'parser.y', 948)
2619
2888
  def _reduce_170(val, _values, result)
2620
2889
  result = Types::Bases::Class.new(location: val[0].location)
2621
2890
 
@@ -2623,7 +2892,7 @@ module_eval(<<'.,.,', 'parser.y', 706)
2623
2892
  end
2624
2893
  .,.,
2625
2894
 
2626
- module_eval(<<'.,.,', 'parser.y', 709)
2895
+ module_eval(<<'.,.,', 'parser.y', 951)
2627
2896
  def _reduce_171(val, _values, result)
2628
2897
  result = Types::Literal.new(literal: true, location: val[0].location)
2629
2898
 
@@ -2631,7 +2900,7 @@ module_eval(<<'.,.,', 'parser.y', 709)
2631
2900
  end
2632
2901
  .,.,
2633
2902
 
2634
- module_eval(<<'.,.,', 'parser.y', 712)
2903
+ module_eval(<<'.,.,', 'parser.y', 954)
2635
2904
  def _reduce_172(val, _values, result)
2636
2905
  result = Types::Literal.new(literal: false, location: val[0].location)
2637
2906
 
@@ -2639,7 +2908,7 @@ module_eval(<<'.,.,', 'parser.y', 712)
2639
2908
  end
2640
2909
  .,.,
2641
2910
 
2642
- module_eval(<<'.,.,', 'parser.y', 715)
2911
+ module_eval(<<'.,.,', 'parser.y', 957)
2643
2912
  def _reduce_173(val, _values, result)
2644
2913
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2645
2914
 
@@ -2647,7 +2916,7 @@ module_eval(<<'.,.,', 'parser.y', 715)
2647
2916
  end
2648
2917
  .,.,
2649
2918
 
2650
- module_eval(<<'.,.,', 'parser.y', 718)
2919
+ module_eval(<<'.,.,', 'parser.y', 960)
2651
2920
  def _reduce_174(val, _values, result)
2652
2921
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2653
2922
 
@@ -2655,7 +2924,7 @@ module_eval(<<'.,.,', 'parser.y', 718)
2655
2924
  end
2656
2925
  .,.,
2657
2926
 
2658
- module_eval(<<'.,.,', 'parser.y', 721)
2927
+ module_eval(<<'.,.,', 'parser.y', 963)
2659
2928
  def _reduce_175(val, _values, result)
2660
2929
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2661
2930
 
@@ -2663,7 +2932,7 @@ module_eval(<<'.,.,', 'parser.y', 721)
2663
2932
  end
2664
2933
  .,.,
2665
2934
 
2666
- module_eval(<<'.,.,', 'parser.y', 724)
2935
+ module_eval(<<'.,.,', 'parser.y', 966)
2667
2936
  def _reduce_176(val, _values, result)
2668
2937
  name = val[0].value
2669
2938
  args = []
@@ -2674,11 +2943,23 @@ module_eval(<<'.,.,', 'parser.y', 724)
2674
2943
  if is_bound_variable?(name.name)
2675
2944
  result = Types::Variable.new(name: name.name, location: location)
2676
2945
  else
2946
+ location = location.with_children(
2947
+ required: { name: val[0].location },
2948
+ optional: { args: nil }
2949
+ )
2677
2950
  result = Types::ClassInstance.new(name: name, args: args, location: location)
2678
2951
  end
2679
2952
  when name.alias?
2953
+ location = location.with_children(
2954
+ required: { name: val[0].location },
2955
+ optional: { args: nil }
2956
+ )
2680
2957
  result = Types::Alias.new(name: name, location: location)
2681
2958
  when name.interface?
2959
+ location = location.with_children(
2960
+ required: { name: val[0].location },
2961
+ optional: { args: nil }
2962
+ )
2682
2963
  result = Types::Interface.new(name: name, args: args, location: location)
2683
2964
  end
2684
2965
 
@@ -2686,7 +2967,7 @@ module_eval(<<'.,.,', 'parser.y', 724)
2686
2967
  end
2687
2968
  .,.,
2688
2969
 
2689
- module_eval(<<'.,.,', 'parser.y', 742)
2970
+ module_eval(<<'.,.,', 'parser.y', 996)
2690
2971
  def _reduce_177(val, _values, result)
2691
2972
  name = val[0].value
2692
2973
  args = val[2]
@@ -2697,8 +2978,16 @@ module_eval(<<'.,.,', 'parser.y', 742)
2697
2978
  if is_bound_variable?(name.name)
2698
2979
  raise SemanticsError.new("#{name.name} is type variable and cannot be applied", subject: name, location: location)
2699
2980
  end
2981
+ location = location.with_children(
2982
+ required: { name: val[0].location },
2983
+ optional: { args: val[1].location + val[3].location }
2984
+ )
2700
2985
  result = Types::ClassInstance.new(name: name, args: args, location: location)
2701
2986
  when name.interface?
2987
+ location = location.with_children(
2988
+ required: { name: val[0].location },
2989
+ optional: { args: val[1].location + val[3].location }
2990
+ )
2702
2991
  result = Types::Interface.new(name: name, args: args, location: location)
2703
2992
  else
2704
2993
  raise SyntaxError.new(token_str: "kLBRACKET", error_value: val[1])
@@ -2708,7 +2997,7 @@ module_eval(<<'.,.,', 'parser.y', 742)
2708
2997
  end
2709
2998
  .,.,
2710
2999
 
2711
- module_eval(<<'.,.,', 'parser.y', 759)
3000
+ module_eval(<<'.,.,', 'parser.y', 1021)
2712
3001
  def _reduce_178(val, _values, result)
2713
3002
  location = val[0].location + val[1].location
2714
3003
  result = Types::Tuple.new(types: [], location: location)
@@ -2717,7 +3006,7 @@ module_eval(<<'.,.,', 'parser.y', 759)
2717
3006
  end
2718
3007
  .,.,
2719
3008
 
2720
- module_eval(<<'.,.,', 'parser.y', 763)
3009
+ module_eval(<<'.,.,', 'parser.y', 1025)
2721
3010
  def _reduce_179(val, _values, result)
2722
3011
  location = val[0].location + val[3].location
2723
3012
  types = val[1]
@@ -2727,7 +3016,7 @@ module_eval(<<'.,.,', 'parser.y', 763)
2727
3016
  end
2728
3017
  .,.,
2729
3018
 
2730
- module_eval(<<'.,.,', 'parser.y', 768)
3019
+ module_eval(<<'.,.,', 'parser.y', 1030)
2731
3020
  def _reduce_180(val, _values, result)
2732
3021
  type = val[1].dup
2733
3022
  type.instance_eval do
@@ -2739,16 +3028,19 @@ module_eval(<<'.,.,', 'parser.y', 768)
2739
3028
  end
2740
3029
  .,.,
2741
3030
 
2742
- module_eval(<<'.,.,', 'parser.y', 775)
3031
+ module_eval(<<'.,.,', 'parser.y', 1037)
2743
3032
  def _reduce_181(val, _values, result)
2744
- result = Types::ClassSingleton.new(name: val[2].value,
2745
- location: val[0].location + val[3].location)
3033
+ location = val[0].location + val[3].location
3034
+ location = location.with_children(
3035
+ required: { name: val[2].location }
3036
+ )
3037
+ result = Types::ClassSingleton.new(name: val[2].value, location: location)
2746
3038
 
2747
3039
  result
2748
3040
  end
2749
3041
  .,.,
2750
3042
 
2751
- module_eval(<<'.,.,', 'parser.y', 779)
3043
+ module_eval(<<'.,.,', 'parser.y', 1044)
2752
3044
  def _reduce_182(val, _values, result)
2753
3045
  type, block = val[1].value
2754
3046
  result = Types::Proc.new(type: type, block: block, location: val[0].location + val[1].location)
@@ -2757,7 +3049,7 @@ module_eval(<<'.,.,', 'parser.y', 779)
2757
3049
  end
2758
3050
  .,.,
2759
3051
 
2760
- module_eval(<<'.,.,', 'parser.y', 783)
3052
+ module_eval(<<'.,.,', 'parser.y', 1048)
2761
3053
  def _reduce_183(val, _values, result)
2762
3054
  result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location)
2763
3055
 
@@ -2767,7 +3059,7 @@ module_eval(<<'.,.,', 'parser.y', 783)
2767
3059
 
2768
3060
  # reduce 184 omitted
2769
3061
 
2770
- module_eval(<<'.,.,', 'parser.y', 789)
3062
+ module_eval(<<'.,.,', 'parser.y', 1054)
2771
3063
  def _reduce_185(val, _values, result)
2772
3064
  result = [val[0]]
2773
3065
 
@@ -2775,7 +3067,7 @@ module_eval(<<'.,.,', 'parser.y', 789)
2775
3067
  end
2776
3068
  .,.,
2777
3069
 
2778
- module_eval(<<'.,.,', 'parser.y', 792)
3070
+ module_eval(<<'.,.,', 'parser.y', 1057)
2779
3071
  def _reduce_186(val, _values, result)
2780
3072
  result = val[0] + [val[2]]
2781
3073
 
@@ -2783,7 +3075,7 @@ module_eval(<<'.,.,', 'parser.y', 792)
2783
3075
  end
2784
3076
  .,.,
2785
3077
 
2786
- module_eval(<<'.,.,', 'parser.y', 797)
3078
+ module_eval(<<'.,.,', 'parser.y', 1062)
2787
3079
  def _reduce_187(val, _values, result)
2788
3080
  result = Types::Record.new(
2789
3081
  fields: val[1],
@@ -2794,7 +3086,7 @@ module_eval(<<'.,.,', 'parser.y', 797)
2794
3086
  end
2795
3087
  .,.,
2796
3088
 
2797
- module_eval(<<'.,.,', 'parser.y', 805)
3089
+ module_eval(<<'.,.,', 'parser.y', 1070)
2798
3090
  def _reduce_188(val, _values, result)
2799
3091
  result = val[0]
2800
3092
 
@@ -2802,7 +3094,7 @@ module_eval(<<'.,.,', 'parser.y', 805)
2802
3094
  end
2803
3095
  .,.,
2804
3096
 
2805
- module_eval(<<'.,.,', 'parser.y', 808)
3097
+ module_eval(<<'.,.,', 'parser.y', 1073)
2806
3098
  def _reduce_189(val, _values, result)
2807
3099
  result = val[0].merge!(val[2])
2808
3100
 
@@ -2810,7 +3102,7 @@ module_eval(<<'.,.,', 'parser.y', 808)
2810
3102
  end
2811
3103
  .,.,
2812
3104
 
2813
- module_eval(<<'.,.,', 'parser.y', 813)
3105
+ module_eval(<<'.,.,', 'parser.y', 1078)
2814
3106
  def _reduce_190(val, _values, result)
2815
3107
  result = { val[0].value => val[2] }
2816
3108
 
@@ -2818,7 +3110,7 @@ module_eval(<<'.,.,', 'parser.y', 813)
2818
3110
  end
2819
3111
  .,.,
2820
3112
 
2821
- module_eval(<<'.,.,', 'parser.y', 816)
3113
+ module_eval(<<'.,.,', 'parser.y', 1081)
2822
3114
  def _reduce_191(val, _values, result)
2823
3115
  result = { val[0].value => val[2] }
2824
3116
 
@@ -2826,7 +3118,7 @@ module_eval(<<'.,.,', 'parser.y', 816)
2826
3118
  end
2827
3119
  .,.,
2828
3120
 
2829
- module_eval(<<'.,.,', 'parser.y', 819)
3121
+ module_eval(<<'.,.,', 'parser.y', 1084)
2830
3122
  def _reduce_192(val, _values, result)
2831
3123
  result = { val[0].value => val[2] }
2832
3124
 
@@ -2834,7 +3126,7 @@ module_eval(<<'.,.,', 'parser.y', 819)
2834
3126
  end
2835
3127
  .,.,
2836
3128
 
2837
- module_eval(<<'.,.,', 'parser.y', 822)
3129
+ module_eval(<<'.,.,', 'parser.y', 1087)
2838
3130
  def _reduce_193(val, _values, result)
2839
3131
  result = { val[0].value => val[1] }
2840
3132
 
@@ -2842,7 +3134,7 @@ module_eval(<<'.,.,', 'parser.y', 822)
2842
3134
  end
2843
3135
  .,.,
2844
3136
 
2845
- module_eval(<<'.,.,', 'parser.y', 825)
3137
+ module_eval(<<'.,.,', 'parser.y', 1090)
2846
3138
  def _reduce_194(val, _values, result)
2847
3139
  result = { val[0].value => val[2] }
2848
3140
 
@@ -2850,7 +3142,7 @@ module_eval(<<'.,.,', 'parser.y', 825)
2850
3142
  end
2851
3143
  .,.,
2852
3144
 
2853
- module_eval(<<'.,.,', 'parser.y', 828)
3145
+ module_eval(<<'.,.,', 'parser.y', 1093)
2854
3146
  def _reduce_195(val, _values, result)
2855
3147
  result = { val[0].value => val[2] }
2856
3148
 
@@ -2858,7 +3150,7 @@ module_eval(<<'.,.,', 'parser.y', 828)
2858
3150
  end
2859
3151
  .,.,
2860
3152
 
2861
- module_eval(<<'.,.,', 'parser.y', 831)
3153
+ module_eval(<<'.,.,', 'parser.y', 1096)
2862
3154
  def _reduce_196(val, _values, result)
2863
3155
  result = { val[0].value => val[2] }
2864
3156
 
@@ -2868,7 +3160,7 @@ module_eval(<<'.,.,', 'parser.y', 831)
2868
3160
 
2869
3161
  # reduce 197 omitted
2870
3162
 
2871
- module_eval(<<'.,.,', 'parser.y', 837)
3163
+ module_eval(<<'.,.,', 'parser.y', 1102)
2872
3164
  def _reduce_198(val, _values, result)
2873
3165
  result = val[0]
2874
3166
 
@@ -2884,7 +3176,7 @@ module_eval(<<'.,.,', 'parser.y', 837)
2884
3176
 
2885
3177
  # reduce 202 omitted
2886
3178
 
2887
- module_eval(<<'.,.,', 'parser.y', 844)
3179
+ module_eval(<<'.,.,', 'parser.y', 1109)
2888
3180
  def _reduce_203(val, _values, result)
2889
3181
  location = (val[0] || val[1] || val[2]).location + val[3].location
2890
3182
 
@@ -2909,7 +3201,7 @@ module_eval(<<'.,.,', 'parser.y', 844)
2909
3201
  end
2910
3202
  .,.,
2911
3203
 
2912
- module_eval(<<'.,.,', 'parser.y', 864)
3204
+ module_eval(<<'.,.,', 'parser.y', 1129)
2913
3205
  def _reduce_204(val, _values, result)
2914
3206
  result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location)
2915
3207
 
@@ -2917,7 +3209,7 @@ module_eval(<<'.,.,', 'parser.y', 864)
2917
3209
  end
2918
3210
  .,.,
2919
3211
 
2920
- module_eval(<<'.,.,', 'parser.y', 869)
3212
+ module_eval(<<'.,.,', 'parser.y', 1134)
2921
3213
  def _reduce_205(val, _values, result)
2922
3214
  location = val[0].location + val[4].location
2923
3215
  type = Types::Function.new(
@@ -2937,7 +3229,7 @@ module_eval(<<'.,.,', 'parser.y', 869)
2937
3229
  end
2938
3230
  .,.,
2939
3231
 
2940
- module_eval(<<'.,.,', 'parser.y', 884)
3232
+ module_eval(<<'.,.,', 'parser.y', 1149)
2941
3233
  def _reduce_206(val, _values, result)
2942
3234
  location = val[0].location + val[1].location
2943
3235
  type = Types::Function.new(
@@ -2957,7 +3249,7 @@ module_eval(<<'.,.,', 'parser.y', 884)
2957
3249
  end
2958
3250
  .,.,
2959
3251
 
2960
- module_eval(<<'.,.,', 'parser.y', 901)
3252
+ module_eval(<<'.,.,', 'parser.y', 1166)
2961
3253
  def _reduce_207(val, _values, result)
2962
3254
  result = val[2]
2963
3255
  result[0].unshift(val[0])
@@ -2966,7 +3258,7 @@ module_eval(<<'.,.,', 'parser.y', 901)
2966
3258
  end
2967
3259
  .,.,
2968
3260
 
2969
- module_eval(<<'.,.,', 'parser.y', 905)
3261
+ module_eval(<<'.,.,', 'parser.y', 1170)
2970
3262
  def _reduce_208(val, _values, result)
2971
3263
  result = empty_params_result
2972
3264
  result[0].unshift(val[0])
@@ -2977,7 +3269,7 @@ module_eval(<<'.,.,', 'parser.y', 905)
2977
3269
 
2978
3270
  # reduce 209 omitted
2979
3271
 
2980
- module_eval(<<'.,.,', 'parser.y', 912)
3272
+ module_eval(<<'.,.,', 'parser.y', 1177)
2981
3273
  def _reduce_210(val, _values, result)
2982
3274
  result = val[2]
2983
3275
  result[1].unshift(val[0])
@@ -2986,7 +3278,7 @@ module_eval(<<'.,.,', 'parser.y', 912)
2986
3278
  end
2987
3279
  .,.,
2988
3280
 
2989
- module_eval(<<'.,.,', 'parser.y', 916)
3281
+ module_eval(<<'.,.,', 'parser.y', 1181)
2990
3282
  def _reduce_211(val, _values, result)
2991
3283
  result = empty_params_result
2992
3284
  result[1].unshift(val[0])
@@ -2997,7 +3289,7 @@ module_eval(<<'.,.,', 'parser.y', 916)
2997
3289
 
2998
3290
  # reduce 212 omitted
2999
3291
 
3000
- module_eval(<<'.,.,', 'parser.y', 923)
3292
+ module_eval(<<'.,.,', 'parser.y', 1188)
3001
3293
  def _reduce_213(val, _values, result)
3002
3294
  result = val[2]
3003
3295
  result[2] = val[0]
@@ -3006,7 +3298,7 @@ module_eval(<<'.,.,', 'parser.y', 923)
3006
3298
  end
3007
3299
  .,.,
3008
3300
 
3009
- module_eval(<<'.,.,', 'parser.y', 927)
3301
+ module_eval(<<'.,.,', 'parser.y', 1192)
3010
3302
  def _reduce_214(val, _values, result)
3011
3303
  result = empty_params_result
3012
3304
  result[2] = val[0]
@@ -3017,7 +3309,7 @@ module_eval(<<'.,.,', 'parser.y', 927)
3017
3309
 
3018
3310
  # reduce 215 omitted
3019
3311
 
3020
- module_eval(<<'.,.,', 'parser.y', 934)
3312
+ module_eval(<<'.,.,', 'parser.y', 1199)
3021
3313
  def _reduce_216(val, _values, result)
3022
3314
  result = val[2]
3023
3315
  result[3].unshift(val[0])
@@ -3026,7 +3318,7 @@ module_eval(<<'.,.,', 'parser.y', 934)
3026
3318
  end
3027
3319
  .,.,
3028
3320
 
3029
- module_eval(<<'.,.,', 'parser.y', 938)
3321
+ module_eval(<<'.,.,', 'parser.y', 1203)
3030
3322
  def _reduce_217(val, _values, result)
3031
3323
  result = empty_params_result
3032
3324
  result[3].unshift(val[0])
@@ -3037,7 +3329,7 @@ module_eval(<<'.,.,', 'parser.y', 938)
3037
3329
 
3038
3330
  # reduce 218 omitted
3039
3331
 
3040
- module_eval(<<'.,.,', 'parser.y', 945)
3332
+ module_eval(<<'.,.,', 'parser.y', 1210)
3041
3333
  def _reduce_219(val, _values, result)
3042
3334
  result = empty_params_result
3043
3335
 
@@ -3045,7 +3337,7 @@ module_eval(<<'.,.,', 'parser.y', 945)
3045
3337
  end
3046
3338
  .,.,
3047
3339
 
3048
- module_eval(<<'.,.,', 'parser.y', 948)
3340
+ module_eval(<<'.,.,', 'parser.y', 1213)
3049
3341
  def _reduce_220(val, _values, result)
3050
3342
  result = val[2]
3051
3343
  result[4].merge!(val[0])
@@ -3054,7 +3346,7 @@ module_eval(<<'.,.,', 'parser.y', 948)
3054
3346
  end
3055
3347
  .,.,
3056
3348
 
3057
- module_eval(<<'.,.,', 'parser.y', 952)
3349
+ module_eval(<<'.,.,', 'parser.y', 1217)
3058
3350
  def _reduce_221(val, _values, result)
3059
3351
  result = empty_params_result
3060
3352
  result[4].merge!(val[0])
@@ -3063,7 +3355,7 @@ module_eval(<<'.,.,', 'parser.y', 952)
3063
3355
  end
3064
3356
  .,.,
3065
3357
 
3066
- module_eval(<<'.,.,', 'parser.y', 956)
3358
+ module_eval(<<'.,.,', 'parser.y', 1221)
3067
3359
  def _reduce_222(val, _values, result)
3068
3360
  result = val[2]
3069
3361
  result[5].merge!(val[0])
@@ -3072,7 +3364,7 @@ module_eval(<<'.,.,', 'parser.y', 956)
3072
3364
  end
3073
3365
  .,.,
3074
3366
 
3075
- module_eval(<<'.,.,', 'parser.y', 960)
3367
+ module_eval(<<'.,.,', 'parser.y', 1225)
3076
3368
  def _reduce_223(val, _values, result)
3077
3369
  result = empty_params_result
3078
3370
  result[5].merge!(val[0])
@@ -3081,7 +3373,7 @@ module_eval(<<'.,.,', 'parser.y', 960)
3081
3373
  end
3082
3374
  .,.,
3083
3375
 
3084
- module_eval(<<'.,.,', 'parser.y', 964)
3376
+ module_eval(<<'.,.,', 'parser.y', 1229)
3085
3377
  def _reduce_224(val, _values, result)
3086
3378
  result = empty_params_result
3087
3379
  result[6] = val[0]
@@ -3090,57 +3382,114 @@ module_eval(<<'.,.,', 'parser.y', 964)
3090
3382
  end
3091
3383
  .,.,
3092
3384
 
3093
- module_eval(<<'.,.,', 'parser.y', 970)
3385
+ module_eval(<<'.,.,', 'parser.y', 1235)
3094
3386
  def _reduce_225(val, _values, result)
3095
- result = Types::Function::Param.new(type: val[0],
3096
- name: val[1]&.value&.to_sym)
3387
+ loc = val[0].location
3388
+ if var_name = val[1]
3389
+ loc = loc + var_name.location
3390
+ end
3391
+ loc = loc.with_children(optional: { name: var_name&.location })
3392
+
3393
+ result = Types::Function::Param.new(
3394
+ type: val[0],
3395
+ name: var_name&.value&.to_sym,
3396
+ location: loc
3397
+ )
3097
3398
 
3098
3399
  result
3099
3400
  end
3100
3401
  .,.,
3101
3402
 
3102
- module_eval(<<'.,.,', 'parser.y', 976)
3403
+ module_eval(<<'.,.,', 'parser.y', 1250)
3103
3404
  def _reduce_226(val, _values, result)
3104
- result = Types::Function::Param.new(type: val[1],
3105
- name: val[2]&.value&.to_sym)
3405
+ loc = val[0].location + val[1].location
3406
+ if var_name = val[2]
3407
+ loc = loc + var_name.location
3408
+ end
3409
+ loc = loc.with_children(optional: { name: var_name&.location })
3410
+
3411
+ result = Types::Function::Param.new(
3412
+ type: val[1],
3413
+ name: val[2]&.value&.to_sym,
3414
+ location: loc
3415
+ )
3106
3416
 
3107
3417
  result
3108
3418
  end
3109
3419
  .,.,
3110
3420
 
3111
- module_eval(<<'.,.,', 'parser.y', 982)
3421
+ module_eval(<<'.,.,', 'parser.y', 1265)
3112
3422
  def _reduce_227(val, _values, result)
3113
- result = Types::Function::Param.new(type: val[1],
3114
- name: val[2]&.value&.to_sym)
3423
+ loc = val[0].location + val[1].location
3424
+ if var_name = val[2]
3425
+ loc = loc + var_name.location
3426
+ end
3427
+ loc = loc.with_children(optional: { name: var_name&.location })
3428
+
3429
+ result = Types::Function::Param.new(
3430
+ type: val[1],
3431
+ name: val[2]&.value&.to_sym,
3432
+ location: loc
3433
+ )
3115
3434
 
3116
3435
  result
3117
3436
  end
3118
3437
  .,.,
3119
3438
 
3120
- module_eval(<<'.,.,', 'parser.y', 988)
3439
+ module_eval(<<'.,.,', 'parser.y', 1280)
3121
3440
  def _reduce_228(val, _values, result)
3122
- param = Types::Function::Param.new(type: val[1],
3123
- name: val[2]&.value&.to_sym)
3441
+ loc = val[0].location + val[1].location
3442
+ if var_name = val[2]
3443
+ loc = loc + var_name.location
3444
+ end
3445
+
3446
+ loc = loc.with_children(optional: { name: var_name&.location })
3447
+
3448
+ param = Types::Function::Param.new(
3449
+ type: val[1],
3450
+ name: val[2]&.value&.to_sym,
3451
+ location: loc
3452
+ )
3124
3453
  result = { val[0].value => param }
3125
3454
 
3126
3455
  result
3127
3456
  end
3128
3457
  .,.,
3129
3458
 
3130
- module_eval(<<'.,.,', 'parser.y', 995)
3459
+ module_eval(<<'.,.,', 'parser.y', 1297)
3131
3460
  def _reduce_229(val, _values, result)
3132
- param = Types::Function::Param.new(type: val[2],
3133
- name: val[3]&.value&.to_sym)
3461
+ loc = val[0].location + val[2].location
3462
+ if var_name = val[3]
3463
+ loc = loc + var_name.location
3464
+ end
3465
+
3466
+ loc = loc.with_children(optional: { name: var_name&.location })
3467
+
3468
+ param = Types::Function::Param.new(
3469
+ type: val[2],
3470
+ name: val[3]&.value&.to_sym,
3471
+ location: loc
3472
+ )
3134
3473
  result = { val[1].value => param }
3135
3474
 
3136
3475
  result
3137
3476
  end
3138
3477
  .,.,
3139
3478
 
3140
- module_eval(<<'.,.,', 'parser.y', 1002)
3479
+ module_eval(<<'.,.,', 'parser.y', 1314)
3141
3480
  def _reduce_230(val, _values, result)
3142
- result = Types::Function::Param.new(type: val[1],
3143
- name: val[2]&.value&.to_sym)
3481
+ loc = val[0].location + val[1].location
3482
+ if var_name = val[2]
3483
+ loc = loc + var_name.location
3484
+ end
3485
+
3486
+ loc = loc.with_children(optional: { name: var_name&.location })
3487
+
3488
+ result = Types::Function::Param.new(
3489
+ type: val[1],
3490
+ name: val[2]&.value&.to_sym,
3491
+ location: loc
3492
+ )
3144
3493
 
3145
3494
  result
3146
3495
  end
@@ -3154,8 +3503,12 @@ module_eval(<<'.,.,', 'parser.y', 1002)
3154
3503
 
3155
3504
  # reduce 234 omitted
3156
3505
 
3157
- module_eval(<<'.,.,', 'parser.y', 1011)
3158
- def _reduce_235(val, _values, result)
3506
+ # reduce 235 omitted
3507
+
3508
+ # reduce 236 omitted
3509
+
3510
+ module_eval(<<'.,.,', 'parser.y', 1333)
3511
+ def _reduce_237(val, _values, result)
3159
3512
  namespace = val[0]&.value || Namespace.empty
3160
3513
  name = val[1].value.to_sym
3161
3514
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3166,14 +3519,14 @@ module_eval(<<'.,.,', 'parser.y', 1011)
3166
3519
  end
3167
3520
  .,.,
3168
3521
 
3169
- # reduce 236 omitted
3522
+ # reduce 238 omitted
3170
3523
 
3171
- # reduce 237 omitted
3524
+ # reduce 239 omitted
3172
3525
 
3173
- # reduce 238 omitted
3526
+ # reduce 240 omitted
3174
3527
 
3175
- module_eval(<<'.,.,', 'parser.y', 1023)
3176
- def _reduce_239(val, _values, result)
3528
+ module_eval(<<'.,.,', 'parser.y', 1345)
3529
+ def _reduce_241(val, _values, result)
3177
3530
  namespace = val[0]&.value || Namespace.empty
3178
3531
  name = val[1].value.to_sym
3179
3532
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3184,8 +3537,8 @@ module_eval(<<'.,.,', 'parser.y', 1023)
3184
3537
  end
3185
3538
  .,.,
3186
3539
 
3187
- module_eval(<<'.,.,', 'parser.y', 1032)
3188
- def _reduce_240(val, _values, result)
3540
+ module_eval(<<'.,.,', 'parser.y', 1354)
3541
+ def _reduce_242(val, _values, result)
3189
3542
  namespace = val[0]&.value || Namespace.empty
3190
3543
  name = val[1].value.to_sym
3191
3544
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3196,8 +3549,8 @@ module_eval(<<'.,.,', 'parser.y', 1032)
3196
3549
  end
3197
3550
  .,.,
3198
3551
 
3199
- module_eval(<<'.,.,', 'parser.y', 1041)
3200
- def _reduce_241(val, _values, result)
3552
+ module_eval(<<'.,.,', 'parser.y', 1363)
3553
+ def _reduce_243(val, _values, result)
3201
3554
  namespace = val[0]&.value || Namespace.empty
3202
3555
  name = val[1].value.to_sym
3203
3556
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3208,24 +3561,24 @@ module_eval(<<'.,.,', 'parser.y', 1041)
3208
3561
  end
3209
3562
  .,.,
3210
3563
 
3211
- module_eval(<<'.,.,', 'parser.y', 1051)
3212
- def _reduce_242(val, _values, result)
3564
+ module_eval(<<'.,.,', 'parser.y', 1373)
3565
+ def _reduce_244(val, _values, result)
3213
3566
  result = nil
3214
3567
 
3215
3568
  result
3216
3569
  end
3217
3570
  .,.,
3218
3571
 
3219
- module_eval(<<'.,.,', 'parser.y', 1054)
3220
- def _reduce_243(val, _values, result)
3572
+ module_eval(<<'.,.,', 'parser.y', 1376)
3573
+ def _reduce_245(val, _values, result)
3221
3574
  result = LocatedValue.new(value: Namespace.root, location: val[0].location)
3222
3575
 
3223
3576
  result
3224
3577
  end
3225
3578
  .,.,
3226
3579
 
3227
- module_eval(<<'.,.,', 'parser.y', 1057)
3228
- def _reduce_244(val, _values, result)
3580
+ module_eval(<<'.,.,', 'parser.y', 1379)
3581
+ def _reduce_246(val, _values, result)
3229
3582
  namespace = Namespace.parse(val[1].value).absolute!
3230
3583
  result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location)
3231
3584
 
@@ -3233,8 +3586,8 @@ module_eval(<<'.,.,', 'parser.y', 1057)
3233
3586
  end
3234
3587
  .,.,
3235
3588
 
3236
- module_eval(<<'.,.,', 'parser.y', 1061)
3237
- def _reduce_245(val, _values, result)
3589
+ module_eval(<<'.,.,', 'parser.y', 1383)
3590
+ def _reduce_247(val, _values, result)
3238
3591
  namespace = Namespace.parse(val[0].value)
3239
3592
  result = LocatedValue.new(value: namespace, location: val[0].location)
3240
3593
 
@@ -3242,9 +3595,9 @@ module_eval(<<'.,.,', 'parser.y', 1061)
3242
3595
  end
3243
3596
  .,.,
3244
3597
 
3245
- # reduce 246 omitted
3598
+ # reduce 248 omitted
3246
3599
 
3247
- # reduce 247 omitted
3600
+ # reduce 249 omitted
3248
3601
 
3249
3602
  def _reduce_none(val, _values, result)
3250
3603
  val[0]