rbs 0.16.0 → 0.20.0

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