rbs 0.16.0 → 0.20.0

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