rbs 0.20.1 → 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,217 @@
1
+ module RBS
2
+ class DefinitionBuilder
3
+ class MethodBuilder
4
+ class Methods
5
+ Definition = Struct.new(:name, :type, :originals, :overloads, :accessibilities, keyword_init: true) do
6
+ def original
7
+ originals[0]
8
+ end
9
+
10
+ def accessibility
11
+ accessibilities[0]
12
+ end
13
+
14
+ def self.empty(name:, type:)
15
+ new(type: type, name: name, originals: [], overloads: [], accessibilities: [])
16
+ end
17
+ end
18
+
19
+ attr_reader :type
20
+ attr_reader :methods
21
+
22
+ def initialize(type:)
23
+ @type = type
24
+ @methods = {}
25
+ end
26
+
27
+ def validate!
28
+ methods.each_value do |defn|
29
+ if defn.originals.size > 1
30
+ raise DuplicatedMethodDefinitionError.new(
31
+ type: type,
32
+ method_name: defn.name,
33
+ members: defn.originals
34
+ )
35
+ end
36
+ end
37
+
38
+ self
39
+ end
40
+
41
+ def each
42
+ if block_given?
43
+ Sorter.new(methods).each_strongly_connected_component do |scc|
44
+ if scc.size > 1
45
+ raise RecursiveAliasDefinitionError.new(type: type, defs: scc)
46
+ end
47
+
48
+ yield scc[0]
49
+ end
50
+ else
51
+ enum_for :each
52
+ end
53
+ end
54
+
55
+ class Sorter
56
+ include TSort
57
+
58
+ attr_reader :methods
59
+
60
+ def initialize(methods)
61
+ @methods = methods
62
+ end
63
+
64
+ def tsort_each_node(&block)
65
+ methods.each_value(&block)
66
+ end
67
+
68
+ def tsort_each_child(defn)
69
+ if (member = defn.original).is_a?(AST::Members::Alias)
70
+ if old = methods[member.old_name]
71
+ yield old
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+
78
+ attr_reader :env
79
+ attr_reader :instance_methods
80
+ attr_reader :singleton_methods
81
+ attr_reader :interface_methods
82
+
83
+ def initialize(env:)
84
+ @env = env
85
+
86
+ @instance_methods = {}
87
+ @singleton_methods = {}
88
+ @interface_methods = {}
89
+ end
90
+
91
+ def build_instance(type_name)
92
+ instance_methods[type_name] ||=
93
+ begin
94
+ entry = env.class_decls[type_name]
95
+ args = Types::Variable.build(entry.type_params.each.map(&:name))
96
+ type = Types::ClassInstance.new(name: type_name, args: args, location: nil)
97
+ Methods.new(type: type).tap do |methods|
98
+ entry.decls.each do |d|
99
+ each_member_with_accessibility(d.decl.members) do |member, accessibility|
100
+ case member
101
+ when AST::Members::MethodDefinition
102
+ if member.instance?
103
+ build_method(methods, type, member: member, accessibility: accessibility)
104
+ end
105
+ when AST::Members::AttrReader, AST::Members::AttrWriter, AST::Members::AttrAccessor
106
+ if member.kind == :instance
107
+ build_attribute(methods, type, member: member, accessibility: accessibility)
108
+ end
109
+ when AST::Members::Alias
110
+ if member.kind == :instance
111
+ build_alias(methods, type, member: member, accessibility: accessibility)
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end.validate!
117
+ end
118
+ end
119
+
120
+ def build_singleton(type_name)
121
+ singleton_methods[type_name] ||=
122
+ begin
123
+ entry = env.class_decls[type_name]
124
+ type = Types::ClassSingleton.new(name: type_name, location: nil)
125
+
126
+ Methods.new(type: type).tap do |methods|
127
+ entry.decls.each do |d|
128
+ each_member_with_accessibility(d.decl.members) do |member, accessibility|
129
+ case member
130
+ when AST::Members::MethodDefinition
131
+ if member.singleton?
132
+ build_method(methods, type, member: member, accessibility: accessibility)
133
+ end
134
+ when AST::Members::AttrReader, AST::Members::AttrWriter, AST::Members::AttrAccessor
135
+ if member.kind == :singleton
136
+ build_attribute(methods, type, member: member, accessibility: accessibility)
137
+ end
138
+ when AST::Members::Alias
139
+ if member.kind == :singleton
140
+ build_alias(methods, type, member: member, accessibility: accessibility)
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end.validate!
146
+ end
147
+ end
148
+
149
+ def build_interface(type_name)
150
+ interface_methods[type_name] ||=
151
+ begin
152
+ entry = env.interface_decls[type_name]
153
+ args = Types::Variable.build(entry.decl.type_params.each.map(&:name))
154
+ type = Types::Interface.new(name: type_name, args: args, location: nil)
155
+
156
+ Methods.new(type: type).tap do |methods|
157
+ entry.decl.members.each do |member|
158
+ case member
159
+ when AST::Members::MethodDefinition
160
+ build_method(methods, type, member: member, accessibility: :public)
161
+ when AST::Members::Alias
162
+ build_alias(methods, type, member: member, accessibility: :public)
163
+ end
164
+ end
165
+ end.validate!
166
+ end
167
+ end
168
+
169
+ def build_alias(methods, type, member:, accessibility:)
170
+ defn = methods.methods[member.new_name] ||= Methods::Definition.empty(type: type, name: member.new_name)
171
+
172
+ defn.originals << member
173
+ defn.accessibilities << accessibility
174
+ end
175
+
176
+ def build_attribute(methods, type, member:, accessibility:)
177
+ if member.is_a?(AST::Members::AttrReader) || member.is_a?(AST::Members::AttrAccessor)
178
+ defn = methods.methods[member.name] ||= Methods::Definition.empty(type: type, name: member.name)
179
+
180
+ defn.accessibilities << accessibility
181
+ defn.originals << member
182
+ end
183
+
184
+ if member.is_a?(AST::Members::AttrWriter) || member.is_a?(AST::Members::AttrAccessor)
185
+ defn = methods.methods[:"#{member.name}="] ||= Methods::Definition.empty(type: type, name: :"#{member.name}=")
186
+
187
+ defn.accessibilities << accessibility
188
+ defn.originals << member
189
+ end
190
+ end
191
+
192
+ def build_method(methods, type, member:, accessibility:)
193
+ defn = methods.methods[member.name] ||= Methods::Definition.empty(type: type, name: member.name)
194
+
195
+ if member.overload?
196
+ defn.overloads << member
197
+ else
198
+ defn.accessibilities << accessibility
199
+ defn.originals << member
200
+ end
201
+ end
202
+
203
+ def each_member_with_accessibility(members, accessibility: :public)
204
+ members.each do |member|
205
+ case member
206
+ when AST::Members::Public
207
+ accessibility = :public
208
+ when AST::Members::Private
209
+ accessibility = :private
210
+ else
211
+ yield member, accessibility
212
+ end
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
@@ -244,7 +244,8 @@ module RBS
244
244
  super_class: decl.super_class&.yield_self do |super_class|
245
245
  AST::Declarations::Class::Super.new(
246
246
  name: absolute_type_name(resolver, super_class.name, context: context),
247
- args: super_class.args.map {|type| absolute_type(resolver, type, context: context) }
247
+ args: super_class.args.map {|type| absolute_type(resolver, type, context: context) },
248
+ location: super_class.location
248
249
  )
249
250
  end,
250
251
  members: decl.members.map do |member|
@@ -68,18 +68,20 @@ module RBS
68
68
  attr_reader :location
69
69
 
70
70
  def initialize(ancestors:, location:)
71
- last = case last = ancestors.last
72
- when Definition::Ancestor::Singleton
73
- "singleton(#{last.name})"
74
- when Definition::Ancestor::Instance
75
- if last.args.empty?
76
- last.name.to_s
77
- else
78
- "#{last.name}[#{last.args.join(", ")}]"
79
- end
80
- end
81
-
82
- super "#{Location.to_string location}: Detected recursive ancestors: #{last}"
71
+ names = ancestors.map do |ancestor|
72
+ case ancestor
73
+ when Definition::Ancestor::Singleton
74
+ "singleton(#{ancestor.name})"
75
+ when Definition::Ancestor::Instance
76
+ if ancestor.args.empty?
77
+ ancestor.name.to_s
78
+ else
79
+ "#{ancestor.name}[#{ancestor.args.join(", ")}]"
80
+ end
81
+ end
82
+ end
83
+
84
+ super "#{Location.to_string location}: Detected recursive ancestors: #{names.join(" < ")}"
83
85
  end
84
86
 
85
87
  def self.check!(self_ancestor, ancestors:, location:)
@@ -194,44 +196,54 @@ module RBS
194
196
  end
195
197
 
196
198
  class DuplicatedMethodDefinitionError < StandardError
197
- attr_reader :decl
198
- attr_reader :location
199
+ attr_reader :type
200
+ attr_reader :method_name
201
+ attr_reader :members
199
202
 
200
- def initialize(decl:, name:, location:)
201
- decl_str = case decl
202
- when AST::Declarations::Interface, AST::Declarations::Class, AST::Declarations::Module
203
- decl.name.to_s
204
- when AST::Declarations::Extension
205
- "#{decl.name} (#{decl.extension_name})"
206
- end
203
+ def initialize(type:, method_name:, members:)
204
+ @type = type
205
+ @method_name = method_name
206
+ @members = members
207
207
 
208
- super "#{Location.to_string location}: #{decl_str} has duplicated method definition: #{name}"
208
+ super "#{Location.to_string location}: #{qualified_method_name} has duplicated definitions"
209
209
  end
210
210
 
211
- def self.check!(decl:, methods:, name:, location:)
212
- if methods.key?(name)
213
- raise new(decl: decl, name: name, location: location)
211
+ def qualified_method_name
212
+ case type
213
+ when Types::ClassSingleton
214
+ "#{type.name}.#{method_name}"
215
+ else
216
+ "#{type.name}##{method_name}"
214
217
  end
215
218
  end
219
+
220
+ def location
221
+ members[0].location
222
+ end
216
223
  end
217
224
 
218
- class MethodDefinitionConflictWithInterfaceMixinError < StandardError
225
+ class DuplicatedInterfaceMethodDefinitionError < StandardError
219
226
  include MethodNameHelper
220
227
 
221
- attr_reader :type_name
228
+ attr_reader :type
222
229
  attr_reader :method_name
223
- attr_reader :kind
224
- attr_reader :mixin_member
225
- attr_reader :entries
230
+ attr_reader :member
226
231
 
227
- def initialize(type_name:, method_name:, kind:, mixin_member:, entries:)
228
- @type_name = type_name
232
+ def initialize(type:, method_name:, member:)
233
+ @type = type
229
234
  @method_name = method_name
230
- @kind = kind
231
- @mixin_member = mixin_member
232
- @entries = entries
235
+ @member = member
233
236
 
234
- super "#{entries[0].decl.location}: Duplicated method with interface mixin: #{method_name_string}"
237
+ super "#{member.location}: Duplicated method definition: #{qualified_method_name}"
238
+ end
239
+
240
+ def qualified_method_name
241
+ case type
242
+ when Types::ClassSingleton
243
+ "#{type.name}.#{method_name}"
244
+ else
245
+ "#{type.name}##{method_name}"
246
+ end
235
247
  end
236
248
  end
237
249
 
@@ -247,12 +259,6 @@ module RBS
247
259
 
248
260
  super "#{Location.to_string location}: Unknown method alias name: #{original_name} => #{aliased_name}"
249
261
  end
250
-
251
- def self.check!(methods:, original_name:, aliased_name:, location:)
252
- unless methods.key?(original_name)
253
- raise new(original_name: original_name, aliased_name: aliased_name, location: location)
254
- end
255
- end
256
262
  end
257
263
 
258
264
  class SuperclassMismatchError < StandardError
@@ -336,33 +342,32 @@ module RBS
336
342
  end
337
343
 
338
344
  class InvalidVarianceAnnotationError < StandardError
339
- MethodTypeError = Struct.new(:method_name, :method_type, :param, keyword_init: true)
340
- InheritanceError = Struct.new(:super_class, :param, keyword_init: true)
341
- MixinError = Struct.new(:include_member, :param, keyword_init: true)
345
+ attr_reader :type_name
346
+ attr_reader :param
347
+ attr_reader :location
342
348
 
343
- attr_reader :decl
344
- attr_reader :errors
349
+ def initialize(type_name:, param:, location:)
350
+ @type_name = type_name
351
+ @param = param
352
+ @location = location
345
353
 
346
- def initialize(decl:, errors:)
347
- @decl = decl
348
- @errors = errors
349
-
350
- message = [
351
- "#{Location.to_string decl.location}: Invalid variance annotation: #{decl.name}"
352
- ]
353
-
354
- errors.each do |error|
355
- case error
356
- when MethodTypeError
357
- message << " MethodTypeError (#{error.param.name}): on `#{error.method_name}` #{error.method_type.to_s} (#{error.method_type.location&.start_line})"
358
- when InheritanceError
359
- message << " InheritanceError: #{error.super_class}"
360
- when MixinError
361
- message << " MixinError: #{error.include_member.name} (#{error.include_member.location&.start_line})"
362
- end
363
- end
354
+ super "#{Location.to_string location}: Type parameter variance error: #{param.name} is #{param.variance} but used as incompatible variance"
355
+ end
356
+ end
357
+
358
+ class RecursiveAliasDefinitionError < StandardError
359
+ attr_reader :type
360
+ attr_reader :defs
364
361
 
365
- super message.join("\n")
362
+ def initialize(type:, defs:)
363
+ @type = type
364
+ @defs = defs
365
+
366
+ super "#{Location.to_string location}: Recursive aliases in #{type}: #{defs.map(&:name).join(", ")}"
367
+ end
368
+
369
+ def location
370
+ defs[0].original.location
366
371
  end
367
372
  end
368
373
  end
@@ -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', 1066)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1077)
12
12
 
13
13
  Types = RBS::Types
14
14
  Namespace = RBS::Namespace
@@ -401,118 +401,121 @@ end
401
401
  ##### State transition tables begin ###
402
402
 
403
403
  clist = [
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',
404
+ '360,361,33,362,182,114,5,33,33,347,181,404,49,33,33,359,37,345,248,403',
405
+ '40,41,55,56,57,58,59,60,61,62,364,33,63,54,64,65,66,77,67,68,69,83,33',
406
+ '32,53,355,349,350,32,32,353,351,354,312,32,32,33,352,82,70,71,72,74',
407
+ '76,75,348,357,358,73,78,80,127,32,125,42,84,85,81,86,360,361,33,362',
408
+ '32,96,97,98,99,43,49,48,33,33,33,359,207,207,32,126,40,41,55,56,57,58',
409
+ '59,60,61,62,79,33,63,54,64,65,66,77,67,68,69,83,53,32,161,355,349,350',
410
+ '53,53,353,351,354,32,32,32,187,352,82,70,71,72,74,76,75,348,357,358',
411
+ '73,78,80,225,32,162,287,84,85,81,86,360,361,126,362,104,96,97,98,99',
412
+ '101,102,39,103,40,41,359,121,226,335,370,288,165,55,56,57,58,59,60,61',
413
+ '62,79,407,63,54,64,65,66,77,67,68,69,83,39,126,126,355,349,350,408,409',
414
+ '353,351,354,331,40,41,126,352,82,70,71,72,74,76,75,348,357,358,73,78',
415
+ '80,166,327,126,126,84,85,81,86,360,361,167,362,168,96,97,98,99,2,3,4',
416
+ '40,41,169,359,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,171,63,54',
417
+ '64,65,66,77,67,68,69,83,40,41,172,355,349,350,40,41,353,351,354,40,41',
418
+ '40,41,352,82,70,71,72,74,76,75,348,357,358,73,78,80,360,361,173,362',
419
+ '84,85,81,86,-4,114,-245,180,33,183,118,359,-245,40,41,40,41,114,55,56',
420
+ '57,58,59,60,61,62,79,186,63,54,64,65,66,77,67,68,69,83,40,41,41,355',
421
+ '349,350,283,284,353,351,354,32,290,291,189,352,82,70,71,72,74,76,75',
422
+ '348,357,358,73,78,80,360,361,182,362,84,85,81,86,382,383,40,41,190,39',
423
+ '-108,359,40,41,398,399,40,41,55,56,57,58,59,60,61,62,79,-109,63,54,64',
424
+ '65,66,77,67,68,69,83,40,41,-110,355,349,350,40,41,353,351,354,40,41',
425
+ '40,41,352,82,70,71,72,74,76,75,348,357,358,73,78,80,40,41,40,41,84,85',
426
+ '81,86,360,361,-111,362,-112,96,97,98,99,-113,-114,-115,-116,-117,-118',
427
+ '359,48,-133,195,196,197,198,55,56,57,58,59,60,61,62,79,199,63,54,64',
428
+ '65,66,77,67,68,69,83,200,208,209,355,349,350,42,227,353,351,354,241',
429
+ '251,252,254,352,82,70,71,72,74,76,75,348,357,358,73,78,80,360,361,256',
430
+ '362,84,85,81,86,257,42,121,260,260,260,266,359,42,227,269,271,275,277',
431
+ '55,56,57,58,59,60,61,62,79,279,63,54,64,65,66,77,67,68,69,83,280,318',
432
+ '320,355,349,350,275,322,353,351,354,279,332,333,334,352,82,70,71,72',
433
+ '74,76,75,348,357,358,73,78,80,338,338,338,368,84,85,81,86,33,371,378',
434
+ '96,97,98,99,379,380,381,22,23,21,384,26,-223,25,386,30,389,132,133,134',
435
+ '135,136,137,138,139,143,16,140,131,141,142,66,77,67,68,69,83,389,32',
436
+ '389,402,405,28,406,157,413,158,160,414,415,417,422,423,82,70,71,72,74',
437
+ '76,75,424,425,422,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23',
438
+ '21,,26,,25,,30,,132,133,134,135,136,137,138,139,143,16,140,131,141,142',
439
+ '66,77,67,68,69,83,,32,,,,28,,,,,,,,,,,82,70,71,72,74,76,75,,,,73,78',
440
+ '80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-223,25,,30,,132',
441
+ '133,134,135,136,137,138,139,143,16,140,131,141,142,66,77,67,68,69,83',
442
+ ',32,,,,28,,157,,158,160,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84',
443
+ '85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-223,25,,30,,132,133,134,135',
444
+ '136,137,138,139,143,16,140,131,141,142,66,77,67,68,69,83,,32,,,,28,',
445
+ '157,,158,160,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33',
446
+ ',,96,97,98,99,,,,22,23,21,,26,-223,25,,30,,132,133,134,135,136,137,138',
447
+ '139,143,16,140,131,141,142,66,77,67,68,69,83,,32,,,,28,,233,,,160,,',
448
+ ',,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99',
449
+ ',,,22,23,21,,26,-223,25,,30,,132,133,134,135,136,137,138,139,143,16',
450
+ '140,131,141,142,66,77,67,68,69,83,,32,,,,28,,157,,158,160,,,,,,82,70',
451
+ '71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23',
452
+ '21,,26,-223,25,,30,,132,133,134,135,136,137,138,139,143,16,140,131,141',
453
+ '142,66,77,67,68,69,83,,32,,,,28,176,233,,179,160,177,,,,,82,70,71,72',
454
+ '74,76,75,,,,73,78,80,,,178,,84,85,81,86,96,97,98,99,,175,,90,89,91,',
455
+ ',,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,',
456
+ ',,,,192,,193,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81',
457
+ '86,96,97,98,99,,,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61,62,79,,63',
458
+ '54,64,65,66,77,67,68,69,83,194,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,',
459
+ '95,94,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61',
460
+ '62,79,,63,54,64,65,66,77,67,68,69,83,192,,193,,,,,233,,,160,,,,,,82',
461
+ '70,71,72,74,76,75,192,,193,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,40',
462
+ '41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,194,40',
463
+ '41,,,,,233,,,160,,,,,,82,70,71,72,74,76,75,194,,,73,78,80,96,97,98,99',
464
+ '84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67',
465
+ '68,69,83,192,,193,192,,193,192,,193,,,,,,,,82,70,71,72,74,76,75,,,,73',
466
+ '78,80,,,,,84,85,81,86,,,,,,,,40,41,,40,41,,40,41,-245,,33,,118,,-245',
467
+ ',,307,308,114,,,194,,,194,,,194,,-245,,33,,118,,-245,,309,307,308,114',
468
+ ',,,,,304,303,,,32,-245,,33,,118,,-245,,309,307,308,114,,,,295,,304,303',
469
+ ',,32,-245,,33,,118,,-245,,309,307,308,114,,,,319,,304,303,,,32,,,,,',
470
+ ',,,309,,,,,,,323,,304,303,,33,32,,,,,,,,,22,23,21,,26,,25,369,30,,8',
476
471
  '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)
472
+ ',25,45,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28',
473
+ '22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,',
474
+ ',,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
475
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
476
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
477
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
478
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
479
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
480
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
481
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
482
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
483
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
484
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
485
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
486
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
487
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
488
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
489
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
490
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
491
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
492
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
493
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
494
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
495
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
496
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
497
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
498
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
499
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
500
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
501
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
502
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
503
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
504
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
505
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
506
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
507
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
508
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
509
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
510
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
511
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
512
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
513
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
514
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
515
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,176',
516
+ ',,179,,177,,32,331,,,28,,,,,,,,,,,,,,178,,327,328,324,325,326,,,,329',
517
+ '175' ]
518
+ racc_action_table = arr = ::Array.new(3055, nil)
516
519
  idx = 0
517
520
  clist.each do |str|
518
521
  str.split(',', -1).each do |i|
@@ -522,130 +525,140 @@ clist = [
522
525
  end
523
526
 
524
527
  clist = [
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)
528
+ '331,331,48,331,117,281,1,179,217,330,117,389,28,218,219,331,5,330,219',
529
+ '389,44,44,331,331,331,331,331,331,331,331,331,220,331,331,331,331,331',
530
+ '331,331,331,331,331,248,48,28,331,331,331,179,217,331,331,331,281,218',
531
+ '219,271,331,331,331,331,331,331,331,331,331,331,331,331,331,331,47,220',
532
+ '46,7,331,331,331,331,339,339,277,339,248,339,339,339,339,24,120,27,279',
533
+ '327,328,339,161,208,271,46,47,47,339,339,339,339,339,339,339,339,339',
534
+ '329,339,339,339,339,339,339,339,339,339,339,120,277,51,339,339,339,161',
535
+ '208,339,339,339,279,327,328,124,339,339,339,339,339,339,339,339,339',
536
+ '339,339,339,339,339,185,329,51,272,339,339,339,339,340,340,124,340,32',
537
+ '340,340,340,340,31,31,35,31,6,6,340,36,185,311,337,272,87,340,340,340',
538
+ '340,340,340,340,340,340,394,340,340,340,340,340,340,340,340,340,340',
539
+ '6,311,337,340,340,340,395,396,340,340,340,317,170,170,394,340,340,340',
540
+ '340,340,340,340,340,340,340,340,340,340,340,88,317,395,396,340,340,340',
541
+ '340,341,341,89,341,90,341,341,341,341,0,0,0,188,188,91,341,211,211,212',
542
+ '212,213,213,341,341,341,341,341,341,341,341,341,93,341,341,341,341,341',
543
+ '341,341,341,341,341,214,214,94,341,341,341,215,215,341,341,341,216,216',
544
+ '222,222,341,341,341,341,341,341,341,341,341,341,341,341,341,341,365',
545
+ '365,95,365,341,341,341,341,34,114,34,116,34,118,34,365,34,223,223,224',
546
+ '224,34,365,365,365,365,365,365,365,365,365,121,365,365,365,365,365,365',
547
+ '365,365,365,365,267,267,122,365,365,365,269,269,365,365,365,34,274,274',
548
+ '128,365,365,365,365,365,365,365,365,365,365,365,365,365,365,384,384',
549
+ '129,384,365,365,365,365,356,356,366,366,130,34,131,384,367,367,381,381',
550
+ '387,387,384,384,384,384,384,384,384,384,384,132,384,384,384,384,384',
551
+ '384,384,384,384,384,390,390,133,384,384,384,392,392,384,384,384,401',
552
+ '401,416,416,384,384,384,384,384,384,384,384,384,384,384,384,384,384',
553
+ '418,418,419,419,384,384,384,384,397,397,134,397,135,397,397,397,397',
554
+ '136,137,138,139,140,141,397,142,143,146,147,149,151,397,397,397,397',
555
+ '397,397,397,397,397,154,397,397,397,397,397,397,397,397,397,397,155',
556
+ '162,163,397,397,397,164,190,397,397,397,206,221,226,231,397,397,397',
557
+ '397,397,397,397,397,397,397,397,397,397,397,424,424,242,424,397,397',
558
+ '397,397,243,244,245,246,247,249,250,424,253,256,258,259,260,261,424',
559
+ '424,424,424,424,424,424,424,424,262,424,424,424,424,424,424,424,424',
560
+ '424,424,264,282,286,424,424,424,288,289,424,424,424,293,307,308,309',
561
+ '424,424,424,424,424,424,424,424,424,424,424,424,424,424,324,325,326',
562
+ '334,424,424,424,424,49,338,342,49,49,49,49,343,344,346,49,49,49,364',
563
+ '49,49,49,368,49,373,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49',
564
+ '49,49,49,49,375,49,377,388,391,49,393,49,398,49,49,399,400,404,410,412',
565
+ '49,49,49,49,49,49,49,415,421,425,49,49,49,,,,,49,49,49,49,157,,,157',
566
+ '157,157,157,,,,157,157,157,,157,,157,,157,,157,157,157,157,157,157,157',
567
+ '157,157,157,157,157,157,157,157,157,157,157,157,157,,157,,,,157,,,,',
568
+ ',,,,,,157,157,157,157,157,157,157,,,,157,157,157,,,,,157,157,157,157',
569
+ '196,,,196,196,196,196,,,,196,196,196,,196,196,196,,196,,196,196,196',
570
+ '196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196',
571
+ ',196,,,,196,,196,,196,196,,,,,,196,196,196,196,196,196,196,,,,196,196',
572
+ '196,,,,,196,196,196,196,197,,,197,197,197,197,,,,197,197,197,,197,197',
573
+ '197,,197,,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197',
574
+ '197,197,197,197,197,,197,,,,197,,197,,197,197,,,,,,197,197,197,197,197',
575
+ '197,197,,,,197,197,197,,,,,197,197,197,197,198,,,198,198,198,198,,,',
576
+ '198,198,198,,198,198,198,,198,,198,198,198,198,198,198,198,198,198,198',
577
+ '198,198,198,198,198,198,198,198,198,198,,198,,,,198,,198,,,198,,,,,',
578
+ '198,198,198,198,198,198,198,,,,198,198,198,,,,,198,198,198,198,207,',
579
+ ',207,207,207,207,,,,207,207,207,,207,207,207,,207,,207,207,207,207,207',
580
+ '207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,,207,,,',
581
+ '207,,207,,207,207,,,,,,207,207,207,207,207,207,207,,,,207,207,207,,',
582
+ ',,207,207,207,207,254,,,254,254,254,254,,,,254,254,254,,254,254,254',
583
+ ',254,,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254',
584
+ '254,254,254,254,,254,,,,254,115,254,,115,254,115,,,,,254,254,254,254',
585
+ '254,254,254,,,,254,254,254,,,115,,254,254,254,254,30,30,30,30,,115,',
586
+ '30,30,30,,,,,,,,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30',
587
+ '30,30,,,,,,,,,144,,144,,,,,,30,30,30,30,30,30,30,,30,30,30,30,30,,,',
588
+ ',30,30,30,30,166,166,166,166,,,,166,166,166,,,,,,144,144,166,166,166',
589
+ '166,166,166,166,166,166,,166,166,166,166,166,166,166,166,166,166,144',
590
+ ',,,,,,,,,,,,,,,166,166,166,166,166,166,166,,166,166,166,166,166,199',
591
+ '199,199,199,166,166,166,166,,,,,,,,,,199,199,199,199,199,199,199,199',
592
+ '199,,199,199,199,199,199,199,199,199,199,199,201,,201,,,,,199,,,199',
593
+ ',,,,,199,199,199,199,199,199,199,203,,203,199,199,199,200,200,200,200',
594
+ '199,199,199,199,,,,,,,,201,201,200,200,200,200,200,200,200,200,200,',
595
+ '200,200,200,200,200,200,200,200,200,200,201,203,203,,,,,200,,,200,,',
596
+ ',,,200,200,200,200,200,200,200,203,,,200,200,200,233,233,233,233,200',
597
+ '200,200,200,,,,,,,,,,233,233,233,233,233,233,233,233,233,,233,233,233',
598
+ '233,233,233,233,233,233,233,204,,204,205,,205,237,,237,,,,,,,,233,233',
599
+ '233,233,233,233,233,,,,233,233,233,,,,,233,233,233,233,,,,,,,,204,204',
600
+ ',205,205,,237,237,278,,278,,278,,278,,,278,278,278,,,204,,,205,,,237',
601
+ ',285,,285,,285,,285,,278,285,285,285,,,,,,278,278,,,278,292,,292,,292',
602
+ ',292,,285,292,292,292,,,,278,,285,285,,,285,336,,336,,336,,336,,292',
603
+ '336,336,336,,,,285,,292,292,,,292,,,,,,,,,336,,,,,,,292,,336,336,,2',
604
+ '336,,,,,,,,,2,2,2,,2,,2,336,2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,25,,,,',
605
+ '2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25,25,25,25,25,25,25,25,25,25',
606
+ '25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26,,26,26,26,26,26,26,26,26,26',
607
+ '26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40,,40,,40,,40,,40,40,40,40,40',
608
+ '40,40,40,40,40,40,40,40,40,,,41,,,,,40,,,,40,41,41,41,,41,,41,,41,,41',
609
+ '41,41,41,41,41,41,41,41,41,41,41,41,41,,,43,,,,,41,,,,41,43,43,43,,43',
610
+ ',43,,43,,43,43,43,43,43,43,43,43,43,43,43,43,43,43,,,53,,,,,43,,,,43',
611
+ '53,53,53,,53,,53,,53,,53,53,53,53,53,53,53,53,53,53,53,53,53,53,,,92',
612
+ ',,,,53,,,,53,92,92,92,,92,,92,,92,,92,92,92,92,92,92,92,92,92,92,92',
613
+ '92,92,92,,,126,,,,,92,,,,92,126,126,126,,126,,126,,126,,126,126,126',
614
+ '126,126,126,126,126,126,126,126,126,126,126,,,158,,,,,126,,,,126,158',
615
+ '158,158,,158,,158,,158,,158,158,158,158,158,158,158,158,158,158,158',
616
+ '158,158,158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159,,159,159',
617
+ '159,159,159,159,159,159,159,159,159,159,159,159,,,160,,,,,159,,,,159',
618
+ '160,160,160,,160,,160,,160,,160,160,160,160,160,160,160,160,160,160',
619
+ '160,160,160,160,,,167,,,,,160,,,,160,167,167,167,,167,,167,,167,,167',
620
+ '167,167,167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167,,',
621
+ ',167,168,168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168',
622
+ '168,168,168,168,168,,,169,,,,,168,,,,168,169,169,169,,169,,169,,169',
623
+ ',169,169,169,169,169,169,169,169,169,169,169,169,169,169,,,171,,,,,169',
624
+ ',,,169,171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171',
625
+ '171,171,171,171,171,,,172,,,,,171,,,,171,172,172,172,,172,,172,,172',
626
+ ',172,172,172,172,172,172,172,172,172,172,172,172,172,172,,,173,,,,,172',
627
+ ',,,172,173,173,173,,173,,173,,173,,173,173,173,173,173,173,173,173,173',
628
+ '173,173,173,173,173,,,180,,,,,173,,,,173,180,180,180,,180,,180,,180',
629
+ ',180,180,180,180,180,180,180,180,180,180,180,180,180,180,,,181,,,,,180',
630
+ ',,,180,181,181,181,,181,,181,,181,,181,181,181,181,181,181,181,181,181',
631
+ '181,181,181,181,181,,,183,,,,,181,,,,181,183,183,183,,183,,183,,183',
632
+ ',183,183,183,183,183,183,183,183,183,183,183,183,183,183,,,202,,,,,183',
633
+ ',,,183,202,202,202,,202,,202,,202,,202,202,202,202,202,202,202,202,202',
634
+ '202,202,202,202,202,,,209,,,,,202,,,,202,209,209,209,,209,,209,,209',
635
+ ',209,209,209,209,209,209,209,209,209,209,209,209,209,209,,,227,,,,,209',
636
+ ',,,209,227,227,227,,227,,227,,227,,227,227,227,227,227,227,227,227,227',
637
+ '227,227,227,227,227,,,251,,,,,227,,,,227,251,251,251,,251,,251,,251',
638
+ ',251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,280,,,,,251',
639
+ ',,,251,280,280,280,,280,,280,,280,,280,280,280,280,280,280,280,280,280',
640
+ '280,280,280,280,280,,,320,,,,,280,,,,280,320,320,320,,320,,320,,320',
641
+ ',320,320,320,320,320,320,320,320,320,320,320,320,320,320,,,332,,,,,320',
642
+ ',,,320,332,332,332,,332,,332,,332,,332,332,332,332,332,332,332,332,332',
643
+ '332,332,332,332,332,,,333,,,,,332,,,,332,333,333,333,,333,,333,,333',
644
+ ',333,333,333,333,333,333,333,333,333,333,333,333,333,333,,,372,,,,,333',
645
+ ',,,333,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372',
646
+ '372,372,372,372,372,,,374,,,,,372,,,,372,374,374,374,,374,,374,,374',
647
+ ',374,374,374,374,374,374,374,374,374,374,374,374,374,374,,,376,,,,,374',
648
+ ',,,374,376,376,376,,376,,376,,376,,376,376,376,376,376,376,376,376,376',
649
+ '376,376,376,376,376,,,378,,,,,376,,,,376,378,378,378,,378,,378,,378',
650
+ ',378,378,378,378,378,378,378,378,378,378,378,378,378,378,,,379,,,,,378',
651
+ ',,,378,379,379,379,,379,,379,,379,,379,379,379,379,379,379,379,379,379',
652
+ '379,379,379,379,379,,,380,,,,,379,,,,379,380,380,380,,380,,380,,380',
653
+ ',380,380,380,380,380,380,380,380,380,380,380,380,380,380,,,386,,,,,380',
654
+ ',,,380,386,386,386,,386,,386,,386,,386,386,386,386,386,386,386,386,386',
655
+ '386,386,386,386,386,,,402,,,,,386,,,,386,402,402,402,,402,,402,,402',
656
+ ',402,402,402,402,402,402,402,402,402,402,402,402,402,402,,,405,,,,,402',
657
+ ',,,402,405,405,405,,405,,405,,405,,405,405,405,405,405,405,405,405,405',
658
+ '405,405,405,405,405,,,406,,,,,405,,,,405,406,406,406,,406,,406,,406',
659
+ ',406,406,406,406,406,406,406,406,406,406,406,406,406,406,294,,,294,',
660
+ '294,,406,294,,,406,,,,,,,,,,,,,,294,,294,294,294,294,294,,,,294,294' ]
661
+ racc_action_check = arr = ::Array.new(3055, nil)
649
662
  idx = 0
650
663
  clist.each do |str|
651
664
  str.split(',', -1).each do |i|
@@ -655,196 +668,200 @@ clist = [
655
668
  end
656
669
 
657
670
  racc_action_pointer = [
658
- 183, 6, 1452, nil, nil, 16, 124, 23, nil, nil,
671
+ 173, 6, 1612, nil, nil, 16, 124, 23, nil, nil,
672
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
673
+ nil, nil, nil, nil, 68, 1648, 1684, 72, -6, nil,
674
+ 1140, 165, 158, nil, 316, 93, 154, nil, nil, nil,
675
+ 1720, 1756, nil, 1792, -27, nil, 52, 52, -2, 604,
676
+ nil, 101, nil, 1828, nil, nil, nil, nil, nil, nil,
659
677
  nil, nil, nil, nil, nil, nil, nil, nil, 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,
664
678
  nil, nil, nil, nil, nil, nil, nil, nil, 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,
679
+ nil, nil, nil, nil, nil, nil, nil, 156, 183, 184,
680
+ 186, 196, 1864, 224, 237, 266, nil, nil, nil, nil,
669
681
  nil, nil, nil, nil, nil, nil, nil, nil, 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 ]
682
+ nil, nil, nil, nil, 304, 1081, 275, 2, 277, nil,
683
+ 71, 337, 304, nil, 114, nil, 1900, nil, 345, 379,
684
+ 372, 349, 366, 379, 416, 418, 423, 424, 425, 426,
685
+ 427, 428, 456, 431, 1189, nil, 432, 431, nil, 432,
686
+ nil, 433, nil, nil, 443, 454, nil, 681, 1936, 1972,
687
+ 2008, 77, 479, 452, 455, nil, 1214, 2044, 2080, 2116,
688
+ 165, 2152, 2188, 2224, nil, nil, nil, nil, nil, 3,
689
+ 2260, 2296, nil, 2332, nil, 129, nil, nil, 202, nil,
690
+ 457, nil, nil, nil, nil, nil, 758, 835, 912, 1280,
691
+ 1346, 1321, 2368, 1344, 1453, 1456, 488, 989, 78, 2404,
692
+ nil, 206, 208, 210, 232, 238, 243, 4, 9, 10,
693
+ 27, 456, 245, 278, 280, nil, 511, 2440, nil, nil,
694
+ nil, 468, nil, 1412, nil, nil, nil, 1459, nil, nil,
695
+ nil, nil, 512, 514, 487, 519, 520, 521, 38, 522,
696
+ 538, 2476, nil, 494, 1066, nil, 496, nil, 529, 489,
697
+ 470, 506, 514, nil, 551, nil, nil, 303, nil, 354,
698
+ nil, 52, 132, nil, 285, nil, nil, 77, 1506, 87,
699
+ 2512, -8, 553, nil, nil, 1528, 553, nil, 498, 576,
700
+ nil, nil, 1550, 536, 2983, nil, nil, nil, nil, nil,
701
+ nil, nil, nil, nil, nil, nil, nil, 539, 540, 528,
702
+ nil, 155, nil, nil, nil, nil, nil, 168, nil, nil,
703
+ 2548, nil, nil, nil, 568, 569, 570, 88, 89, 106,
704
+ -63, -2, 2584, 2620, 592, nil, 1572, 156, 552, 77,
705
+ 156, 235, 590, 595, 596, nil, 578, nil, nil, nil,
706
+ nil, nil, nil, nil, nil, nil, 336, nil, nil, nil,
707
+ nil, nil, nil, nil, 564, 306, 342, 348, 581, nil,
708
+ nil, nil, 2656, 609, 2692, 630, 2728, 632, 2764, 2800,
709
+ 2836, 365, nil, nil, 377, nil, 2872, 352, 607, 0,
710
+ 374, 608, 380, 610, 168, 185, 186, 456, 599, 602,
711
+ 628, 385, 2908, nil, 642, 2944, 2980, nil, nil, nil,
712
+ 604, nil, 619, nil, nil, 614, 387, nil, 403, 405,
713
+ nil, 625, nil, nil, 527, 615, nil, nil ]
700
714
 
701
715
  racc_action_default = [
702
- -246, -246, -242, -6, -16, -246, -4, -161, -164, -165,
716
+ -249, -249, -245, -6, -16, -249, -4, -161, -164, -165,
703
717
  -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 ]
718
+ -176, -177, -178, -179, -180, -245, -245, -249, -84, -188,
719
+ -249, -249, -246, -248, -17, -4, -151, 428, -1, -5,
720
+ -245, -245, -187, -245, -189, -182, -249, -249, -245, -245,
721
+ -186, -249, -208, -245, -108, -109, -110, -111, -112, -113,
722
+ -114, -115, -116, -117, -118, -119, -120, -121, -122, -123,
723
+ -124, -125, -126, -127, -128, -129, -130, -131, -132, -133,
724
+ -134, -135, -136, -137, -138, -139, -140, -249, -192, -249,
725
+ -249, -249, -245, -249, -249, -249, -203, -204, -205, -206,
726
+ -239, -240, -241, -242, -247, -2, -7, -8, -9, -10,
727
+ -11, -12, -13, -14, -17, -249, -249, -249, -249, -3,
728
+ -84, -249, -162, -163, -249, -183, -245, -184, -249, -249,
729
+ -249, -174, -164, -168, -175, -176, -165, -166, -169, -170,
730
+ -173, -167, -119, -171, -235, -201, -249, -212, -213, -215,
731
+ -216, -218, -219, -222, -225, -227, -228, -245, -245, -245,
732
+ -245, -249, -249, -249, -210, -191, -249, -245, -245, -245,
733
+ -197, -245, -245, -245, -18, -15, -15, -15, -15, -245,
734
+ -245, -245, -244, -245, -83, -249, -153, -181, -190, -185,
735
+ -85, -229, -236, -237, -238, -202, -245, -245, -245, -223,
736
+ -223, -235, -245, -235, -235, -235, -249, -245, -249, -245,
737
+ -193, -194, -195, -196, -198, -199, -200, -245, -245, -245,
738
+ -245, -249, -158, -159, -160, -152, -249, -245, -211, -219,
739
+ -214, -221, -217, -249, -224, -226, -230, -235, -231, -232,
740
+ -234, -86, -249, -249, -207, -151, -141, -141, -245, -141,
741
+ -249, -245, -154, -209, -245, -233, -249, -87, -249, -23,
742
+ -149, -28, -34, -30, -33, -61, -243, -157, -220, -249,
743
+ -34, -245, -249, -143, -146, -150, -34, -245, -17, -245,
744
+ -245, -17, -249, -20, -21, -17, -24, -142, -149, -249,
745
+ -147, -148, -17, -29, -75, -27, -35, -36, -37, -38,
746
+ -39, -40, -41, -42, -43, -44, -45, -249, -249, -249,
747
+ -31, -249, -60, -62, -63, -64, -65, -75, -34, -22,
748
+ -245, -144, -145, -26, -46, -46, -46, -245, -245, -245,
749
+ -72, -249, -245, -245, -249, -32, -17, -249, -249, -249,
750
+ -249, -249, -66, -68, -70, -73, -249, -76, -90, -91,
751
+ -92, -93, -94, -95, -96, -97, -98, -101, -102, -103,
752
+ -104, -105, -106, -107, -133, -249, -57, -58, -249, -19,
753
+ -25, -47, -245, -54, -245, -54, -245, -54, -245, -245,
754
+ -245, -77, -99, -100, -249, -155, -245, -48, -249, -249,
755
+ -50, -249, -52, -249, -249, -249, -249, -249, -249, -249,
756
+ -249, -59, -245, -55, -249, -245, -245, -67, -69, -71,
757
+ -16, -88, -249, -78, -79, -249, -49, -56, -51, -53,
758
+ -74, -80, -81, -89, -249, -16, -156, -82 ]
744
759
 
745
760
  racc_goto_table = [
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,
765
- nil, nil, nil, nil, nil, nil, nil, 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,
768
- nil, nil, nil, nil, nil, nil, 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,
761
+ 6, 93, 117, 46, 92, 128, 120, 115, 164, 87,
762
+ 365, 191, 202, 50, 130, 229, 129, 232, 373, 375,
763
+ 377, 124, 231, 231, 47, 38, 278, 206, 262, 1,
764
+ 273, 420, 34, 388, 285, 391, 35, 393, 122, 123,
765
+ 292, 221, 259, 261, 385, 265, 427, 144, 217, 218,
766
+ 219, 220, 106, 105, 119, 234, 235, 293, 321, 339,
767
+ 340, 341, 282, 400, 270, 276, 310, 314, 236, 315,
768
+ 238, 239, 240, 268, 243, 316, 412, 249, 281, 231,
769
+ 313, 346, 336, 397, 410, 163, 272, 174, 202, 289,
770
+ 170, 185, 230, 100, nil, nil, nil, nil, nil, nil,
771
+ nil, nil, nil, 426, 255, 184, nil, nil, nil, nil,
772
+ 264, nil, nil, nil, nil, nil, nil, nil, nil, nil,
773
+ nil, nil, nil, nil, 188, nil, nil, nil, nil, nil,
774
+ nil, nil, nil, nil, nil, nil, nil, 93, nil, 264,
775
+ 92, 264, nil, nil, nil, 210, nil, nil, nil, nil,
776
+ nil, nil, nil, nil, nil, 201, 203, 204, 205, nil,
777
+ nil, 228, nil, nil, 244, 211, 212, 213, nil, 214,
778
+ 215, 216, 242, nil, 245, 246, 247, nil, 222, 223,
779
+ nil, 224, 253, nil, nil, 129, 129, 129, 250, 342,
780
+ 343, 344, nil, nil, 144, 144, 144, nil, nil, nil,
781
+ 237, nil, nil, nil, nil, 144, nil, nil, nil, nil,
782
+ nil, nil, nil, nil, nil, 258, nil, nil, nil, nil,
783
+ nil, nil, nil, nil, nil, nil, nil, nil, 286, nil,
784
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 129,
785
+ nil, nil, nil, nil, nil, nil, 117, nil, nil, 267,
786
+ nil, nil, 144, 117, 317, nil, nil, nil, 311, nil,
787
+ 117, nil, nil, nil, nil, nil, nil, nil, nil, nil,
772
788
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
773
789
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
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,
790
+ nil, nil, nil, nil, nil, nil, nil, nil, 337, nil,
791
+ nil, nil, 363, nil, 117, nil, nil, nil, nil, nil,
792
+ 363, 363, 363, 372, 374, 376, nil, nil, nil, nil,
777
793
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
778
- nil, 357, 358, nil, nil, nil, nil, nil, nil, nil,
794
+ 366, 367, nil, nil, nil, nil, 363, nil, nil, nil,
779
795
  nil, nil, nil, nil, nil, nil, nil, nil, 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,
784
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
785
- nil, 407, nil, nil, 409, 410 ]
796
+ nil, nil, nil, nil, nil, 363, 394, 395, 396, nil,
797
+ nil, nil, nil, nil, nil, nil, nil, nil, 363, nil,
798
+ 387, 411, 390, nil, 392, nil, nil, nil, nil, nil,
799
+ nil, nil, nil, nil, 401, nil, nil, nil, nil, nil,
800
+ nil, nil, nil, nil, nil, 363, nil, nil, nil, nil,
801
+ 416, nil, nil, 418, 419 ]
786
802
 
787
803
  racc_goto_check = [
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,
807
- nil, nil, nil, nil, nil, nil, nil, 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,
810
- nil, nil, nil, nil, nil, nil, 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,
804
+ 2, 54, 60, 23, 37, 17, 18, 16, 61, 63,
805
+ 38, 76, 65, 48, 50, 71, 60, 71, 38, 38,
806
+ 38, 23, 66, 66, 2, 3, 20, 52, 25, 1,
807
+ 56, 47, 4, 39, 20, 39, 5, 39, 2, 2,
808
+ 20, 27, 21, 21, 38, 21, 47, 2, 14, 14,
809
+ 14, 14, 6, 3, 3, 72, 72, 25, 56, 36,
810
+ 36, 36, 19, 38, 22, 24, 26, 29, 76, 30,
811
+ 76, 76, 76, 71, 52, 35, 38, 40, 41, 66,
812
+ 42, 43, 20, 45, 46, 51, 55, 16, 65, 58,
813
+ 2, 59, 67, 77, nil, nil, nil, nil, nil, nil,
814
+ nil, nil, nil, 38, 76, 48, nil, nil, nil, nil,
815
+ 27, nil, nil, nil, nil, nil, nil, nil, nil, nil,
816
+ nil, nil, nil, nil, 2, nil, nil, nil, nil, nil,
817
+ nil, nil, nil, nil, nil, nil, nil, 54, nil, 27,
818
+ 37, 27, nil, nil, nil, 63, nil, nil, nil, nil,
819
+ nil, nil, nil, nil, nil, 2, 2, 2, 2, nil,
820
+ nil, 50, nil, nil, 61, 2, 2, 2, nil, 2,
821
+ 2, 2, 50, nil, 17, 17, 17, nil, 2, 2,
822
+ nil, 2, 61, nil, nil, 60, 60, 60, 60, 27,
823
+ 27, 27, nil, nil, 2, 2, 2, nil, nil, nil,
824
+ 2, nil, nil, nil, nil, 2, nil, nil, nil, nil,
825
+ nil, nil, nil, nil, nil, 18, nil, nil, nil, nil,
826
+ nil, nil, nil, nil, nil, nil, nil, nil, 17, nil,
827
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 60,
828
+ nil, nil, nil, nil, nil, nil, 60, nil, nil, 2,
829
+ nil, nil, 2, 60, 16, nil, nil, nil, 23, nil,
830
+ 60, nil, nil, nil, nil, nil, nil, nil, nil, nil,
814
831
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
815
832
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
816
833
  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,
819
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
820
- nil, 2, 2, nil, nil, nil, nil, nil, nil, nil,
834
+ nil, nil, 54, nil, 60, nil, nil, nil, nil, nil,
835
+ 54, 54, 54, 37, 37, 37, nil, nil, nil, nil,
821
836
  nil, nil, nil, nil, nil, nil, nil, nil, 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,
837
+ 2, 2, nil, nil, nil, nil, 54, nil, nil, nil,
826
838
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
827
- nil, 2, nil, nil, 2, 2 ]
839
+ nil, nil, nil, nil, nil, 54, 23, 23, 23, nil,
840
+ nil, nil, nil, nil, nil, nil, nil, nil, 54, nil,
841
+ 2, 37, 2, nil, 2, nil, nil, nil, nil, nil,
842
+ nil, nil, nil, nil, 2, nil, nil, nil, nil, nil,
843
+ nil, nil, nil, nil, nil, 54, nil, nil, nil, nil,
844
+ 2, nil, nil, 2, 2 ]
828
845
 
829
846
  racc_goto_pointer = [
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 ]
847
+ nil, 29, -2, 19, 29, 32, 18, nil, nil, nil,
848
+ nil, nil, nil, nil, -127, nil, -27, -43, -30, -207,
849
+ -236, -204, -195, -22, -196, -220, -213, -138, nil, -214,
850
+ -212, nil, nil, nil, nil, -206, -265, -26, -321, -340,
851
+ -143, -187, -201, -249, nil, -298, -313, -379, -15, nil,
852
+ -35, 34, -134, nil, -29, -174, -230, nil, -185, -30,
853
+ -32, -45, nil, -21, nil, -145, -175, -105, nil, nil,
854
+ nil, -181, -144, nil, nil, nil, -133, 62 ]
838
855
 
839
856
  racc_goto_default = [
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 ]
857
+ nil, nil, 44, nil, nil, 421, 306, 107, 108, 109,
858
+ 110, 111, 112, 113, nil, 36, 294, 116, nil, nil,
859
+ nil, nil, nil, nil, nil, nil, 263, 24, 296, 297,
860
+ 298, 299, 300, 301, 302, 305, nil, 145, nil, nil,
861
+ nil, nil, nil, nil, 330, nil, nil, nil, nil, 51,
862
+ nil, nil, 52, 356, 146, nil, nil, 274, nil, nil,
863
+ 31, 7, 29, nil, 88, 159, 147, 148, 149, 150,
864
+ 151, 152, 153, 154, 155, 156, nil, nil ]
848
865
 
849
866
  racc_reduce_table = [
850
867
  0, 0, :racc_error,
@@ -1045,58 +1062,61 @@ racc_reduce_table = [
1045
1062
  3, 145, :_reduce_195,
1046
1063
  3, 145, :_reduce_196,
1047
1064
  2, 145, :_reduce_197,
1065
+ 3, 145, :_reduce_198,
1066
+ 3, 145, :_reduce_199,
1067
+ 3, 145, :_reduce_200,
1048
1068
  1, 146, :_reduce_none,
1049
- 2, 146, :_reduce_199,
1069
+ 2, 146, :_reduce_202,
1050
1070
  1, 118, :_reduce_none,
1051
1071
  1, 118, :_reduce_none,
1052
1072
  1, 118, :_reduce_none,
1053
1073
  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,
1074
+ 4, 129, :_reduce_207,
1075
+ 1, 129, :_reduce_208,
1076
+ 5, 133, :_reduce_209,
1077
+ 2, 133, :_reduce_210,
1078
+ 3, 131, :_reduce_211,
1079
+ 1, 131, :_reduce_212,
1060
1080
  1, 131, :_reduce_none,
1061
- 3, 148, :_reduce_211,
1062
- 1, 148, :_reduce_212,
1081
+ 3, 148, :_reduce_214,
1082
+ 1, 148, :_reduce_215,
1063
1083
  1, 148, :_reduce_none,
1064
- 3, 150, :_reduce_214,
1065
- 1, 150, :_reduce_215,
1084
+ 3, 150, :_reduce_217,
1085
+ 1, 150, :_reduce_218,
1066
1086
  1, 150, :_reduce_none,
1067
- 3, 152, :_reduce_217,
1068
- 1, 152, :_reduce_218,
1087
+ 3, 152, :_reduce_220,
1088
+ 1, 152, :_reduce_221,
1069
1089
  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,
1090
+ 0, 153, :_reduce_223,
1091
+ 3, 153, :_reduce_224,
1075
1092
  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,
1093
+ 3, 153, :_reduce_226,
1094
+ 1, 153, :_reduce_227,
1095
+ 1, 153, :_reduce_228,
1096
+ 2, 147, :_reduce_229,
1097
+ 3, 149, :_reduce_230,
1098
+ 3, 151, :_reduce_231,
1099
+ 3, 154, :_reduce_232,
1100
+ 4, 155, :_reduce_233,
1101
+ 3, 156, :_reduce_234,
1082
1102
  0, 157, :_reduce_none,
1083
1103
  1, 157, :_reduce_none,
1084
1104
  1, 157, :_reduce_none,
1085
1105
  1, 157, :_reduce_none,
1086
- 2, 108, :_reduce_236,
1106
+ 2, 108, :_reduce_239,
1087
1107
  1, 158, :_reduce_none,
1088
1108
  1, 158, :_reduce_none,
1089
1109
  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 ]
1110
+ 2, 121, :_reduce_243,
1111
+ 2, 98, :_reduce_244,
1112
+ 0, 141, :_reduce_245,
1113
+ 1, 141, :_reduce_246,
1114
+ 2, 141, :_reduce_247,
1115
+ 1, 141, :_reduce_248 ]
1096
1116
 
1097
- racc_reduce_n = 246
1117
+ racc_reduce_n = 249
1098
1118
 
1099
- racc_shift_n = 419
1119
+ racc_shift_n = 428
1100
1120
 
1101
1121
  racc_token_table = {
1102
1122
  false => 0,
@@ -1506,22 +1526,24 @@ module_eval(<<'.,.,', 'parser.y', 98)
1506
1526
  module_eval(<<'.,.,', 'parser.y', 100)
1507
1527
  def _reduce_24(val, _values, result)
1508
1528
  result = Declarations::Class::Super.new(name: val[1].value,
1509
- args: [])
1529
+ args: [],
1530
+ location: val[1].location)
1510
1531
 
1511
1532
  result
1512
1533
  end
1513
1534
  .,.,
1514
1535
 
1515
- module_eval(<<'.,.,', 'parser.y', 104)
1536
+ module_eval(<<'.,.,', 'parser.y', 105)
1516
1537
  def _reduce_25(val, _values, result)
1517
1538
  result = Declarations::Class::Super.new(name: val[1].value,
1518
- args: val[3])
1539
+ args: val[3],
1540
+ location: val[1].location + val[4].location)
1519
1541
 
1520
1542
  result
1521
1543
  end
1522
1544
  .,.,
1523
1545
 
1524
- module_eval(<<'.,.,', 'parser.y', 110)
1546
+ module_eval(<<'.,.,', 'parser.y', 112)
1525
1547
  def _reduce_26(val, _values, result)
1526
1548
  reset_variable_scope
1527
1549
 
@@ -1540,7 +1562,7 @@ module_eval(<<'.,.,', 'parser.y', 110)
1540
1562
  end
1541
1563
  .,.,
1542
1564
 
1543
- module_eval(<<'.,.,', 'parser.y', 124)
1565
+ module_eval(<<'.,.,', 'parser.y', 126)
1544
1566
  def _reduce_27(val, _values, result)
1545
1567
  reset_variable_scope
1546
1568
 
@@ -1559,14 +1581,14 @@ module_eval(<<'.,.,', 'parser.y', 124)
1559
1581
  end
1560
1582
  .,.,
1561
1583
 
1562
- module_eval(<<'.,.,', 'parser.y', 139)
1584
+ module_eval(<<'.,.,', 'parser.y', 141)
1563
1585
  def _reduce_28(val, _values, result)
1564
1586
  result = []
1565
1587
  result
1566
1588
  end
1567
1589
  .,.,
1568
1590
 
1569
- module_eval(<<'.,.,', 'parser.y', 141)
1591
+ module_eval(<<'.,.,', 'parser.y', 143)
1570
1592
  def _reduce_29(val, _values, result)
1571
1593
  result = val[1]
1572
1594
 
@@ -1574,7 +1596,7 @@ module_eval(<<'.,.,', 'parser.y', 141)
1574
1596
  end
1575
1597
  .,.,
1576
1598
 
1577
- module_eval(<<'.,.,', 'parser.y', 146)
1599
+ module_eval(<<'.,.,', 'parser.y', 148)
1578
1600
  def _reduce_30(val, _values, result)
1579
1601
  result = [val[0]]
1580
1602
 
@@ -1582,7 +1604,7 @@ module_eval(<<'.,.,', 'parser.y', 146)
1582
1604
  end
1583
1605
  .,.,
1584
1606
 
1585
- module_eval(<<'.,.,', 'parser.y', 149)
1607
+ module_eval(<<'.,.,', 'parser.y', 151)
1586
1608
  def _reduce_31(val, _values, result)
1587
1609
  result = val[0].push(val[2])
1588
1610
 
@@ -1590,7 +1612,7 @@ module_eval(<<'.,.,', 'parser.y', 149)
1590
1612
  end
1591
1613
  .,.,
1592
1614
 
1593
- module_eval(<<'.,.,', 'parser.y', 154)
1615
+ module_eval(<<'.,.,', 'parser.y', 156)
1594
1616
  def _reduce_32(val, _values, result)
1595
1617
  name = val[0].value
1596
1618
  args = val[2]
@@ -1609,7 +1631,7 @@ module_eval(<<'.,.,', 'parser.y', 154)
1609
1631
  end
1610
1632
  .,.,
1611
1633
 
1612
- module_eval(<<'.,.,', 'parser.y', 168)
1634
+ module_eval(<<'.,.,', 'parser.y', 170)
1613
1635
  def _reduce_33(val, _values, result)
1614
1636
  name = val[0].value
1615
1637
  args = []
@@ -1628,14 +1650,14 @@ module_eval(<<'.,.,', 'parser.y', 168)
1628
1650
  end
1629
1651
  .,.,
1630
1652
 
1631
- module_eval(<<'.,.,', 'parser.y', 183)
1653
+ module_eval(<<'.,.,', 'parser.y', 185)
1632
1654
  def _reduce_34(val, _values, result)
1633
1655
  result = []
1634
1656
  result
1635
1657
  end
1636
1658
  .,.,
1637
1659
 
1638
- module_eval(<<'.,.,', 'parser.y', 185)
1660
+ module_eval(<<'.,.,', 'parser.y', 187)
1639
1661
  def _reduce_35(val, _values, result)
1640
1662
  result = val[0].push(val[1])
1641
1663
 
@@ -1655,7 +1677,7 @@ module_eval(<<'.,.,', 'parser.y', 185)
1655
1677
 
1656
1678
  # reduce 41 omitted
1657
1679
 
1658
- module_eval(<<'.,.,', 'parser.y', 196)
1680
+ module_eval(<<'.,.,', 'parser.y', 198)
1659
1681
  def _reduce_42(val, _values, result)
1660
1682
  result = Members::Public.new(location: val[0].location)
1661
1683
 
@@ -1663,7 +1685,7 @@ module_eval(<<'.,.,', 'parser.y', 196)
1663
1685
  end
1664
1686
  .,.,
1665
1687
 
1666
- module_eval(<<'.,.,', 'parser.y', 199)
1688
+ module_eval(<<'.,.,', 'parser.y', 201)
1667
1689
  def _reduce_43(val, _values, result)
1668
1690
  result = Members::Private.new(location: val[0].location)
1669
1691
 
@@ -1675,21 +1697,21 @@ module_eval(<<'.,.,', 'parser.y', 199)
1675
1697
 
1676
1698
  # reduce 45 omitted
1677
1699
 
1678
- module_eval(<<'.,.,', 'parser.y', 205)
1700
+ module_eval(<<'.,.,', 'parser.y', 207)
1679
1701
  def _reduce_46(val, _values, result)
1680
1702
  result = :instance
1681
1703
  result
1682
1704
  end
1683
1705
  .,.,
1684
1706
 
1685
- module_eval(<<'.,.,', 'parser.y', 206)
1707
+ module_eval(<<'.,.,', 'parser.y', 208)
1686
1708
  def _reduce_47(val, _values, result)
1687
1709
  result = :singleton
1688
1710
  result
1689
1711
  end
1690
1712
  .,.,
1691
1713
 
1692
- module_eval(<<'.,.,', 'parser.y', 210)
1714
+ module_eval(<<'.,.,', 'parser.y', 212)
1693
1715
  def _reduce_48(val, _values, result)
1694
1716
  location = val[1].location + val[4].location
1695
1717
  result = Members::AttrReader.new(name: val[3].value,
@@ -1704,7 +1726,7 @@ module_eval(<<'.,.,', 'parser.y', 210)
1704
1726
  end
1705
1727
  .,.,
1706
1728
 
1707
- module_eval(<<'.,.,', 'parser.y', 220)
1729
+ module_eval(<<'.,.,', 'parser.y', 222)
1708
1730
  def _reduce_49(val, _values, result)
1709
1731
  location = val[1].location + val[6].location
1710
1732
  result = Members::AttrReader.new(name: val[3].value.to_sym,
@@ -1719,7 +1741,7 @@ module_eval(<<'.,.,', 'parser.y', 220)
1719
1741
  end
1720
1742
  .,.,
1721
1743
 
1722
- module_eval(<<'.,.,', 'parser.y', 230)
1744
+ module_eval(<<'.,.,', 'parser.y', 232)
1723
1745
  def _reduce_50(val, _values, result)
1724
1746
  location = val[1].location + val[4].location
1725
1747
  result = Members::AttrWriter.new(name: val[3].value,
@@ -1734,7 +1756,7 @@ module_eval(<<'.,.,', 'parser.y', 230)
1734
1756
  end
1735
1757
  .,.,
1736
1758
 
1737
- module_eval(<<'.,.,', 'parser.y', 240)
1759
+ module_eval(<<'.,.,', 'parser.y', 242)
1738
1760
  def _reduce_51(val, _values, result)
1739
1761
  location = val[1].location + val[6].location
1740
1762
  result = Members::AttrWriter.new(name: val[3].value.to_sym,
@@ -1749,7 +1771,7 @@ module_eval(<<'.,.,', 'parser.y', 240)
1749
1771
  end
1750
1772
  .,.,
1751
1773
 
1752
- module_eval(<<'.,.,', 'parser.y', 250)
1774
+ module_eval(<<'.,.,', 'parser.y', 252)
1753
1775
  def _reduce_52(val, _values, result)
1754
1776
  location = val[1].location + val[4].location
1755
1777
  result = Members::AttrAccessor.new(name: val[3].value,
@@ -1764,7 +1786,7 @@ module_eval(<<'.,.,', 'parser.y', 250)
1764
1786
  end
1765
1787
  .,.,
1766
1788
 
1767
- module_eval(<<'.,.,', 'parser.y', 260)
1789
+ module_eval(<<'.,.,', 'parser.y', 262)
1768
1790
  def _reduce_53(val, _values, result)
1769
1791
  location = val[1].location + val[6].location
1770
1792
  result = Members::AttrAccessor.new(name: val[3].value.to_sym,
@@ -1779,28 +1801,28 @@ module_eval(<<'.,.,', 'parser.y', 260)
1779
1801
  end
1780
1802
  .,.,
1781
1803
 
1782
- module_eval(<<'.,.,', 'parser.y', 271)
1804
+ module_eval(<<'.,.,', 'parser.y', 273)
1783
1805
  def _reduce_54(val, _values, result)
1784
1806
  result = nil
1785
1807
  result
1786
1808
  end
1787
1809
  .,.,
1788
1810
 
1789
- module_eval(<<'.,.,', 'parser.y', 272)
1811
+ module_eval(<<'.,.,', 'parser.y', 274)
1790
1812
  def _reduce_55(val, _values, result)
1791
1813
  result = false
1792
1814
  result
1793
1815
  end
1794
1816
  .,.,
1795
1817
 
1796
- module_eval(<<'.,.,', 'parser.y', 273)
1818
+ module_eval(<<'.,.,', 'parser.y', 275)
1797
1819
  def _reduce_56(val, _values, result)
1798
1820
  result = val[1].value
1799
1821
  result
1800
1822
  end
1801
1823
  .,.,
1802
1824
 
1803
- module_eval(<<'.,.,', 'parser.y', 277)
1825
+ module_eval(<<'.,.,', 'parser.y', 279)
1804
1826
  def _reduce_57(val, _values, result)
1805
1827
  location = val[0].location + val[2].location
1806
1828
  result = Members::InstanceVariable.new(
@@ -1814,7 +1836,7 @@ module_eval(<<'.,.,', 'parser.y', 277)
1814
1836
  end
1815
1837
  .,.,
1816
1838
 
1817
- module_eval(<<'.,.,', 'parser.y', 286)
1839
+ module_eval(<<'.,.,', 'parser.y', 288)
1818
1840
  def _reduce_58(val, _values, result)
1819
1841
  type = val[2]
1820
1842
 
@@ -1838,7 +1860,7 @@ module_eval(<<'.,.,', 'parser.y', 286)
1838
1860
  end
1839
1861
  .,.,
1840
1862
 
1841
- module_eval(<<'.,.,', 'parser.y', 305)
1863
+ module_eval(<<'.,.,', 'parser.y', 307)
1842
1864
  def _reduce_59(val, _values, result)
1843
1865
  type = val[4]
1844
1866
 
@@ -1862,7 +1884,7 @@ module_eval(<<'.,.,', 'parser.y', 305)
1862
1884
  end
1863
1885
  .,.,
1864
1886
 
1865
- module_eval(<<'.,.,', 'parser.y', 326)
1887
+ module_eval(<<'.,.,', 'parser.y', 328)
1866
1888
  def _reduce_60(val, _values, result)
1867
1889
  reset_variable_scope
1868
1890
 
@@ -1880,14 +1902,14 @@ module_eval(<<'.,.,', 'parser.y', 326)
1880
1902
  end
1881
1903
  .,.,
1882
1904
 
1883
- module_eval(<<'.,.,', 'parser.y', 340)
1905
+ module_eval(<<'.,.,', 'parser.y', 342)
1884
1906
  def _reduce_61(val, _values, result)
1885
1907
  result = []
1886
1908
  result
1887
1909
  end
1888
1910
  .,.,
1889
1911
 
1890
- module_eval(<<'.,.,', 'parser.y', 342)
1912
+ module_eval(<<'.,.,', 'parser.y', 344)
1891
1913
  def _reduce_62(val, _values, result)
1892
1914
  result = val[0].push(val[1])
1893
1915
 
@@ -1895,7 +1917,7 @@ module_eval(<<'.,.,', 'parser.y', 342)
1895
1917
  end
1896
1918
  .,.,
1897
1919
 
1898
- module_eval(<<'.,.,', 'parser.y', 347)
1920
+ module_eval(<<'.,.,', 'parser.y', 349)
1899
1921
  def _reduce_63(val, _values, result)
1900
1922
  unless val[0].kind == :instance
1901
1923
  raise SemanticsError.new("Interface cannot have singleton method", subject: val[0], location: val[0].location)
@@ -1911,7 +1933,7 @@ module_eval(<<'.,.,', 'parser.y', 347)
1911
1933
  end
1912
1934
  .,.,
1913
1935
 
1914
- module_eval(<<'.,.,', 'parser.y', 358)
1936
+ module_eval(<<'.,.,', 'parser.y', 360)
1915
1937
  def _reduce_64(val, _values, result)
1916
1938
  unless val[0].name.interface?
1917
1939
  raise SemanticsError.new("Interface should include an interface", subject: val[0], location: val[0].location)
@@ -1925,7 +1947,7 @@ module_eval(<<'.,.,', 'parser.y', 358)
1925
1947
 
1926
1948
  # reduce 65 omitted
1927
1949
 
1928
- module_eval(<<'.,.,', 'parser.y', 368)
1950
+ module_eval(<<'.,.,', 'parser.y', 370)
1929
1951
  def _reduce_66(val, _values, result)
1930
1952
  if val[2].value.alias?
1931
1953
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
@@ -1941,7 +1963,7 @@ module_eval(<<'.,.,', 'parser.y', 368)
1941
1963
  end
1942
1964
  .,.,
1943
1965
 
1944
- module_eval(<<'.,.,', 'parser.y', 379)
1966
+ module_eval(<<'.,.,', 'parser.y', 381)
1945
1967
  def _reduce_67(val, _values, result)
1946
1968
  if val[2].value.alias?
1947
1969
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
@@ -1957,7 +1979,7 @@ module_eval(<<'.,.,', 'parser.y', 379)
1957
1979
  end
1958
1980
  .,.,
1959
1981
 
1960
- module_eval(<<'.,.,', 'parser.y', 392)
1982
+ module_eval(<<'.,.,', 'parser.y', 394)
1961
1983
  def _reduce_68(val, _values, result)
1962
1984
  if val[2].value.alias?
1963
1985
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
@@ -1973,7 +1995,7 @@ module_eval(<<'.,.,', 'parser.y', 392)
1973
1995
  end
1974
1996
  .,.,
1975
1997
 
1976
- module_eval(<<'.,.,', 'parser.y', 403)
1998
+ module_eval(<<'.,.,', 'parser.y', 405)
1977
1999
  def _reduce_69(val, _values, result)
1978
2000
  if val[2].value.alias?
1979
2001
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
@@ -1989,7 +2011,7 @@ module_eval(<<'.,.,', 'parser.y', 403)
1989
2011
  end
1990
2012
  .,.,
1991
2013
 
1992
- module_eval(<<'.,.,', 'parser.y', 416)
2014
+ module_eval(<<'.,.,', 'parser.y', 418)
1993
2015
  def _reduce_70(val, _values, result)
1994
2016
  unless val[2].value.class?
1995
2017
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
@@ -2005,7 +2027,7 @@ module_eval(<<'.,.,', 'parser.y', 416)
2005
2027
  end
2006
2028
  .,.,
2007
2029
 
2008
- module_eval(<<'.,.,', 'parser.y', 427)
2030
+ module_eval(<<'.,.,', 'parser.y', 429)
2009
2031
  def _reduce_71(val, _values, result)
2010
2032
  unless val[2].value.class?
2011
2033
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
@@ -2021,14 +2043,14 @@ module_eval(<<'.,.,', 'parser.y', 427)
2021
2043
  end
2022
2044
  .,.,
2023
2045
 
2024
- module_eval(<<'.,.,', 'parser.y', 439)
2046
+ module_eval(<<'.,.,', 'parser.y', 441)
2025
2047
  def _reduce_72(val, _values, result)
2026
2048
  result = nil
2027
2049
  result
2028
2050
  end
2029
2051
  .,.,
2030
2052
 
2031
- module_eval(<<'.,.,', 'parser.y', 441)
2053
+ module_eval(<<'.,.,', 'parser.y', 443)
2032
2054
  def _reduce_73(val, _values, result)
2033
2055
  RBS.logger.warn "`overload def` syntax is deprecated. Use `...` syntax instead."
2034
2056
  result = val[0]
@@ -2037,7 +2059,7 @@ module_eval(<<'.,.,', 'parser.y', 441)
2037
2059
  end
2038
2060
  .,.,
2039
2061
 
2040
- module_eval(<<'.,.,', 'parser.y', 447)
2062
+ module_eval(<<'.,.,', 'parser.y', 449)
2041
2063
  def _reduce_74(val, _values, result)
2042
2064
  location = val[3].location + val[6].last.location
2043
2065
 
@@ -2065,7 +2087,7 @@ module_eval(<<'.,.,', 'parser.y', 447)
2065
2087
 
2066
2088
  # reduce 75 omitted
2067
2089
 
2068
- module_eval(<<'.,.,', 'parser.y', 470)
2090
+ module_eval(<<'.,.,', 'parser.y', 472)
2069
2091
  def _reduce_76(val, _values, result)
2070
2092
  RBS.logger.warn "`incompatible` method attribute is deprecated and ignored."
2071
2093
 
@@ -2073,42 +2095,42 @@ module_eval(<<'.,.,', 'parser.y', 470)
2073
2095
  end
2074
2096
  .,.,
2075
2097
 
2076
- module_eval(<<'.,.,', 'parser.y', 474)
2098
+ module_eval(<<'.,.,', 'parser.y', 476)
2077
2099
  def _reduce_77(val, _values, result)
2078
2100
  result = :instance
2079
2101
  result
2080
2102
  end
2081
2103
  .,.,
2082
2104
 
2083
- module_eval(<<'.,.,', 'parser.y', 475)
2105
+ module_eval(<<'.,.,', 'parser.y', 477)
2084
2106
  def _reduce_78(val, _values, result)
2085
2107
  result = :singleton
2086
2108
  result
2087
2109
  end
2088
2110
  .,.,
2089
2111
 
2090
- module_eval(<<'.,.,', 'parser.y', 476)
2112
+ module_eval(<<'.,.,', 'parser.y', 478)
2091
2113
  def _reduce_79(val, _values, result)
2092
2114
  result = :singleton_instance
2093
2115
  result
2094
2116
  end
2095
2117
  .,.,
2096
2118
 
2097
- module_eval(<<'.,.,', 'parser.y', 479)
2119
+ module_eval(<<'.,.,', 'parser.y', 481)
2098
2120
  def _reduce_80(val, _values, result)
2099
2121
  result = [val[0]]
2100
2122
  result
2101
2123
  end
2102
2124
  .,.,
2103
2125
 
2104
- module_eval(<<'.,.,', 'parser.y', 480)
2126
+ module_eval(<<'.,.,', 'parser.y', 482)
2105
2127
  def _reduce_81(val, _values, result)
2106
2128
  result = [LocatedValue.new(value: :dot3, location: val[0].location)]
2107
2129
  result
2108
2130
  end
2109
2131
  .,.,
2110
2132
 
2111
- module_eval(<<'.,.,', 'parser.y', 482)
2133
+ module_eval(<<'.,.,', 'parser.y', 484)
2112
2134
  def _reduce_82(val, _values, result)
2113
2135
  result = val[2].unshift(val[0])
2114
2136
 
@@ -2116,7 +2138,7 @@ module_eval(<<'.,.,', 'parser.y', 482)
2116
2138
  end
2117
2139
  .,.,
2118
2140
 
2119
- module_eval(<<'.,.,', 'parser.y', 487)
2141
+ module_eval(<<'.,.,', 'parser.y', 489)
2120
2142
  def _reduce_83(val, _values, result)
2121
2143
  reset_variable_scope
2122
2144
 
@@ -2134,14 +2156,14 @@ module_eval(<<'.,.,', 'parser.y', 487)
2134
2156
  end
2135
2157
  .,.,
2136
2158
 
2137
- module_eval(<<'.,.,', 'parser.y', 501)
2159
+ module_eval(<<'.,.,', 'parser.y', 503)
2138
2160
  def _reduce_84(val, _values, result)
2139
2161
  result = nil
2140
2162
  result
2141
2163
  end
2142
2164
  .,.,
2143
2165
 
2144
- module_eval(<<'.,.,', 'parser.y', 503)
2166
+ module_eval(<<'.,.,', 'parser.y', 505)
2145
2167
  def _reduce_85(val, _values, result)
2146
2168
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
2147
2169
 
@@ -2149,7 +2171,7 @@ module_eval(<<'.,.,', 'parser.y', 503)
2149
2171
  end
2150
2172
  .,.,
2151
2173
 
2152
- module_eval(<<'.,.,', 'parser.y', 508)
2174
+ module_eval(<<'.,.,', 'parser.y', 510)
2153
2175
  def _reduce_86(val, _values, result)
2154
2176
  block = Types::Block.new(type: val[1].value, required: true)
2155
2177
  result = LocatedValue.new(value: block, location: val[0].location + val[2].location)
@@ -2158,7 +2180,7 @@ module_eval(<<'.,.,', 'parser.y', 508)
2158
2180
  end
2159
2181
  .,.,
2160
2182
 
2161
- module_eval(<<'.,.,', 'parser.y', 512)
2183
+ module_eval(<<'.,.,', 'parser.y', 514)
2162
2184
  def _reduce_87(val, _values, result)
2163
2185
  block = Types::Block.new(type: val[2].value, required: false)
2164
2186
  result = LocatedValue.new(value: block, location: val[0].location + val[3].location)
@@ -2169,7 +2191,7 @@ module_eval(<<'.,.,', 'parser.y', 512)
2169
2191
 
2170
2192
  # reduce 88 omitted
2171
2193
 
2172
- module_eval(<<'.,.,', 'parser.y', 519)
2194
+ module_eval(<<'.,.,', 'parser.y', 521)
2173
2195
  def _reduce_89(val, _values, result)
2174
2196
  result = LocatedValue.new(value: val[0].value.to_sym,
2175
2197
  location: val[0].location + val[1].location)
@@ -2196,7 +2218,7 @@ module_eval(<<'.,.,', 'parser.y', 519)
2196
2218
 
2197
2219
  # reduce 98 omitted
2198
2220
 
2199
- module_eval(<<'.,.,', 'parser.y', 528)
2221
+ module_eval(<<'.,.,', 'parser.y', 530)
2200
2222
  def _reduce_99(val, _values, result)
2201
2223
  unless val[0].location.pred?(val[1].location)
2202
2224
  raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1])
@@ -2209,7 +2231,7 @@ module_eval(<<'.,.,', 'parser.y', 528)
2209
2231
  end
2210
2232
  .,.,
2211
2233
 
2212
- module_eval(<<'.,.,', 'parser.y', 536)
2234
+ module_eval(<<'.,.,', 'parser.y', 538)
2213
2235
  def _reduce_100(val, _values, result)
2214
2236
  unless val[0].location.pred?(val[1].location)
2215
2237
  raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1])
@@ -2302,14 +2324,14 @@ module_eval(<<'.,.,', 'parser.y', 536)
2302
2324
 
2303
2325
  # reduce 140 omitted
2304
2326
 
2305
- module_eval(<<'.,.,', 'parser.y', 556)
2327
+ module_eval(<<'.,.,', 'parser.y', 558)
2306
2328
  def _reduce_141(val, _values, result)
2307
2329
  result = nil
2308
2330
  result
2309
2331
  end
2310
2332
  .,.,
2311
2333
 
2312
- module_eval(<<'.,.,', 'parser.y', 558)
2334
+ module_eval(<<'.,.,', 'parser.y', 560)
2313
2335
  def _reduce_142(val, _values, result)
2314
2336
  val[1].each {|p| insert_bound_variable(p.name) }
2315
2337
 
@@ -2319,7 +2341,7 @@ module_eval(<<'.,.,', 'parser.y', 558)
2319
2341
  end
2320
2342
  .,.,
2321
2343
 
2322
- module_eval(<<'.,.,', 'parser.y', 565)
2344
+ module_eval(<<'.,.,', 'parser.y', 567)
2323
2345
  def _reduce_143(val, _values, result)
2324
2346
  result = Declarations::ModuleTypeParams.new()
2325
2347
  result.add(val[0])
@@ -2328,7 +2350,7 @@ module_eval(<<'.,.,', 'parser.y', 565)
2328
2350
  end
2329
2351
  .,.,
2330
2352
 
2331
- module_eval(<<'.,.,', 'parser.y', 569)
2353
+ module_eval(<<'.,.,', 'parser.y', 571)
2332
2354
  def _reduce_144(val, _values, result)
2333
2355
  result = val[0].add(val[2])
2334
2356
 
@@ -2336,7 +2358,7 @@ module_eval(<<'.,.,', 'parser.y', 569)
2336
2358
  end
2337
2359
  .,.,
2338
2360
 
2339
- module_eval(<<'.,.,', 'parser.y', 574)
2361
+ module_eval(<<'.,.,', 'parser.y', 576)
2340
2362
  def _reduce_145(val, _values, result)
2341
2363
  result = Declarations::ModuleTypeParams::TypeParam.new(name: val[2].value.to_sym,
2342
2364
  variance: val[1],
@@ -2346,49 +2368,49 @@ module_eval(<<'.,.,', 'parser.y', 574)
2346
2368
  end
2347
2369
  .,.,
2348
2370
 
2349
- module_eval(<<'.,.,', 'parser.y', 580)
2371
+ module_eval(<<'.,.,', 'parser.y', 582)
2350
2372
  def _reduce_146(val, _values, result)
2351
2373
  result = :invariant
2352
2374
  result
2353
2375
  end
2354
2376
  .,.,
2355
2377
 
2356
- module_eval(<<'.,.,', 'parser.y', 581)
2378
+ module_eval(<<'.,.,', 'parser.y', 583)
2357
2379
  def _reduce_147(val, _values, result)
2358
2380
  result = :covariant
2359
2381
  result
2360
2382
  end
2361
2383
  .,.,
2362
2384
 
2363
- module_eval(<<'.,.,', 'parser.y', 582)
2385
+ module_eval(<<'.,.,', 'parser.y', 584)
2364
2386
  def _reduce_148(val, _values, result)
2365
2387
  result = :contravariant
2366
2388
  result
2367
2389
  end
2368
2390
  .,.,
2369
2391
 
2370
- module_eval(<<'.,.,', 'parser.y', 585)
2392
+ module_eval(<<'.,.,', 'parser.y', 587)
2371
2393
  def _reduce_149(val, _values, result)
2372
2394
  result = false
2373
2395
  result
2374
2396
  end
2375
2397
  .,.,
2376
2398
 
2377
- module_eval(<<'.,.,', 'parser.y', 586)
2399
+ module_eval(<<'.,.,', 'parser.y', 588)
2378
2400
  def _reduce_150(val, _values, result)
2379
2401
  result = true
2380
2402
  result
2381
2403
  end
2382
2404
  .,.,
2383
2405
 
2384
- module_eval(<<'.,.,', 'parser.y', 589)
2406
+ module_eval(<<'.,.,', 'parser.y', 591)
2385
2407
  def _reduce_151(val, _values, result)
2386
2408
  result = nil
2387
2409
  result
2388
2410
  end
2389
2411
  .,.,
2390
2412
 
2391
- module_eval(<<'.,.,', 'parser.y', 591)
2413
+ module_eval(<<'.,.,', 'parser.y', 593)
2392
2414
  def _reduce_152(val, _values, result)
2393
2415
  val[1].each {|var| insert_bound_variable(var) }
2394
2416
 
@@ -2399,7 +2421,7 @@ module_eval(<<'.,.,', 'parser.y', 591)
2399
2421
  end
2400
2422
  .,.,
2401
2423
 
2402
- module_eval(<<'.,.,', 'parser.y', 599)
2424
+ module_eval(<<'.,.,', 'parser.y', 601)
2403
2425
  def _reduce_153(val, _values, result)
2404
2426
  result = [val[0].value.to_sym]
2405
2427
 
@@ -2407,7 +2429,7 @@ module_eval(<<'.,.,', 'parser.y', 599)
2407
2429
  end
2408
2430
  .,.,
2409
2431
 
2410
- module_eval(<<'.,.,', 'parser.y', 602)
2432
+ module_eval(<<'.,.,', 'parser.y', 604)
2411
2433
  def _reduce_154(val, _values, result)
2412
2434
  result = val[0].push(val[2].value.to_sym)
2413
2435
 
@@ -2415,7 +2437,7 @@ module_eval(<<'.,.,', 'parser.y', 602)
2415
2437
  end
2416
2438
  .,.,
2417
2439
 
2418
- module_eval(<<'.,.,', 'parser.y', 607)
2440
+ module_eval(<<'.,.,', 'parser.y', 609)
2419
2441
  def _reduce_155(val, _values, result)
2420
2442
  location = val[1].location + val[3].location
2421
2443
  result = Members::Alias.new(
@@ -2431,7 +2453,7 @@ module_eval(<<'.,.,', 'parser.y', 607)
2431
2453
  end
2432
2454
  .,.,
2433
2455
 
2434
- module_eval(<<'.,.,', 'parser.y', 618)
2456
+ module_eval(<<'.,.,', 'parser.y', 620)
2435
2457
  def _reduce_156(val, _values, result)
2436
2458
  location = val[1].location + val[7].location
2437
2459
  result = Members::Alias.new(
@@ -2447,7 +2469,7 @@ module_eval(<<'.,.,', 'parser.y', 618)
2447
2469
  end
2448
2470
  .,.,
2449
2471
 
2450
- module_eval(<<'.,.,', 'parser.y', 631)
2472
+ module_eval(<<'.,.,', 'parser.y', 633)
2451
2473
  def _reduce_157(val, _values, result)
2452
2474
  location = val[1].location + val[4].location
2453
2475
  result = Declarations::Alias.new(name: val[2].value,
@@ -2460,7 +2482,7 @@ module_eval(<<'.,.,', 'parser.y', 631)
2460
2482
  end
2461
2483
  .,.,
2462
2484
 
2463
- module_eval(<<'.,.,', 'parser.y', 641)
2485
+ module_eval(<<'.,.,', 'parser.y', 643)
2464
2486
  def _reduce_158(val, _values, result)
2465
2487
  location = val[0].location + val[2].location
2466
2488
  result = Declarations::Constant.new(name: val[0].value,
@@ -2472,7 +2494,7 @@ module_eval(<<'.,.,', 'parser.y', 641)
2472
2494
  end
2473
2495
  .,.,
2474
2496
 
2475
- module_eval(<<'.,.,', 'parser.y', 648)
2497
+ module_eval(<<'.,.,', 'parser.y', 650)
2476
2498
  def _reduce_159(val, _values, result)
2477
2499
  location = (val[0] || val[1]).location + val[2].location
2478
2500
  name = TypeName.new(name: val[1].value, namespace: val[0]&.value || Namespace.empty)
@@ -2485,7 +2507,7 @@ module_eval(<<'.,.,', 'parser.y', 648)
2485
2507
  end
2486
2508
  .,.,
2487
2509
 
2488
- module_eval(<<'.,.,', 'parser.y', 658)
2510
+ module_eval(<<'.,.,', 'parser.y', 660)
2489
2511
  def _reduce_160(val, _values, result)
2490
2512
  location = val[0].location + val[2].location
2491
2513
  result = Declarations::Global.new(name: val[0].value.to_sym,
@@ -2499,7 +2521,7 @@ module_eval(<<'.,.,', 'parser.y', 658)
2499
2521
 
2500
2522
  # reduce 161 omitted
2501
2523
 
2502
- module_eval(<<'.,.,', 'parser.y', 668)
2524
+ module_eval(<<'.,.,', 'parser.y', 670)
2503
2525
  def _reduce_162(val, _values, result)
2504
2526
  types = case l = val[0]
2505
2527
  when Types::Union
@@ -2514,7 +2536,7 @@ module_eval(<<'.,.,', 'parser.y', 668)
2514
2536
  end
2515
2537
  .,.,
2516
2538
 
2517
- module_eval(<<'.,.,', 'parser.y', 678)
2539
+ module_eval(<<'.,.,', 'parser.y', 680)
2518
2540
  def _reduce_163(val, _values, result)
2519
2541
  types = case l = val[0]
2520
2542
  when Types::Intersection
@@ -2530,7 +2552,7 @@ module_eval(<<'.,.,', 'parser.y', 678)
2530
2552
  end
2531
2553
  .,.,
2532
2554
 
2533
- module_eval(<<'.,.,', 'parser.y', 691)
2555
+ module_eval(<<'.,.,', 'parser.y', 693)
2534
2556
  def _reduce_164(val, _values, result)
2535
2557
  result = Types::Bases::Void.new(location: val[0].location)
2536
2558
 
@@ -2538,7 +2560,7 @@ module_eval(<<'.,.,', 'parser.y', 691)
2538
2560
  end
2539
2561
  .,.,
2540
2562
 
2541
- module_eval(<<'.,.,', 'parser.y', 694)
2563
+ module_eval(<<'.,.,', 'parser.y', 696)
2542
2564
  def _reduce_165(val, _values, result)
2543
2565
  RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})"
2544
2566
  result = Types::Bases::Any.new(location: val[0].location)
@@ -2547,7 +2569,7 @@ module_eval(<<'.,.,', 'parser.y', 694)
2547
2569
  end
2548
2570
  .,.,
2549
2571
 
2550
- module_eval(<<'.,.,', 'parser.y', 698)
2572
+ module_eval(<<'.,.,', 'parser.y', 700)
2551
2573
  def _reduce_166(val, _values, result)
2552
2574
  result = Types::Bases::Any.new(location: val[0].location)
2553
2575
 
@@ -2555,7 +2577,7 @@ module_eval(<<'.,.,', 'parser.y', 698)
2555
2577
  end
2556
2578
  .,.,
2557
2579
 
2558
- module_eval(<<'.,.,', 'parser.y', 701)
2580
+ module_eval(<<'.,.,', 'parser.y', 703)
2559
2581
  def _reduce_167(val, _values, result)
2560
2582
  result = Types::Bases::Bool.new(location: val[0].location)
2561
2583
 
@@ -2563,7 +2585,7 @@ module_eval(<<'.,.,', 'parser.y', 701)
2563
2585
  end
2564
2586
  .,.,
2565
2587
 
2566
- module_eval(<<'.,.,', 'parser.y', 704)
2588
+ module_eval(<<'.,.,', 'parser.y', 706)
2567
2589
  def _reduce_168(val, _values, result)
2568
2590
  result = Types::Bases::Nil.new(location: val[0].location)
2569
2591
 
@@ -2571,7 +2593,7 @@ module_eval(<<'.,.,', 'parser.y', 704)
2571
2593
  end
2572
2594
  .,.,
2573
2595
 
2574
- module_eval(<<'.,.,', 'parser.y', 707)
2596
+ module_eval(<<'.,.,', 'parser.y', 709)
2575
2597
  def _reduce_169(val, _values, result)
2576
2598
  result = Types::Bases::Top.new(location: val[0].location)
2577
2599
 
@@ -2579,7 +2601,7 @@ module_eval(<<'.,.,', 'parser.y', 707)
2579
2601
  end
2580
2602
  .,.,
2581
2603
 
2582
- module_eval(<<'.,.,', 'parser.y', 710)
2604
+ module_eval(<<'.,.,', 'parser.y', 712)
2583
2605
  def _reduce_170(val, _values, result)
2584
2606
  result = Types::Bases::Bottom.new(location: val[0].location)
2585
2607
 
@@ -2587,7 +2609,7 @@ module_eval(<<'.,.,', 'parser.y', 710)
2587
2609
  end
2588
2610
  .,.,
2589
2611
 
2590
- module_eval(<<'.,.,', 'parser.y', 713)
2612
+ module_eval(<<'.,.,', 'parser.y', 715)
2591
2613
  def _reduce_171(val, _values, result)
2592
2614
  result = Types::Bases::Self.new(location: val[0].location)
2593
2615
 
@@ -2595,7 +2617,7 @@ module_eval(<<'.,.,', 'parser.y', 713)
2595
2617
  end
2596
2618
  .,.,
2597
2619
 
2598
- module_eval(<<'.,.,', 'parser.y', 716)
2620
+ module_eval(<<'.,.,', 'parser.y', 718)
2599
2621
  def _reduce_172(val, _values, result)
2600
2622
  result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location),
2601
2623
  location: val[0].location)
@@ -2604,7 +2626,7 @@ module_eval(<<'.,.,', 'parser.y', 716)
2604
2626
  end
2605
2627
  .,.,
2606
2628
 
2607
- module_eval(<<'.,.,', 'parser.y', 720)
2629
+ module_eval(<<'.,.,', 'parser.y', 722)
2608
2630
  def _reduce_173(val, _values, result)
2609
2631
  result = Types::Bases::Instance.new(location: val[0].location)
2610
2632
 
@@ -2612,7 +2634,7 @@ module_eval(<<'.,.,', 'parser.y', 720)
2612
2634
  end
2613
2635
  .,.,
2614
2636
 
2615
- module_eval(<<'.,.,', 'parser.y', 723)
2637
+ module_eval(<<'.,.,', 'parser.y', 725)
2616
2638
  def _reduce_174(val, _values, result)
2617
2639
  result = Types::Bases::Class.new(location: val[0].location)
2618
2640
 
@@ -2620,7 +2642,7 @@ module_eval(<<'.,.,', 'parser.y', 723)
2620
2642
  end
2621
2643
  .,.,
2622
2644
 
2623
- module_eval(<<'.,.,', 'parser.y', 726)
2645
+ module_eval(<<'.,.,', 'parser.y', 728)
2624
2646
  def _reduce_175(val, _values, result)
2625
2647
  result = Types::Literal.new(literal: true, location: val[0].location)
2626
2648
 
@@ -2628,7 +2650,7 @@ module_eval(<<'.,.,', 'parser.y', 726)
2628
2650
  end
2629
2651
  .,.,
2630
2652
 
2631
- module_eval(<<'.,.,', 'parser.y', 729)
2653
+ module_eval(<<'.,.,', 'parser.y', 731)
2632
2654
  def _reduce_176(val, _values, result)
2633
2655
  result = Types::Literal.new(literal: false, location: val[0].location)
2634
2656
 
@@ -2636,7 +2658,7 @@ module_eval(<<'.,.,', 'parser.y', 729)
2636
2658
  end
2637
2659
  .,.,
2638
2660
 
2639
- module_eval(<<'.,.,', 'parser.y', 732)
2661
+ module_eval(<<'.,.,', 'parser.y', 734)
2640
2662
  def _reduce_177(val, _values, result)
2641
2663
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2642
2664
 
@@ -2644,7 +2666,7 @@ module_eval(<<'.,.,', 'parser.y', 732)
2644
2666
  end
2645
2667
  .,.,
2646
2668
 
2647
- module_eval(<<'.,.,', 'parser.y', 735)
2669
+ module_eval(<<'.,.,', 'parser.y', 737)
2648
2670
  def _reduce_178(val, _values, result)
2649
2671
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2650
2672
 
@@ -2652,7 +2674,7 @@ module_eval(<<'.,.,', 'parser.y', 735)
2652
2674
  end
2653
2675
  .,.,
2654
2676
 
2655
- module_eval(<<'.,.,', 'parser.y', 738)
2677
+ module_eval(<<'.,.,', 'parser.y', 740)
2656
2678
  def _reduce_179(val, _values, result)
2657
2679
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2658
2680
 
@@ -2660,7 +2682,7 @@ module_eval(<<'.,.,', 'parser.y', 738)
2660
2682
  end
2661
2683
  .,.,
2662
2684
 
2663
- module_eval(<<'.,.,', 'parser.y', 741)
2685
+ module_eval(<<'.,.,', 'parser.y', 743)
2664
2686
  def _reduce_180(val, _values, result)
2665
2687
  name = val[0].value
2666
2688
  args = []
@@ -2683,7 +2705,7 @@ module_eval(<<'.,.,', 'parser.y', 741)
2683
2705
  end
2684
2706
  .,.,
2685
2707
 
2686
- module_eval(<<'.,.,', 'parser.y', 759)
2708
+ module_eval(<<'.,.,', 'parser.y', 761)
2687
2709
  def _reduce_181(val, _values, result)
2688
2710
  name = val[0].value
2689
2711
  args = val[2]
@@ -2705,7 +2727,7 @@ module_eval(<<'.,.,', 'parser.y', 759)
2705
2727
  end
2706
2728
  .,.,
2707
2729
 
2708
- module_eval(<<'.,.,', 'parser.y', 776)
2730
+ module_eval(<<'.,.,', 'parser.y', 778)
2709
2731
  def _reduce_182(val, _values, result)
2710
2732
  location = val[0].location + val[1].location
2711
2733
  result = Types::Tuple.new(types: [], location: location)
@@ -2714,7 +2736,7 @@ module_eval(<<'.,.,', 'parser.y', 776)
2714
2736
  end
2715
2737
  .,.,
2716
2738
 
2717
- module_eval(<<'.,.,', 'parser.y', 780)
2739
+ module_eval(<<'.,.,', 'parser.y', 782)
2718
2740
  def _reduce_183(val, _values, result)
2719
2741
  location = val[0].location + val[2].location
2720
2742
  types = val[1]
@@ -2724,7 +2746,7 @@ module_eval(<<'.,.,', 'parser.y', 780)
2724
2746
  end
2725
2747
  .,.,
2726
2748
 
2727
- module_eval(<<'.,.,', 'parser.y', 785)
2749
+ module_eval(<<'.,.,', 'parser.y', 787)
2728
2750
  def _reduce_184(val, _values, result)
2729
2751
  type = val[1].dup
2730
2752
  type.instance_eval do
@@ -2736,7 +2758,7 @@ module_eval(<<'.,.,', 'parser.y', 785)
2736
2758
  end
2737
2759
  .,.,
2738
2760
 
2739
- module_eval(<<'.,.,', 'parser.y', 792)
2761
+ module_eval(<<'.,.,', 'parser.y', 794)
2740
2762
  def _reduce_185(val, _values, result)
2741
2763
  result = Types::ClassSingleton.new(name: val[2].value,
2742
2764
  location: val[0].location + val[3].location)
@@ -2745,7 +2767,7 @@ module_eval(<<'.,.,', 'parser.y', 792)
2745
2767
  end
2746
2768
  .,.,
2747
2769
 
2748
- module_eval(<<'.,.,', 'parser.y', 796)
2770
+ module_eval(<<'.,.,', 'parser.y', 798)
2749
2771
  def _reduce_186(val, _values, result)
2750
2772
  type, block = val[1].value
2751
2773
  result = Types::Proc.new(type: type, block: block, location: val[0].location + val[1].location)
@@ -2754,7 +2776,7 @@ module_eval(<<'.,.,', 'parser.y', 796)
2754
2776
  end
2755
2777
  .,.,
2756
2778
 
2757
- module_eval(<<'.,.,', 'parser.y', 800)
2779
+ module_eval(<<'.,.,', 'parser.y', 802)
2758
2780
  def _reduce_187(val, _values, result)
2759
2781
  result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location)
2760
2782
 
@@ -2764,7 +2786,7 @@ module_eval(<<'.,.,', 'parser.y', 800)
2764
2786
 
2765
2787
  # reduce 188 omitted
2766
2788
 
2767
- module_eval(<<'.,.,', 'parser.y', 806)
2789
+ module_eval(<<'.,.,', 'parser.y', 808)
2768
2790
  def _reduce_189(val, _values, result)
2769
2791
  result = [val[0]]
2770
2792
 
@@ -2772,7 +2794,7 @@ module_eval(<<'.,.,', 'parser.y', 806)
2772
2794
  end
2773
2795
  .,.,
2774
2796
 
2775
- module_eval(<<'.,.,', 'parser.y', 809)
2797
+ module_eval(<<'.,.,', 'parser.y', 811)
2776
2798
  def _reduce_190(val, _values, result)
2777
2799
  result = val[0] + [val[2]]
2778
2800
 
@@ -2780,7 +2802,7 @@ module_eval(<<'.,.,', 'parser.y', 809)
2780
2802
  end
2781
2803
  .,.,
2782
2804
 
2783
- module_eval(<<'.,.,', 'parser.y', 814)
2805
+ module_eval(<<'.,.,', 'parser.y', 816)
2784
2806
  def _reduce_191(val, _values, result)
2785
2807
  result = Types::Record.new(
2786
2808
  fields: val[1],
@@ -2791,7 +2813,7 @@ module_eval(<<'.,.,', 'parser.y', 814)
2791
2813
  end
2792
2814
  .,.,
2793
2815
 
2794
- module_eval(<<'.,.,', 'parser.y', 822)
2816
+ module_eval(<<'.,.,', 'parser.y', 824)
2795
2817
  def _reduce_192(val, _values, result)
2796
2818
  result = val[0]
2797
2819
 
@@ -2799,7 +2821,7 @@ module_eval(<<'.,.,', 'parser.y', 822)
2799
2821
  end
2800
2822
  .,.,
2801
2823
 
2802
- module_eval(<<'.,.,', 'parser.y', 825)
2824
+ module_eval(<<'.,.,', 'parser.y', 827)
2803
2825
  def _reduce_193(val, _values, result)
2804
2826
  result = val[0].merge!(val[2])
2805
2827
 
@@ -2807,7 +2829,7 @@ module_eval(<<'.,.,', 'parser.y', 825)
2807
2829
  end
2808
2830
  .,.,
2809
2831
 
2810
- module_eval(<<'.,.,', 'parser.y', 830)
2832
+ module_eval(<<'.,.,', 'parser.y', 832)
2811
2833
  def _reduce_194(val, _values, result)
2812
2834
  result = { val[0].value => val[2] }
2813
2835
 
@@ -2815,7 +2837,7 @@ module_eval(<<'.,.,', 'parser.y', 830)
2815
2837
  end
2816
2838
  .,.,
2817
2839
 
2818
- module_eval(<<'.,.,', 'parser.y', 833)
2840
+ module_eval(<<'.,.,', 'parser.y', 835)
2819
2841
  def _reduce_195(val, _values, result)
2820
2842
  result = { val[0].value => val[2] }
2821
2843
 
@@ -2823,7 +2845,7 @@ module_eval(<<'.,.,', 'parser.y', 833)
2823
2845
  end
2824
2846
  .,.,
2825
2847
 
2826
- module_eval(<<'.,.,', 'parser.y', 836)
2848
+ module_eval(<<'.,.,', 'parser.y', 838)
2827
2849
  def _reduce_196(val, _values, result)
2828
2850
  result = { val[0].value => val[2] }
2829
2851
 
@@ -2831,7 +2853,7 @@ module_eval(<<'.,.,', 'parser.y', 836)
2831
2853
  end
2832
2854
  .,.,
2833
2855
 
2834
- module_eval(<<'.,.,', 'parser.y', 839)
2856
+ module_eval(<<'.,.,', 'parser.y', 841)
2835
2857
  def _reduce_197(val, _values, result)
2836
2858
  result = { val[0].value => val[1] }
2837
2859
 
@@ -2839,26 +2861,50 @@ module_eval(<<'.,.,', 'parser.y', 839)
2839
2861
  end
2840
2862
  .,.,
2841
2863
 
2842
- # reduce 198 omitted
2864
+ module_eval(<<'.,.,', 'parser.y', 844)
2865
+ def _reduce_198(val, _values, result)
2866
+ result = { val[0].value => val[2] }
2867
+
2868
+ result
2869
+ end
2870
+ .,.,
2843
2871
 
2844
- module_eval(<<'.,.,', 'parser.y', 845)
2872
+ module_eval(<<'.,.,', 'parser.y', 847)
2845
2873
  def _reduce_199(val, _values, result)
2846
- result = val[0]
2874
+ result = { val[0].value => val[2] }
2847
2875
 
2848
2876
  result
2849
2877
  end
2850
2878
  .,.,
2851
2879
 
2852
- # reduce 200 omitted
2880
+ module_eval(<<'.,.,', 'parser.y', 850)
2881
+ def _reduce_200(val, _values, result)
2882
+ result = { val[0].value => val[2] }
2883
+
2884
+ result
2885
+ end
2886
+ .,.,
2853
2887
 
2854
2888
  # reduce 201 omitted
2855
2889
 
2856
- # reduce 202 omitted
2890
+ module_eval(<<'.,.,', 'parser.y', 856)
2891
+ def _reduce_202(val, _values, result)
2892
+ result = val[0]
2893
+
2894
+ result
2895
+ end
2896
+ .,.,
2857
2897
 
2858
2898
  # reduce 203 omitted
2859
2899
 
2860
- module_eval(<<'.,.,', 'parser.y', 852)
2861
- def _reduce_204(val, _values, result)
2900
+ # reduce 204 omitted
2901
+
2902
+ # reduce 205 omitted
2903
+
2904
+ # reduce 206 omitted
2905
+
2906
+ module_eval(<<'.,.,', 'parser.y', 863)
2907
+ def _reduce_207(val, _values, result)
2862
2908
  location = (val[0] || val[1] || val[2]).location + val[3].location
2863
2909
 
2864
2910
  params = val[0]&.value || [[], [], nil, [], {}, {}, nil]
@@ -2882,16 +2928,16 @@ module_eval(<<'.,.,', 'parser.y', 852)
2882
2928
  end
2883
2929
  .,.,
2884
2930
 
2885
- module_eval(<<'.,.,', 'parser.y', 872)
2886
- def _reduce_205(val, _values, result)
2931
+ module_eval(<<'.,.,', 'parser.y', 883)
2932
+ def _reduce_208(val, _values, result)
2887
2933
  result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location)
2888
2934
 
2889
2935
  result
2890
2936
  end
2891
2937
  .,.,
2892
2938
 
2893
- module_eval(<<'.,.,', 'parser.y', 877)
2894
- def _reduce_206(val, _values, result)
2939
+ module_eval(<<'.,.,', 'parser.y', 888)
2940
+ def _reduce_209(val, _values, result)
2895
2941
  location = val[0].location + val[4].location
2896
2942
  type = Types::Function.new(
2897
2943
  required_positionals: val[1][0],
@@ -2910,8 +2956,8 @@ module_eval(<<'.,.,', 'parser.y', 877)
2910
2956
  end
2911
2957
  .,.,
2912
2958
 
2913
- module_eval(<<'.,.,', 'parser.y', 892)
2914
- def _reduce_207(val, _values, result)
2959
+ module_eval(<<'.,.,', 'parser.y', 903)
2960
+ def _reduce_210(val, _values, result)
2915
2961
  location = val[0].location + val[1].location
2916
2962
  type = Types::Function.new(
2917
2963
  required_positionals: [],
@@ -2930,8 +2976,8 @@ module_eval(<<'.,.,', 'parser.y', 892)
2930
2976
  end
2931
2977
  .,.,
2932
2978
 
2933
- module_eval(<<'.,.,', 'parser.y', 909)
2934
- def _reduce_208(val, _values, result)
2979
+ module_eval(<<'.,.,', 'parser.y', 920)
2980
+ def _reduce_211(val, _values, result)
2935
2981
  result = val[2]
2936
2982
  result[0].unshift(val[0])
2937
2983
 
@@ -2939,8 +2985,8 @@ module_eval(<<'.,.,', 'parser.y', 909)
2939
2985
  end
2940
2986
  .,.,
2941
2987
 
2942
- module_eval(<<'.,.,', 'parser.y', 913)
2943
- def _reduce_209(val, _values, result)
2988
+ module_eval(<<'.,.,', 'parser.y', 924)
2989
+ def _reduce_212(val, _values, result)
2944
2990
  result = empty_params_result
2945
2991
  result[0].unshift(val[0])
2946
2992
 
@@ -2948,10 +2994,10 @@ module_eval(<<'.,.,', 'parser.y', 913)
2948
2994
  end
2949
2995
  .,.,
2950
2996
 
2951
- # reduce 210 omitted
2997
+ # reduce 213 omitted
2952
2998
 
2953
- module_eval(<<'.,.,', 'parser.y', 920)
2954
- def _reduce_211(val, _values, result)
2999
+ module_eval(<<'.,.,', 'parser.y', 931)
3000
+ def _reduce_214(val, _values, result)
2955
3001
  result = val[2]
2956
3002
  result[1].unshift(val[0])
2957
3003
 
@@ -2959,8 +3005,8 @@ module_eval(<<'.,.,', 'parser.y', 920)
2959
3005
  end
2960
3006
  .,.,
2961
3007
 
2962
- module_eval(<<'.,.,', 'parser.y', 924)
2963
- def _reduce_212(val, _values, result)
3008
+ module_eval(<<'.,.,', 'parser.y', 935)
3009
+ def _reduce_215(val, _values, result)
2964
3010
  result = empty_params_result
2965
3011
  result[1].unshift(val[0])
2966
3012
 
@@ -2968,10 +3014,10 @@ module_eval(<<'.,.,', 'parser.y', 924)
2968
3014
  end
2969
3015
  .,.,
2970
3016
 
2971
- # reduce 213 omitted
3017
+ # reduce 216 omitted
2972
3018
 
2973
- module_eval(<<'.,.,', 'parser.y', 931)
2974
- def _reduce_214(val, _values, result)
3019
+ module_eval(<<'.,.,', 'parser.y', 942)
3020
+ def _reduce_217(val, _values, result)
2975
3021
  result = val[2]
2976
3022
  result[2] = val[0]
2977
3023
 
@@ -2979,8 +3025,8 @@ module_eval(<<'.,.,', 'parser.y', 931)
2979
3025
  end
2980
3026
  .,.,
2981
3027
 
2982
- module_eval(<<'.,.,', 'parser.y', 935)
2983
- def _reduce_215(val, _values, result)
3028
+ module_eval(<<'.,.,', 'parser.y', 946)
3029
+ def _reduce_218(val, _values, result)
2984
3030
  result = empty_params_result
2985
3031
  result[2] = val[0]
2986
3032
 
@@ -2988,10 +3034,10 @@ module_eval(<<'.,.,', 'parser.y', 935)
2988
3034
  end
2989
3035
  .,.,
2990
3036
 
2991
- # reduce 216 omitted
3037
+ # reduce 219 omitted
2992
3038
 
2993
- module_eval(<<'.,.,', 'parser.y', 942)
2994
- def _reduce_217(val, _values, result)
3039
+ module_eval(<<'.,.,', 'parser.y', 953)
3040
+ def _reduce_220(val, _values, result)
2995
3041
  result = val[2]
2996
3042
  result[3].unshift(val[0])
2997
3043
 
@@ -2999,8 +3045,8 @@ module_eval(<<'.,.,', 'parser.y', 942)
2999
3045
  end
3000
3046
  .,.,
3001
3047
 
3002
- module_eval(<<'.,.,', 'parser.y', 946)
3003
- def _reduce_218(val, _values, result)
3048
+ module_eval(<<'.,.,', 'parser.y', 957)
3049
+ def _reduce_221(val, _values, result)
3004
3050
  result = empty_params_result
3005
3051
  result[3].unshift(val[0])
3006
3052
 
@@ -3008,18 +3054,18 @@ module_eval(<<'.,.,', 'parser.y', 946)
3008
3054
  end
3009
3055
  .,.,
3010
3056
 
3011
- # reduce 219 omitted
3057
+ # reduce 222 omitted
3012
3058
 
3013
- module_eval(<<'.,.,', 'parser.y', 953)
3014
- def _reduce_220(val, _values, result)
3059
+ module_eval(<<'.,.,', 'parser.y', 964)
3060
+ def _reduce_223(val, _values, result)
3015
3061
  result = empty_params_result
3016
3062
 
3017
3063
  result
3018
3064
  end
3019
3065
  .,.,
3020
3066
 
3021
- module_eval(<<'.,.,', 'parser.y', 956)
3022
- def _reduce_221(val, _values, result)
3067
+ module_eval(<<'.,.,', 'parser.y', 967)
3068
+ def _reduce_224(val, _values, result)
3023
3069
  result = val[2]
3024
3070
  result[4].merge!(val[0])
3025
3071
 
@@ -3027,8 +3073,8 @@ module_eval(<<'.,.,', 'parser.y', 956)
3027
3073
  end
3028
3074
  .,.,
3029
3075
 
3030
- module_eval(<<'.,.,', 'parser.y', 960)
3031
- def _reduce_222(val, _values, result)
3076
+ module_eval(<<'.,.,', 'parser.y', 971)
3077
+ def _reduce_225(val, _values, result)
3032
3078
  result = empty_params_result
3033
3079
  result[4].merge!(val[0])
3034
3080
 
@@ -3036,8 +3082,8 @@ module_eval(<<'.,.,', 'parser.y', 960)
3036
3082
  end
3037
3083
  .,.,
3038
3084
 
3039
- module_eval(<<'.,.,', 'parser.y', 964)
3040
- def _reduce_223(val, _values, result)
3085
+ module_eval(<<'.,.,', 'parser.y', 975)
3086
+ def _reduce_226(val, _values, result)
3041
3087
  result = val[2]
3042
3088
  result[5].merge!(val[0])
3043
3089
 
@@ -3045,8 +3091,8 @@ module_eval(<<'.,.,', 'parser.y', 964)
3045
3091
  end
3046
3092
  .,.,
3047
3093
 
3048
- module_eval(<<'.,.,', 'parser.y', 968)
3049
- def _reduce_224(val, _values, result)
3094
+ module_eval(<<'.,.,', 'parser.y', 979)
3095
+ def _reduce_227(val, _values, result)
3050
3096
  result = empty_params_result
3051
3097
  result[5].merge!(val[0])
3052
3098
 
@@ -3054,8 +3100,8 @@ module_eval(<<'.,.,', 'parser.y', 968)
3054
3100
  end
3055
3101
  .,.,
3056
3102
 
3057
- module_eval(<<'.,.,', 'parser.y', 972)
3058
- def _reduce_225(val, _values, result)
3103
+ module_eval(<<'.,.,', 'parser.y', 983)
3104
+ def _reduce_228(val, _values, result)
3059
3105
  result = empty_params_result
3060
3106
  result[6] = val[0]
3061
3107
 
@@ -3063,8 +3109,8 @@ module_eval(<<'.,.,', 'parser.y', 972)
3063
3109
  end
3064
3110
  .,.,
3065
3111
 
3066
- module_eval(<<'.,.,', 'parser.y', 978)
3067
- def _reduce_226(val, _values, result)
3112
+ module_eval(<<'.,.,', 'parser.y', 989)
3113
+ def _reduce_229(val, _values, result)
3068
3114
  result = Types::Function::Param.new(type: val[0],
3069
3115
  name: val[1]&.value&.to_sym)
3070
3116
 
@@ -3072,8 +3118,8 @@ module_eval(<<'.,.,', 'parser.y', 978)
3072
3118
  end
3073
3119
  .,.,
3074
3120
 
3075
- module_eval(<<'.,.,', 'parser.y', 984)
3076
- def _reduce_227(val, _values, result)
3121
+ module_eval(<<'.,.,', 'parser.y', 995)
3122
+ def _reduce_230(val, _values, result)
3077
3123
  result = Types::Function::Param.new(type: val[1],
3078
3124
  name: val[2]&.value&.to_sym)
3079
3125
 
@@ -3081,8 +3127,8 @@ module_eval(<<'.,.,', 'parser.y', 984)
3081
3127
  end
3082
3128
  .,.,
3083
3129
 
3084
- module_eval(<<'.,.,', 'parser.y', 990)
3085
- def _reduce_228(val, _values, result)
3130
+ module_eval(<<'.,.,', 'parser.y', 1001)
3131
+ def _reduce_231(val, _values, result)
3086
3132
  result = Types::Function::Param.new(type: val[1],
3087
3133
  name: val[2]&.value&.to_sym)
3088
3134
 
@@ -3090,8 +3136,8 @@ module_eval(<<'.,.,', 'parser.y', 990)
3090
3136
  end
3091
3137
  .,.,
3092
3138
 
3093
- module_eval(<<'.,.,', 'parser.y', 996)
3094
- def _reduce_229(val, _values, result)
3139
+ module_eval(<<'.,.,', 'parser.y', 1007)
3140
+ def _reduce_232(val, _values, result)
3095
3141
  param = Types::Function::Param.new(type: val[1],
3096
3142
  name: val[2]&.value&.to_sym)
3097
3143
  result = { val[0].value => param }
@@ -3100,8 +3146,8 @@ module_eval(<<'.,.,', 'parser.y', 996)
3100
3146
  end
3101
3147
  .,.,
3102
3148
 
3103
- module_eval(<<'.,.,', 'parser.y', 1003)
3104
- def _reduce_230(val, _values, result)
3149
+ module_eval(<<'.,.,', 'parser.y', 1014)
3150
+ def _reduce_233(val, _values, result)
3105
3151
  param = Types::Function::Param.new(type: val[2],
3106
3152
  name: val[3]&.value&.to_sym)
3107
3153
  result = { val[1].value => param }
@@ -3110,8 +3156,8 @@ module_eval(<<'.,.,', 'parser.y', 1003)
3110
3156
  end
3111
3157
  .,.,
3112
3158
 
3113
- module_eval(<<'.,.,', 'parser.y', 1010)
3114
- def _reduce_231(val, _values, result)
3159
+ module_eval(<<'.,.,', 'parser.y', 1021)
3160
+ def _reduce_234(val, _values, result)
3115
3161
  result = Types::Function::Param.new(type: val[1],
3116
3162
  name: val[2]&.value&.to_sym)
3117
3163
 
@@ -3119,16 +3165,16 @@ module_eval(<<'.,.,', 'parser.y', 1010)
3119
3165
  end
3120
3166
  .,.,
3121
3167
 
3122
- # reduce 232 omitted
3168
+ # reduce 235 omitted
3123
3169
 
3124
- # reduce 233 omitted
3170
+ # reduce 236 omitted
3125
3171
 
3126
- # reduce 234 omitted
3172
+ # reduce 237 omitted
3127
3173
 
3128
- # reduce 235 omitted
3174
+ # reduce 238 omitted
3129
3175
 
3130
- module_eval(<<'.,.,', 'parser.y', 1019)
3131
- def _reduce_236(val, _values, result)
3176
+ module_eval(<<'.,.,', 'parser.y', 1030)
3177
+ def _reduce_239(val, _values, result)
3132
3178
  namespace = val[0]&.value || Namespace.empty
3133
3179
  name = val[1].value.to_sym
3134
3180
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3139,14 +3185,14 @@ module_eval(<<'.,.,', 'parser.y', 1019)
3139
3185
  end
3140
3186
  .,.,
3141
3187
 
3142
- # reduce 237 omitted
3188
+ # reduce 240 omitted
3143
3189
 
3144
- # reduce 238 omitted
3190
+ # reduce 241 omitted
3145
3191
 
3146
- # reduce 239 omitted
3192
+ # reduce 242 omitted
3147
3193
 
3148
- module_eval(<<'.,.,', 'parser.y', 1031)
3149
- def _reduce_240(val, _values, result)
3194
+ module_eval(<<'.,.,', 'parser.y', 1042)
3195
+ def _reduce_243(val, _values, result)
3150
3196
  namespace = val[0]&.value || Namespace.empty
3151
3197
  name = val[1].value.to_sym
3152
3198
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3157,8 +3203,8 @@ module_eval(<<'.,.,', 'parser.y', 1031)
3157
3203
  end
3158
3204
  .,.,
3159
3205
 
3160
- module_eval(<<'.,.,', 'parser.y', 1040)
3161
- def _reduce_241(val, _values, result)
3206
+ module_eval(<<'.,.,', 'parser.y', 1051)
3207
+ def _reduce_244(val, _values, result)
3162
3208
  namespace = val[0]&.value || Namespace.empty
3163
3209
  name = val[1].value.to_sym
3164
3210
  type_name = TypeName.new(namespace: namespace, name: name)
@@ -3169,24 +3215,24 @@ module_eval(<<'.,.,', 'parser.y', 1040)
3169
3215
  end
3170
3216
  .,.,
3171
3217
 
3172
- module_eval(<<'.,.,', 'parser.y', 1049)
3173
- def _reduce_242(val, _values, result)
3218
+ module_eval(<<'.,.,', 'parser.y', 1060)
3219
+ def _reduce_245(val, _values, result)
3174
3220
  result = nil
3175
3221
 
3176
3222
  result
3177
3223
  end
3178
3224
  .,.,
3179
3225
 
3180
- module_eval(<<'.,.,', 'parser.y', 1052)
3181
- def _reduce_243(val, _values, result)
3226
+ module_eval(<<'.,.,', 'parser.y', 1063)
3227
+ def _reduce_246(val, _values, result)
3182
3228
  result = LocatedValue.new(value: Namespace.root, location: val[0].location)
3183
3229
 
3184
3230
  result
3185
3231
  end
3186
3232
  .,.,
3187
3233
 
3188
- module_eval(<<'.,.,', 'parser.y', 1055)
3189
- def _reduce_244(val, _values, result)
3234
+ module_eval(<<'.,.,', 'parser.y', 1066)
3235
+ def _reduce_247(val, _values, result)
3190
3236
  namespace = Namespace.parse(val[1].value).absolute!
3191
3237
  result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location)
3192
3238
 
@@ -3194,8 +3240,8 @@ module_eval(<<'.,.,', 'parser.y', 1055)
3194
3240
  end
3195
3241
  .,.,
3196
3242
 
3197
- module_eval(<<'.,.,', 'parser.y', 1059)
3198
- def _reduce_245(val, _values, result)
3243
+ module_eval(<<'.,.,', 'parser.y', 1070)
3244
+ def _reduce_248(val, _values, result)
3199
3245
  namespace = Namespace.parse(val[0].value)
3200
3246
  result = LocatedValue.new(value: namespace, location: val[0].location)
3201
3247