rbs 0.19.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8305afa064e98cd22b78a49fb402692abed204c735a7ce05d90f6a48d7bd6b96
4
- data.tar.gz: 7840d67b2bbd54eb041342e093892b6d1046b21b6655b80eba109df6b773451d
3
+ metadata.gz: 5c422fed696c791b7cd4cbaa9c78cbdf28634d6152a1bd4496f801c539d74ac6
4
+ data.tar.gz: 46012d3a5b09cb2a529620813c71d6a730b26078d409565320a60297e4153bb4
5
5
  SHA512:
6
- metadata.gz: 4919d1fd1323fa5cb2c40f89f5338d2168d3ae4fcabed2e2c428b3e5b4bacda2e395e9dfb2fc52a6517e75137358118b4142b330f607f77c162f259485ac0b13
7
- data.tar.gz: dc36b905d8c746eb5e976f6f3fc4a06ba8ed2b037d15d73e8bfa4360497c9c814f44dd604981f7c3622002ef0bb603b1b9374e2f49ab0af67bc35ecbe2d7b26e
6
+ metadata.gz: 59f566eba0bb6398ee0cd4432403750ee8d3ce7e5916c61089c5c5032fff723259be3880aac88aec22d4ecaffff96c1190b18483a60feac517b3b6845bc8dae9
7
+ data.tar.gz: a12d3d389eead680ff98886eff428a6b2fe4e1c3cab408866be1aa34e6a5cd3737391f370655a9798c04e73062bb0170c5be2525c66c4bf3b8aa69d21dc17750
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 0.20.0 (2020-12-06)
6
+
7
+ * Signature updates for `TSort`, `DBM`, `Time`, and `Hash` ([#496](https://github.com/ruby/rbs/pull/496), [#497](https://github.com/ruby/rbs/pull/497), [#499](https://github.com/ruby/rbs/pull/499), [#507](https://github.com/ruby/rbs/pull/507))
8
+ * Add _singleton attribute_ syntax ([#502](https://github.com/ruby/rbs/pull/502), [#506](https://github.com/ruby/rbs/pull/506), [#505](https://github.com/ruby/rbs/pull/505))
9
+ * Proc types with blocks ([#503](https://github.com/ruby/rbs/pull/503))
10
+ * Add support for escape sequences in string literal types ([#501](https://github.com/ruby/rbs/pull/501))
11
+ * Fix runtime type checking of blocks with keyword args ([#500](https://github.com/ruby/rbs/pull/500))
12
+
5
13
  ## 0.19.0 (2020-12-02)
6
14
 
7
15
  * Signature updates for `Monitor` and File ([#485](https://github.com/ruby/rbs/pull/485), [#495](https://github.com/ruby/rbs/pull/495))
@@ -563,8 +563,6 @@ class Hash[unchecked out K, unchecked out V] < Object
563
563
  #
564
564
  alias include? has_key?
565
565
 
566
- def index: (V) -> K?
567
-
568
566
  # Return the contents of this hash as a string.
569
567
  #
570
568
  # h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300 }
@@ -615,7 +613,7 @@ class Hash[unchecked out K, unchecked out V] < Object
615
613
  # h.key(300) #=> "c"
616
614
  # h.key(999) #=> nil
617
615
  #
618
- alias key index
616
+ def key: (V) -> K?
619
617
 
620
618
  # Returns `true` if the given key is present in *hsh*.
621
619
  #
@@ -757,18 +757,6 @@ class Time < Object
757
757
  #
758
758
  def subsec: () -> Numeric
759
759
 
760
- # Returns a new Time object, one second later than *time*. Time#succ is obsolete
761
- # since 1.9.2 for time is not a discrete value.
762
- #
763
- # t = Time.now #=> 2007-11-19 08:23:57 -0600
764
- # t.succ #=> 2007-11-19 08:23:58 -0600
765
- #
766
- # Use instead `time + 1`
767
- #
768
- # t + 1 #=> 2007-11-19 08:23:58 -0600
769
- #
770
- def succ: () -> Time
771
-
772
760
  # Returns `true` if *time* represents Sunday.
773
761
  #
774
762
  # t = Time.local(1990, 4, 1) #=> 1990-04-01 00:00:00 -0600
@@ -216,31 +216,34 @@ module RBS
216
216
  module Attribute
217
217
  attr_reader :name
218
218
  attr_reader :type
219
+ attr_reader :kind
219
220
  attr_reader :ivar_name
220
221
  attr_reader :annotations
221
222
  attr_reader :location
222
223
  attr_reader :comment
223
224
 
224
- def initialize(name:, type:, ivar_name:, annotations:, location:, comment:)
225
+ def initialize(name:, type:, ivar_name:, kind:, annotations:, location:, comment:)
225
226
  @name = name
226
227
  @type = type
227
228
  @ivar_name = ivar_name
228
229
  @annotations = annotations
229
230
  @location = location
230
231
  @comment = comment
232
+ @kind = kind
231
233
  end
232
234
 
233
235
  def ==(other)
234
236
  other.is_a?(self.class) &&
235
237
  other.name == name &&
236
238
  other.type == type &&
237
- other.ivar_name == ivar_name
239
+ other.ivar_name == ivar_name &&
240
+ other.kind == kind
238
241
  end
239
242
 
240
243
  alias eql? ==
241
244
 
242
245
  def hash
243
- self.class.hash ^ name.hash ^ type.hash ^ ivar_name.hash
246
+ self.class.hash ^ name.hash ^ type.hash ^ ivar_name.hash ^ kind.hash
244
247
  end
245
248
  end
246
249
 
@@ -253,6 +256,7 @@ module RBS
253
256
  name: name,
254
257
  type: type,
255
258
  ivar_name: ivar_name,
259
+ kind: kind,
256
260
  annotations: annotations,
257
261
  location: location,
258
262
  comment: comment
@@ -269,6 +273,7 @@ module RBS
269
273
  name: name,
270
274
  type: type,
271
275
  ivar_name: ivar_name,
276
+ kind: kind,
272
277
  annotations: annotations,
273
278
  location: location,
274
279
  comment: comment
@@ -285,6 +290,7 @@ module RBS
285
290
  name: name,
286
291
  type: type,
287
292
  ivar_name: ivar_name,
293
+ kind: kind,
288
294
  annotations: annotations,
289
295
  location: location,
290
296
  comment: comment
@@ -558,7 +558,7 @@ module RBS
558
558
  )
559
559
  end
560
560
 
561
- unless array.all? {|pair| pair[1] == :public}
561
+ unless array.all? {|pair| pair[1] == :public }
562
562
  raise InconsistentMethodVisibilityError.new(
563
563
  type_name: type_name,
564
564
  method_name: method_name,
@@ -658,65 +658,12 @@ module RBS
658
658
  each_member_with_accessibility(d.decl.members) do |member, accessibility|
659
659
  case member
660
660
  when AST::Members::AttrReader, AST::Members::AttrAccessor, AST::Members::AttrWriter
661
- name = member.name
662
- type = member.type
663
-
664
- ivar_name = case member.ivar_name
665
- when false
666
- nil
667
- else
668
- member.ivar_name || :"@#{member.name}"
669
- end
670
-
671
- if member.is_a?(AST::Members::AttrReader) || member.is_a?(AST::Members::AttrAccessor)
672
- definition.methods[name] = Definition::Method.new(
673
- super_method: nil,
674
- defs: [
675
- Definition::Method::TypeDef.new(
676
- type: MethodType.new(
677
- type_params: [],
678
- type: Types::Function.empty(type),
679
- block: nil,
680
- location: nil
681
- ),
682
- member: member,
683
- defined_in: type_name,
684
- implemented_in: type_name
685
- )
686
- ],
687
- accessibility: accessibility,
688
- alias_of: nil
689
- )
690
- end
691
-
692
- if member.is_a?(AST::Members::AttrWriter) || member.is_a?(AST::Members::AttrAccessor)
693
- definition.methods[:"#{name}="] = Definition::Method.new(
694
- super_method: nil,
695
- defs: [
696
- Definition::Method::TypeDef.new(
697
- type: MethodType.new(
698
- type_params: [],
699
- type: Types::Function.empty(type).update(
700
- required_positionals: [Types::Function::Param.new(name: name, type: type)]
701
- ),
702
- block: nil,
703
- location: nil
704
- ),
705
- member: member,
706
- defined_in: type_name,
707
- implemented_in: type_name
708
- ),
709
- ],
710
- accessibility: accessibility,
711
- alias_of: nil
712
- )
713
- end
714
-
715
- if ivar_name
716
- definition.instance_variables[ivar_name] = Definition::Variable.new(
717
- parent_variable: nil,
718
- type: type,
719
- declared_in: type_name
661
+ if member.kind == :instance
662
+ build_attribute(
663
+ type_name: type_name,
664
+ definition: definition,
665
+ member: member,
666
+ accessibility: accessibility
720
667
  )
721
668
  end
722
669
 
@@ -982,8 +929,16 @@ module RBS
982
929
  end
983
930
 
984
931
  entry.decls.each do |d|
985
- each_member_with_accessibility(d.decl.members) do |member, _|
932
+ each_member_with_accessibility(d.decl.members) do |member, accessibility|
986
933
  case member
934
+ when AST::Members::AttrReader, AST::Members::AttrAccessor, AST::Members::AttrWriter
935
+ if member.kind == :singleton
936
+ build_attribute(type_name: type_name,
937
+ definition: definition,
938
+ member: member,
939
+ accessibility: accessibility)
940
+ end
941
+
987
942
  when AST::Members::ClassInstanceVariable
988
943
  definition.instance_variables[member.name] = Definition::Variable.new(
989
944
  parent_variable: nil,
@@ -1004,6 +959,70 @@ module RBS
1004
959
  end
1005
960
  end
1006
961
 
962
+ def build_attribute(type_name:, definition:, member:, accessibility:)
963
+ name = member.name
964
+ type = member.type
965
+
966
+ ivar_name = case member.ivar_name
967
+ when false
968
+ nil
969
+ else
970
+ member.ivar_name || :"@#{member.name}"
971
+ end
972
+
973
+ if member.is_a?(AST::Members::AttrReader) || member.is_a?(AST::Members::AttrAccessor)
974
+ definition.methods[name] = Definition::Method.new(
975
+ super_method: nil,
976
+ defs: [
977
+ Definition::Method::TypeDef.new(
978
+ type: MethodType.new(
979
+ type_params: [],
980
+ type: Types::Function.empty(type),
981
+ block: nil,
982
+ location: nil
983
+ ),
984
+ member: member,
985
+ defined_in: type_name,
986
+ implemented_in: type_name
987
+ )
988
+ ],
989
+ accessibility: accessibility,
990
+ alias_of: nil
991
+ )
992
+ end
993
+
994
+ if member.is_a?(AST::Members::AttrWriter) || member.is_a?(AST::Members::AttrAccessor)
995
+ definition.methods[:"#{name}="] = Definition::Method.new(
996
+ super_method: nil,
997
+ defs: [
998
+ Definition::Method::TypeDef.new(
999
+ type: MethodType.new(
1000
+ type_params: [],
1001
+ type: Types::Function.empty(type).update(
1002
+ required_positionals: [Types::Function::Param.new(name: name, type: type)]
1003
+ ),
1004
+ block: nil,
1005
+ location: nil
1006
+ ),
1007
+ member: member,
1008
+ defined_in: type_name,
1009
+ implemented_in: type_name
1010
+ ),
1011
+ ],
1012
+ accessibility: accessibility,
1013
+ alias_of: nil
1014
+ )
1015
+ end
1016
+
1017
+ if ivar_name
1018
+ definition.instance_variables[ivar_name] = Definition::Variable.new(
1019
+ parent_variable: nil,
1020
+ type: type,
1021
+ declared_in: type_name
1022
+ )
1023
+ end
1024
+ end
1025
+
1007
1026
  def merge_definitions(type_name, pairs, entry:, self_type:, ancestors:)
1008
1027
  Definition.new(type_name: type_name, entry: entry, self_type: self_type, ancestors: ancestors).tap do |definition|
1009
1028
  pairs.reverse_each do |ancestor, current_definition|
@@ -349,6 +349,7 @@ module RBS
349
349
  AST::Members::AttrAccessor.new(
350
350
  name: member.name,
351
351
  type: absolute_type(resolver, member.type, context: context),
352
+ kind: member.kind,
352
353
  annotations: member.annotations,
353
354
  comment: member.comment,
354
355
  location: member.location,
@@ -358,6 +359,7 @@ module RBS
358
359
  AST::Members::AttrReader.new(
359
360
  name: member.name,
360
361
  type: absolute_type(resolver, member.type, context: context),
362
+ kind: member.kind,
361
363
  annotations: member.annotations,
362
364
  comment: member.comment,
363
365
  location: member.location,
@@ -367,6 +369,7 @@ module RBS
367
369
  AST::Members::AttrWriter.new(
368
370
  name: member.name,
369
371
  type: absolute_type(resolver, member.type, context: context),
372
+ kind: member.kind,
370
373
  annotations: member.annotations,
371
374
  comment: member.comment,
372
375
  location: member.location,
@@ -1,35 +1,5 @@
1
1
  module RBS
2
2
  class MethodType
3
- class Block
4
- attr_reader :type
5
- attr_reader :required
6
-
7
- def initialize(type:, required:)
8
- @type = type
9
- @required = required
10
- end
11
-
12
- def ==(other)
13
- other.is_a?(Block) &&
14
- other.type == type &&
15
- other.required == required
16
- end
17
-
18
- def to_json(*a)
19
- {
20
- type: type,
21
- required: required
22
- }.to_json(*a)
23
- end
24
-
25
- def sub(s)
26
- self.class.new(
27
- type: type.sub(s),
28
- required: required
29
- )
30
- end
31
- end
32
-
33
3
  attr_reader :type_params
34
4
  attr_reader :type
35
5
  attr_reader :block
@@ -86,7 +56,7 @@ module RBS
86
56
  type_params: type_params,
87
57
  type: type.map_type(&block),
88
58
  block: self.block&.yield_self do |b|
89
- Block.new(type: b.type.map_type(&block), required: b.required)
59
+ Types::Block.new(type: b.type.map_type(&block), required: b.required)
90
60
  end,
91
61
  location: location
92
62
  )
@@ -8,7 +8,7 @@ require 'racc/parser.rb'
8
8
  module RBS
9
9
  class Parser < Racc::Parser
10
10
 
11
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1044)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1066)
12
12
 
13
13
  Types = RBS::Types
14
14
  Namespace = RBS::Namespace
@@ -262,6 +262,10 @@ ANNOTATION_RE = Regexp.union(/%a\{.*?\}/,
262
262
  /%a\(.*?\)/,
263
263
  /%a\<.*?\>/,
264
264
  /%a\|.*?\|/)
265
+
266
+ escape_sequences = %w[a b e f n r s t v "].map { |l| "\\\\#{l}" }
267
+ DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE = /(#{escape_sequences.join("|")})/
268
+
265
269
  def next_token
266
270
  if @type
267
271
  type = @type
@@ -341,7 +345,21 @@ def next_token
341
345
  when input.scan(/[a-z_]\w*\b/)
342
346
  new_token(:tLIDENT)
343
347
  when input.scan(/"(\\"|[^"])*"/)
344
- s = input.matched.yield_self {|s| s[1, s.length - 2] }.gsub(/\\"/, '"')
348
+ s = input.matched.yield_self {|s| s[1, s.length - 2] }
349
+ .gsub(DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE) do |match|
350
+ case match
351
+ when '\\a' then "\a"
352
+ when '\\b' then "\b"
353
+ when '\\e' then "\e"
354
+ when '\\f' then "\f"
355
+ when '\\n' then "\n"
356
+ when '\\r' then "\r"
357
+ when '\\s' then "\s"
358
+ when '\\t' then "\t"
359
+ when '\\v' then "\v"
360
+ when '\\"' then '"'
361
+ end
362
+ end
345
363
  new_token(:tSTRING, s)
346
364
  when input.scan(/'(\\'|[^'])*'/)
347
365
  s = input.matched.yield_self {|s| s[1, s.length - 2] }.gsub(/\\'/, "'")
@@ -383,118 +401,118 @@ end
383
401
  ##### State transition tables begin ###
384
402
 
385
403
  clist = [
386
- '341,342,33,343,5,58,59,60,61,37,354,380,33,33,33,340,42,50,352,379,40',
387
- '41,209,210,211,212,213,214,215,216,220,33,217,208,218,219,104,115,105',
388
- '106,107,121,76,32,196,336,330,331,33,51,334,332,335,32,32,32,33,333',
389
- '120,108,109,110,112,114,113,329,338,339,111,116,118,43,32,197,48,122',
390
- '123,119,124,341,342,33,343,66,58,59,60,61,39,32,301,33,33,33,340,231',
391
- '50,32,40,41,83,209,210,211,212,213,214,215,216,220,33,217,208,218,219',
392
- '104,115,105,106,107,121,33,32,144,336,330,331,39,51,334,332,335,32,32',
393
- '32,50,333,120,108,109,110,112,114,113,329,338,339,111,116,118,89,32',
394
- '87,320,122,123,119,124,341,342,145,343,32,58,59,60,61,51,158,2,3,4,316',
395
- '340,157,164,199,88,40,41,209,210,211,212,213,214,215,216,220,276,217',
396
- '208,218,219,104,115,105,106,107,121,88,200,146,336,330,331,324,147,334',
397
- '332,335,40,41,361,277,333,120,108,109,110,112,114,113,329,338,339,111',
398
- '116,118,341,342,88,343,122,123,119,124,-4,88,-239,148,33,76,80,340,-239',
399
- '395,396,397,156,76,209,210,211,212,213,214,215,216,355,159,217,208,218',
400
- '219,104,115,105,106,107,121,88,88,88,336,330,331,40,41,334,332,335,32',
401
- '40,41,161,333,120,108,109,110,112,114,113,329,338,339,111,116,118,341',
402
- '342,163,343,122,123,119,124,41,58,59,60,61,39,166,340,55,54,56,40,41',
403
- '158,209,210,211,212,213,214,215,216,220,-107,217,208,218,219,104,115',
404
- '105,106,107,121,40,41,-108,336,330,331,40,41,334,332,335,63,64,-109',
405
- '65,333,120,108,109,110,112,114,113,329,338,339,111,116,118,341,342,-110',
406
- '343,122,123,119,124,-111,58,59,60,61,40,41,340,55,54,56,40,41,-112,209',
407
- '210,211,212,213,214,215,216,220,-113,217,208,218,219,104,115,105,106',
408
- '107,121,40,41,-114,336,330,331,272,273,334,332,335,279,280,365,366,333',
409
- '120,108,109,110,112,114,113,329,338,339,111,116,118,40,41,40,41,122',
410
- '123,119,124,341,342,-115,343,-116,58,59,60,61,40,41,40,41,40,41,340',
411
- '387,388,40,41,40,41,209,210,211,212,213,214,215,216,220,-117,217,208',
412
- '218,219,104,115,105,106,107,121,40,41,48,336,330,331,40,41,334,332,335',
413
- '-132,171,172,173,333,120,108,109,110,112,114,113,329,338,339,111,116',
414
- '118,341,342,174,343,122,123,119,124,175,176,177,42,201,234,235,340,237',
415
- '238,239,241,83,245,209,210,211,212,213,214,215,216,220,245,217,208,218',
416
- '219,104,115,105,106,107,121,245,251,254,336,330,331,42,257,334,332,335',
417
- '259,263,265,267,333,120,108,109,110,112,114,113,329,338,339,111,116',
418
- '118,268,42,270,307,122,123,119,124,33,309,263,58,59,60,61,311,267,321',
419
- '22,23,21,322,26,-217,25,323,30,359,93,94,95,96,97,98,99,100,117,16,101',
420
- '92,102,103,104,115,105,106,107,121,364,32,364,364,371,28,372,139,373',
421
- '140,142,374,375,377,378,381,120,108,109,110,112,114,113,382,392,401',
422
- '111,116,118,402,403,406,407,122,123,119,124,33,408,409,58,59,60,61,406',
423
- ',,22,23,21,,26,,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103',
424
- '104,115,105,106,107,121,,32,,,,28,,,,,,,,,,,120,108,109,110,112,114',
425
- '113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23,21',
426
- ',26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
427
- '115,105,106,107,121,,32,,,,28,,139,,140,142,,,,,,120,108,109,110,112',
428
- '114,113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23',
429
- '21,,26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
430
- '115,105,106,107,121,,32,,,,28,,139,,140,142,,,,,,120,108,109,110,112',
431
- '114,113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23',
432
- '21,,26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
433
- '115,105,106,107,121,,32,,,,28,,139,,140,142,,,,,,120,108,109,110,112',
434
- '114,113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23',
435
- '21,,26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
436
- '115,105,106,107,121,,32,,,,28,,207,,,142,,,,,,120,108,109,110,112,114',
437
- '113,,,,111,116,118,,,,,122,123,119,124,33,,,58,59,60,61,,,,22,23,21',
438
- ',26,-217,25,,30,,93,94,95,96,97,98,99,100,117,16,101,92,102,103,104',
439
- '115,105,106,107,121,168,32,169,,,28,,207,,,142,,,,,,120,108,109,110',
440
- '112,114,113,168,,169,111,116,118,58,59,60,61,122,123,119,124,,,,,,,',
441
- '40,41,209,210,211,212,213,214,215,216,220,,217,208,218,219,104,115,105',
442
- '106,107,121,170,40,41,,,,,207,,,142,,,,,,120,108,109,110,112,114,113',
443
- '170,,,111,116,118,58,59,60,61,122,123,119,124,,,,,,,,,,209,210,211,212',
444
- '213,214,215,216,220,,217,208,218,219,104,115,105,106,107,121,168,,169',
445
- ',,,,207,,,142,,,,,,120,108,109,110,112,114,113,168,,169,111,116,118',
446
- '58,59,60,61,122,123,119,124,,,,,,,,40,41,209,210,211,212,213,214,215',
447
- '216,220,,217,208,218,219,104,115,105,106,107,121,170,40,41,168,152,169',
448
- '168,155,169,153,,,,,,,120,108,109,110,112,114,113,170,,,111,116,118',
449
- '154,,,,122,123,119,124,,,,151,,,,,,,40,41,,40,41,-239,,33,,80,,-239',
450
- ',,296,297,76,-239,,33,,80,170,-239,,170,296,297,76,,,,-239,,33,298,80',
451
- ',-239,,,296,297,76,293,292,,298,32,,,,,,,,293,292,,-239,32,33,298,80',
452
- '284,-239,,,296,297,76,293,292,,,32,308,,,,,,,,,,,,,298,,312,,,,,,,293',
453
- '292,,33,32,,,,,,,,,22,23,21,,26,,25,360,30,,8,12,19,20,9,10,13,14,15',
454
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20',
455
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
456
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
457
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
458
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
459
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
460
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
461
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
462
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
463
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
464
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
465
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
466
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
467
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
468
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
469
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
470
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
471
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
472
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
473
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
474
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
475
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
476
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
477
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
478
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
479
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
480
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
481
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
482
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
483
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
484
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
485
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
486
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
487
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
488
- '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
489
- '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
490
- '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
491
- ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
492
- ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
493
- '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
494
- ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
495
- '11,27,152,,,155,,153,,32,320,,,28,,,,,,,,,,,,,,154,,316,317,313,314',
496
- '315,,,,318,151' ]
497
- racc_action_table = arr = ::Array.new(2779, nil)
404
+ '351,352,33,353,163,78,5,33,33,338,162,395,49,33,33,350,37,336,239,394',
405
+ '40,41,213,214,215,216,217,218,219,220,355,33,221,212,222,223,107,118',
406
+ '108,109,110,124,33,32,53,346,340,341,32,32,344,342,345,303,32,32,33',
407
+ '343,123,111,112,113,115,117,116,339,348,349,114,119,121,91,32,89,42',
408
+ '125,126,122,127,351,352,33,353,32,60,61,62,63,43,49,48,33,33,33,350',
409
+ '188,188,32,90,40,41,213,214,215,216,217,218,219,220,224,33,221,212,222',
410
+ '223,107,118,108,109,110,124,53,32,145,346,340,341,53,53,344,342,345',
411
+ '32,32,32,168,343,123,111,112,113,115,117,116,339,348,349,114,119,121',
412
+ '203,32,146,278,125,126,122,127,351,352,90,353,68,60,61,62,63,65,66,39',
413
+ '67,40,41,350,85,204,326,361,279,149,213,214,215,216,217,218,219,220',
414
+ '224,398,221,212,222,223,107,118,108,109,110,124,39,90,90,346,340,341',
415
+ '399,400,344,342,345,322,40,41,90,343,123,111,112,113,115,117,116,339',
416
+ '348,349,114,119,121,150,318,90,90,125,126,122,127,351,352,151,353,152',
417
+ '60,61,62,63,60,61,62,63,40,41,350,57,56,58,2,3,4,213,214,215,216,217',
418
+ '218,219,220,224,153,221,212,222,223,107,118,108,109,110,124,40,41,78',
419
+ '346,340,341,40,41,344,342,345,40,41,40,41,343,123,111,112,113,115,117',
420
+ '116,339,348,349,114,119,121,351,352,161,353,125,126,122,127,-4,164,-242',
421
+ '167,33,41,82,350,-242,40,41,40,41,78,213,214,215,216,217,218,219,220',
422
+ '224,170,221,212,222,223,107,118,108,109,110,124,40,41,163,346,340,341',
423
+ '274,275,344,342,345,32,281,282,171,343,123,111,112,113,115,117,116,339',
424
+ '348,349,114,119,121,351,352,-108,353,125,126,122,127,-109,60,61,62,63',
425
+ '39,-110,350,57,56,58,373,374,-111,213,214,215,216,217,218,219,220,224',
426
+ '-112,221,212,222,223,107,118,108,109,110,124,40,41,-113,346,340,341',
427
+ '40,41,344,342,345,389,390,40,41,343,123,111,112,113,115,117,116,339',
428
+ '348,349,114,119,121,40,41,40,41,125,126,122,127,351,352,-114,353,-115',
429
+ '60,61,62,63,40,41,40,41,40,41,350,40,41,-116,-117,-118,48,213,214,215',
430
+ '216,217,218,219,220,224,-133,221,212,222,223,107,118,108,109,110,124',
431
+ '176,177,178,346,340,341,179,180,344,342,345,181,189,190,42,343,123,111',
432
+ '112,113,115,117,116,339,348,349,114,119,121,351,352,205,353,125,126',
433
+ '122,127,232,242,243,245,247,248,42,350,85,251,251,251,257,42,213,214',
434
+ '215,216,217,218,219,220,224,205,221,212,222,223,107,118,108,109,110',
435
+ '124,260,262,266,346,340,341,268,270,344,342,345,271,309,311,266,343',
436
+ '123,111,112,113,115,117,116,339,348,349,114,119,121,313,270,323,324',
437
+ '125,126,122,127,33,325,329,60,61,62,63,329,329,359,22,23,21,362,26,-220',
438
+ '25,369,30,370,96,97,98,99,100,101,102,103,120,16,104,95,105,106,107',
439
+ '118,108,109,110,124,371,32,372,375,377,28,380,141,380,142,144,380,393',
440
+ '396,397,404,123,111,112,113,115,117,116,405,406,408,114,119,121,413',
441
+ '414,415,416,125,126,122,127,33,413,,60,61,62,63,,,,22,23,21,,26,,25',
442
+ ',30,,96,97,98,99,100,101,102,103,120,16,104,95,105,106,107,118,108,109',
443
+ '110,124,,32,,,,28,,,,,,,,,,,123,111,112,113,115,117,116,,,,114,119,121',
444
+ ',,,,125,126,122,127,33,,,60,61,62,63,,,,22,23,21,,26,-220,25,,30,,96',
445
+ '97,98,99,100,101,102,103,120,16,104,95,105,106,107,118,108,109,110,124',
446
+ ',32,,,,28,,141,,142,144,,,,,,123,111,112,113,115,117,116,,,,114,119',
447
+ '121,,,,,125,126,122,127,33,,,60,61,62,63,,,,22,23,21,,26,-220,25,,30',
448
+ ',96,97,98,99,100,101,102,103,120,16,104,95,105,106,107,118,108,109,110',
449
+ '124,,32,,,,28,,141,,142,144,,,,,,123,111,112,113,115,117,116,,,,114',
450
+ '119,121,,,,,125,126,122,127,33,,,60,61,62,63,,,,22,23,21,,26,-220,25',
451
+ ',30,,96,97,98,99,100,101,102,103,120,16,104,95,105,106,107,118,108,109',
452
+ '110,124,,32,,,,28,,211,,,144,,,,,,123,111,112,113,115,117,116,,,,114',
453
+ '119,121,,,,,125,126,122,127,33,,,60,61,62,63,,,,22,23,21,,26,-220,25',
454
+ ',30,,96,97,98,99,100,101,102,103,120,16,104,95,105,106,107,118,108,109',
455
+ '110,124,,32,,,,28,,141,,142,144,,,,,,123,111,112,113,115,117,116,,,',
456
+ '114,119,121,,,,,125,126,122,127,33,,,60,61,62,63,,,,22,23,21,,26,-220',
457
+ '25,,30,,96,97,98,99,100,101,102,103,120,16,104,95,105,106,107,118,108',
458
+ '109,110,124,173,32,174,,,28,,211,,,144,,,,,,123,111,112,113,115,117',
459
+ '116,173,,174,114,119,121,60,61,62,63,125,126,122,127,,,,,,,,40,41,213',
460
+ '214,215,216,217,218,219,220,224,,221,212,222,223,107,118,108,109,110',
461
+ '124,175,40,41,,,,,211,,,144,,,,,,123,111,112,113,115,117,116,175,,,114',
462
+ '119,121,60,61,62,63,125,126,122,127,,,,,,,,,,213,214,215,216,217,218',
463
+ '219,220,224,,221,212,222,223,107,118,108,109,110,124,173,,174,,,,,211',
464
+ ',,144,,,,,,123,111,112,113,115,117,116,173,,174,114,119,121,60,61,62',
465
+ '63,125,126,122,127,,,,,,,,40,41,213,214,215,216,217,218,219,220,224',
466
+ ',221,212,222,223,107,118,108,109,110,124,175,40,41,173,157,174,173,160',
467
+ '174,158,,,,,,,123,111,112,113,115,117,116,175,,,114,119,121,159,,,,125',
468
+ '126,122,127,,,,156,,,,,,,40,41,,40,41,-242,,33,,82,,-242,,,298,299,78',
469
+ '-242,,33,,82,175,-242,,175,298,299,78,,,,-242,,33,300,82,,-242,,,298',
470
+ '299,78,295,294,,300,32,,,,,,,,295,294,,-242,32,33,300,82,286,-242,,',
471
+ '298,299,78,295,294,,,32,310,,,,,,,,,,,,,300,,314,,,,,,,295,294,,33,32',
472
+ ',,,,,,,,22,23,21,,26,,25,360,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
473
+ '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10,13,14,15',
474
+ '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
475
+ '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
476
+ '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
477
+ ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
478
+ '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
479
+ '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
480
+ '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
481
+ '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
482
+ '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
483
+ '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
484
+ ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
485
+ '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
486
+ '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
487
+ '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
488
+ '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,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,157,,,160',
514
+ ',158,,32,322,,,28,,,,,,,,,,,,,,159,,318,319,315,316,317,,,,320,156' ]
515
+ racc_action_table = arr = ::Array.new(2787, nil)
498
516
  idx = 0
499
517
  clist.each do |str|
500
518
  str.split(',', -1).each do |i|
@@ -504,129 +522,130 @@ clist = [
504
522
  end
505
523
 
506
524
  clist = [
507
- '313,313,48,313,1,313,313,313,313,5,319,364,155,187,188,313,7,28,319',
508
- '364,44,44,313,313,313,313,313,313,313,313,313,190,313,313,313,313,313',
509
- '313,313,313,313,313,269,48,160,313,313,313,231,28,313,313,313,155,187',
510
- '188,259,313,313,313,313,313,313,313,313,313,313,313,313,313,313,24,190',
511
- '160,27,313,313,313,313,314,314,265,314,32,314,314,314,314,35,231,269',
512
- '189,267,316,314,189,196,259,6,6,36,314,314,314,314,314,314,314,314,314',
513
- '317,314,314,314,314,314,314,314,314,314,314,318,265,52,314,314,314,6',
514
- '196,314,314,314,189,267,316,237,314,314,314,314,314,314,314,314,314',
515
- '314,314,314,314,314,47,317,46,306,314,314,314,314,315,315,53,315,318',
516
- '315,315,315,315,237,79,0,0,0,306,315,79,86,162,46,47,47,315,315,315',
517
- '315,315,315,315,315,315,260,315,315,315,315,315,315,315,315,315,315',
518
- '86,162,54,315,315,315,300,55,315,315,315,149,149,326,260,315,315,315',
519
- '315,315,315,315,315,315,315,315,315,315,315,320,320,300,320,315,315',
520
- '315,315,34,326,34,56,34,76,34,320,34,383,384,385,78,34,320,320,320,320',
521
- '320,320,320,320,320,80,320,320,320,320,320,320,320,320,320,320,383,384',
522
- '385,320,320,320,165,165,320,320,320,34,184,184,82,320,320,320,320,320',
523
- '320,320,320,320,320,320,320,320,320,356,356,83,356,320,320,320,320,84',
524
- '30,30,30,30,34,90,356,30,30,30,185,185,91,356,356,356,356,356,356,356',
525
- '356,356,92,356,356,356,356,356,356,356,356,356,356,186,186,93,356,356',
526
- '356,192,192,356,356,356,31,31,94,31,356,356,356,356,356,356,356,356',
527
- '356,356,356,356,356,356,375,375,95,375,356,356,356,356,96,145,145,145',
528
- '145,193,193,375,145,145,145,194,194,97,375,375,375,375,375,375,375,375',
529
- '375,98,375,375,375,375,375,375,375,375,375,375,252,252,99,375,375,375',
530
- '257,257,375,375,375,262,262,337,337,375,375,375,375,375,375,375,375',
531
- '375,375,375,375,375,375,357,357,358,358,375,375,375,375,386,386,100',
532
- '386,101,386,386,386,386,362,362,367,367,369,369,386,374,374,390,390',
533
- '391,391,386,386,386,386,386,386,386,386,386,102,386,386,386,386,386',
534
- '386,386,386,386,386,393,393,103,386,386,386,394,394,386,386,386,117',
535
- '127,128,129,386,386,386,386,386,386,386,386,386,386,386,386,386,386',
536
- '408,408,131,408,386,386,386,386,133,136,137,143,172,191,195,408,197',
537
- '198,200,205,228,229,408,408,408,408,408,408,408,408,408,230,408,408',
538
- '408,408,408,408,408,408,408,408,232,233,236,408,408,408,240,243,408',
539
- '408,408,244,245,246,247,408,408,408,408,408,408,408,408,408,408,408',
540
- '408,408,408,249,253,255,271,408,408,408,408,50,275,277,50,50,50,50,278',
541
- '282,296,50,50,50,297,50,50,50,298,50,323,50,50,50,50,50,50,50,50,50',
542
- '50,50,50,50,50,50,50,50,50,50,50,328,50,346,348,349,50,350,50,351,50',
543
- '50,353,355,359,363,368,50,50,50,50,50,50,50,370,380,387,50,50,50,388',
544
- '389,398,400,50,50,50,50,139,403,405,139,139,139,139,409,,,139,139,139',
545
- ',139,,139,,139,,139,139,139,139,139,139,139,139,139,139,139,139,139',
546
- '139,139,139,139,139,139,139,,139,,,,139,,,,,,,,,,,139,139,139,139,139',
547
- '139,139,,,,139,139,139,,,,,139,139,139,139,161,,,161,161,161,161,,,',
548
- '161,161,161,,161,161,161,,161,,161,161,161,161,161,161,161,161,161,161',
549
- '161,161,161,161,161,161,161,161,161,161,,161,,,,161,,161,,161,161,,',
550
- ',,,161,161,161,161,161,161,161,,,,161,161,161,,,,,161,161,161,161,173',
551
- ',,173,173,173,173,,,,173,173,173,,173,173,173,,173,,173,173,173,173',
552
- '173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,,173',
553
- ',,,173,,173,,173,173,,,,,,173,173,173,173,173,173,173,,,,173,173,173',
554
- ',,,,173,173,173,173,174,,,174,174,174,174,,,,174,174,174,,174,174,174',
555
- ',174,,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174',
556
- '174,174,174,174,,174,,,,174,,174,,174,174,,,,,,174,174,174,174,174,174',
557
- '174,,,,174,174,174,,,,,174,174,174,174,175,,,175,175,175,175,,,,175',
558
- '175,175,,175,175,175,,175,,175,175,175,175,175,175,175,175,175,175,175',
559
- '175,175,175,175,175,175,175,175,175,,175,,,,175,,175,,,175,,,,,,175',
560
- '175,175,175,175,175,175,,,,175,175,175,,,,,175,175,175,175,241,,,241',
561
- '241,241,241,,,,241,241,241,,241,241,241,,241,,241,241,241,241,241,241',
562
- '241,241,241,241,241,241,241,241,241,241,241,241,241,241,125,241,125',
563
- ',,241,,241,,,241,,,,,,241,241,241,241,241,241,241,178,,178,241,241,241',
564
- '176,176,176,176,241,241,241,241,,,,,,,,125,125,176,176,176,176,176,176',
565
- '176,176,176,,176,176,176,176,176,176,176,176,176,176,125,178,178,,,',
566
- ',176,,,176,,,,,,176,176,176,176,176,176,176,178,,,176,176,176,177,177',
567
- '177,177,176,176,176,176,,,,,,,,,,177,177,177,177,177,177,177,177,177',
568
- ',177,177,177,177,177,177,177,177,177,177,180,,180,,,,,177,,,177,,,,',
569
- ',177,177,177,177,177,177,177,181,,181,177,177,177,207,207,207,207,177',
570
- '177,177,177,,,,,,,,180,180,207,207,207,207,207,207,207,207,207,,207',
571
- '207,207,207,207,207,207,207,207,207,180,181,181,182,77,182,224,77,224',
572
- '77,,,,,,,207,207,207,207,207,207,207,181,,,207,207,207,77,,,,207,207',
573
- '207,207,,,,77,,,,,,,182,182,,224,224,266,,266,,266,,266,,,266,266,266',
574
- '274,,274,,274,182,274,,224,274,274,274,,,,281,,281,266,281,,281,,,281',
575
- '281,281,266,266,,274,266,,,,,,,,274,274,,325,274,325,281,325,266,325',
576
- ',,325,325,325,281,281,,,281,274,,,,,,,,,,,,,325,,281,,,,,,,325,325,',
577
- '2,325,,,,,,,,,2,2,2,,2,,2,325,2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,25,,',
578
- ',,2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25,25,25,25,25,25,25,25,25',
579
- '25,25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26,,26,26,26,26,26,26,26,26',
580
- '26,26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40,,40,,40,,40,,40,40,40,40',
581
- '40,40,40,40,40,40,40,40,40,40,,,41,,,,,40,,,,40,41,41,41,,41,,41,,41',
582
- ',41,41,41,41,41,41,41,41,41,41,41,41,41,41,,,43,,,,,41,,,,41,43,43,43',
583
- ',43,,43,,43,,43,43,43,43,43,43,43,43,43,43,43,43,43,43,,,51,,,,,43,',
584
- ',,43,51,51,51,,51,,51,,51,,51,51,51,51,51,51,51,51,51,51,51,51,51,51',
585
- ',,57,,,,,51,,,,51,57,57,57,,57,,57,,57,,57,57,57,57,57,57,57,57,57,57',
586
- '57,57,57,57,,,88,,,,,57,,,,57,88,88,88,,88,,88,,88,,88,88,88,88,88,88',
587
- '88,88,88,88,88,88,88,88,,,140,,,,,88,,,,88,140,140,140,,140,,140,,140',
588
- ',140,140,140,140,140,140,140,140,140,140,140,140,140,140,,,141,,,,,140',
589
- ',,,140,141,141,141,,141,,141,,141,,141,141,141,141,141,141,141,141,141',
590
- '141,141,141,141,141,,,142,,,,,141,,,,141,142,142,142,,142,,142,,142',
591
- ',142,142,142,142,142,142,142,142,142,142,142,142,142,142,,,146,,,,,142',
592
- ',,,142,146,146,146,,146,,146,,146,,146,146,146,146,146,146,146,146,146',
593
- '146,146,146,146,146,,,147,,,,,146,,,,146,147,147,147,,147,,147,,147',
594
- ',147,147,147,147,147,147,147,147,147,147,147,147,147,147,,,148,,,,,147',
595
- ',,,147,148,148,148,,148,,148,,148,,148,148,148,148,148,148,148,148,148',
596
- '148,148,148,148,148,,,156,,,,,148,,,,148,156,156,156,,156,,156,,156',
597
- ',156,156,156,156,156,156,156,156,156,156,156,156,156,156,,,157,,,,,156',
598
- ',,,156,157,157,157,,157,,157,,157,,157,157,157,157,157,157,157,157,157',
599
- '157,157,157,157,157,,,159,,,,,157,,,,157,159,159,159,,159,,159,,159',
600
- ',159,159,159,159,159,159,159,159,159,159,159,159,159,159,,,179,,,,,159',
601
- ',,,159,179,179,179,,179,,179,,179,,179,179,179,179,179,179,179,179,179',
602
- '179,179,179,179,179,,,201,,,,,179,,,,179,201,201,201,,201,,201,,201',
603
- ',201,201,201,201,201,201,201,201,201,201,201,201,201,201,,,234,,,,,201',
604
- ',,,201,234,234,234,,234,,234,,234,,234,234,234,234,234,234,234,234,234',
605
- '234,234,234,234,234,,,235,,,,,234,,,,234,235,235,235,,235,,235,,235',
606
- ',235,235,235,235,235,235,235,235,235,235,235,235,235,235,,,268,,,,,235',
607
- ',,,235,268,268,268,,268,,268,,268,,268,268,268,268,268,268,268,268,268',
608
- '268,268,268,268,268,,,309,,,,,268,,,,268,309,309,309,,309,,309,,309',
609
- ',309,309,309,309,309,309,309,309,309,309,309,309,309,309,,,321,,,,,309',
610
- ',,,309,321,321,321,,321,,321,,321,,321,321,321,321,321,321,321,321,321',
611
- '321,321,321,321,321,,,322,,,,,321,,,,321,322,322,322,,322,,322,,322',
612
- ',322,322,322,322,322,322,322,322,322,322,322,322,322,322,,,327,,,,,322',
613
- ',,,322,327,327,327,,327,,327,,327,,327,327,327,327,327,327,327,327,327',
614
- '327,327,327,327,327,,,345,,,,,327,,,,327,345,345,345,,345,,345,,345',
615
- ',345,345,345,345,345,345,345,345,345,345,345,345,345,345,,,347,,,,,345',
616
- ',,,345,347,347,347,,347,,347,,347,,347,347,347,347,347,347,347,347,347',
617
- '347,347,347,347,347,,,371,,,,,347,,,,347,371,371,371,,371,,371,,371',
618
- ',371,371,371,371,371,371,371,371,371,371,371,371,371,371,,,372,,,,,371',
619
- ',,,371,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372',
620
- '372,372,372,372,372,,,373,,,,,372,,,,372,373,373,373,,373,,373,,373',
621
- ',373,373,373,373,373,373,373,373,373,373,373,373,373,373,,,377,,,,,373',
622
- ',,,373,377,377,377,,377,,377,,377,,377,377,377,377,377,377,377,377,377',
623
- '377,377,377,377,377,,,378,,,,,377,,,,377,378,378,378,,378,,378,,378',
624
- ',378,378,378,378,378,378,378,378,378,378,378,378,378,378,,,381,,,,,378',
625
- ',,,378,381,381,381,,381,,381,,381,,381,381,381,381,381,381,381,381,381',
626
- '381,381,381,381,381,,,382,,,,,381,,,,381,382,382,382,,382,,382,,382',
627
- ',382,382,382,382,382,382,382,382,382,382,382,382,382,382,283,,,283,',
628
- '283,,382,283,,,382,,,,,,,,,,,,,,283,,283,283,283,283,283,,,,283,283' ]
629
- racc_action_check = arr = ::Array.new(2779, nil)
525
+ '322,322,48,322,81,272,1,160,195,321,81,380,28,196,197,322,5,321,197',
526
+ '380,44,44,322,322,322,322,322,322,322,322,322,198,322,322,322,322,322',
527
+ '322,322,322,322,322,239,48,28,322,322,322,160,195,322,322,322,272,196',
528
+ '197,262,322,322,322,322,322,322,322,322,322,322,322,322,322,322,47,198',
529
+ '46,7,322,322,322,322,330,330,268,330,239,330,330,330,330,24,84,27,270',
530
+ '318,319,330,145,189,262,46,47,47,330,330,330,330,330,330,330,330,330',
531
+ '320,330,330,330,330,330,330,330,330,330,330,84,268,51,330,330,330,145',
532
+ '189,330,330,330,270,318,319,88,330,330,330,330,330,330,330,330,330,330',
533
+ '330,330,330,330,166,320,51,263,330,330,330,330,331,331,88,331,32,331',
534
+ '331,331,331,31,31,35,31,6,6,331,36,166,302,328,263,54,331,331,331,331',
535
+ '331,331,331,331,331,385,331,331,331,331,331,331,331,331,331,331,6,302',
536
+ '328,331,331,331,386,387,331,331,331,308,154,154,385,331,331,331,331',
537
+ '331,331,331,331,331,331,331,331,331,331,55,308,386,387,331,331,331,331',
538
+ '332,332,56,332,57,332,332,332,332,30,30,30,30,169,169,332,30,30,30,0',
539
+ '0,0,332,332,332,332,332,332,332,332,332,58,332,332,332,332,332,332,332',
540
+ '332,332,332,192,192,78,332,332,332,193,193,332,332,332,194,194,200,200',
541
+ '332,332,332,332,332,332,332,332,332,332,332,332,332,332,356,356,80,356',
542
+ '332,332,332,332,34,82,34,85,34,86,34,356,34,201,201,202,202,34,356,356',
543
+ '356,356,356,356,356,356,356,92,356,356,356,356,356,356,356,356,356,356',
544
+ '258,258,93,356,356,356,260,260,356,356,356,34,265,265,94,356,356,356',
545
+ '356,356,356,356,356,356,356,356,356,356,356,375,375,95,375,356,356,356',
546
+ '356,96,150,150,150,150,34,97,375,150,150,150,347,347,98,375,375,375',
547
+ '375,375,375,375,375,375,99,375,375,375,375,375,375,375,375,375,375,357',
548
+ '357,100,375,375,375,358,358,375,375,375,372,372,378,378,375,375,375',
549
+ '375,375,375,375,375,375,375,375,375,375,375,381,381,383,383,375,375',
550
+ '375,375,388,388,101,388,102,388,388,388,388,392,392,407,407,409,409',
551
+ '388,410,410,103,104,105,106,388,388,388,388,388,388,388,388,388,120',
552
+ '388,388,388,388,388,388,388,388,388,388,130,131,133,388,388,388,135',
553
+ '138,388,388,388,139,146,147,148,388,388,388,388,388,388,388,388,388',
554
+ '388,388,388,388,388,415,415,171,415,388,388,388,388,187,199,204,209',
555
+ '233,234,235,415,236,237,238,240,241,244,415,415,415,415,415,415,415',
556
+ '415,415,247,415,415,415,415,415,415,415,415,415,415,249,250,251,415',
557
+ '415,415,252,253,415,415,415,255,273,277,279,415,415,415,415,415,415',
558
+ '415,415,415,415,415,415,415,415,280,284,298,299,415,415,415,415,49,300',
559
+ '315,49,49,49,49,316,317,325,49,49,49,329,49,49,49,333,49,334,49,49,49',
560
+ '49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,335,49,337,355,359',
561
+ '49,364,49,366,49,49,368,379,382,384,389,49,49,49,49,49,49,49,390,391',
562
+ '395,49,49,49,401,403,406,412,49,49,49,49,141,416,,141,141,141,141,,',
563
+ ',141,141,141,,141,,141,,141,,141,141,141,141,141,141,141,141,141,141',
564
+ '141,141,141,141,141,141,141,141,141,141,,141,,,,141,,,,,,,,,,,141,141',
565
+ '141,141,141,141,141,,,,141,141,141,,,,,141,141,141,141,177,,,177,177',
566
+ '177,177,,,,177,177,177,,177,177,177,,177,,177,177,177,177,177,177,177',
567
+ '177,177,177,177,177,177,177,177,177,177,177,177,177,,177,,,,177,,177',
568
+ ',177,177,,,,,,177,177,177,177,177,177,177,,,,177,177,177,,,,,177,177',
569
+ '177,177,178,,,178,178,178,178,,,,178,178,178,,178,178,178,,178,,178',
570
+ '178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178',
571
+ '178,178,,178,,,,178,,178,,178,178,,,,,,178,178,178,178,178,178,178,',
572
+ ',,178,178,178,,,,,178,178,178,178,179,,,179,179,179,179,,,,179,179,179',
573
+ ',179,179,179,,179,,179,179,179,179,179,179,179,179,179,179,179,179,179',
574
+ '179,179,179,179,179,179,179,,179,,,,179,,179,,,179,,,,,,179,179,179',
575
+ '179,179,179,179,,,,179,179,179,,,,,179,179,179,179,188,,,188,188,188',
576
+ '188,,,,188,188,188,,188,188,188,,188,,188,188,188,188,188,188,188,188',
577
+ '188,188,188,188,188,188,188,188,188,188,188,188,,188,,,,188,,188,,188',
578
+ '188,,,,,,188,188,188,188,188,188,188,,,,188,188,188,,,,,188,188,188',
579
+ '188,245,,,245,245,245,245,,,,245,245,245,,245,245,245,,245,,245,245',
580
+ '245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245',
581
+ '245,128,245,128,,,245,,245,,,245,,,,,,245,245,245,245,245,245,245,182',
582
+ ',182,245,245,245,180,180,180,180,245,245,245,245,,,,,,,,128,128,180',
583
+ '180,180,180,180,180,180,180,180,,180,180,180,180,180,180,180,180,180',
584
+ '180,128,182,182,,,,,180,,,180,,,,,,180,180,180,180,180,180,180,182,',
585
+ ',180,180,180,181,181,181,181,180,180,180,180,,,,,,,,,,181,181,181,181',
586
+ '181,181,181,181,181,,181,181,181,181,181,181,181,181,181,181,184,,184',
587
+ ',,,,181,,,181,,,,,,181,181,181,181,181,181,181,185,,185,181,181,181',
588
+ '211,211,211,211,181,181,181,181,,,,,,,,184,184,211,211,211,211,211,211',
589
+ '211,211,211,,211,211,211,211,211,211,211,211,211,211,184,185,185,186',
590
+ '79,186,228,79,228,79,,,,,,,211,211,211,211,211,211,211,185,,,211,211',
591
+ '211,79,,,,211,211,211,211,,,,79,,,,,,,186,186,,228,228,269,,269,,269',
592
+ ',269,,,269,269,269,276,,276,,276,186,276,,228,276,276,276,,,,283,,283',
593
+ '269,283,,283,,,283,283,283,269,269,,276,269,,,,,,,,276,276,,327,276',
594
+ '327,283,327,269,327,,,327,327,327,283,283,,,283,276,,,,,,,,,,,,,327',
595
+ ',283,,,,,,,327,327,,2,327,,,,,,,,,2,2,2,,2,,2,327,2,,2,2,2,2,2,2,2,2',
596
+ '2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25,25,25',
597
+ '25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26,,26,26',
598
+ '26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40,,40,',
599
+ '40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,,41,,,,,40,,,,40',
600
+ '41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41,41,41,41,41,,,43',
601
+ ',,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43,43,43,43,43,43',
602
+ '43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53,53,53,53,53,53',
603
+ '53,53,53,53,53,53,53,,,59,,,,,53,,,,53,59,59,59,,59,,59,,59,,59,59,59',
604
+ '59,59,59,59,59,59,59,59,59,59,59,,,90,,,,,59,,,,59,90,90,90,,90,,90',
605
+ ',90,,90,90,90,90,90,90,90,90,90,90,90,90,90,90,,,142,,,,,90,,,,90,142',
606
+ '142,142,,142,,142,,142,,142,142,142,142,142,142,142,142,142,142,142',
607
+ '142,142,142,,,143,,,,,142,,,,142,143,143,143,,143,,143,,143,,143,143',
608
+ '143,143,143,143,143,143,143,143,143,143,143,143,,,144,,,,,143,,,,143',
609
+ '144,144,144,,144,,144,,144,,144,144,144,144,144,144,144,144,144,144',
610
+ '144,144,144,144,,,151,,,,,144,,,,144,151,151,151,,151,,151,,151,,151',
611
+ '151,151,151,151,151,151,151,151,151,151,151,151,151,,,152,,,,,151,,',
612
+ ',151,152,152,152,,152,,152,,152,,152,152,152,152,152,152,152,152,152',
613
+ '152,152,152,152,152,,,153,,,,,152,,,,152,153,153,153,,153,,153,,153',
614
+ ',153,153,153,153,153,153,153,153,153,153,153,153,153,153,,,161,,,,,153',
615
+ ',,,153,161,161,161,,161,,161,,161,,161,161,161,161,161,161,161,161,161',
616
+ '161,161,161,161,161,,,162,,,,,161,,,,161,162,162,162,,162,,162,,162',
617
+ ',162,162,162,162,162,162,162,162,162,162,162,162,162,162,,,164,,,,,162',
618
+ ',,,162,164,164,164,,164,,164,,164,,164,164,164,164,164,164,164,164,164',
619
+ '164,164,164,164,164,,,183,,,,,164,,,,164,183,183,183,,183,,183,,183',
620
+ ',183,183,183,183,183,183,183,183,183,183,183,183,183,183,,,190,,,,,183',
621
+ ',,,183,190,190,190,,190,,190,,190,,190,190,190,190,190,190,190,190,190',
622
+ '190,190,190,190,190,,,205,,,,,190,,,,190,205,205,205,,205,,205,,205',
623
+ ',205,205,205,205,205,205,205,205,205,205,205,205,205,205,,,242,,,,,205',
624
+ ',,,205,242,242,242,,242,,242,,242,,242,242,242,242,242,242,242,242,242',
625
+ '242,242,242,242,242,,,271,,,,,242,,,,242,271,271,271,,271,,271,,271',
626
+ ',271,271,271,271,271,271,271,271,271,271,271,271,271,271,,,311,,,,,271',
627
+ ',,,271,311,311,311,,311,,311,,311,,311,311,311,311,311,311,311,311,311',
628
+ '311,311,311,311,311,,,323,,,,,311,,,,311,323,323,323,,323,,323,,323',
629
+ ',323,323,323,323,323,323,323,323,323,323,323,323,323,323,,,324,,,,,323',
630
+ ',,,323,324,324,324,,324,,324,,324,,324,324,324,324,324,324,324,324,324',
631
+ '324,324,324,324,324,,,363,,,,,324,,,,324,363,363,363,,363,,363,,363',
632
+ ',363,363,363,363,363,363,363,363,363,363,363,363,363,363,,,365,,,,,363',
633
+ ',,,363,365,365,365,,365,,365,,365,,365,365,365,365,365,365,365,365,365',
634
+ '365,365,365,365,365,,,367,,,,,365,,,,365,367,367,367,,367,,367,,367',
635
+ ',367,367,367,367,367,367,367,367,367,367,367,367,367,367,,,369,,,,,367',
636
+ ',,,367,369,369,369,,369,,369,,369,,369,369,369,369,369,369,369,369,369',
637
+ '369,369,369,369,369,,,370,,,,,369,,,,369,370,370,370,,370,,370,,370',
638
+ ',370,370,370,370,370,370,370,370,370,370,370,370,370,370,,,371,,,,,370',
639
+ ',,,370,371,371,371,,371,,371,,371,,371,371,371,371,371,371,371,371,371',
640
+ '371,371,371,371,371,,,377,,,,,371,,,,371,377,377,377,,377,,377,,377',
641
+ ',377,377,377,377,377,377,377,377,377,377,377,377,377,377,,,393,,,,,377',
642
+ ',,,377,393,393,393,,393,,393,,393,,393,393,393,393,393,393,393,393,393',
643
+ '393,393,393,393,393,,,396,,,,,393,,,,393,396,396,396,,396,,396,,396',
644
+ ',396,396,396,396,396,396,396,396,396,396,396,396,396,396,,,397,,,,,396',
645
+ ',,,396,397,397,397,,397,,397,,397,,397,397,397,397,397,397,397,397,397',
646
+ '397,397,397,397,397,285,,,285,,285,,397,285,,,397,,,,,,,,,,,,,,285,',
647
+ '285,285,285,285,285,,,,285,285' ]
648
+ racc_action_check = arr = ::Array.new(2787, nil)
630
649
  idx = 0
631
650
  clist.each do |str|
632
651
  str.split(',', -1).each do |i|
@@ -636,194 +655,196 @@ clist = [
636
655
  end
637
656
 
638
657
  racc_action_pointer = [
639
- 96, 4, 1444, nil, nil, 9, 51, -35, nil, nil,
658
+ 183, 6, 1452, nil, nil, 16, 124, 23, nil, nil,
640
659
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
641
- nil, nil, nil, nil, 51, 1480, 1516, 56, -1, nil,
642
- 302, 351, 79, nil, 237, 12, 80, nil, nil, nil,
643
- 1552, 1588, nil, 1624, -27, nil, 131, 131, -2, nil,
644
- 596, 1660, 100, 114, 147, 152, 185, 1696, nil, nil,
660
+ nil, nil, nil, nil, 68, 1488, 1524, 72, -6, nil,
661
+ 239, 165, 158, nil, 316, 93, 154, nil, nil, nil,
662
+ 1560, 1596, nil, 1632, -27, nil, 52, 52, -2, 604,
663
+ nil, 101, nil, 1668, 156, 183, 184, 186, 213, 1704,
645
664
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
646
- nil, nil, nil, nil, nil, nil, 229, 1269, 205, 166,
647
- 216, nil, 267, 300, 260, nil, 154, nil, 1732, nil,
648
- 295, 319, 287, 300, 311, 329, 335, 348, 358, 371,
649
- 408, 410, 437, 476, nil, nil, nil, nil, nil, nil,
650
- nil, nil, nil, nil, nil, nil, nil, 459, nil, nil,
651
- nil, nil, nil, nil, nil, 1099, nil, 460, 486, 460,
652
- nil, 477, nil, 483, nil, nil, 484, 485, nil, 673,
653
- 1768, 1804, 1840, 481, nil, 373, 1876, 1912, 1948, 164,
654
- nil, nil, nil, nil, nil, 8, 1984, 2020, nil, 2056,
655
- 22, 750, 155, nil, nil, 230, nil, nil, nil, nil,
656
- nil, nil, 483, 827, 904, 981, 1124, 1190, 1122, 2092,
657
- 1231, 1254, 1300, nil, 236, 272, 295, 9, 10, 87,
658
- 27, 478, 301, 337, 343, 485, 78, 515, 519, nil,
659
- 537, 2128, nil, nil, nil, 494, nil, 1256, nil, nil,
665
+ nil, nil, nil, nil, nil, nil, nil, nil, 268, 1277,
666
+ 266, 2, 273, nil, 71, 317, 273, nil, 114, nil,
667
+ 1740, nil, 320, 350, 345, 337, 343, 349, 356, 366,
668
+ 379, 416, 418, 432, 433, 434, 461, nil, nil, nil,
660
669
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
661
- nil, nil, nil, nil, 1303, nil, nil, nil, 521, 522,
662
- 532, 44, 543, 559, 2164, 2200, 542, 117, nil, nil,
663
- 518, 1058, nil, 552, 515, 496, 532, 531, nil, 572,
664
- nil, nil, 366, 542, nil, 571, nil, 417, nil, 52,
665
- 168, nil, 347, nil, nil, 77, 1350, 88, 2236, 29,
666
- nil, 576, nil, nil, 1362, 581, nil, 523, 605, nil,
667
- nil, 1377, 562, 2707, nil, nil, nil, nil, nil, nil,
668
- nil, nil, nil, nil, nil, nil, 565, 569, 560, nil,
669
- 185, nil, nil, nil, nil, nil, 110, nil, nil, 2272,
670
- nil, nil, nil, -2, 77, 156, 89, 106, 117, -62,
671
- 227, 2308, 2344, 608, nil, 1404, 192, 2380, 622, nil,
672
- nil, nil, nil, nil, nil, nil, nil, 375, nil, nil,
673
- nil, nil, nil, nil, nil, 2416, 624, 2452, 625, 624,
674
- 626, 628, nil, 612, nil, 595, 298, 395, 397, 609,
675
- nil, nil, 412, 610, 0, nil, nil, 414, 611, 416,
676
- 619, 2488, 2524, 2560, 434, 369, nil, 2596, 2632, nil,
677
- 645, 2668, 2704, 225, 226, 227, 448, 608, 612, 638,
678
- 421, 423, nil, 445, 451, nil, nil, nil, 613, nil,
679
- 628, nil, nil, 621, nil, 632, nil, nil, 519, 626,
680
- nil, nil ]
670
+ 445, nil, nil, nil, nil, nil, nil, nil, 1107, nil,
671
+ 456, 455, nil, 456, nil, 460, nil, nil, 461, 465,
672
+ nil, 681, 1776, 1812, 1848, 77, 490, 463, 463, nil,
673
+ 381, 1884, 1920, 1956, 165, nil, nil, nil, nil, nil,
674
+ 3, 1992, 2028, nil, 2064, nil, 129, nil, nil, 203,
675
+ nil, 481, nil, nil, nil, nil, nil, 758, 835, 912,
676
+ 1132, 1198, 1130, 2100, 1239, 1262, 1308, 514, 989, 78,
677
+ 2136, nil, 232, 238, 243, 4, 9, 10, 27, 482,
678
+ 245, 278, 280, nil, 537, 2172, nil, nil, nil, 494,
679
+ nil, 1264, nil, nil, nil, nil, nil, nil, nil, nil,
680
+ nil, nil, nil, nil, nil, nil, nil, nil, 1311, nil,
681
+ nil, nil, nil, 522, 519, 492, 525, 526, 527, 38,
682
+ 528, 544, 2208, nil, 499, 1066, nil, 510, nil, 553,
683
+ 513, 494, 533, 532, nil, 562, nil, nil, 303, nil,
684
+ 354, nil, 52, 132, nil, 285, nil, nil, 77, 1358,
685
+ 87, 2244, -8, 564, nil, nil, 1370, 564, nil, 506,
686
+ 598, nil, nil, 1385, 555, 2715, nil, nil, nil, nil,
687
+ nil, nil, nil, nil, nil, nil, nil, nil, 558, 559,
688
+ 552, nil, 155, nil, nil, nil, nil, nil, 168, nil,
689
+ nil, 2280, nil, nil, nil, 578, 583, 584, 88, 89,
690
+ 106, -63, -2, 2316, 2352, 606, nil, 1412, 156, 564,
691
+ 77, 156, 235, 605, 607, 628, nil, 611, nil, nil,
692
+ nil, nil, nil, nil, nil, nil, nil, 347, nil, nil,
693
+ nil, nil, nil, nil, nil, 594, 306, 374, 380, 608,
694
+ nil, nil, nil, 2388, 636, 2424, 638, 2460, 641, 2496,
695
+ 2532, 2568, 400, nil, nil, 377, nil, 2604, 387, 616,
696
+ 0, 403, 617, 405, 618, 168, 185, 186, 456, 606,
697
+ 614, 640, 420, 2640, nil, 654, 2676, 2712, nil, nil,
698
+ nil, 619, nil, 634, nil, nil, 622, 422, nil, 424,
699
+ 427, nil, 633, nil, nil, 527, 628, nil, nil ]
681
700
 
682
701
  racc_action_default = [
683
- -243, -243, -239, -6, -16, -243, -4, -160, -163, -164,
684
- -165, -166, -167, -168, -169, -170, -171, -172, -173, -174,
685
- -175, -176, -177, -178, -179, -239, -239, -243, -243, -187,
686
- -243, -243, -240, -242, -17, -4, -150, 412, -1, -5,
687
- -239, -239, -186, -239, -188, -181, -243, -243, -239, -185,
688
- -239, -239, -243, -191, -243, -243, -243, -239, -199, -200,
689
- -201, -202, -233, -234, -235, -236, -241, -2, -7, -8,
690
- -9, -10, -11, -12, -13, -14, -17, -243, -243, -243,
691
- -243, -3, -82, -243, -161, -162, -243, -182, -239, -183,
692
- -243, -243, -173, -163, -167, -174, -175, -164, -165, -168,
693
- -169, -172, -166, -118, -119, -120, -121, -122, -123, -124,
694
- -125, -126, -127, -128, -129, -130, -131, -170, -133, -134,
695
- -135, -136, -137, -138, -139, -229, -197, -243, -243, -206,
696
- -207, -209, -210, -212, -213, -216, -219, -221, -222, -239,
697
- -239, -239, -239, -204, -190, -243, -239, -239, -239, -196,
698
- -18, -15, -15, -15, -15, -239, -239, -239, -238, -239,
699
- -84, -239, -243, -152, -180, -189, -184, -223, -230, -231,
700
- -232, -198, -243, -239, -239, -239, -217, -217, -229, -239,
701
- -229, -229, -229, -192, -193, -194, -195, -239, -239, -239,
702
- -239, -243, -157, -158, -159, -243, -243, -243, -243, -151,
703
- -243, -239, -205, -213, -208, -215, -211, -243, -107, -108,
704
- -109, -110, -111, -112, -113, -114, -115, -116, -117, -118,
705
- -132, -218, -220, -224, -229, -225, -226, -228, -150, -140,
706
- -140, -239, -140, -243, -239, -239, -243, -243, -83, -153,
707
- -203, -239, -227, -243, -23, -148, -28, -34, -30, -33,
708
- -59, -237, -156, -81, -85, -243, -214, -243, -34, -239,
709
- -243, -142, -145, -149, -34, -239, -17, -239, -239, -17,
710
- -86, -243, -20, -21, -17, -24, -141, -148, -243, -146,
711
- -147, -17, -29, -73, -27, -35, -36, -37, -38, -39,
712
- -40, -41, -42, -43, -44, -45, -243, -243, -243, -31,
713
- -243, -58, -60, -61, -62, -63, -73, -34, -22, -239,
714
- -143, -144, -26, -243, -243, -243, -239, -239, -239, -70,
715
- -243, -239, -239, -243, -32, -17, -243, -239, -52, -89,
716
- -90, -91, -92, -93, -94, -95, -96, -97, -100, -101,
717
- -102, -103, -104, -105, -106, -239, -52, -239, -52, -64,
718
- -66, -68, -71, -243, -74, -132, -243, -55, -56, -243,
719
- -19, -25, -46, -243, -243, -98, -99, -48, -243, -50,
720
- -243, -239, -239, -239, -75, -243, -154, -239, -239, -53,
721
- -243, -239, -239, -243, -243, -243, -243, -243, -243, -243,
722
- -57, -47, -54, -49, -51, -65, -67, -69, -16, -87,
723
- -243, -76, -77, -243, -72, -78, -79, -88, -243, -16,
724
- -155, -80 ]
702
+ -246, -246, -242, -6, -16, -246, -4, -161, -164, -165,
703
+ -166, -167, -168, -169, -170, -171, -172, -173, -174, -175,
704
+ -176, -177, -178, -179, -180, -242, -242, -246, -84, -188,
705
+ -246, -246, -243, -245, -17, -4, -151, 419, -1, -5,
706
+ -242, -242, -187, -242, -189, -182, -246, -246, -242, -242,
707
+ -186, -246, -205, -242, -246, -192, -246, -246, -246, -242,
708
+ -200, -201, -202, -203, -236, -237, -238, -239, -244, -2,
709
+ -7, -8, -9, -10, -11, -12, -13, -14, -17, -246,
710
+ -246, -246, -246, -3, -84, -246, -162, -163, -246, -183,
711
+ -242, -184, -246, -246, -246, -174, -164, -168, -175, -176,
712
+ -165, -166, -169, -170, -173, -167, -119, -120, -121, -122,
713
+ -123, -124, -125, -126, -127, -128, -129, -130, -131, -132,
714
+ -171, -134, -135, -136, -137, -138, -139, -140, -232, -198,
715
+ -246, -209, -210, -212, -213, -215, -216, -219, -222, -224,
716
+ -225, -242, -242, -242, -242, -246, -246, -246, -207, -191,
717
+ -246, -242, -242, -242, -197, -18, -15, -15, -15, -15,
718
+ -242, -242, -242, -241, -242, -83, -246, -153, -181, -190,
719
+ -185, -85, -226, -233, -234, -235, -199, -242, -242, -242,
720
+ -220, -220, -232, -242, -232, -232, -232, -246, -242, -246,
721
+ -242, -193, -194, -195, -196, -242, -242, -242, -242, -246,
722
+ -158, -159, -160, -152, -246, -242, -208, -216, -211, -218,
723
+ -214, -246, -108, -109, -110, -111, -112, -113, -114, -115,
724
+ -116, -117, -118, -119, -133, -221, -223, -227, -232, -228,
725
+ -229, -231, -86, -246, -246, -204, -151, -141, -141, -242,
726
+ -141, -246, -242, -154, -206, -242, -230, -246, -87, -246,
727
+ -23, -149, -28, -34, -30, -33, -61, -240, -157, -217,
728
+ -246, -34, -242, -246, -143, -146, -150, -34, -242, -17,
729
+ -242, -242, -17, -246, -20, -21, -17, -24, -142, -149,
730
+ -246, -147, -148, -17, -29, -75, -27, -35, -36, -37,
731
+ -38, -39, -40, -41, -42, -43, -44, -45, -246, -246,
732
+ -246, -31, -246, -60, -62, -63, -64, -65, -75, -34,
733
+ -22, -242, -144, -145, -26, -46, -46, -46, -242, -242,
734
+ -242, -72, -246, -242, -242, -246, -32, -17, -246, -246,
735
+ -246, -246, -246, -66, -68, -70, -73, -246, -76, -90,
736
+ -91, -92, -93, -94, -95, -96, -97, -98, -101, -102,
737
+ -103, -104, -105, -106, -107, -133, -246, -57, -58, -246,
738
+ -19, -25, -47, -242, -54, -242, -54, -242, -54, -242,
739
+ -242, -242, -77, -99, -100, -246, -155, -242, -48, -246,
740
+ -246, -50, -246, -52, -246, -246, -246, -246, -246, -246,
741
+ -246, -246, -59, -242, -55, -246, -242, -242, -67, -69,
742
+ -71, -16, -88, -246, -78, -79, -246, -49, -56, -51,
743
+ -53, -74, -80, -81, -89, -246, -16, -156, -82 ]
725
744
 
726
745
  racc_goto_table = [
727
- 6, 57, 77, 46, 82, 191, 49, 128, 79, 90,
728
- 143, 52, 167, 247, 179, 203, 1, 206, 328, 346,
729
- 348, 86, 91, 38, 47, 356, 261, 344, 344, 344,
730
- 205, 205, 266, 34, 344, 404, 363, 35, 84, 85,
731
- 221, 222, 68, 274, 150, 271, 411, 282, 125, 281,
732
- 258, 67, 81, 264, 368, 149, 370, 299, 310, 244,
733
- 246, 376, 250, 303, 304, 223, 305, 225, 226, 227,
734
- 344, 187, 188, 189, 190, 232, 269, 302, 353, 386,
735
- 389, 249, 179, 256, 398, 160, 165, 195, 260, 344,
736
- 278, 400, 325, 162, 204, 62, nil, 205, nil, nil,
737
- 344, nil, nil, nil, nil, nil, nil, nil, nil, nil,
738
- nil, 242, nil, 410, nil, 249, 57, 249, 198, nil,
739
- nil, nil, 344, nil, nil, nil, 183, nil, nil, nil,
740
- 202, nil, nil, nil, nil, nil, nil, 178, 180, 181,
741
- 182, nil, nil, nil, 184, 185, 186, nil, 228, 229,
742
- 230, nil, nil, nil, 192, 193, nil, 194, nil, 125,
743
- 240, 91, 91, 91, 233, nil, 349, 350, 351, nil,
744
- nil, 125, 125, 125, 236, nil, nil, 224, nil, nil,
746
+ 6, 59, 46, 81, 79, 92, 84, 54, 94, 148,
747
+ 199, 172, 183, 207, 50, 210, 264, 93, 187, 356,
748
+ 88, 38, 1, 253, 47, 411, 354, 364, 366, 368,
749
+ 209, 209, 225, 226, 354, 354, 354, 269, 86, 87,
750
+ 418, 330, 331, 332, 312, 276, 34, 128, 155, 69,
751
+ 83, 283, 284, 376, 379, 35, 382, 154, 384, 70,
752
+ 354, 273, 234, 250, 252, 227, 256, 229, 230, 231,
753
+ 165, 261, 391, 195, 196, 197, 198, 267, 301, 354,
754
+ 305, 259, 183, 306, 307, 403, 240, 272, 169, 255,
755
+ 304, 337, 354, 327, 388, 401, 147, 209, 263, 280,
756
+ 166, 208, 64, nil, nil, nil, nil, nil, nil, nil,
757
+ nil, 246, 417, nil, nil, nil, nil, nil, 255, 354,
758
+ 255, 59, nil, nil, nil, nil, nil, 191, nil, nil,
759
+ nil, nil, nil, nil, nil, nil, 206, nil, nil, 182,
760
+ 184, 185, 186, nil, nil, nil, 235, 233, nil, 192,
761
+ 193, 194, 236, 237, 238, nil, nil, nil, nil, 200,
762
+ 201, 244, 202, nil, 93, 93, 93, 241, 333, 334,
763
+ 335, nil, nil, nil, nil, 128, 128, 128, nil, nil,
764
+ nil, 228, nil, nil, nil, nil, 128, nil, nil, nil,
745
765
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
746
- nil, nil, nil, nil, 253, nil, 243, nil, nil, nil,
766
+ nil, nil, nil, nil, nil, nil, 249, nil, nil, nil,
767
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 277,
747
768
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
748
- nil, nil, nil, nil, nil, 255, nil, nil, nil, nil,
749
- 275, nil, nil, nil, nil, nil, nil, nil, nil, nil,
750
- nil, nil, 252, 91, nil, nil, nil, 306, nil, 125,
751
- 79, nil, nil, nil, nil, nil, 300, nil, 79, nil,
752
- nil, nil, nil, nil, nil, 79, nil, nil, nil, nil,
769
+ nil, 93, nil, nil, nil, nil, nil, nil, 81, nil,
770
+ 258, nil, 308, 128, nil, 81, nil, nil, 302, nil,
771
+ nil, nil, 81, nil, nil, nil, nil, nil, nil, nil,
753
772
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
754
773
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
755
- nil, nil, nil, nil, 327, 345, 347, 326, nil, nil,
756
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 79,
774
+ nil, nil, nil, nil, nil, nil, nil, nil, 328, nil,
775
+ nil, nil, nil, nil, nil, nil, 81, nil, nil, nil,
776
+ nil, 363, 365, 367, nil, nil, nil, nil, nil, nil,
757
777
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
758
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 357,
759
- 358, nil, nil, nil, nil, 362, nil, nil, nil, nil,
778
+ nil, 357, 358, nil, nil, nil, nil, nil, nil, nil,
760
779
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
761
- nil, nil, nil, 367, nil, 369, nil, nil, nil, 383,
762
- 384, 385, nil, nil, nil, nil, nil, 399, nil, nil,
780
+ nil, nil, nil, nil, nil, nil, 385, 386, 387, nil,
781
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 402,
782
+ nil, 378, nil, 381, nil, 383, nil, nil, nil, nil,
783
+ nil, nil, nil, nil, nil, 392, nil, nil, nil, nil,
763
784
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
764
- nil, nil, nil, nil, nil, 390, 391, nil, nil, 393,
765
- 394 ]
785
+ nil, 407, nil, nil, 409, 410 ]
766
786
 
767
787
  racc_goto_check = [
768
- 2, 36, 16, 23, 18, 27, 51, 50, 59, 17,
769
- 49, 61, 74, 25, 63, 69, 1, 69, 37, 37,
770
- 37, 23, 59, 3, 2, 37, 55, 53, 53, 53,
771
- 64, 64, 20, 4, 53, 46, 38, 5, 2, 2,
772
- 70, 70, 6, 20, 16, 19, 46, 25, 2, 20,
773
- 22, 3, 3, 24, 38, 2, 38, 26, 55, 21,
774
- 21, 37, 21, 29, 30, 74, 35, 74, 74, 74,
775
- 53, 14, 14, 14, 14, 39, 40, 41, 42, 44,
776
- 37, 27, 63, 69, 45, 47, 2, 48, 54, 53,
777
- 57, 37, 20, 58, 65, 75, nil, 64, nil, nil,
778
- 53, nil, nil, nil, nil, nil, nil, nil, nil, nil,
779
- nil, 74, nil, 37, nil, 27, 36, 27, 50, nil,
780
- nil, nil, 53, nil, nil, nil, 61, nil, nil, nil,
781
- 50, nil, nil, nil, nil, nil, nil, 2, 2, 2,
782
- 2, nil, nil, nil, 2, 2, 2, nil, 17, 17,
783
- 17, nil, nil, nil, 2, 2, nil, 2, nil, 2,
784
- 49, 59, 59, 59, 59, nil, 27, 27, 27, nil,
785
- nil, 2, 2, 2, 51, nil, nil, 2, nil, nil,
788
+ 2, 37, 23, 60, 16, 17, 18, 63, 50, 61,
789
+ 27, 76, 65, 71, 48, 71, 56, 60, 52, 38,
790
+ 23, 3, 1, 25, 2, 47, 54, 38, 38, 38,
791
+ 66, 66, 72, 72, 54, 54, 54, 20, 2, 2,
792
+ 47, 36, 36, 36, 56, 20, 4, 2, 16, 3,
793
+ 3, 20, 25, 38, 39, 5, 39, 2, 39, 6,
794
+ 54, 19, 52, 21, 21, 76, 21, 76, 76, 76,
795
+ 48, 22, 38, 14, 14, 14, 14, 24, 26, 54,
796
+ 29, 71, 65, 30, 35, 38, 40, 41, 2, 27,
797
+ 42, 43, 54, 20, 45, 46, 51, 66, 55, 58,
798
+ 59, 67, 77, nil, nil, nil, nil, nil, nil, nil,
799
+ nil, 76, 38, nil, nil, nil, nil, nil, 27, 54,
800
+ 27, 37, nil, nil, nil, nil, nil, 63, nil, nil,
801
+ nil, nil, nil, nil, nil, nil, 50, nil, nil, 2,
802
+ 2, 2, 2, nil, nil, nil, 61, 50, nil, 2,
803
+ 2, 2, 17, 17, 17, nil, nil, nil, nil, 2,
804
+ 2, 61, 2, nil, 60, 60, 60, 60, 27, 27,
805
+ 27, nil, nil, nil, nil, 2, 2, 2, nil, nil,
806
+ nil, 2, nil, nil, nil, nil, 2, nil, nil, nil,
786
807
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
787
- nil, nil, nil, nil, 49, nil, 18, nil, nil, nil,
808
+ nil, nil, nil, nil, nil, nil, 18, nil, nil, nil,
809
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 17,
788
810
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
789
- nil, nil, nil, nil, nil, 51, nil, nil, nil, nil,
790
- 17, nil, nil, nil, nil, nil, nil, nil, nil, nil,
791
- nil, nil, 2, 59, nil, nil, nil, 16, nil, 2,
792
- 59, nil, nil, nil, nil, nil, 23, nil, 59, nil,
793
- nil, nil, nil, nil, nil, 59, nil, nil, nil, nil,
811
+ nil, 60, nil, nil, nil, nil, nil, nil, 60, nil,
812
+ 2, nil, 16, 2, nil, 60, nil, nil, 23, nil,
813
+ nil, nil, 60, nil, nil, nil, nil, nil, nil, nil,
794
814
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
795
815
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
796
- nil, nil, nil, nil, 36, 36, 36, 23, nil, nil,
797
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 59,
816
+ nil, nil, nil, nil, nil, nil, nil, nil, 23, nil,
817
+ nil, nil, nil, nil, nil, nil, 60, nil, nil, nil,
818
+ nil, 37, 37, 37, nil, nil, nil, nil, nil, nil,
798
819
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
799
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 2,
800
- 2, nil, nil, nil, nil, 2, nil, nil, nil, nil,
820
+ nil, 2, 2, nil, nil, nil, nil, nil, nil, nil,
801
821
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
802
- nil, nil, nil, 2, nil, 2, nil, nil, nil, 23,
803
- 23, 23, nil, nil, nil, nil, nil, 36, nil, nil,
822
+ nil, nil, nil, nil, nil, nil, 23, 23, 23, nil,
823
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 37,
824
+ nil, 2, nil, 2, nil, 2, nil, nil, nil, nil,
825
+ nil, nil, nil, nil, nil, 2, nil, nil, nil, nil,
804
826
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
805
- nil, nil, nil, nil, nil, 2, 2, nil, nil, 2,
806
- 2 ]
827
+ nil, 2, nil, nil, 2, 2 ]
807
828
 
808
829
  racc_goto_pointer = [
809
- nil, 16, -2, 17, 30, 33, 8, nil, nil, nil,
810
- nil, nil, nil, nil, -80, nil, -32, -39, -32, -212,
811
- -215, -170, -194, -22, -193, -218, -210, -150, nil, -206,
812
- -205, nil, nil, nil, nil, -203, -29, -295, -292, -115,
813
- -174, -192, -241, nil, -295, -302, -363, 3, -73, -41,
814
- -43, -22, nil, -286, -157, -219, nil, -172, 10, -26,
815
- nil, -19, nil, -125, -144, -80, nil, nil, nil, -158,
816
- -136, nil, nil, nil, -113, 64 ]
830
+ nil, 22, -2, 15, 43, 51, 25, nil, nil, nil,
831
+ nil, nil, nil, nil, -83, nil, -30, -43, -30, -199,
832
+ -216, -174, -179, -23, -175, -216, -192, -150, nil, -192,
833
+ -189, nil, nil, nil, nil, -188, -274, -29, -303, -310,
834
+ -112, -169, -182, -230, nil, -278, -293, -376, -14, nil,
835
+ -41, 45, -127, nil, -296, -153, -235, nil, -166, 15,
836
+ -31, -44, nil, -23, nil, -129, -148, -77, nil, nil,
837
+ nil, -164, -148, nil, nil, nil, -117, 71 ]
817
838
 
818
839
  racc_goto_default = [
819
- nil, nil, 44, nil, nil, 405, 295, 69, 70, 71,
820
- 72, 73, 74, 75, nil, 36, 283, 78, nil, nil,
821
- nil, nil, nil, nil, nil, nil, 248, 24, 285, 286,
822
- 287, 288, 289, 290, 291, 294, 126, nil, nil, nil,
823
- nil, nil, nil, 319, nil, nil, nil, nil, nil, 7,
824
- nil, nil, 337, 127, nil, nil, 262, nil, nil, 31,
825
- 29, nil, 53, 141, 129, 130, 131, 132, 133, 134,
826
- 135, 136, 137, 138, nil, nil ]
840
+ nil, nil, 44, nil, nil, 412, 297, 71, 72, 73,
841
+ 74, 75, 76, 77, nil, 36, 285, 80, nil, nil,
842
+ nil, nil, nil, nil, nil, nil, 254, 24, 287, 288,
843
+ 289, 290, 291, 292, 293, 296, nil, 129, nil, nil,
844
+ nil, nil, nil, nil, 321, nil, nil, nil, nil, 51,
845
+ nil, nil, 52, 347, 130, nil, nil, 265, nil, nil,
846
+ 31, 7, 29, nil, 55, 143, 131, 132, 133, 134,
847
+ 135, 136, 137, 138, 139, 140, nil, nil ]
827
848
 
828
849
  racc_reduce_table = [
829
850
  0, 0, :racc_error,
@@ -872,207 +893,210 @@ racc_reduce_table = [
872
893
  1, 109, :_reduce_43,
873
894
  1, 109, :_reduce_none,
874
895
  1, 109, :_reduce_none,
875
- 4, 115, :_reduce_46,
876
- 6, 115, :_reduce_47,
877
- 4, 115, :_reduce_48,
878
- 6, 115, :_reduce_49,
879
- 4, 115, :_reduce_50,
880
- 6, 115, :_reduce_51,
881
- 0, 119, :_reduce_52,
882
- 2, 119, :_reduce_53,
883
- 3, 119, :_reduce_54,
884
- 3, 114, :_reduce_55,
885
- 3, 114, :_reduce_56,
886
- 5, 114, :_reduce_57,
887
- 7, 91, :_reduce_58,
888
- 0, 121, :_reduce_59,
889
- 2, 121, :_reduce_60,
890
- 1, 122, :_reduce_61,
891
- 1, 122, :_reduce_62,
892
- 1, 122, :_reduce_none,
893
- 3, 111, :_reduce_64,
894
- 6, 111, :_reduce_65,
895
- 3, 112, :_reduce_66,
896
- 6, 112, :_reduce_67,
897
- 3, 113, :_reduce_68,
898
- 6, 113, :_reduce_69,
899
- 0, 123, :_reduce_70,
900
- 1, 123, :_reduce_71,
901
- 7, 110, :_reduce_72,
902
- 0, 124, :_reduce_none,
903
- 2, 124, :_reduce_74,
904
- 0, 125, :_reduce_75,
896
+ 0, 117, :_reduce_46,
897
+ 2, 117, :_reduce_47,
898
+ 5, 115, :_reduce_48,
899
+ 7, 115, :_reduce_49,
900
+ 5, 115, :_reduce_50,
901
+ 7, 115, :_reduce_51,
902
+ 5, 115, :_reduce_52,
903
+ 7, 115, :_reduce_53,
904
+ 0, 120, :_reduce_54,
905
+ 2, 120, :_reduce_55,
906
+ 3, 120, :_reduce_56,
907
+ 3, 114, :_reduce_57,
908
+ 3, 114, :_reduce_58,
909
+ 5, 114, :_reduce_59,
910
+ 7, 91, :_reduce_60,
911
+ 0, 122, :_reduce_61,
912
+ 2, 122, :_reduce_62,
913
+ 1, 123, :_reduce_63,
914
+ 1, 123, :_reduce_64,
915
+ 1, 123, :_reduce_none,
916
+ 3, 111, :_reduce_66,
917
+ 6, 111, :_reduce_67,
918
+ 3, 112, :_reduce_68,
919
+ 6, 112, :_reduce_69,
920
+ 3, 113, :_reduce_70,
921
+ 6, 113, :_reduce_71,
922
+ 0, 124, :_reduce_72,
923
+ 1, 124, :_reduce_73,
924
+ 7, 110, :_reduce_74,
925
+ 0, 125, :_reduce_none,
905
926
  2, 125, :_reduce_76,
906
- 2, 125, :_reduce_77,
907
- 1, 127, :_reduce_78,
908
- 1, 127, :_reduce_79,
909
- 3, 127, :_reduce_80,
910
- 6, 86, :_reduce_81,
911
- 0, 128, :_reduce_82,
912
- 3, 128, :_reduce_83,
913
- 0, 129, :_reduce_84,
914
- 3, 129, :_reduce_85,
915
- 4, 129, :_reduce_86,
916
- 1, 126, :_reduce_none,
917
- 2, 126, :_reduce_88,
918
- 1, 118, :_reduce_none,
919
- 1, 118, :_reduce_none,
920
- 1, 118, :_reduce_none,
921
- 1, 118, :_reduce_none,
922
- 1, 118, :_reduce_none,
923
- 1, 118, :_reduce_none,
924
- 1, 118, :_reduce_none,
925
- 1, 118, :_reduce_none,
926
- 1, 118, :_reduce_none,
927
- 2, 118, :_reduce_98,
928
- 2, 118, :_reduce_99,
929
- 1, 118, :_reduce_none,
930
- 1, 118, :_reduce_none,
931
- 1, 118, :_reduce_none,
932
- 1, 133, :_reduce_none,
933
- 1, 133, :_reduce_none,
934
- 1, 133, :_reduce_none,
935
- 1, 133, :_reduce_none,
936
- 1, 134, :_reduce_none,
937
- 1, 134, :_reduce_none,
938
- 1, 134, :_reduce_none,
939
- 1, 134, :_reduce_none,
940
- 1, 134, :_reduce_none,
941
- 1, 134, :_reduce_none,
942
- 1, 134, :_reduce_none,
943
- 1, 134, :_reduce_none,
944
- 1, 134, :_reduce_none,
945
- 1, 134, :_reduce_none,
946
- 1, 134, :_reduce_none,
947
- 1, 134, :_reduce_none,
927
+ 0, 126, :_reduce_77,
928
+ 2, 126, :_reduce_78,
929
+ 2, 126, :_reduce_79,
930
+ 1, 128, :_reduce_80,
931
+ 1, 128, :_reduce_81,
932
+ 3, 128, :_reduce_82,
933
+ 3, 86, :_reduce_83,
934
+ 0, 130, :_reduce_84,
935
+ 3, 130, :_reduce_85,
936
+ 3, 132, :_reduce_86,
937
+ 4, 132, :_reduce_87,
938
+ 1, 127, :_reduce_none,
939
+ 2, 127, :_reduce_89,
940
+ 1, 119, :_reduce_none,
941
+ 1, 119, :_reduce_none,
942
+ 1, 119, :_reduce_none,
943
+ 1, 119, :_reduce_none,
944
+ 1, 119, :_reduce_none,
945
+ 1, 119, :_reduce_none,
946
+ 1, 119, :_reduce_none,
947
+ 1, 119, :_reduce_none,
948
+ 1, 119, :_reduce_none,
949
+ 2, 119, :_reduce_99,
950
+ 2, 119, :_reduce_100,
951
+ 1, 119, :_reduce_none,
952
+ 1, 119, :_reduce_none,
953
+ 1, 119, :_reduce_none,
948
954
  1, 134, :_reduce_none,
949
955
  1, 134, :_reduce_none,
950
956
  1, 134, :_reduce_none,
951
957
  1, 134, :_reduce_none,
952
- 1, 134, :_reduce_none,
953
- 1, 134, :_reduce_none,
954
- 1, 134, :_reduce_none,
955
- 1, 134, :_reduce_none,
956
- 1, 134, :_reduce_none,
957
- 1, 134, :_reduce_none,
958
- 1, 134, :_reduce_none,
959
- 1, 134, :_reduce_none,
960
- 1, 134, :_reduce_none,
961
- 1, 134, :_reduce_none,
962
- 1, 134, :_reduce_none,
963
- 1, 134, :_reduce_none,
964
- 1, 134, :_reduce_none,
965
- 1, 134, :_reduce_none,
966
- 1, 134, :_reduce_none,
967
- 1, 134, :_reduce_none,
968
- 1, 134, :_reduce_none,
969
- 0, 102, :_reduce_140,
970
- 3, 102, :_reduce_141,
971
- 1, 135, :_reduce_142,
972
- 3, 135, :_reduce_143,
958
+ 1, 135, :_reduce_none,
959
+ 1, 135, :_reduce_none,
960
+ 1, 135, :_reduce_none,
961
+ 1, 135, :_reduce_none,
962
+ 1, 135, :_reduce_none,
963
+ 1, 135, :_reduce_none,
964
+ 1, 135, :_reduce_none,
965
+ 1, 135, :_reduce_none,
966
+ 1, 135, :_reduce_none,
967
+ 1, 135, :_reduce_none,
968
+ 1, 135, :_reduce_none,
969
+ 1, 135, :_reduce_none,
970
+ 1, 135, :_reduce_none,
971
+ 1, 135, :_reduce_none,
972
+ 1, 135, :_reduce_none,
973
+ 1, 135, :_reduce_none,
974
+ 1, 135, :_reduce_none,
975
+ 1, 135, :_reduce_none,
976
+ 1, 135, :_reduce_none,
977
+ 1, 135, :_reduce_none,
978
+ 1, 135, :_reduce_none,
979
+ 1, 135, :_reduce_none,
980
+ 1, 135, :_reduce_none,
981
+ 1, 135, :_reduce_none,
982
+ 1, 135, :_reduce_none,
983
+ 1, 135, :_reduce_none,
984
+ 1, 135, :_reduce_none,
985
+ 1, 135, :_reduce_none,
986
+ 1, 135, :_reduce_none,
987
+ 1, 135, :_reduce_none,
988
+ 1, 135, :_reduce_none,
989
+ 1, 135, :_reduce_none,
990
+ 1, 135, :_reduce_none,
991
+ 0, 102, :_reduce_141,
992
+ 3, 102, :_reduce_142,
993
+ 1, 136, :_reduce_143,
973
994
  3, 136, :_reduce_144,
974
- 0, 138, :_reduce_145,
975
- 1, 138, :_reduce_146,
976
- 1, 138, :_reduce_147,
977
- 0, 137, :_reduce_148,
978
- 1, 137, :_reduce_149,
979
- 0, 99, :_reduce_150,
980
- 3, 99, :_reduce_151,
981
- 1, 139, :_reduce_152,
982
- 3, 139, :_reduce_153,
983
- 4, 116, :_reduce_154,
984
- 8, 116, :_reduce_155,
985
- 5, 88, :_reduce_156,
986
- 3, 89, :_reduce_157,
995
+ 3, 137, :_reduce_145,
996
+ 0, 139, :_reduce_146,
997
+ 1, 139, :_reduce_147,
998
+ 1, 139, :_reduce_148,
999
+ 0, 138, :_reduce_149,
1000
+ 1, 138, :_reduce_150,
1001
+ 0, 99, :_reduce_151,
1002
+ 3, 99, :_reduce_152,
1003
+ 1, 140, :_reduce_153,
1004
+ 3, 140, :_reduce_154,
1005
+ 4, 116, :_reduce_155,
1006
+ 8, 116, :_reduce_156,
1007
+ 5, 88, :_reduce_157,
987
1008
  3, 89, :_reduce_158,
988
- 3, 90, :_reduce_159,
1009
+ 3, 89, :_reduce_159,
1010
+ 3, 90, :_reduce_160,
989
1011
  1, 83, :_reduce_none,
990
- 3, 83, :_reduce_161,
991
1012
  3, 83, :_reduce_162,
992
- 1, 130, :_reduce_163,
993
- 1, 130, :_reduce_164,
994
- 1, 130, :_reduce_165,
995
- 1, 130, :_reduce_166,
996
- 1, 130, :_reduce_167,
997
- 1, 130, :_reduce_168,
998
- 1, 130, :_reduce_169,
999
- 1, 130, :_reduce_170,
1000
- 1, 130, :_reduce_171,
1001
- 1, 130, :_reduce_172,
1002
- 1, 130, :_reduce_173,
1003
- 1, 130, :_reduce_174,
1004
- 1, 130, :_reduce_175,
1005
- 1, 130, :_reduce_176,
1006
- 1, 130, :_reduce_177,
1007
- 1, 130, :_reduce_178,
1008
- 1, 130, :_reduce_179,
1009
- 4, 130, :_reduce_180,
1010
- 2, 130, :_reduce_181,
1011
- 3, 130, :_reduce_182,
1012
- 3, 130, :_reduce_183,
1013
- 4, 130, :_reduce_184,
1014
- 2, 130, :_reduce_185,
1015
- 2, 130, :_reduce_186,
1016
- 1, 130, :_reduce_none,
1017
- 1, 104, :_reduce_188,
1018
- 3, 104, :_reduce_189,
1019
- 3, 141, :_reduce_190,
1020
- 1, 142, :_reduce_191,
1021
- 3, 142, :_reduce_192,
1022
- 3, 143, :_reduce_193,
1023
- 3, 143, :_reduce_194,
1024
- 3, 143, :_reduce_195,
1025
- 2, 143, :_reduce_196,
1026
- 1, 144, :_reduce_none,
1027
- 2, 144, :_reduce_198,
1028
- 1, 117, :_reduce_none,
1029
- 1, 117, :_reduce_none,
1030
- 1, 117, :_reduce_none,
1031
- 1, 117, :_reduce_none,
1032
- 5, 132, :_reduce_203,
1033
- 2, 132, :_reduce_204,
1034
- 3, 131, :_reduce_205,
1035
- 1, 131, :_reduce_206,
1036
- 1, 131, :_reduce_none,
1037
- 3, 146, :_reduce_208,
1038
- 1, 146, :_reduce_209,
1013
+ 3, 83, :_reduce_163,
1014
+ 1, 142, :_reduce_164,
1015
+ 1, 142, :_reduce_165,
1016
+ 1, 142, :_reduce_166,
1017
+ 1, 142, :_reduce_167,
1018
+ 1, 142, :_reduce_168,
1019
+ 1, 142, :_reduce_169,
1020
+ 1, 142, :_reduce_170,
1021
+ 1, 142, :_reduce_171,
1022
+ 1, 142, :_reduce_172,
1023
+ 1, 142, :_reduce_173,
1024
+ 1, 142, :_reduce_174,
1025
+ 1, 142, :_reduce_175,
1026
+ 1, 142, :_reduce_176,
1027
+ 1, 142, :_reduce_177,
1028
+ 1, 142, :_reduce_178,
1029
+ 1, 142, :_reduce_179,
1030
+ 1, 142, :_reduce_180,
1031
+ 4, 142, :_reduce_181,
1032
+ 2, 142, :_reduce_182,
1033
+ 3, 142, :_reduce_183,
1034
+ 3, 142, :_reduce_184,
1035
+ 4, 142, :_reduce_185,
1036
+ 2, 142, :_reduce_186,
1037
+ 2, 142, :_reduce_187,
1038
+ 1, 142, :_reduce_none,
1039
+ 1, 104, :_reduce_189,
1040
+ 3, 104, :_reduce_190,
1041
+ 3, 143, :_reduce_191,
1042
+ 1, 144, :_reduce_192,
1043
+ 3, 144, :_reduce_193,
1044
+ 3, 145, :_reduce_194,
1045
+ 3, 145, :_reduce_195,
1046
+ 3, 145, :_reduce_196,
1047
+ 2, 145, :_reduce_197,
1039
1048
  1, 146, :_reduce_none,
1049
+ 2, 146, :_reduce_199,
1050
+ 1, 118, :_reduce_none,
1051
+ 1, 118, :_reduce_none,
1052
+ 1, 118, :_reduce_none,
1053
+ 1, 118, :_reduce_none,
1054
+ 4, 129, :_reduce_204,
1055
+ 1, 129, :_reduce_205,
1056
+ 5, 133, :_reduce_206,
1057
+ 2, 133, :_reduce_207,
1058
+ 3, 131, :_reduce_208,
1059
+ 1, 131, :_reduce_209,
1060
+ 1, 131, :_reduce_none,
1040
1061
  3, 148, :_reduce_211,
1041
1062
  1, 148, :_reduce_212,
1042
1063
  1, 148, :_reduce_none,
1043
1064
  3, 150, :_reduce_214,
1044
1065
  1, 150, :_reduce_215,
1045
1066
  1, 150, :_reduce_none,
1046
- 0, 151, :_reduce_217,
1047
- 3, 151, :_reduce_218,
1048
- 1, 151, :_reduce_219,
1049
- 3, 151, :_reduce_220,
1050
- 1, 151, :_reduce_221,
1051
- 1, 151, :_reduce_222,
1052
- 2, 145, :_reduce_223,
1053
- 3, 147, :_reduce_224,
1054
- 3, 149, :_reduce_225,
1055
- 3, 152, :_reduce_226,
1056
- 4, 153, :_reduce_227,
1057
- 3, 154, :_reduce_228,
1058
- 0, 155, :_reduce_none,
1059
- 1, 155, :_reduce_none,
1060
- 1, 155, :_reduce_none,
1061
- 1, 155, :_reduce_none,
1062
- 2, 108, :_reduce_233,
1063
- 1, 156, :_reduce_none,
1064
- 1, 156, :_reduce_none,
1065
- 1, 156, :_reduce_none,
1066
- 2, 120, :_reduce_237,
1067
- 2, 98, :_reduce_238,
1068
- 0, 140, :_reduce_239,
1069
- 1, 140, :_reduce_240,
1070
- 2, 140, :_reduce_241,
1071
- 1, 140, :_reduce_242 ]
1072
-
1073
- racc_reduce_n = 243
1074
-
1075
- racc_shift_n = 412
1067
+ 3, 152, :_reduce_217,
1068
+ 1, 152, :_reduce_218,
1069
+ 1, 152, :_reduce_none,
1070
+ 0, 153, :_reduce_220,
1071
+ 3, 153, :_reduce_221,
1072
+ 1, 153, :_reduce_222,
1073
+ 3, 153, :_reduce_223,
1074
+ 1, 153, :_reduce_224,
1075
+ 1, 153, :_reduce_225,
1076
+ 2, 147, :_reduce_226,
1077
+ 3, 149, :_reduce_227,
1078
+ 3, 151, :_reduce_228,
1079
+ 3, 154, :_reduce_229,
1080
+ 4, 155, :_reduce_230,
1081
+ 3, 156, :_reduce_231,
1082
+ 0, 157, :_reduce_none,
1083
+ 1, 157, :_reduce_none,
1084
+ 1, 157, :_reduce_none,
1085
+ 1, 157, :_reduce_none,
1086
+ 2, 108, :_reduce_236,
1087
+ 1, 158, :_reduce_none,
1088
+ 1, 158, :_reduce_none,
1089
+ 1, 158, :_reduce_none,
1090
+ 2, 121, :_reduce_240,
1091
+ 2, 98, :_reduce_241,
1092
+ 0, 141, :_reduce_242,
1093
+ 1, 141, :_reduce_243,
1094
+ 2, 141, :_reduce_244,
1095
+ 1, 141, :_reduce_245 ]
1096
+
1097
+ racc_reduce_n = 246
1098
+
1099
+ racc_shift_n = 419
1076
1100
 
1077
1101
  racc_token_table = {
1078
1102
  false => 0,
@@ -1295,6 +1319,7 @@ Racc_token_to_s_table = [
1295
1319
  "var_type_member",
1296
1320
  "attribute_member",
1297
1321
  "alias_member",
1322
+ "attribute_kind",
1298
1323
  "keyword",
1299
1324
  "method_name",
1300
1325
  "attr_var_opt",
@@ -1306,11 +1331,11 @@ Racc_token_to_s_table = [
1306
1331
  "method_kind",
1307
1332
  "def_name",
1308
1333
  "method_types",
1334
+ "proc_type",
1309
1335
  "params_opt",
1310
- "block_opt",
1311
- "simple_type",
1312
1336
  "params",
1313
- "function_type",
1337
+ "block",
1338
+ "simple_function_type",
1314
1339
  "method_name0",
1315
1340
  "identifier_keywords",
1316
1341
  "module_type_params0",
@@ -1319,6 +1344,7 @@ Racc_token_to_s_table = [
1319
1344
  "type_param_variance",
1320
1345
  "type_params0",
1321
1346
  "namespace",
1347
+ "simple_type",
1322
1348
  "record_type",
1323
1349
  "record_fields",
1324
1350
  "record_field",
@@ -1649,12 +1675,27 @@ module_eval(<<'.,.,', 'parser.y', 199)
1649
1675
 
1650
1676
  # reduce 45 omitted
1651
1677
 
1652
- module_eval(<<'.,.,', 'parser.y', 206)
1678
+ module_eval(<<'.,.,', 'parser.y', 205)
1653
1679
  def _reduce_46(val, _values, result)
1654
- location = val[1].location + val[3].location
1655
- result = Members::AttrReader.new(name: val[2].value,
1680
+ result = :instance
1681
+ result
1682
+ end
1683
+ .,.,
1684
+
1685
+ module_eval(<<'.,.,', 'parser.y', 206)
1686
+ def _reduce_47(val, _values, result)
1687
+ result = :singleton
1688
+ result
1689
+ end
1690
+ .,.,
1691
+
1692
+ module_eval(<<'.,.,', 'parser.y', 210)
1693
+ def _reduce_48(val, _values, result)
1694
+ location = val[1].location + val[4].location
1695
+ result = Members::AttrReader.new(name: val[3].value,
1656
1696
  ivar_name: nil,
1657
- type: val[3],
1697
+ type: val[4],
1698
+ kind: val[2],
1658
1699
  annotations: val[0],
1659
1700
  location: location,
1660
1701
  comment: leading_comment(val[0].first&.location || location))
@@ -1663,12 +1704,13 @@ module_eval(<<'.,.,', 'parser.y', 206)
1663
1704
  end
1664
1705
  .,.,
1665
1706
 
1666
- module_eval(<<'.,.,', 'parser.y', 215)
1667
- def _reduce_47(val, _values, result)
1668
- location = val[1].location + val[5].location
1669
- result = Members::AttrReader.new(name: val[2].value.to_sym,
1670
- ivar_name: val[3],
1671
- type: val[5],
1707
+ module_eval(<<'.,.,', 'parser.y', 220)
1708
+ def _reduce_49(val, _values, result)
1709
+ location = val[1].location + val[6].location
1710
+ result = Members::AttrReader.new(name: val[3].value.to_sym,
1711
+ ivar_name: val[4],
1712
+ type: val[6],
1713
+ kind: val[2],
1672
1714
  annotations: val[0],
1673
1715
  location: location,
1674
1716
  comment: leading_comment(val[0].first&.location || location))
@@ -1677,12 +1719,13 @@ module_eval(<<'.,.,', 'parser.y', 215)
1677
1719
  end
1678
1720
  .,.,
1679
1721
 
1680
- module_eval(<<'.,.,', 'parser.y', 224)
1681
- def _reduce_48(val, _values, result)
1682
- location = val[1].location + val[3].location
1683
- result = Members::AttrWriter.new(name: val[2].value,
1722
+ module_eval(<<'.,.,', 'parser.y', 230)
1723
+ def _reduce_50(val, _values, result)
1724
+ location = val[1].location + val[4].location
1725
+ result = Members::AttrWriter.new(name: val[3].value,
1684
1726
  ivar_name: nil,
1685
- type: val[3],
1727
+ kind: val[2],
1728
+ type: val[4],
1686
1729
  annotations: val[0],
1687
1730
  location: location,
1688
1731
  comment: leading_comment(val[0].first&.location || location))
@@ -1691,12 +1734,13 @@ module_eval(<<'.,.,', 'parser.y', 224)
1691
1734
  end
1692
1735
  .,.,
1693
1736
 
1694
- module_eval(<<'.,.,', 'parser.y', 233)
1695
- def _reduce_49(val, _values, result)
1696
- location = val[1].location + val[5].location
1697
- result = Members::AttrWriter.new(name: val[2].value.to_sym,
1698
- ivar_name: val[3],
1699
- type: val[5],
1737
+ module_eval(<<'.,.,', 'parser.y', 240)
1738
+ def _reduce_51(val, _values, result)
1739
+ location = val[1].location + val[6].location
1740
+ result = Members::AttrWriter.new(name: val[3].value.to_sym,
1741
+ ivar_name: val[4],
1742
+ kind: val[2],
1743
+ type: val[6],
1700
1744
  annotations: val[0],
1701
1745
  location: location,
1702
1746
  comment: leading_comment(val[0].first&.location || location))
@@ -1705,12 +1749,13 @@ module_eval(<<'.,.,', 'parser.y', 233)
1705
1749
  end
1706
1750
  .,.,
1707
1751
 
1708
- module_eval(<<'.,.,', 'parser.y', 242)
1709
- def _reduce_50(val, _values, result)
1710
- location = val[1].location + val[3].location
1711
- result = Members::AttrAccessor.new(name: val[2].value,
1752
+ module_eval(<<'.,.,', 'parser.y', 250)
1753
+ def _reduce_52(val, _values, result)
1754
+ location = val[1].location + val[4].location
1755
+ result = Members::AttrAccessor.new(name: val[3].value,
1712
1756
  ivar_name: nil,
1713
- type: val[3],
1757
+ kind: val[2],
1758
+ type: val[4],
1714
1759
  annotations: val[0],
1715
1760
  location: location,
1716
1761
  comment: leading_comment(val[0].first&.location || location))
@@ -1719,12 +1764,13 @@ module_eval(<<'.,.,', 'parser.y', 242)
1719
1764
  end
1720
1765
  .,.,
1721
1766
 
1722
- module_eval(<<'.,.,', 'parser.y', 251)
1723
- def _reduce_51(val, _values, result)
1724
- location = val[1].location + val[5].location
1725
- result = Members::AttrAccessor.new(name: val[2].value.to_sym,
1726
- ivar_name: val[3],
1727
- type: val[5],
1767
+ module_eval(<<'.,.,', 'parser.y', 260)
1768
+ def _reduce_53(val, _values, result)
1769
+ location = val[1].location + val[6].location
1770
+ result = Members::AttrAccessor.new(name: val[3].value.to_sym,
1771
+ ivar_name: val[4],
1772
+ kind: val[2],
1773
+ type: val[6],
1728
1774
  annotations: val[0],
1729
1775
  location: location,
1730
1776
  comment: leading_comment(val[0].first&.location || location))
@@ -1733,29 +1779,29 @@ module_eval(<<'.,.,', 'parser.y', 251)
1733
1779
  end
1734
1780
  .,.,
1735
1781
 
1736
- module_eval(<<'.,.,', 'parser.y', 261)
1737
- def _reduce_52(val, _values, result)
1782
+ module_eval(<<'.,.,', 'parser.y', 271)
1783
+ def _reduce_54(val, _values, result)
1738
1784
  result = nil
1739
1785
  result
1740
1786
  end
1741
1787
  .,.,
1742
1788
 
1743
- module_eval(<<'.,.,', 'parser.y', 262)
1744
- def _reduce_53(val, _values, result)
1789
+ module_eval(<<'.,.,', 'parser.y', 272)
1790
+ def _reduce_55(val, _values, result)
1745
1791
  result = false
1746
1792
  result
1747
1793
  end
1748
1794
  .,.,
1749
1795
 
1750
- module_eval(<<'.,.,', 'parser.y', 263)
1751
- def _reduce_54(val, _values, result)
1796
+ module_eval(<<'.,.,', 'parser.y', 273)
1797
+ def _reduce_56(val, _values, result)
1752
1798
  result = val[1].value
1753
1799
  result
1754
1800
  end
1755
1801
  .,.,
1756
1802
 
1757
- module_eval(<<'.,.,', 'parser.y', 267)
1758
- def _reduce_55(val, _values, result)
1803
+ module_eval(<<'.,.,', 'parser.y', 277)
1804
+ def _reduce_57(val, _values, result)
1759
1805
  location = val[0].location + val[2].location
1760
1806
  result = Members::InstanceVariable.new(
1761
1807
  name: val[0].value,
@@ -1768,8 +1814,8 @@ module_eval(<<'.,.,', 'parser.y', 267)
1768
1814
  end
1769
1815
  .,.,
1770
1816
 
1771
- module_eval(<<'.,.,', 'parser.y', 276)
1772
- def _reduce_56(val, _values, result)
1817
+ module_eval(<<'.,.,', 'parser.y', 286)
1818
+ def _reduce_58(val, _values, result)
1773
1819
  type = val[2]
1774
1820
 
1775
1821
  if type.is_a?(Types::Variable)
@@ -1792,8 +1838,8 @@ module_eval(<<'.,.,', 'parser.y', 276)
1792
1838
  end
1793
1839
  .,.,
1794
1840
 
1795
- module_eval(<<'.,.,', 'parser.y', 295)
1796
- def _reduce_57(val, _values, result)
1841
+ module_eval(<<'.,.,', 'parser.y', 305)
1842
+ def _reduce_59(val, _values, result)
1797
1843
  type = val[4]
1798
1844
 
1799
1845
  if type.is_a?(Types::Variable)
@@ -1816,8 +1862,8 @@ module_eval(<<'.,.,', 'parser.y', 295)
1816
1862
  end
1817
1863
  .,.,
1818
1864
 
1819
- module_eval(<<'.,.,', 'parser.y', 316)
1820
- def _reduce_58(val, _values, result)
1865
+ module_eval(<<'.,.,', 'parser.y', 326)
1866
+ def _reduce_60(val, _values, result)
1821
1867
  reset_variable_scope
1822
1868
 
1823
1869
  location = val[1].location + val[6].location
@@ -1834,23 +1880,23 @@ module_eval(<<'.,.,', 'parser.y', 316)
1834
1880
  end
1835
1881
  .,.,
1836
1882
 
1837
- module_eval(<<'.,.,', 'parser.y', 330)
1838
- def _reduce_59(val, _values, result)
1883
+ module_eval(<<'.,.,', 'parser.y', 340)
1884
+ def _reduce_61(val, _values, result)
1839
1885
  result = []
1840
1886
  result
1841
1887
  end
1842
1888
  .,.,
1843
1889
 
1844
- module_eval(<<'.,.,', 'parser.y', 332)
1845
- def _reduce_60(val, _values, result)
1890
+ module_eval(<<'.,.,', 'parser.y', 342)
1891
+ def _reduce_62(val, _values, result)
1846
1892
  result = val[0].push(val[1])
1847
1893
 
1848
1894
  result
1849
1895
  end
1850
1896
  .,.,
1851
1897
 
1852
- module_eval(<<'.,.,', 'parser.y', 337)
1853
- def _reduce_61(val, _values, result)
1898
+ module_eval(<<'.,.,', 'parser.y', 347)
1899
+ def _reduce_63(val, _values, result)
1854
1900
  unless val[0].kind == :instance
1855
1901
  raise SemanticsError.new("Interface cannot have singleton method", subject: val[0], location: val[0].location)
1856
1902
  end
@@ -1865,8 +1911,8 @@ module_eval(<<'.,.,', 'parser.y', 337)
1865
1911
  end
1866
1912
  .,.,
1867
1913
 
1868
- module_eval(<<'.,.,', 'parser.y', 348)
1869
- def _reduce_62(val, _values, result)
1914
+ module_eval(<<'.,.,', 'parser.y', 358)
1915
+ def _reduce_64(val, _values, result)
1870
1916
  unless val[0].name.interface?
1871
1917
  raise SemanticsError.new("Interface should include an interface", subject: val[0], location: val[0].location)
1872
1918
  end
@@ -1877,10 +1923,10 @@ module_eval(<<'.,.,', 'parser.y', 348)
1877
1923
  end
1878
1924
  .,.,
1879
1925
 
1880
- # reduce 63 omitted
1926
+ # reduce 65 omitted
1881
1927
 
1882
- module_eval(<<'.,.,', 'parser.y', 358)
1883
- def _reduce_64(val, _values, result)
1928
+ module_eval(<<'.,.,', 'parser.y', 368)
1929
+ def _reduce_66(val, _values, result)
1884
1930
  if val[2].value.alias?
1885
1931
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1886
1932
  end
@@ -1895,8 +1941,8 @@ module_eval(<<'.,.,', 'parser.y', 358)
1895
1941
  end
1896
1942
  .,.,
1897
1943
 
1898
- module_eval(<<'.,.,', 'parser.y', 369)
1899
- def _reduce_65(val, _values, result)
1944
+ module_eval(<<'.,.,', 'parser.y', 379)
1945
+ def _reduce_67(val, _values, result)
1900
1946
  if val[2].value.alias?
1901
1947
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1902
1948
  end
@@ -1911,8 +1957,8 @@ module_eval(<<'.,.,', 'parser.y', 369)
1911
1957
  end
1912
1958
  .,.,
1913
1959
 
1914
- module_eval(<<'.,.,', 'parser.y', 382)
1915
- def _reduce_66(val, _values, result)
1960
+ module_eval(<<'.,.,', 'parser.y', 392)
1961
+ def _reduce_68(val, _values, result)
1916
1962
  if val[2].value.alias?
1917
1963
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1918
1964
  end
@@ -1927,8 +1973,8 @@ module_eval(<<'.,.,', 'parser.y', 382)
1927
1973
  end
1928
1974
  .,.,
1929
1975
 
1930
- module_eval(<<'.,.,', 'parser.y', 393)
1931
- def _reduce_67(val, _values, result)
1976
+ module_eval(<<'.,.,', 'parser.y', 403)
1977
+ def _reduce_69(val, _values, result)
1932
1978
  if val[2].value.alias?
1933
1979
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1934
1980
  end
@@ -1943,8 +1989,8 @@ module_eval(<<'.,.,', 'parser.y', 393)
1943
1989
  end
1944
1990
  .,.,
1945
1991
 
1946
- module_eval(<<'.,.,', 'parser.y', 406)
1947
- def _reduce_68(val, _values, result)
1992
+ module_eval(<<'.,.,', 'parser.y', 416)
1993
+ def _reduce_70(val, _values, result)
1948
1994
  unless val[2].value.class?
1949
1995
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
1950
1996
  end
@@ -1959,8 +2005,8 @@ module_eval(<<'.,.,', 'parser.y', 406)
1959
2005
  end
1960
2006
  .,.,
1961
2007
 
1962
- module_eval(<<'.,.,', 'parser.y', 417)
1963
- def _reduce_69(val, _values, result)
2008
+ module_eval(<<'.,.,', 'parser.y', 427)
2009
+ def _reduce_71(val, _values, result)
1964
2010
  unless val[2].value.class?
1965
2011
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
1966
2012
  end
@@ -1975,15 +2021,15 @@ module_eval(<<'.,.,', 'parser.y', 417)
1975
2021
  end
1976
2022
  .,.,
1977
2023
 
1978
- module_eval(<<'.,.,', 'parser.y', 429)
1979
- def _reduce_70(val, _values, result)
2024
+ module_eval(<<'.,.,', 'parser.y', 439)
2025
+ def _reduce_72(val, _values, result)
1980
2026
  result = nil
1981
2027
  result
1982
2028
  end
1983
2029
  .,.,
1984
2030
 
1985
- module_eval(<<'.,.,', 'parser.y', 431)
1986
- def _reduce_71(val, _values, result)
2031
+ module_eval(<<'.,.,', 'parser.y', 441)
2032
+ def _reduce_73(val, _values, result)
1987
2033
  RBS.logger.warn "`overload def` syntax is deprecated. Use `...` syntax instead."
1988
2034
  result = val[0]
1989
2035
 
@@ -1991,8 +2037,8 @@ module_eval(<<'.,.,', 'parser.y', 431)
1991
2037
  end
1992
2038
  .,.,
1993
2039
 
1994
- module_eval(<<'.,.,', 'parser.y', 437)
1995
- def _reduce_72(val, _values, result)
2040
+ module_eval(<<'.,.,', 'parser.y', 447)
2041
+ def _reduce_74(val, _values, result)
1996
2042
  location = val[3].location + val[6].last.location
1997
2043
 
1998
2044
  last_type = val[6].last
@@ -2017,80 +2063,67 @@ module_eval(<<'.,.,', 'parser.y', 437)
2017
2063
  end
2018
2064
  .,.,
2019
2065
 
2020
- # reduce 73 omitted
2066
+ # reduce 75 omitted
2021
2067
 
2022
- module_eval(<<'.,.,', 'parser.y', 460)
2023
- def _reduce_74(val, _values, result)
2068
+ module_eval(<<'.,.,', 'parser.y', 470)
2069
+ def _reduce_76(val, _values, result)
2024
2070
  RBS.logger.warn "`incompatible` method attribute is deprecated and ignored."
2025
2071
 
2026
2072
  result
2027
2073
  end
2028
2074
  .,.,
2029
2075
 
2030
- module_eval(<<'.,.,', 'parser.y', 464)
2031
- def _reduce_75(val, _values, result)
2076
+ module_eval(<<'.,.,', 'parser.y', 474)
2077
+ def _reduce_77(val, _values, result)
2032
2078
  result = :instance
2033
2079
  result
2034
2080
  end
2035
2081
  .,.,
2036
2082
 
2037
- module_eval(<<'.,.,', 'parser.y', 465)
2038
- def _reduce_76(val, _values, result)
2083
+ module_eval(<<'.,.,', 'parser.y', 475)
2084
+ def _reduce_78(val, _values, result)
2039
2085
  result = :singleton
2040
2086
  result
2041
2087
  end
2042
2088
  .,.,
2043
2089
 
2044
- module_eval(<<'.,.,', 'parser.y', 466)
2045
- def _reduce_77(val, _values, result)
2090
+ module_eval(<<'.,.,', 'parser.y', 476)
2091
+ def _reduce_79(val, _values, result)
2046
2092
  result = :singleton_instance
2047
2093
  result
2048
2094
  end
2049
2095
  .,.,
2050
2096
 
2051
- module_eval(<<'.,.,', 'parser.y', 469)
2052
- def _reduce_78(val, _values, result)
2097
+ module_eval(<<'.,.,', 'parser.y', 479)
2098
+ def _reduce_80(val, _values, result)
2053
2099
  result = [val[0]]
2054
2100
  result
2055
2101
  end
2056
2102
  .,.,
2057
2103
 
2058
- module_eval(<<'.,.,', 'parser.y', 470)
2059
- def _reduce_79(val, _values, result)
2104
+ module_eval(<<'.,.,', 'parser.y', 480)
2105
+ def _reduce_81(val, _values, result)
2060
2106
  result = [LocatedValue.new(value: :dot3, location: val[0].location)]
2061
2107
  result
2062
2108
  end
2063
2109
  .,.,
2064
2110
 
2065
- module_eval(<<'.,.,', 'parser.y', 472)
2066
- def _reduce_80(val, _values, result)
2111
+ module_eval(<<'.,.,', 'parser.y', 482)
2112
+ def _reduce_82(val, _values, result)
2067
2113
  result = val[2].unshift(val[0])
2068
2114
 
2069
2115
  result
2070
2116
  end
2071
2117
  .,.,
2072
2118
 
2073
- module_eval(<<'.,.,', 'parser.y', 477)
2074
- def _reduce_81(val, _values, result)
2119
+ module_eval(<<'.,.,', 'parser.y', 487)
2120
+ def _reduce_83(val, _values, result)
2075
2121
  reset_variable_scope
2076
2122
 
2077
- location = (val[1] || val[2] || val[3] || val[4]).location + val[5].location
2123
+ location = (val[1] || val[2]).location + val[2].location
2078
2124
  type_params = val[1]&.value || []
2079
2125
 
2080
- params = val[2]&.value || empty_params_result
2081
-
2082
- type = Types::Function.new(
2083
- required_positionals: params[0],
2084
- optional_positionals: params[1],
2085
- rest_positionals: params[2],
2086
- trailing_positionals: params[3],
2087
- required_keywords: params[4],
2088
- optional_keywords: params[5],
2089
- rest_keywords: params[6],
2090
- return_type: val[5]
2091
- )
2092
-
2093
- block = val[3]&.value
2126
+ type, block = val[2].value
2094
2127
 
2095
2128
  result = MethodType.new(type_params: type_params,
2096
2129
  type: type,
@@ -2101,50 +2134,43 @@ module_eval(<<'.,.,', 'parser.y', 477)
2101
2134
  end
2102
2135
  .,.,
2103
2136
 
2104
- module_eval(<<'.,.,', 'parser.y', 504)
2105
- def _reduce_82(val, _values, result)
2137
+ module_eval(<<'.,.,', 'parser.y', 501)
2138
+ def _reduce_84(val, _values, result)
2106
2139
  result = nil
2107
2140
  result
2108
2141
  end
2109
2142
  .,.,
2110
2143
 
2111
- module_eval(<<'.,.,', 'parser.y', 506)
2112
- def _reduce_83(val, _values, result)
2144
+ module_eval(<<'.,.,', 'parser.y', 503)
2145
+ def _reduce_85(val, _values, result)
2113
2146
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
2114
2147
 
2115
2148
  result
2116
2149
  end
2117
2150
  .,.,
2118
2151
 
2119
- module_eval(<<'.,.,', 'parser.y', 510)
2120
- def _reduce_84(val, _values, result)
2121
- result = nil
2122
- result
2123
- end
2124
- .,.,
2125
-
2126
- module_eval(<<'.,.,', 'parser.y', 512)
2127
- def _reduce_85(val, _values, result)
2128
- block = MethodType::Block.new(type: val[1].value, required: true)
2152
+ module_eval(<<'.,.,', 'parser.y', 508)
2153
+ def _reduce_86(val, _values, result)
2154
+ block = Types::Block.new(type: val[1].value, required: true)
2129
2155
  result = LocatedValue.new(value: block, location: val[0].location + val[2].location)
2130
2156
 
2131
2157
  result
2132
2158
  end
2133
2159
  .,.,
2134
2160
 
2135
- module_eval(<<'.,.,', 'parser.y', 516)
2136
- def _reduce_86(val, _values, result)
2137
- block = MethodType::Block.new(type: val[2].value, required: false)
2161
+ module_eval(<<'.,.,', 'parser.y', 512)
2162
+ def _reduce_87(val, _values, result)
2163
+ block = Types::Block.new(type: val[2].value, required: false)
2138
2164
  result = LocatedValue.new(value: block, location: val[0].location + val[3].location)
2139
2165
 
2140
2166
  result
2141
2167
  end
2142
2168
  .,.,
2143
2169
 
2144
- # reduce 87 omitted
2170
+ # reduce 88 omitted
2145
2171
 
2146
- module_eval(<<'.,.,', 'parser.y', 523)
2147
- def _reduce_88(val, _values, result)
2172
+ module_eval(<<'.,.,', 'parser.y', 519)
2173
+ def _reduce_89(val, _values, result)
2148
2174
  result = LocatedValue.new(value: val[0].value.to_sym,
2149
2175
  location: val[0].location + val[1].location)
2150
2176
 
@@ -2152,8 +2178,6 @@ module_eval(<<'.,.,', 'parser.y', 523)
2152
2178
  end
2153
2179
  .,.,
2154
2180
 
2155
- # reduce 89 omitted
2156
-
2157
2181
  # reduce 90 omitted
2158
2182
 
2159
2183
  # reduce 91 omitted
@@ -2170,8 +2194,10 @@ module_eval(<<'.,.,', 'parser.y', 523)
2170
2194
 
2171
2195
  # reduce 97 omitted
2172
2196
 
2173
- module_eval(<<'.,.,', 'parser.y', 532)
2174
- def _reduce_98(val, _values, result)
2197
+ # reduce 98 omitted
2198
+
2199
+ module_eval(<<'.,.,', 'parser.y', 528)
2200
+ def _reduce_99(val, _values, result)
2175
2201
  unless val[0].location.pred?(val[1].location)
2176
2202
  raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1])
2177
2203
  end
@@ -2183,8 +2209,8 @@ module_eval(<<'.,.,', 'parser.y', 532)
2183
2209
  end
2184
2210
  .,.,
2185
2211
 
2186
- module_eval(<<'.,.,', 'parser.y', 540)
2187
- def _reduce_99(val, _values, result)
2212
+ module_eval(<<'.,.,', 'parser.y', 536)
2213
+ def _reduce_100(val, _values, result)
2188
2214
  unless val[0].location.pred?(val[1].location)
2189
2215
  raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1])
2190
2216
  end
@@ -2196,8 +2222,6 @@ module_eval(<<'.,.,', 'parser.y', 540)
2196
2222
  end
2197
2223
  .,.,
2198
2224
 
2199
- # reduce 100 omitted
2200
-
2201
2225
  # reduce 101 omitted
2202
2226
 
2203
2227
  # reduce 102 omitted
@@ -2276,15 +2300,17 @@ module_eval(<<'.,.,', 'parser.y', 540)
2276
2300
 
2277
2301
  # reduce 139 omitted
2278
2302
 
2279
- module_eval(<<'.,.,', 'parser.y', 560)
2280
- def _reduce_140(val, _values, result)
2303
+ # reduce 140 omitted
2304
+
2305
+ module_eval(<<'.,.,', 'parser.y', 556)
2306
+ def _reduce_141(val, _values, result)
2281
2307
  result = nil
2282
2308
  result
2283
2309
  end
2284
2310
  .,.,
2285
2311
 
2286
- module_eval(<<'.,.,', 'parser.y', 562)
2287
- def _reduce_141(val, _values, result)
2312
+ module_eval(<<'.,.,', 'parser.y', 558)
2313
+ def _reduce_142(val, _values, result)
2288
2314
  val[1].each {|p| insert_bound_variable(p.name) }
2289
2315
 
2290
2316
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
@@ -2293,8 +2319,8 @@ module_eval(<<'.,.,', 'parser.y', 562)
2293
2319
  end
2294
2320
  .,.,
2295
2321
 
2296
- module_eval(<<'.,.,', 'parser.y', 569)
2297
- def _reduce_142(val, _values, result)
2322
+ module_eval(<<'.,.,', 'parser.y', 565)
2323
+ def _reduce_143(val, _values, result)
2298
2324
  result = Declarations::ModuleTypeParams.new()
2299
2325
  result.add(val[0])
2300
2326
 
@@ -2302,16 +2328,16 @@ module_eval(<<'.,.,', 'parser.y', 569)
2302
2328
  end
2303
2329
  .,.,
2304
2330
 
2305
- module_eval(<<'.,.,', 'parser.y', 573)
2306
- def _reduce_143(val, _values, result)
2331
+ module_eval(<<'.,.,', 'parser.y', 569)
2332
+ def _reduce_144(val, _values, result)
2307
2333
  result = val[0].add(val[2])
2308
2334
 
2309
2335
  result
2310
2336
  end
2311
2337
  .,.,
2312
2338
 
2313
- module_eval(<<'.,.,', 'parser.y', 578)
2314
- def _reduce_144(val, _values, result)
2339
+ module_eval(<<'.,.,', 'parser.y', 574)
2340
+ def _reduce_145(val, _values, result)
2315
2341
  result = Declarations::ModuleTypeParams::TypeParam.new(name: val[2].value.to_sym,
2316
2342
  variance: val[1],
2317
2343
  skip_validation: val[0])
@@ -2320,50 +2346,50 @@ module_eval(<<'.,.,', 'parser.y', 578)
2320
2346
  end
2321
2347
  .,.,
2322
2348
 
2323
- module_eval(<<'.,.,', 'parser.y', 584)
2324
- def _reduce_145(val, _values, result)
2349
+ module_eval(<<'.,.,', 'parser.y', 580)
2350
+ def _reduce_146(val, _values, result)
2325
2351
  result = :invariant
2326
2352
  result
2327
2353
  end
2328
2354
  .,.,
2329
2355
 
2330
- module_eval(<<'.,.,', 'parser.y', 585)
2331
- def _reduce_146(val, _values, result)
2356
+ module_eval(<<'.,.,', 'parser.y', 581)
2357
+ def _reduce_147(val, _values, result)
2332
2358
  result = :covariant
2333
2359
  result
2334
2360
  end
2335
2361
  .,.,
2336
2362
 
2337
- module_eval(<<'.,.,', 'parser.y', 586)
2338
- def _reduce_147(val, _values, result)
2363
+ module_eval(<<'.,.,', 'parser.y', 582)
2364
+ def _reduce_148(val, _values, result)
2339
2365
  result = :contravariant
2340
2366
  result
2341
2367
  end
2342
2368
  .,.,
2343
2369
 
2344
- module_eval(<<'.,.,', 'parser.y', 589)
2345
- def _reduce_148(val, _values, result)
2370
+ module_eval(<<'.,.,', 'parser.y', 585)
2371
+ def _reduce_149(val, _values, result)
2346
2372
  result = false
2347
2373
  result
2348
2374
  end
2349
2375
  .,.,
2350
2376
 
2351
- module_eval(<<'.,.,', 'parser.y', 590)
2352
- def _reduce_149(val, _values, result)
2377
+ module_eval(<<'.,.,', 'parser.y', 586)
2378
+ def _reduce_150(val, _values, result)
2353
2379
  result = true
2354
2380
  result
2355
2381
  end
2356
2382
  .,.,
2357
2383
 
2358
- module_eval(<<'.,.,', 'parser.y', 593)
2359
- def _reduce_150(val, _values, result)
2384
+ module_eval(<<'.,.,', 'parser.y', 589)
2385
+ def _reduce_151(val, _values, result)
2360
2386
  result = nil
2361
2387
  result
2362
2388
  end
2363
2389
  .,.,
2364
2390
 
2365
- module_eval(<<'.,.,', 'parser.y', 595)
2366
- def _reduce_151(val, _values, result)
2391
+ module_eval(<<'.,.,', 'parser.y', 591)
2392
+ def _reduce_152(val, _values, result)
2367
2393
  val[1].each {|var| insert_bound_variable(var) }
2368
2394
 
2369
2395
  result = LocatedValue.new(value: val[1],
@@ -2373,24 +2399,24 @@ module_eval(<<'.,.,', 'parser.y', 595)
2373
2399
  end
2374
2400
  .,.,
2375
2401
 
2376
- module_eval(<<'.,.,', 'parser.y', 603)
2377
- def _reduce_152(val, _values, result)
2402
+ module_eval(<<'.,.,', 'parser.y', 599)
2403
+ def _reduce_153(val, _values, result)
2378
2404
  result = [val[0].value.to_sym]
2379
2405
 
2380
2406
  result
2381
2407
  end
2382
2408
  .,.,
2383
2409
 
2384
- module_eval(<<'.,.,', 'parser.y', 606)
2385
- def _reduce_153(val, _values, result)
2410
+ module_eval(<<'.,.,', 'parser.y', 602)
2411
+ def _reduce_154(val, _values, result)
2386
2412
  result = val[0].push(val[2].value.to_sym)
2387
2413
 
2388
2414
  result
2389
2415
  end
2390
2416
  .,.,
2391
2417
 
2392
- module_eval(<<'.,.,', 'parser.y', 611)
2393
- def _reduce_154(val, _values, result)
2418
+ module_eval(<<'.,.,', 'parser.y', 607)
2419
+ def _reduce_155(val, _values, result)
2394
2420
  location = val[1].location + val[3].location
2395
2421
  result = Members::Alias.new(
2396
2422
  new_name: val[2].value.to_sym,
@@ -2405,8 +2431,8 @@ module_eval(<<'.,.,', 'parser.y', 611)
2405
2431
  end
2406
2432
  .,.,
2407
2433
 
2408
- module_eval(<<'.,.,', 'parser.y', 622)
2409
- def _reduce_155(val, _values, result)
2434
+ module_eval(<<'.,.,', 'parser.y', 618)
2435
+ def _reduce_156(val, _values, result)
2410
2436
  location = val[1].location + val[7].location
2411
2437
  result = Members::Alias.new(
2412
2438
  new_name: val[4].value.to_sym,
@@ -2421,8 +2447,8 @@ module_eval(<<'.,.,', 'parser.y', 622)
2421
2447
  end
2422
2448
  .,.,
2423
2449
 
2424
- module_eval(<<'.,.,', 'parser.y', 635)
2425
- def _reduce_156(val, _values, result)
2450
+ module_eval(<<'.,.,', 'parser.y', 631)
2451
+ def _reduce_157(val, _values, result)
2426
2452
  location = val[1].location + val[4].location
2427
2453
  result = Declarations::Alias.new(name: val[2].value,
2428
2454
  type: val[4],
@@ -2434,8 +2460,8 @@ module_eval(<<'.,.,', 'parser.y', 635)
2434
2460
  end
2435
2461
  .,.,
2436
2462
 
2437
- module_eval(<<'.,.,', 'parser.y', 645)
2438
- def _reduce_157(val, _values, result)
2463
+ module_eval(<<'.,.,', 'parser.y', 641)
2464
+ def _reduce_158(val, _values, result)
2439
2465
  location = val[0].location + val[2].location
2440
2466
  result = Declarations::Constant.new(name: val[0].value,
2441
2467
  type: val[2],
@@ -2446,8 +2472,8 @@ module_eval(<<'.,.,', 'parser.y', 645)
2446
2472
  end
2447
2473
  .,.,
2448
2474
 
2449
- module_eval(<<'.,.,', 'parser.y', 652)
2450
- def _reduce_158(val, _values, result)
2475
+ module_eval(<<'.,.,', 'parser.y', 648)
2476
+ def _reduce_159(val, _values, result)
2451
2477
  location = (val[0] || val[1]).location + val[2].location
2452
2478
  name = TypeName.new(name: val[1].value, namespace: val[0]&.value || Namespace.empty)
2453
2479
  result = Declarations::Constant.new(name: name,
@@ -2459,8 +2485,8 @@ module_eval(<<'.,.,', 'parser.y', 652)
2459
2485
  end
2460
2486
  .,.,
2461
2487
 
2462
- module_eval(<<'.,.,', 'parser.y', 662)
2463
- def _reduce_159(val, _values, result)
2488
+ module_eval(<<'.,.,', 'parser.y', 658)
2489
+ def _reduce_160(val, _values, result)
2464
2490
  location = val[0].location + val[2].location
2465
2491
  result = Declarations::Global.new(name: val[0].value.to_sym,
2466
2492
  type: val[2],
@@ -2471,10 +2497,10 @@ module_eval(<<'.,.,', 'parser.y', 662)
2471
2497
  end
2472
2498
  .,.,
2473
2499
 
2474
- # reduce 160 omitted
2500
+ # reduce 161 omitted
2475
2501
 
2476
- module_eval(<<'.,.,', 'parser.y', 672)
2477
- def _reduce_161(val, _values, result)
2502
+ module_eval(<<'.,.,', 'parser.y', 668)
2503
+ def _reduce_162(val, _values, result)
2478
2504
  types = case l = val[0]
2479
2505
  when Types::Union
2480
2506
  l.types + [val[2]]
@@ -2488,8 +2514,8 @@ module_eval(<<'.,.,', 'parser.y', 672)
2488
2514
  end
2489
2515
  .,.,
2490
2516
 
2491
- module_eval(<<'.,.,', 'parser.y', 682)
2492
- def _reduce_162(val, _values, result)
2517
+ module_eval(<<'.,.,', 'parser.y', 678)
2518
+ def _reduce_163(val, _values, result)
2493
2519
  types = case l = val[0]
2494
2520
  when Types::Intersection
2495
2521
  l.types + [val[2]]
@@ -2504,16 +2530,16 @@ module_eval(<<'.,.,', 'parser.y', 682)
2504
2530
  end
2505
2531
  .,.,
2506
2532
 
2507
- module_eval(<<'.,.,', 'parser.y', 695)
2508
- def _reduce_163(val, _values, result)
2533
+ module_eval(<<'.,.,', 'parser.y', 691)
2534
+ def _reduce_164(val, _values, result)
2509
2535
  result = Types::Bases::Void.new(location: val[0].location)
2510
2536
 
2511
2537
  result
2512
2538
  end
2513
2539
  .,.,
2514
2540
 
2515
- module_eval(<<'.,.,', 'parser.y', 698)
2516
- def _reduce_164(val, _values, result)
2541
+ module_eval(<<'.,.,', 'parser.y', 694)
2542
+ def _reduce_165(val, _values, result)
2517
2543
  RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})"
2518
2544
  result = Types::Bases::Any.new(location: val[0].location)
2519
2545
 
@@ -2521,56 +2547,56 @@ module_eval(<<'.,.,', 'parser.y', 698)
2521
2547
  end
2522
2548
  .,.,
2523
2549
 
2524
- module_eval(<<'.,.,', 'parser.y', 702)
2525
- def _reduce_165(val, _values, result)
2550
+ module_eval(<<'.,.,', 'parser.y', 698)
2551
+ def _reduce_166(val, _values, result)
2526
2552
  result = Types::Bases::Any.new(location: val[0].location)
2527
2553
 
2528
2554
  result
2529
2555
  end
2530
2556
  .,.,
2531
2557
 
2532
- module_eval(<<'.,.,', 'parser.y', 705)
2533
- def _reduce_166(val, _values, result)
2558
+ module_eval(<<'.,.,', 'parser.y', 701)
2559
+ def _reduce_167(val, _values, result)
2534
2560
  result = Types::Bases::Bool.new(location: val[0].location)
2535
2561
 
2536
2562
  result
2537
2563
  end
2538
2564
  .,.,
2539
2565
 
2540
- module_eval(<<'.,.,', 'parser.y', 708)
2541
- def _reduce_167(val, _values, result)
2566
+ module_eval(<<'.,.,', 'parser.y', 704)
2567
+ def _reduce_168(val, _values, result)
2542
2568
  result = Types::Bases::Nil.new(location: val[0].location)
2543
2569
 
2544
2570
  result
2545
2571
  end
2546
2572
  .,.,
2547
2573
 
2548
- module_eval(<<'.,.,', 'parser.y', 711)
2549
- def _reduce_168(val, _values, result)
2574
+ module_eval(<<'.,.,', 'parser.y', 707)
2575
+ def _reduce_169(val, _values, result)
2550
2576
  result = Types::Bases::Top.new(location: val[0].location)
2551
2577
 
2552
2578
  result
2553
2579
  end
2554
2580
  .,.,
2555
2581
 
2556
- module_eval(<<'.,.,', 'parser.y', 714)
2557
- def _reduce_169(val, _values, result)
2582
+ module_eval(<<'.,.,', 'parser.y', 710)
2583
+ def _reduce_170(val, _values, result)
2558
2584
  result = Types::Bases::Bottom.new(location: val[0].location)
2559
2585
 
2560
2586
  result
2561
2587
  end
2562
2588
  .,.,
2563
2589
 
2564
- module_eval(<<'.,.,', 'parser.y', 717)
2565
- def _reduce_170(val, _values, result)
2590
+ module_eval(<<'.,.,', 'parser.y', 713)
2591
+ def _reduce_171(val, _values, result)
2566
2592
  result = Types::Bases::Self.new(location: val[0].location)
2567
2593
 
2568
2594
  result
2569
2595
  end
2570
2596
  .,.,
2571
2597
 
2572
- module_eval(<<'.,.,', 'parser.y', 720)
2573
- def _reduce_171(val, _values, result)
2598
+ module_eval(<<'.,.,', 'parser.y', 716)
2599
+ def _reduce_172(val, _values, result)
2574
2600
  result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location),
2575
2601
  location: val[0].location)
2576
2602
 
@@ -2578,64 +2604,64 @@ module_eval(<<'.,.,', 'parser.y', 720)
2578
2604
  end
2579
2605
  .,.,
2580
2606
 
2581
- module_eval(<<'.,.,', 'parser.y', 724)
2582
- def _reduce_172(val, _values, result)
2607
+ module_eval(<<'.,.,', 'parser.y', 720)
2608
+ def _reduce_173(val, _values, result)
2583
2609
  result = Types::Bases::Instance.new(location: val[0].location)
2584
2610
 
2585
2611
  result
2586
2612
  end
2587
2613
  .,.,
2588
2614
 
2589
- module_eval(<<'.,.,', 'parser.y', 727)
2590
- def _reduce_173(val, _values, result)
2615
+ module_eval(<<'.,.,', 'parser.y', 723)
2616
+ def _reduce_174(val, _values, result)
2591
2617
  result = Types::Bases::Class.new(location: val[0].location)
2592
2618
 
2593
2619
  result
2594
2620
  end
2595
2621
  .,.,
2596
2622
 
2597
- module_eval(<<'.,.,', 'parser.y', 730)
2598
- def _reduce_174(val, _values, result)
2623
+ module_eval(<<'.,.,', 'parser.y', 726)
2624
+ def _reduce_175(val, _values, result)
2599
2625
  result = Types::Literal.new(literal: true, location: val[0].location)
2600
2626
 
2601
2627
  result
2602
2628
  end
2603
2629
  .,.,
2604
2630
 
2605
- module_eval(<<'.,.,', 'parser.y', 733)
2606
- def _reduce_175(val, _values, result)
2631
+ module_eval(<<'.,.,', 'parser.y', 729)
2632
+ def _reduce_176(val, _values, result)
2607
2633
  result = Types::Literal.new(literal: false, location: val[0].location)
2608
2634
 
2609
2635
  result
2610
2636
  end
2611
2637
  .,.,
2612
2638
 
2613
- module_eval(<<'.,.,', 'parser.y', 736)
2614
- def _reduce_176(val, _values, result)
2639
+ module_eval(<<'.,.,', 'parser.y', 732)
2640
+ def _reduce_177(val, _values, result)
2615
2641
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2616
2642
 
2617
2643
  result
2618
2644
  end
2619
2645
  .,.,
2620
2646
 
2621
- module_eval(<<'.,.,', 'parser.y', 739)
2622
- def _reduce_177(val, _values, result)
2647
+ module_eval(<<'.,.,', 'parser.y', 735)
2648
+ def _reduce_178(val, _values, result)
2623
2649
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2624
2650
 
2625
2651
  result
2626
2652
  end
2627
2653
  .,.,
2628
2654
 
2629
- module_eval(<<'.,.,', 'parser.y', 742)
2630
- def _reduce_178(val, _values, result)
2655
+ module_eval(<<'.,.,', 'parser.y', 738)
2656
+ def _reduce_179(val, _values, result)
2631
2657
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2632
2658
 
2633
2659
  result
2634
2660
  end
2635
2661
  .,.,
2636
2662
 
2637
- module_eval(<<'.,.,', 'parser.y', 745)
2638
- def _reduce_179(val, _values, result)
2663
+ module_eval(<<'.,.,', 'parser.y', 741)
2664
+ def _reduce_180(val, _values, result)
2639
2665
  name = val[0].value
2640
2666
  args = []
2641
2667
  location = val[0].location
@@ -2657,8 +2683,8 @@ module_eval(<<'.,.,', 'parser.y', 745)
2657
2683
  end
2658
2684
  .,.,
2659
2685
 
2660
- module_eval(<<'.,.,', 'parser.y', 763)
2661
- def _reduce_180(val, _values, result)
2686
+ module_eval(<<'.,.,', 'parser.y', 759)
2687
+ def _reduce_181(val, _values, result)
2662
2688
  name = val[0].value
2663
2689
  args = val[2]
2664
2690
  location = val[0].location + val[3].location
@@ -2679,8 +2705,8 @@ module_eval(<<'.,.,', 'parser.y', 763)
2679
2705
  end
2680
2706
  .,.,
2681
2707
 
2682
- module_eval(<<'.,.,', 'parser.y', 780)
2683
- def _reduce_181(val, _values, result)
2708
+ module_eval(<<'.,.,', 'parser.y', 776)
2709
+ def _reduce_182(val, _values, result)
2684
2710
  location = val[0].location + val[1].location
2685
2711
  result = Types::Tuple.new(types: [], location: location)
2686
2712
 
@@ -2688,8 +2714,8 @@ module_eval(<<'.,.,', 'parser.y', 780)
2688
2714
  end
2689
2715
  .,.,
2690
2716
 
2691
- module_eval(<<'.,.,', 'parser.y', 784)
2692
- def _reduce_182(val, _values, result)
2717
+ module_eval(<<'.,.,', 'parser.y', 780)
2718
+ def _reduce_183(val, _values, result)
2693
2719
  location = val[0].location + val[2].location
2694
2720
  types = val[1]
2695
2721
  result = Types::Tuple.new(types: types, location: location)
@@ -2698,8 +2724,8 @@ module_eval(<<'.,.,', 'parser.y', 784)
2698
2724
  end
2699
2725
  .,.,
2700
2726
 
2701
- module_eval(<<'.,.,', 'parser.y', 789)
2702
- def _reduce_183(val, _values, result)
2727
+ module_eval(<<'.,.,', 'parser.y', 785)
2728
+ def _reduce_184(val, _values, result)
2703
2729
  type = val[1].dup
2704
2730
  type.instance_eval do
2705
2731
  @location = val[0].location + val[2].location
@@ -2710,8 +2736,8 @@ module_eval(<<'.,.,', 'parser.y', 789)
2710
2736
  end
2711
2737
  .,.,
2712
2738
 
2713
- module_eval(<<'.,.,', 'parser.y', 796)
2714
- def _reduce_184(val, _values, result)
2739
+ module_eval(<<'.,.,', 'parser.y', 792)
2740
+ def _reduce_185(val, _values, result)
2715
2741
  result = Types::ClassSingleton.new(name: val[2].value,
2716
2742
  location: val[0].location + val[3].location)
2717
2743
 
@@ -2719,42 +2745,43 @@ module_eval(<<'.,.,', 'parser.y', 796)
2719
2745
  end
2720
2746
  .,.,
2721
2747
 
2722
- module_eval(<<'.,.,', 'parser.y', 800)
2723
- def _reduce_185(val, _values, result)
2724
- result = Types::Proc.new(type: val[1].value, location: val[0].location + val[1].location)
2748
+ module_eval(<<'.,.,', 'parser.y', 796)
2749
+ def _reduce_186(val, _values, result)
2750
+ type, block = val[1].value
2751
+ result = Types::Proc.new(type: type, block: block, location: val[0].location + val[1].location)
2725
2752
 
2726
2753
  result
2727
2754
  end
2728
2755
  .,.,
2729
2756
 
2730
- module_eval(<<'.,.,', 'parser.y', 803)
2731
- def _reduce_186(val, _values, result)
2757
+ module_eval(<<'.,.,', 'parser.y', 800)
2758
+ def _reduce_187(val, _values, result)
2732
2759
  result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location)
2733
2760
 
2734
2761
  result
2735
2762
  end
2736
2763
  .,.,
2737
2764
 
2738
- # reduce 187 omitted
2765
+ # reduce 188 omitted
2739
2766
 
2740
- module_eval(<<'.,.,', 'parser.y', 809)
2741
- def _reduce_188(val, _values, result)
2767
+ module_eval(<<'.,.,', 'parser.y', 806)
2768
+ def _reduce_189(val, _values, result)
2742
2769
  result = [val[0]]
2743
2770
 
2744
2771
  result
2745
2772
  end
2746
2773
  .,.,
2747
2774
 
2748
- module_eval(<<'.,.,', 'parser.y', 812)
2749
- def _reduce_189(val, _values, result)
2775
+ module_eval(<<'.,.,', 'parser.y', 809)
2776
+ def _reduce_190(val, _values, result)
2750
2777
  result = val[0] + [val[2]]
2751
2778
 
2752
2779
  result
2753
2780
  end
2754
2781
  .,.,
2755
2782
 
2756
- module_eval(<<'.,.,', 'parser.y', 817)
2757
- def _reduce_190(val, _values, result)
2783
+ module_eval(<<'.,.,', 'parser.y', 814)
2784
+ def _reduce_191(val, _values, result)
2758
2785
  result = Types::Record.new(
2759
2786
  fields: val[1],
2760
2787
  location: val[0].location + val[2].location
@@ -2764,74 +2791,107 @@ module_eval(<<'.,.,', 'parser.y', 817)
2764
2791
  end
2765
2792
  .,.,
2766
2793
 
2767
- module_eval(<<'.,.,', 'parser.y', 825)
2768
- def _reduce_191(val, _values, result)
2794
+ module_eval(<<'.,.,', 'parser.y', 822)
2795
+ def _reduce_192(val, _values, result)
2769
2796
  result = val[0]
2770
2797
 
2771
2798
  result
2772
2799
  end
2773
2800
  .,.,
2774
2801
 
2775
- module_eval(<<'.,.,', 'parser.y', 828)
2776
- def _reduce_192(val, _values, result)
2802
+ module_eval(<<'.,.,', 'parser.y', 825)
2803
+ def _reduce_193(val, _values, result)
2777
2804
  result = val[0].merge!(val[2])
2778
2805
 
2779
2806
  result
2780
2807
  end
2781
2808
  .,.,
2782
2809
 
2783
- module_eval(<<'.,.,', 'parser.y', 833)
2784
- def _reduce_193(val, _values, result)
2810
+ module_eval(<<'.,.,', 'parser.y', 830)
2811
+ def _reduce_194(val, _values, result)
2785
2812
  result = { val[0].value => val[2] }
2786
2813
 
2787
2814
  result
2788
2815
  end
2789
2816
  .,.,
2790
2817
 
2791
- module_eval(<<'.,.,', 'parser.y', 836)
2792
- def _reduce_194(val, _values, result)
2818
+ module_eval(<<'.,.,', 'parser.y', 833)
2819
+ def _reduce_195(val, _values, result)
2793
2820
  result = { val[0].value => val[2] }
2794
2821
 
2795
2822
  result
2796
2823
  end
2797
2824
  .,.,
2798
2825
 
2799
- module_eval(<<'.,.,', 'parser.y', 839)
2800
- def _reduce_195(val, _values, result)
2826
+ module_eval(<<'.,.,', 'parser.y', 836)
2827
+ def _reduce_196(val, _values, result)
2801
2828
  result = { val[0].value => val[2] }
2802
2829
 
2803
2830
  result
2804
2831
  end
2805
2832
  .,.,
2806
2833
 
2807
- module_eval(<<'.,.,', 'parser.y', 842)
2808
- def _reduce_196(val, _values, result)
2834
+ module_eval(<<'.,.,', 'parser.y', 839)
2835
+ def _reduce_197(val, _values, result)
2809
2836
  result = { val[0].value => val[1] }
2810
2837
 
2811
2838
  result
2812
2839
  end
2813
2840
  .,.,
2814
2841
 
2815
- # reduce 197 omitted
2842
+ # reduce 198 omitted
2816
2843
 
2817
- module_eval(<<'.,.,', 'parser.y', 848)
2818
- def _reduce_198(val, _values, result)
2844
+ module_eval(<<'.,.,', 'parser.y', 845)
2845
+ def _reduce_199(val, _values, result)
2819
2846
  result = val[0]
2820
2847
 
2821
2848
  result
2822
2849
  end
2823
2850
  .,.,
2824
2851
 
2825
- # reduce 199 omitted
2826
-
2827
2852
  # reduce 200 omitted
2828
2853
 
2829
2854
  # reduce 201 omitted
2830
2855
 
2831
2856
  # reduce 202 omitted
2832
2857
 
2833
- module_eval(<<'.,.,', 'parser.y', 855)
2834
- def _reduce_203(val, _values, result)
2858
+ # reduce 203 omitted
2859
+
2860
+ module_eval(<<'.,.,', 'parser.y', 852)
2861
+ def _reduce_204(val, _values, result)
2862
+ location = (val[0] || val[1] || val[2]).location + val[3].location
2863
+
2864
+ params = val[0]&.value || [[], [], nil, [], {}, {}, nil]
2865
+
2866
+ type = Types::Function.new(
2867
+ required_positionals: params[0],
2868
+ optional_positionals: params[1],
2869
+ rest_positionals: params[2],
2870
+ trailing_positionals: params[3],
2871
+ required_keywords: params[4],
2872
+ optional_keywords: params[5],
2873
+ rest_keywords: params[6],
2874
+ return_type: val[3]
2875
+ )
2876
+
2877
+ block = val[1].value
2878
+
2879
+ result = LocatedValue.new(value: [type, block], location: location)
2880
+
2881
+ result
2882
+ end
2883
+ .,.,
2884
+
2885
+ module_eval(<<'.,.,', 'parser.y', 872)
2886
+ def _reduce_205(val, _values, result)
2887
+ result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location)
2888
+
2889
+ result
2890
+ end
2891
+ .,.,
2892
+
2893
+ module_eval(<<'.,.,', 'parser.y', 877)
2894
+ def _reduce_206(val, _values, result)
2835
2895
  location = val[0].location + val[4].location
2836
2896
  type = Types::Function.new(
2837
2897
  required_positionals: val[1][0],
@@ -2850,8 +2910,8 @@ module_eval(<<'.,.,', 'parser.y', 855)
2850
2910
  end
2851
2911
  .,.,
2852
2912
 
2853
- module_eval(<<'.,.,', 'parser.y', 870)
2854
- def _reduce_204(val, _values, result)
2913
+ module_eval(<<'.,.,', 'parser.y', 892)
2914
+ def _reduce_207(val, _values, result)
2855
2915
  location = val[0].location + val[1].location
2856
2916
  type = Types::Function.new(
2857
2917
  required_positionals: [],
@@ -2870,8 +2930,8 @@ module_eval(<<'.,.,', 'parser.y', 870)
2870
2930
  end
2871
2931
  .,.,
2872
2932
 
2873
- module_eval(<<'.,.,', 'parser.y', 887)
2874
- def _reduce_205(val, _values, result)
2933
+ module_eval(<<'.,.,', 'parser.y', 909)
2934
+ def _reduce_208(val, _values, result)
2875
2935
  result = val[2]
2876
2936
  result[0].unshift(val[0])
2877
2937
 
@@ -2879,8 +2939,8 @@ module_eval(<<'.,.,', 'parser.y', 887)
2879
2939
  end
2880
2940
  .,.,
2881
2941
 
2882
- module_eval(<<'.,.,', 'parser.y', 891)
2883
- def _reduce_206(val, _values, result)
2942
+ module_eval(<<'.,.,', 'parser.y', 913)
2943
+ def _reduce_209(val, _values, result)
2884
2944
  result = empty_params_result
2885
2945
  result[0].unshift(val[0])
2886
2946
 
@@ -2888,10 +2948,10 @@ module_eval(<<'.,.,', 'parser.y', 891)
2888
2948
  end
2889
2949
  .,.,
2890
2950
 
2891
- # reduce 207 omitted
2951
+ # reduce 210 omitted
2892
2952
 
2893
- module_eval(<<'.,.,', 'parser.y', 898)
2894
- def _reduce_208(val, _values, result)
2953
+ module_eval(<<'.,.,', 'parser.y', 920)
2954
+ def _reduce_211(val, _values, result)
2895
2955
  result = val[2]
2896
2956
  result[1].unshift(val[0])
2897
2957
 
@@ -2899,8 +2959,8 @@ module_eval(<<'.,.,', 'parser.y', 898)
2899
2959
  end
2900
2960
  .,.,
2901
2961
 
2902
- module_eval(<<'.,.,', 'parser.y', 902)
2903
- def _reduce_209(val, _values, result)
2962
+ module_eval(<<'.,.,', 'parser.y', 924)
2963
+ def _reduce_212(val, _values, result)
2904
2964
  result = empty_params_result
2905
2965
  result[1].unshift(val[0])
2906
2966
 
@@ -2908,10 +2968,10 @@ module_eval(<<'.,.,', 'parser.y', 902)
2908
2968
  end
2909
2969
  .,.,
2910
2970
 
2911
- # reduce 210 omitted
2971
+ # reduce 213 omitted
2912
2972
 
2913
- module_eval(<<'.,.,', 'parser.y', 909)
2914
- def _reduce_211(val, _values, result)
2973
+ module_eval(<<'.,.,', 'parser.y', 931)
2974
+ def _reduce_214(val, _values, result)
2915
2975
  result = val[2]
2916
2976
  result[2] = val[0]
2917
2977
 
@@ -2919,8 +2979,8 @@ module_eval(<<'.,.,', 'parser.y', 909)
2919
2979
  end
2920
2980
  .,.,
2921
2981
 
2922
- module_eval(<<'.,.,', 'parser.y', 913)
2923
- def _reduce_212(val, _values, result)
2982
+ module_eval(<<'.,.,', 'parser.y', 935)
2983
+ def _reduce_215(val, _values, result)
2924
2984
  result = empty_params_result
2925
2985
  result[2] = val[0]
2926
2986
 
@@ -2928,10 +2988,10 @@ module_eval(<<'.,.,', 'parser.y', 913)
2928
2988
  end
2929
2989
  .,.,
2930
2990
 
2931
- # reduce 213 omitted
2991
+ # reduce 216 omitted
2932
2992
 
2933
- module_eval(<<'.,.,', 'parser.y', 920)
2934
- def _reduce_214(val, _values, result)
2993
+ module_eval(<<'.,.,', 'parser.y', 942)
2994
+ def _reduce_217(val, _values, result)
2935
2995
  result = val[2]
2936
2996
  result[3].unshift(val[0])
2937
2997
 
@@ -2939,8 +2999,8 @@ module_eval(<<'.,.,', 'parser.y', 920)
2939
2999
  end
2940
3000
  .,.,
2941
3001
 
2942
- module_eval(<<'.,.,', 'parser.y', 924)
2943
- def _reduce_215(val, _values, result)
3002
+ module_eval(<<'.,.,', 'parser.y', 946)
3003
+ def _reduce_218(val, _values, result)
2944
3004
  result = empty_params_result
2945
3005
  result[3].unshift(val[0])
2946
3006
 
@@ -2948,18 +3008,18 @@ module_eval(<<'.,.,', 'parser.y', 924)
2948
3008
  end
2949
3009
  .,.,
2950
3010
 
2951
- # reduce 216 omitted
3011
+ # reduce 219 omitted
2952
3012
 
2953
- module_eval(<<'.,.,', 'parser.y', 931)
2954
- def _reduce_217(val, _values, result)
3013
+ module_eval(<<'.,.,', 'parser.y', 953)
3014
+ def _reduce_220(val, _values, result)
2955
3015
  result = empty_params_result
2956
3016
 
2957
3017
  result
2958
3018
  end
2959
3019
  .,.,
2960
3020
 
2961
- module_eval(<<'.,.,', 'parser.y', 934)
2962
- def _reduce_218(val, _values, result)
3021
+ module_eval(<<'.,.,', 'parser.y', 956)
3022
+ def _reduce_221(val, _values, result)
2963
3023
  result = val[2]
2964
3024
  result[4].merge!(val[0])
2965
3025
 
@@ -2967,8 +3027,8 @@ module_eval(<<'.,.,', 'parser.y', 934)
2967
3027
  end
2968
3028
  .,.,
2969
3029
 
2970
- module_eval(<<'.,.,', 'parser.y', 938)
2971
- def _reduce_219(val, _values, result)
3030
+ module_eval(<<'.,.,', 'parser.y', 960)
3031
+ def _reduce_222(val, _values, result)
2972
3032
  result = empty_params_result
2973
3033
  result[4].merge!(val[0])
2974
3034
 
@@ -2976,8 +3036,8 @@ module_eval(<<'.,.,', 'parser.y', 938)
2976
3036
  end
2977
3037
  .,.,
2978
3038
 
2979
- module_eval(<<'.,.,', 'parser.y', 942)
2980
- def _reduce_220(val, _values, result)
3039
+ module_eval(<<'.,.,', 'parser.y', 964)
3040
+ def _reduce_223(val, _values, result)
2981
3041
  result = val[2]
2982
3042
  result[5].merge!(val[0])
2983
3043
 
@@ -2985,8 +3045,8 @@ module_eval(<<'.,.,', 'parser.y', 942)
2985
3045
  end
2986
3046
  .,.,
2987
3047
 
2988
- module_eval(<<'.,.,', 'parser.y', 946)
2989
- def _reduce_221(val, _values, result)
3048
+ module_eval(<<'.,.,', 'parser.y', 968)
3049
+ def _reduce_224(val, _values, result)
2990
3050
  result = empty_params_result
2991
3051
  result[5].merge!(val[0])
2992
3052
 
@@ -2994,8 +3054,8 @@ module_eval(<<'.,.,', 'parser.y', 946)
2994
3054
  end
2995
3055
  .,.,
2996
3056
 
2997
- module_eval(<<'.,.,', 'parser.y', 950)
2998
- def _reduce_222(val, _values, result)
3057
+ module_eval(<<'.,.,', 'parser.y', 972)
3058
+ def _reduce_225(val, _values, result)
2999
3059
  result = empty_params_result
3000
3060
  result[6] = val[0]
3001
3061
 
@@ -3003,8 +3063,8 @@ module_eval(<<'.,.,', 'parser.y', 950)
3003
3063
  end
3004
3064
  .,.,
3005
3065
 
3006
- module_eval(<<'.,.,', 'parser.y', 956)
3007
- def _reduce_223(val, _values, result)
3066
+ module_eval(<<'.,.,', 'parser.y', 978)
3067
+ def _reduce_226(val, _values, result)
3008
3068
  result = Types::Function::Param.new(type: val[0],
3009
3069
  name: val[1]&.value&.to_sym)
3010
3070
 
@@ -3012,8 +3072,8 @@ module_eval(<<'.,.,', 'parser.y', 956)
3012
3072
  end
3013
3073
  .,.,
3014
3074
 
3015
- module_eval(<<'.,.,', 'parser.y', 962)
3016
- def _reduce_224(val, _values, result)
3075
+ module_eval(<<'.,.,', 'parser.y', 984)
3076
+ def _reduce_227(val, _values, result)
3017
3077
  result = Types::Function::Param.new(type: val[1],
3018
3078
  name: val[2]&.value&.to_sym)
3019
3079
 
@@ -3021,8 +3081,8 @@ module_eval(<<'.,.,', 'parser.y', 962)
3021
3081
  end
3022
3082
  .,.,
3023
3083
 
3024
- module_eval(<<'.,.,', 'parser.y', 968)
3025
- def _reduce_225(val, _values, result)
3084
+ module_eval(<<'.,.,', 'parser.y', 990)
3085
+ def _reduce_228(val, _values, result)
3026
3086
  result = Types::Function::Param.new(type: val[1],
3027
3087
  name: val[2]&.value&.to_sym)
3028
3088
 
@@ -3030,8 +3090,8 @@ module_eval(<<'.,.,', 'parser.y', 968)
3030
3090
  end
3031
3091
  .,.,
3032
3092
 
3033
- module_eval(<<'.,.,', 'parser.y', 974)
3034
- def _reduce_226(val, _values, result)
3093
+ module_eval(<<'.,.,', 'parser.y', 996)
3094
+ def _reduce_229(val, _values, result)
3035
3095
  param = Types::Function::Param.new(type: val[1],
3036
3096
  name: val[2]&.value&.to_sym)
3037
3097
  result = { val[0].value => param }
@@ -3040,8 +3100,8 @@ module_eval(<<'.,.,', 'parser.y', 974)
3040
3100
  end
3041
3101
  .,.,
3042
3102
 
3043
- module_eval(<<'.,.,', 'parser.y', 981)
3044
- def _reduce_227(val, _values, result)
3103
+ module_eval(<<'.,.,', 'parser.y', 1003)
3104
+ def _reduce_230(val, _values, result)
3045
3105
  param = Types::Function::Param.new(type: val[2],
3046
3106
  name: val[3]&.value&.to_sym)
3047
3107
  result = { val[1].value => param }
@@ -3050,8 +3110,8 @@ module_eval(<<'.,.,', 'parser.y', 981)
3050
3110
  end
3051
3111
  .,.,
3052
3112
 
3053
- module_eval(<<'.,.,', 'parser.y', 988)
3054
- def _reduce_228(val, _values, result)
3113
+ module_eval(<<'.,.,', 'parser.y', 1010)
3114
+ def _reduce_231(val, _values, result)
3055
3115
  result = Types::Function::Param.new(type: val[1],
3056
3116
  name: val[2]&.value&.to_sym)
3057
3117
 
@@ -3059,16 +3119,16 @@ module_eval(<<'.,.,', 'parser.y', 988)
3059
3119
  end
3060
3120
  .,.,
3061
3121
 
3062
- # reduce 229 omitted
3122
+ # reduce 232 omitted
3063
3123
 
3064
- # reduce 230 omitted
3124
+ # reduce 233 omitted
3065
3125
 
3066
- # reduce 231 omitted
3126
+ # reduce 234 omitted
3067
3127
 
3068
- # reduce 232 omitted
3128
+ # reduce 235 omitted
3069
3129
 
3070
- module_eval(<<'.,.,', 'parser.y', 997)
3071
- def _reduce_233(val, _values, result)
3130
+ module_eval(<<'.,.,', 'parser.y', 1019)
3131
+ def _reduce_236(val, _values, result)
3072
3132
  namespace = val[0]&.value || Namespace.empty
3073
3133
  name = val[1].value.to_sym
3074
3134
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3079,14 +3139,14 @@ module_eval(<<'.,.,', 'parser.y', 997)
3079
3139
  end
3080
3140
  .,.,
3081
3141
 
3082
- # reduce 234 omitted
3142
+ # reduce 237 omitted
3083
3143
 
3084
- # reduce 235 omitted
3144
+ # reduce 238 omitted
3085
3145
 
3086
- # reduce 236 omitted
3146
+ # reduce 239 omitted
3087
3147
 
3088
- module_eval(<<'.,.,', 'parser.y', 1009)
3089
- def _reduce_237(val, _values, result)
3148
+ module_eval(<<'.,.,', 'parser.y', 1031)
3149
+ def _reduce_240(val, _values, result)
3090
3150
  namespace = val[0]&.value || Namespace.empty
3091
3151
  name = val[1].value.to_sym
3092
3152
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3097,8 +3157,8 @@ module_eval(<<'.,.,', 'parser.y', 1009)
3097
3157
  end
3098
3158
  .,.,
3099
3159
 
3100
- module_eval(<<'.,.,', 'parser.y', 1018)
3101
- def _reduce_238(val, _values, result)
3160
+ module_eval(<<'.,.,', 'parser.y', 1040)
3161
+ def _reduce_241(val, _values, result)
3102
3162
  namespace = val[0]&.value || Namespace.empty
3103
3163
  name = val[1].value.to_sym
3104
3164
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3109,24 +3169,24 @@ module_eval(<<'.,.,', 'parser.y', 1018)
3109
3169
  end
3110
3170
  .,.,
3111
3171
 
3112
- module_eval(<<'.,.,', 'parser.y', 1027)
3113
- def _reduce_239(val, _values, result)
3172
+ module_eval(<<'.,.,', 'parser.y', 1049)
3173
+ def _reduce_242(val, _values, result)
3114
3174
  result = nil
3115
3175
 
3116
3176
  result
3117
3177
  end
3118
3178
  .,.,
3119
3179
 
3120
- module_eval(<<'.,.,', 'parser.y', 1030)
3121
- def _reduce_240(val, _values, result)
3180
+ module_eval(<<'.,.,', 'parser.y', 1052)
3181
+ def _reduce_243(val, _values, result)
3122
3182
  result = LocatedValue.new(value: Namespace.root, location: val[0].location)
3123
3183
 
3124
3184
  result
3125
3185
  end
3126
3186
  .,.,
3127
3187
 
3128
- module_eval(<<'.,.,', 'parser.y', 1033)
3129
- def _reduce_241(val, _values, result)
3188
+ module_eval(<<'.,.,', 'parser.y', 1055)
3189
+ def _reduce_244(val, _values, result)
3130
3190
  namespace = Namespace.parse(val[1].value).absolute!
3131
3191
  result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location)
3132
3192
 
@@ -3134,8 +3194,8 @@ module_eval(<<'.,.,', 'parser.y', 1033)
3134
3194
  end
3135
3195
  .,.,
3136
3196
 
3137
- module_eval(<<'.,.,', 'parser.y', 1037)
3138
- def _reduce_242(val, _values, result)
3197
+ module_eval(<<'.,.,', 'parser.y', 1059)
3198
+ def _reduce_245(val, _values, result)
3139
3199
  namespace = Namespace.parse(val[0].value)
3140
3200
  result = LocatedValue.new(value: namespace, location: val[0].location)
3141
3201