rbs 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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