rbs 1.1.0 → 1.3.0

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