rbs 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/Rakefile +2 -0
  4. data/core/array.rbs +1 -1
  5. data/core/enumerable.rbs +1 -1
  6. data/core/hash.rbs +13 -5
  7. data/core/io.rbs +3 -3
  8. data/core/module.rbs +1 -1
  9. data/core/numeric.rbs +10 -0
  10. data/core/proc.rbs +1 -1
  11. data/core/random.rbs +4 -2
  12. data/core/range.rbs +2 -2
  13. data/core/struct.rbs +3 -2
  14. data/core/thread.rbs +1 -1
  15. data/docs/CONTRIBUTING.md +5 -3
  16. data/docs/sigs.md +18 -1
  17. data/docs/syntax.md +11 -11
  18. data/lib/rbs.rb +1 -0
  19. data/lib/rbs/ast/annotation.rb +2 -2
  20. data/lib/rbs/ast/comment.rb +2 -2
  21. data/lib/rbs/ast/declarations.rb +37 -22
  22. data/lib/rbs/ast/members.rb +26 -26
  23. data/lib/rbs/cli.rb +3 -0
  24. data/lib/rbs/constant_table.rb +4 -1
  25. data/lib/rbs/definition.rb +1 -1
  26. data/lib/rbs/definition_builder.rb +14 -0
  27. data/lib/rbs/definition_builder/ancestor_builder.rb +1 -0
  28. data/lib/rbs/definition_builder/method_builder.rb +4 -2
  29. data/lib/rbs/location.rb +106 -2
  30. data/lib/rbs/locator.rb +205 -0
  31. data/lib/rbs/method_type.rb +2 -2
  32. data/lib/rbs/parser.rb +1050 -713
  33. data/lib/rbs/parser.y +403 -71
  34. data/lib/rbs/test/hook.rb +8 -2
  35. data/lib/rbs/type_name.rb +2 -3
  36. data/lib/rbs/type_name_resolver.rb +1 -1
  37. data/lib/rbs/types.rb +36 -34
  38. data/lib/rbs/version.rb +1 -1
  39. data/lib/rbs/writer.rb +4 -2
  40. data/sig/annotation.rbs +1 -1
  41. data/sig/cli.rbs +31 -21
  42. data/sig/comment.rbs +1 -1
  43. data/sig/declarations.rbs +106 -21
  44. data/sig/environment.rbs +2 -2
  45. data/sig/location.rbs +84 -3
  46. data/sig/locator.rbs +44 -0
  47. data/sig/members.rbs +76 -12
  48. data/sig/method_builder.rbs +1 -1
  49. data/sig/method_types.rbs +1 -1
  50. data/sig/polyfill.rbs +13 -8
  51. data/sig/rbs.rbs +8 -4
  52. data/sig/typename.rbs +1 -1
  53. data/sig/types.rbs +60 -19
  54. data/sig/util.rbs +0 -4
  55. data/sig/writer.rbs +8 -2
  56. data/stdlib/rubygems/0/requirement.rbs +84 -2
  57. data/stdlib/rubygems/0/version.rbs +2 -1
  58. data/stdlib/shellwords/0/shellwords.rbs +252 -0
  59. data/steep/Gemfile.lock +16 -13
  60. metadata +5 -2
@@ -2,9 +2,11 @@ module RBS
2
2
  class DefinitionBuilder
3
3
  class MethodBuilder
4
4
  class Methods
5
- Definition = Struct.new(:name, :type, :originals, :overloads, :accessibilities, keyword_init: true) do
5
+ Definition = _ = Struct.new(:name, :type, :originals, :overloads, :accessibilities, keyword_init: true) do
6
+ # @implements Definition
7
+
6
8
  def original
7
- originals[0]
9
+ originals.first
8
10
  end
9
11
 
10
12
  def accessibility
data/lib/rbs/location.rb CHANGED
@@ -42,6 +42,10 @@ module RBS
42
42
  @end_loc ||= buffer.pos_to_loc(end_pos)
43
43
  end
44
44
 
45
+ def range
46
+ start_pos...end_pos
47
+ end
48
+
45
49
  def source
46
50
  @source ||= buffer.content[start_pos...end_pos] or raise
47
51
  end
@@ -94,7 +98,7 @@ module RBS
94
98
  loc.start_pos == end_pos
95
99
  end
96
100
 
97
- def to_json(*args)
101
+ def to_json(state = _ = nil)
98
102
  {
99
103
  start: {
100
104
  line: start_line,
@@ -107,7 +111,107 @@ module RBS
107
111
  buffer: {
108
112
  name: name&.to_s
109
113
  }
110
- }.to_json(*args)
114
+ }.to_json(state)
115
+ end
116
+
117
+ def with_children(required: {}, optional: {})
118
+ # @type var required: Hash[Symbol, Range[Integer] | Location]
119
+ # @type var optional: Hash[Symbol, Range[Integer] | Location | nil]
120
+
121
+ this = WithChildren.new(buffer: buffer, start_pos: start_pos, end_pos: end_pos)
122
+
123
+ req = required.transform_values do |value|
124
+ case value
125
+ when Location
126
+ value.range
127
+ else
128
+ value
129
+ end
130
+ end
131
+
132
+ opt = optional.transform_values do |value|
133
+ case value
134
+ when Location
135
+ value.range
136
+ else
137
+ value
138
+ end
139
+ end
140
+
141
+ this.required_children.merge!(req)
142
+ this.optional_children.merge!(opt)
143
+
144
+ this
145
+ end
146
+
147
+ class WithChildren < Location
148
+ attr_reader :required_children, :optional_children
149
+
150
+ def initialize(buffer:, start_pos:, end_pos:)
151
+ super(buffer: buffer, start_pos: start_pos, end_pos: end_pos)
152
+
153
+ @optional_children = {}
154
+ @required_children = {}
155
+ end
156
+
157
+ def initialize_copy(from)
158
+ required_children.merge!(from.required_children)
159
+ optional_children.merge!(from.optional_children)
160
+ self
161
+ end
162
+
163
+ def [](key)
164
+ case
165
+ when required_children.key?(_ = key)
166
+ range = required_children[_ = key]
167
+ Location.new(buffer: buffer, start_pos: range.begin, end_pos: range.end)
168
+ when optional_children.key?(_ = key)
169
+ range = required_children[_ = key] || optional_children[_ = key]
170
+ if range
171
+ Location.new(buffer: buffer, start_pos: range.begin, end_pos: range.end)
172
+ end
173
+ else
174
+ raise "Unknown key given: `#{key}`"
175
+ end
176
+ end
177
+
178
+ def merge_required(hash)
179
+ this = dup
180
+
181
+ h = hash.transform_values do |value|
182
+ case value
183
+ when Range
184
+ value
185
+ when Location
186
+ value.range
187
+ else
188
+ raise
189
+ end
190
+ end
191
+
192
+ this.required_children.merge!(h)
193
+
194
+ this
195
+ end
196
+
197
+ def merge_optional(hash)
198
+ this = dup
199
+
200
+ h = hash.transform_values do |value|
201
+ case value
202
+ when Range
203
+ value
204
+ when Location
205
+ value.range
206
+ else
207
+ nil
208
+ end
209
+ end
210
+
211
+ this.optional_children.merge!(h)
212
+
213
+ this
214
+ end
111
215
  end
112
216
  end
113
217
  end
@@ -0,0 +1,205 @@
1
+ module RBS
2
+ class Locator
3
+ attr_reader :decls
4
+
5
+ def initialize(decls:)
6
+ @decls = decls
7
+ end
8
+
9
+ def buffer
10
+ decls[0].location&.buffer or raise
11
+ end
12
+
13
+ def find(line:, column:)
14
+ pos = buffer.loc_to_pos([line, column])
15
+
16
+ decls.each do |decl|
17
+ array = []
18
+ find_in_decl(pos, decl: decl, array: array) and return array
19
+ end
20
+
21
+ []
22
+ end
23
+
24
+ def find2(line:, column:)
25
+ path = find(line: line, column: column)
26
+
27
+ return if path.empty?
28
+
29
+ hd, *tl = path
30
+ if hd.is_a?(Symbol)
31
+ [hd, tl]
32
+ else
33
+ [nil, path]
34
+ end
35
+ end
36
+
37
+ def find_in_decl(pos, decl:, array:)
38
+ if test_loc(pos, location: decl.location)
39
+ array.unshift(decl)
40
+
41
+ case decl
42
+ when AST::Declarations::Class
43
+ decl.type_params.each do |param|
44
+ if test_loc(pos, location: param.location)
45
+ array.unshift(param)
46
+ find_in_loc(pos, array: array, location: param.location)
47
+ return true
48
+ end
49
+ end
50
+
51
+ if super_class = decl.super_class
52
+ if test_loc(pos, location: super_class.location)
53
+ array.unshift(super_class)
54
+ find_in_loc(pos, array: array, location: super_class.location)
55
+ return true
56
+ end
57
+ end
58
+
59
+ decl.each_decl do |decl_|
60
+ find_in_decl(pos, decl: decl_, array: array) and return true
61
+ end
62
+
63
+ decl.each_member do |member|
64
+ find_in_member(pos, array: array, member: member) and return true
65
+ end
66
+
67
+ when AST::Declarations::Module
68
+ decl.type_params.each do |param|
69
+ if test_loc(pos, location: param.location)
70
+ array.unshift(param)
71
+ find_in_loc(pos, array: array, location: param.location)
72
+ return true
73
+ end
74
+ end
75
+
76
+ decl.self_types.each do |self_type|
77
+ if test_loc(pos, location: self_type.location)
78
+ array.unshift(self_type)
79
+ find_in_loc(pos, array: array, location: self_type.location)
80
+ return true
81
+ end
82
+ end
83
+
84
+ decl.each_decl do |decl_|
85
+ find_in_decl(pos, decl: decl_, array: array) and return true
86
+ end
87
+
88
+ decl.each_member do |member|
89
+ find_in_member(pos, array: array, member: member) and return true
90
+ end
91
+
92
+ when AST::Declarations::Interface
93
+ decl.type_params.each do |param|
94
+ if test_loc(pos, location: param.location)
95
+ array.unshift(param)
96
+ find_in_loc(pos, array: array, location: param.location)
97
+ return true
98
+ end
99
+ end
100
+
101
+ decl.members.each do |member|
102
+ find_in_member(pos, array: array, member: member) and return true
103
+ end
104
+
105
+ when AST::Declarations::Constant, AST::Declarations::Global
106
+ find_in_type(pos, array: array, type: decl.type) and return true
107
+
108
+ when AST::Declarations::Alias
109
+ find_in_type(pos, array: array, type: decl.type) and return true
110
+ end
111
+
112
+ find_in_loc(pos, location: decl.location, array: array)
113
+
114
+ true
115
+ else
116
+ false
117
+ end
118
+ end
119
+
120
+ def find_in_member(pos, member:, array:)
121
+ if test_loc(pos, location: member.location)
122
+ array.unshift(member)
123
+
124
+ case member
125
+ when AST::Members::MethodDefinition
126
+ member.types.each do |method_type|
127
+ find_in_method_type(pos, array: array, method_type: method_type) and return true
128
+ end
129
+ when AST::Members::InstanceVariable, AST::Members::ClassInstanceVariable, AST::Members::ClassVariable
130
+ find_in_type(pos, array: array, type: member.type) and return true
131
+ when AST::Members::AttrReader, AST::Members::AttrWriter, AST::Members::AttrAccessor
132
+ find_in_type(pos, array: array, type: member.type) and return true
133
+ end
134
+
135
+ find_in_loc(pos, location: member.location, array: array)
136
+
137
+ true
138
+ else
139
+ false
140
+ end
141
+ end
142
+
143
+ def find_in_method_type(pos, method_type:, array:)
144
+ if test_loc(pos, location: method_type.location)
145
+ array.unshift(method_type)
146
+
147
+ method_type.each_type do |type|
148
+ find_in_type(pos, array: array, type: type) and break
149
+ end
150
+
151
+ true
152
+ else
153
+ false
154
+ end
155
+ end
156
+
157
+ def find_in_type(pos, type:, array:)
158
+ if test_loc(pos, location: type.location)
159
+ array.unshift(type)
160
+
161
+ type.each_type do |type_|
162
+ find_in_type(pos, array: array, type: type_) and return true
163
+ end
164
+
165
+ find_in_loc(pos, array: array, location: type.location)
166
+
167
+ true
168
+ else
169
+ false
170
+ end
171
+ end
172
+
173
+ def find_in_loc(pos, location:, array:)
174
+ if test_loc(pos, location: location)
175
+ if location.is_a?(Location::WithChildren)
176
+ location.optional_children.each do |key, range|
177
+ if range === pos
178
+ array.unshift(key)
179
+ return true
180
+ end
181
+ end
182
+
183
+ location.required_children.each do |key, range|
184
+ if range === pos
185
+ array.unshift(key)
186
+ return true
187
+ end
188
+ end
189
+ end
190
+
191
+ true
192
+ else
193
+ false
194
+ end
195
+ end
196
+
197
+ def test_loc(pos, location:)
198
+ if location
199
+ location.range === pos
200
+ else
201
+ false
202
+ end
203
+ end
204
+ end
205
+ end
@@ -19,13 +19,13 @@ module RBS
19
19
  other.block == block
20
20
  end
21
21
 
22
- def to_json(*a)
22
+ def to_json(state = _ = nil)
23
23
  {
24
24
  type_params: type_params,
25
25
  type: type,
26
26
  block: block,
27
27
  location: location
28
- }.to_json(*a)
28
+ }.to_json(state)
29
29
  end
30
30
 
31
31
  def sub(s)
data/lib/rbs/parser.rb CHANGED
@@ -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', 1072)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1394)
12
12
 
13
13
  Types = RBS::Types
14
14
  Namespace = RBS::Namespace
@@ -371,6 +371,16 @@ def on_error(token_id, error_value, value_stack)
371
371
  raise SyntaxError.new(token_str: token_to_str(token_id), error_value: error_value, value_stack: value_stack)
372
372
  end
373
373
 
374
+ def split_kw_loc(loc)
375
+ buf = loc.buffer
376
+ start_pos = loc.start_pos
377
+ end_pos = loc.end_pos
378
+ [
379
+ Location.new(buffer: buf, start_pos: start_pos, end_pos: end_pos - 1),
380
+ Location.new(buffer: buf, start_pos: end_pos - 1, end_pos: end_pos)
381
+ ]
382
+ end
383
+
374
384
  class SyntaxError < ParsingError
375
385
  attr_reader :token_str, :error_value, :value_stack
376
386
 
@@ -410,119 +420,119 @@ end
410
420
  ##### State transition tables begin ###
411
421
 
412
422
  clist = [
413
- '354,355,33,356,5,113,37,33,33,42,341,397,49,33,33,353,43,248,339,396',
414
- '40,41,55,56,57,58,59,60,61,62,358,33,63,54,64,65,66,77,67,68,69,83,33',
415
- '32,53,349,343,344,32,32,347,345,348,308,32,32,33,346,82,70,71,72,74',
416
- '76,75,342,351,352,73,78,80,126,32,185,48,84,85,81,86,354,355,33,356',
417
- '32,96,97,98,99,104,49,39,33,33,33,353,207,207,32,186,40,41,55,56,57',
418
- '58,59,60,61,62,79,226,63,54,64,65,66,77,67,68,69,83,53,32,160,349,343',
419
- '344,53,53,347,345,348,32,32,32,227,346,82,70,71,72,74,76,75,342,351',
420
- '352,73,78,80,40,41,161,283,84,85,81,86,354,355,120,356,180,96,97,98',
421
- '99,125,179,101,102,165,103,353,166,330,363,400,284,39,55,56,57,58,59',
422
- '60,61,62,79,401,63,54,64,65,66,77,67,68,69,83,186,186,186,349,343,344',
423
- '402,167,347,345,348,326,40,41,186,346,82,70,71,72,74,76,75,342,351,352',
424
- '73,78,80,168,322,186,170,84,85,81,86,354,355,171,356,172,96,97,98,99',
425
- '2,3,4,40,41,113,353,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,178',
426
- '63,54,64,65,66,77,67,68,69,83,40,41,181,349,343,344,40,41,347,345,348',
427
- '40,41,40,41,346,82,70,71,72,74,76,75,342,351,352,73,78,80,354,355,184',
428
- '356,84,85,81,86,-4,41,-242,187,33,189,117,353,-242,40,41,40,41,113,55',
429
- '56,57,58,59,60,61,62,79,180,63,54,64,65,66,77,67,68,69,83,40,41,190',
430
- '349,343,344,286,287,347,345,348,32,375,376,-104,346,82,70,71,72,74,76',
431
- '75,342,351,352,73,78,80,354,355,-105,356,84,85,81,86,40,41,40,41,-106',
432
- '39,-107,353,391,392,40,41,40,41,55,56,57,58,59,60,61,62,79,-108,63,54',
433
- '64,65,66,77,67,68,69,83,40,41,-109,349,343,344,40,41,347,345,348,40',
434
- '41,40,41,346,82,70,71,72,74,76,75,342,351,352,73,78,80,40,41,-110,-111',
435
- '84,85,81,86,354,355,-112,356,-113,96,97,98,99,-114,48,-129,195,196,197',
436
- '353,198,199,200,208,209,42,55,56,57,58,59,60,61,62,79,210,63,54,64,65',
437
- '66,77,67,68,69,83,228,242,251,349,343,344,252,253,347,345,348,255,257',
438
- '258,42,346,82,70,71,72,74,76,75,342,351,352,73,78,80,354,355,260,356',
439
- '84,85,81,86,260,260,266,42,228,270,274,353,276,278,279,315,274,317,55',
440
- '56,57,58,59,60,61,62,79,278,63,54,64,65,66,77,67,68,69,83,327,328,329',
441
- '349,343,344,332,332,347,345,348,332,362,364,371,346,82,70,71,72,74,76',
442
- '75,342,351,352,73,78,80,372,373,374,377,84,85,81,86,33,379,382,96,97',
443
- '98,99,382,382,395,22,23,21,398,26,-219,25,399,30,406,131,132,133,134',
444
- '135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,407,32,408',
445
- '410,415,28,416,156,417,157,159,418,415,,,,82,70,71,72,74,76,75,,,,73',
446
- '78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,,25,,30,,131',
447
- '132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83',
448
- ',32,,,174,28,,177,,175,,,,,,,82,70,71,72,74,76,75,,,,73,78,80,176,,',
423
+ '349,350,33,351,-4,113,-242,33,33,5,117,336,-242,33,33,348,37,113,42',
424
+ '334,40,41,55,56,57,58,59,60,61,62,353,43,63,54,64,65,66,77,67,68,69',
425
+ '83,33,32,33,344,338,339,32,32,342,340,343,291,32,32,49,341,82,70,71',
426
+ '72,74,76,75,337,346,347,73,78,80,349,350,33,351,84,85,81,86,33,39,405',
427
+ '48,32,33,32,348,104,53,404,40,41,49,55,56,57,58,59,60,61,62,79,33,63',
428
+ '54,64,65,66,77,67,68,69,83,33,32,160,344,338,339,33,32,342,340,343,53',
429
+ '32,322,207,341,82,70,71,72,74,76,75,337,346,347,73,78,80,126,32,161',
430
+ '320,84,85,81,86,349,350,39,351,32,96,97,98,99,53,32,207,180,40,41,348',
431
+ '40,41,179,185,40,41,55,56,57,58,59,60,61,62,79,226,63,54,64,65,66,77',
432
+ '67,68,69,83,39,53,186,344,338,339,281,332,342,340,343,2,3,4,227,341',
433
+ '82,70,71,72,74,76,75,337,346,347,73,78,80,364,396,282,186,84,85,81,86',
434
+ '349,350,120,351,180,96,97,98,99,125,262,101,102,165,103,348,166,186',
435
+ '186,408,40,41,55,56,57,58,59,60,61,62,79,409,63,54,64,65,66,77,67,68',
436
+ '69,83,40,41,186,344,338,339,40,41,342,340,343,40,41,167,186,341,82,70',
437
+ '71,72,74,76,75,337,346,347,73,78,80,40,41,40,41,84,85,81,86,349,350',
438
+ '168,351,170,96,97,98,99,40,41,40,41,40,41,348,40,41,284,285,367,368',
439
+ '55,56,57,58,59,60,61,62,79,171,63,54,64,65,66,77,67,68,69,83,40,41,172',
440
+ '344,338,339,40,41,342,340,343,383,384,40,41,341,82,70,71,72,74,76,75',
441
+ '337,346,347,73,78,80,349,350,113,351,84,85,81,86,40,41,40,41,40,41,178',
442
+ '348,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,181,63,54,64,65,66',
443
+ '77,67,68,69,83,184,41,187,344,338,339,189,180,342,340,343,190,-104,-105',
444
+ '-106,341,82,70,71,72,74,76,75,337,346,347,73,78,80,-107,-108,-109,-110',
445
+ '84,85,81,86,349,350,-111,351,-112,96,97,98,99,-113,-114,48,-129,195',
446
+ '196,348,197,198,199,200,208,209,55,56,57,58,59,60,61,62,79,42,63,54',
447
+ '64,65,66,77,67,68,69,83,210,228,242,344,338,339,251,252,342,340,343',
448
+ '253,255,257,258,341,82,70,71,72,74,76,75,337,346,347,73,78,80,349,350',
449
+ '42,351,84,85,81,86,260,260,260,264,42,228,268,348,272,274,289,290,313',
450
+ '272,55,56,57,58,59,60,61,62,79,315,63,54,64,65,66,77,67,68,69,83,289',
451
+ '328,329,344,338,339,330,355,342,340,343,355,355,363,365,341,82,70,71',
452
+ '72,74,76,75,337,346,347,73,78,80,366,369,371,378,84,85,81,86,33,379',
453
+ '380,96,97,98,99,388,388,388,22,23,21,400,26,-219,25,401,30,402,131,132',
454
+ '133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,403',
455
+ '32,406,407,412,28,413,156,414,157,159,416,419,412,,,82,70,71,72,74,76',
456
+ '75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,,25',
457
+ ',30,,131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67',
458
+ '68,69,83,,32,,,174,28,,177,,175,,,,,,,82,70,71,72,74,76,75,,,,73,78',
459
+ '80,176,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,',
460
+ '131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69',
461
+ '83,,32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,',
449
462
  ',84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133',
450
463
  '134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,',
451
464
  '28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81',
452
465
  '86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135',
453
- '136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156',
454
- ',157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,',
455
- '96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137',
456
- '138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,234,,,159,,',
457
- ',,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99',
466
+ '136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,234',
467
+ ',,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96',
468
+ '97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137,138',
469
+ '142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157,159,,,',
470
+ ',,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99',
458
471
  ',,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16',
459
- '139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157,159,,,,,,82,70',
460
- '71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23',
461
- '21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16,139,130,140',
462
- '141,66,77,67,68,69,83,,32,,,,28,,234,,,159,,,,,,82,70,71,72,74,76,75',
463
- ',,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90,89,91,,,,,,,,55,56,57',
464
- '58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,,192,,193,,',
465
- ',,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81,86,96,97,98,99',
466
- ',,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77',
467
- '67,68,69,83,194,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80',
468
- '96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64',
469
- '65,66,77,67,68,69,83,192,,193,,,,,234,,,159,,,,,,82,70,71,72,74,76,75',
470
- '192,,193,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,40,41,55,56,57,58,59',
471
- '60,61,62,79,,63,54,64,65,66,77,67,68,69,83,194,40,41,,,,,234,,,159,',
472
- ',,,,82,70,71,72,74,76,75,194,,,73,78,80,96,97,98,99,84,85,81,86,,,,',
473
- ',,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,192,',
474
- '193,192,,193,192,,193,,,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84',
475
- '85,81,86,,,,,,,,40,41,,40,41,,40,41,-242,,33,,117,,-242,,,303,304,113',
476
- ',,194,,,194,,,194,,-242,,33,,117,,-242,,305,303,304,113,,,,,,300,299',
477
- ',,32,-242,,33,,117,,-242,,305,303,304,113,,,,291,,300,299,,174,32,,177',
478
- ',175,,,326,,305,,,,,,,314,,300,299,,33,32,,176,,322,323,319,320,321',
479
- '22,23,21,324,26,,25,318,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
480
- ',,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10,13,14,15,16',
481
- '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
472
+ '139,130,140,141,66,77,67,68,69,83,,32,,,,28,,234,,,159,,,,,,82,70,71',
473
+ '72,74,76,75,,,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90,89,91,,,,',
474
+ ',,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,',
475
+ ',192,,193,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81,86',
476
+ '96,97,98,99,,,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61,62,79,,63,54',
477
+ '64,65,66,77,67,68,69,83,194,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,,95',
478
+ '94,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62',
479
+ '79,,63,54,64,65,66,77,67,68,69,83,192,,193,,,,,234,,,159,,,,,,82,70',
480
+ '71,72,74,76,75,192,,193,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,40,41',
481
+ '55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,194,40,41',
482
+ ',,,,234,,,159,,,,,,82,70,71,72,74,76,75,194,,,73,78,80,96,97,98,99,84',
483
+ '85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68',
484
+ '69,83,192,,193,192,,193,192,,193,,,,,,,,82,70,71,72,74,76,75,,,,73,78',
485
+ '80,,,,,84,85,81,86,,,,,,,,40,41,,40,41,,40,41,-242,,33,,117,,-242,,',
486
+ '310,311,113,,,194,,,194,,,194,,-242,,33,,117,,-242,,312,310,311,113',
487
+ ',,,,,307,306,,,32,-242,,33,,117,,-242,,312,310,311,113,,,,298,,307,306',
488
+ ',174,32,,177,,175,,,322,,312,,,,,,,316,,307,306,,33,32,,176,,320,326',
489
+ '323,324,325,22,23,21,327,26,,25,317,30,,8,12,19,20,9,10,13,14,15,16',
490
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10',
482
491
  '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12',
483
492
  '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25',
484
493
  ',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23',
485
494
  '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32',
486
495
  ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27',
487
496
  ',,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16',
488
- '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,-246,30,,8,12,19,20,9',
489
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
490
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
491
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
492
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
493
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
494
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
495
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
496
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
497
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
498
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
499
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
500
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
501
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
502
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
503
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
504
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
505
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
506
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
507
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
508
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
509
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
510
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
511
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
512
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
513
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
514
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
515
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
516
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
517
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
518
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26',
519
- ',25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22',
520
- '23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,',
521
- '32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11',
522
- '27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15',
523
- '16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9',
524
- '10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8',
525
- '12,19,20,9,10,13,14,15,16,17,18,11,27,,,,,,,,32,,,,28' ]
497
+ '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10',
498
+ '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,-246,30,',
499
+ '8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,',
500
+ '26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28',
501
+ '22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,',
502
+ ',,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
503
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
504
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
505
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
506
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
507
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
508
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
509
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
510
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
511
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
512
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
513
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
514
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
515
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
516
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
517
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
518
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
519
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
520
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
521
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
522
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
523
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
524
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
525
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
526
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
527
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
528
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,',
529
+ '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33',
530
+ ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18',
531
+ '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14',
532
+ '15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20',
533
+ '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30',
534
+ ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21',
535
+ ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,,,,,,32,,,,28' ]
526
536
  racc_action_table = arr = ::Array.new(3044, nil)
527
537
  idx = 0
528
538
  clist.each do |str|
@@ -533,104 +543,104 @@ clist = [
533
543
  end
534
544
 
535
545
  clist = [
536
- '326,326,48,326,1,280,5,177,218,7,325,382,28,219,220,326,24,219,325,382',
537
- '44,44,326,326,326,326,326,326,326,326,326,248,326,326,326,326,326,326',
538
- '326,326,326,326,270,48,28,326,326,326,177,218,326,326,326,280,219,220',
539
- '276,326,326,326,326,326,326,326,326,326,326,326,326,326,326,47,248,123',
540
- '27,326,326,326,326,333,333,278,333,270,333,333,333,333,32,119,35,322',
541
- '323,324,333,160,208,276,123,47,47,333,333,333,333,333,333,333,333,333',
542
- '183,333,333,333,333,333,333,333,333,333,333,119,278,51,333,333,333,160',
543
- '208,333,333,333,322,323,324,183,333,333,333,333,333,333,333,333,333',
544
- '333,333,333,333,333,6,6,51,271,333,333,333,333,334,334,36,334,116,334',
545
- '334,334,334,46,116,31,31,87,31,334,89,307,331,387,271,6,334,334,334',
546
- '334,334,334,334,334,334,388,334,334,334,334,334,334,334,334,334,334',
547
- '307,331,387,334,334,334,389,90,334,334,334,313,169,169,388,334,334,334',
548
- '334,334,334,334,334,334,334,334,334,334,334,91,313,389,93,334,334,334',
549
- '334,335,335,94,335,95,335,335,335,335,0,0,0,188,188,113,335,212,212',
550
- '213,213,214,214,335,335,335,335,335,335,335,335,335,115,335,335,335',
551
- '335,335,335,335,335,335,335,215,215,117,335,335,335,216,216,335,335',
552
- '335,217,217,223,223,335,335,335,335,335,335,335,335,335,335,335,335',
553
- '335,335,359,359,120,359,335,335,335,335,34,121,34,124,34,127,34,359',
554
- '34,224,224,225,225,34,359,359,359,359,359,359,359,359,359,128,359,359',
555
- '359,359,359,359,359,359,359,359,267,267,129,359,359,359,273,273,359',
556
- '359,359,34,350,350,130,359,359,359,359,359,359,359,359,359,359,359,359',
557
- '359,359,377,377,131,377,359,359,359,359,360,360,361,361,132,34,133,377',
558
- '374,374,380,380,383,383,377,377,377,377,377,377,377,377,377,134,377',
559
- '377,377,377,377,377,377,377,377,377,385,385,135,377,377,377,394,394',
560
- '377,377,377,409,409,411,411,377,377,377,377,377,377,377,377,377,377',
561
- '377,377,377,377,412,412,136,137,377,377,377,377,390,390,138,390,139',
562
- '390,390,390,390,140,141,142,145,146,148,390,150,153,154,161,162,163',
563
- '390,390,390,390,390,390,390,390,390,164,390,390,390,390,390,390,390',
564
- '390,390,390,190,206,221,390,390,390,222,227,390,390,390,232,243,244',
565
- '245,390,390,390,390,390,390,390,390,390,390,390,390,390,390,417,417',
566
- '246,417,390,390,390,390,247,249,250,254,257,259,260,417,261,262,264',
567
- '282,284,285,417,417,417,417,417,417,417,417,417,289,417,417,417,417',
568
- '417,417,417,417,417,417,303,304,305,417,417,417,319,320,417,417,417',
569
- '321,329,332,336,417,417,417,417,417,417,417,417,417,417,417,417,417',
570
- '417,337,338,340,358,417,417,417,417,49,362,366,49,49,49,49,368,370,381',
571
- '49,49,49,384,49,49,49,386,49,391,49,49,49,49,49,49,49,49,49,49,49,49',
572
- '49,49,49,49,49,49,49,49,392,49,393,397,403,49,405,49,408,49,49,414,418',
573
- ',,,49,49,49,49,49,49,49,,,,49,49,49,,,,,49,49,49,49,156,,,156,156,156',
574
- '156,,,,156,156,156,,156,,156,,156,,156,156,156,156,156,156,156,156,156',
575
- '156,156,156,156,156,156,156,156,156,156,156,,156,,,114,156,,114,,114',
576
- ',,,,,,156,156,156,156,156,156,156,,,,156,156,156,114,,,,156,156,156',
577
- '156,196,,,196,196,196,196,,,,196,196,196,,196,196,196,,196,,196,196',
546
+ '322,322,48,322,34,278,34,177,34,1,34,321,34,218,219,322,5,34,7,321,44',
547
+ '44,322,322,322,322,322,322,322,322,322,24,322,322,322,322,322,322,322',
548
+ '322,322,322,220,48,262,322,322,322,177,34,322,322,322,278,218,219,28',
549
+ '322,322,322,322,322,322,322,322,322,322,322,322,322,322,354,354,268',
550
+ '354,322,322,322,322,274,34,388,27,220,289,262,354,32,28,388,169,169',
551
+ '119,354,354,354,354,354,354,354,354,354,320,354,354,354,354,354,354',
552
+ '354,354,354,354,326,268,51,354,354,354,327,274,354,354,354,119,289,296',
553
+ '160,354,354,354,354,354,354,354,354,354,354,354,354,354,354,47,320,51',
554
+ '296,354,354,354,354,356,356,35,356,326,356,356,356,356,160,327,208,116',
555
+ '6,6,356,188,188,116,123,47,47,356,356,356,356,356,356,356,356,356,183',
556
+ '356,356,356,356,356,356,356,356,356,356,6,208,123,356,356,356,269,319',
557
+ '356,356,356,0,0,0,183,356,356,356,356,356,356,356,356,356,356,356,356',
558
+ '356,356,331,381,269,319,356,356,356,356,357,357,36,357,248,357,357,357',
559
+ '357,46,248,31,31,87,31,357,89,331,381,393,212,212,357,357,357,357,357',
560
+ '357,357,357,357,394,357,357,357,357,357,357,357,357,357,357,213,213',
561
+ '393,357,357,357,214,214,357,357,357,215,215,90,394,357,357,357,357,357',
562
+ '357,357,357,357,357,357,357,357,357,216,216,217,217,357,357,357,357',
563
+ '358,358,91,358,93,358,358,358,358,223,223,224,224,225,225,358,265,265',
564
+ '271,271,345,345,358,358,358,358,358,358,358,358,358,94,358,358,358,358',
565
+ '358,358,358,358,358,358,361,361,95,358,358,358,362,362,358,358,358,366',
566
+ '366,386,386,358,358,358,358,358,358,358,358,358,358,358,358,358,358',
567
+ '369,369,113,369,358,358,358,358,389,389,391,391,395,395,115,369,415',
568
+ '415,417,417,418,418,369,369,369,369,369,369,369,369,369,117,369,369',
569
+ '369,369,369,369,369,369,369,369,120,121,124,369,369,369,127,128,369',
570
+ '369,369,129,130,131,132,369,369,369,369,369,369,369,369,369,369,369',
571
+ '369,369,369,133,134,135,136,369,369,369,369,382,382,137,382,138,382',
572
+ '382,382,382,139,140,141,142,145,146,382,148,150,153,154,161,162,382',
573
+ '382,382,382,382,382,382,382,382,163,382,382,382,382,382,382,382,382',
574
+ '382,382,164,190,206,382,382,382,221,222,382,382,382,227,232,243,244',
575
+ '382,382,382,382,382,382,382,382,382,382,382,382,382,382,414,414,245',
576
+ '414,382,382,382,382,246,247,249,250,254,257,259,414,260,261,275,277',
577
+ '280,282,414,414,414,414,414,414,414,414,414,283,414,414,414,414,414',
578
+ '414,414,414,414,414,287,310,311,414,414,414,312,323,414,414,414,324',
579
+ '325,330,333,414,414,414,414,414,414,414,414,414,414,414,414,414,414',
580
+ '335,353,355,359,414,414,414,414,49,360,363,49,49,49,49,373,375,377,49',
581
+ '49,49,383,49,49,49,384,49,385,49,49,49,49,49,49,49,49,49,49,49,49,49',
582
+ '49,49,49,49,49,49,49,387,49,390,392,397,49,399,49,402,49,49,405,411',
583
+ '419,,,49,49,49,49,49,49,49,,,,49,49,49,,,,,49,49,49,49,156,,,156,156',
584
+ '156,156,,,,156,156,156,,156,,156,,156,,156,156,156,156,156,156,156,156',
585
+ '156,156,156,156,156,156,156,156,156,156,156,156,,156,,,114,156,,114',
586
+ ',114,,,,,,,156,156,156,156,156,156,156,,,,156,156,156,114,,,,156,156',
587
+ '156,156,196,,,196,196,196,196,,,,196,196,196,,196,196,196,,196,,196',
578
588
  '196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196',
579
- '196,,196,,,,196,,196,,196,196,,,,,,196,196,196,196,196,196,196,,,,196',
580
- '196,196,,,,,196,196,196,196,197,,,197,197,197,197,,,,197,197,197,,197',
581
- '197,197,,197,,197,197,197,197,197,197,197,197,197,197,197,197,197,197',
582
- '197,197,197,197,197,197,,197,,,,197,,197,,197,197,,,,,,197,197,197,197',
583
- '197,197,197,,,,197,197,197,,,,,197,197,197,197,198,,,198,198,198,198',
584
- ',,,198,198,198,,198,198,198,,198,,198,198,198,198,198,198,198,198,198',
585
- '198,198,198,198,198,198,198,198,198,198,198,,198,,,,198,,198,,,198,',
586
- ',,,,198,198,198,198,198,198,198,,,,198,198,198,,,,,198,198,198,198,207',
587
- ',,207,207,207,207,,,,207,207,207,,207,207,207,,207,,207,207,207,207',
588
- '207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,,207',
589
- ',,,207,,207,,207,207,,,,,,207,207,207,207,207,207,207,,,,207,207,207',
590
- ',,,,207,207,207,207,255,,,255,255,255,255,,,,255,255,255,,255,255,255',
591
- ',255,,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255',
592
- '255,255,255,255,,255,,,,255,,255,,,255,,,,,,255,255,255,255,255,255',
593
- '255,,,,255,255,255,,,,,255,255,255,255,30,30,30,30,,,,30,30,30,,,,,',
594
- ',,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30,30,30,,,,,,,,',
595
- '143,,143,,,,,,30,30,30,30,30,30,30,,30,30,30,30,30,,,,,30,30,30,30,165',
596
- '165,165,165,,,,165,165,165,,,,,,143,143,165,165,165,165,165,165,165',
597
- '165,165,,165,165,165,165,165,165,165,165,165,165,143,,,,,,,,,,,,,,,',
598
- '165,165,165,165,165,165,165,,165,165,165,165,165,199,199,199,199,165',
599
- '165,165,165,,,,,,,,,,199,199,199,199,199,199,199,199,199,,199,199,199',
600
- '199,199,199,199,199,199,199,201,,201,,,,,199,,,199,,,,,,199,199,199',
601
- '199,199,199,199,203,,203,199,199,199,200,200,200,200,199,199,199,199',
602
- ',,,,,,,201,201,200,200,200,200,200,200,200,200,200,,200,200,200,200',
603
- '200,200,200,200,200,200,201,203,203,,,,,200,,,200,,,,,,200,200,200,200',
604
- '200,200,200,203,,,200,200,200,234,234,234,234,200,200,200,200,,,,,,',
605
- ',,,234,234,234,234,234,234,234,234,234,,234,234,234,234,234,234,234',
606
- '234,234,234,204,,204,205,,205,238,,238,,,,,,,,234,234,234,234,234,234',
607
- '234,,,,234,234,234,,,,,234,234,234,234,,,,,,,,204,204,,205,205,,238',
608
- '238,277,,277,,277,,277,,,277,277,277,,,204,,,205,,,238,,281,,281,,281',
609
- ',281,,277,281,281,281,,,,,,277,277,,,277,288,,288,,288,,288,,281,288',
610
- '288,288,,,,277,,281,281,,290,281,,290,,290,,,290,,288,,,,,,,281,,288',
611
- '288,,2,288,,290,,290,290,290,290,290,2,2,2,290,2,,2,288,2,,2,2,2,2,2',
612
- '2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25,,25,25,25,25',
613
- '25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26,,26,,26,,26',
614
- ',26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,,,,26,40,40,40',
615
- ',40,,40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,,41,,,,,40,',
616
- ',,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41,41,41,41,41',
617
- ',,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43,43,43,43,43',
618
- '43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53,53,53,53,53',
619
- '53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53,92,92,92,,92,,92,,92,,92,92',
620
- '92,92,92,92,92,92,92,92,92,92,92,92,,,125,,,,,92,,,,92,125,125,125,',
621
- '125,,125,125,125,,125,125,125,125,125,125,125,125,125,125,125,125,125',
622
- '125,,,157,,,,,125,,,,125,157,157,157,,157,,157,,157,,157,157,157,157',
623
- '157,157,157,157,157,157,157,157,157,157,,,158,,,,,157,,,,157,158,158',
624
- '158,,158,,158,,158,,158,158,158,158,158,158,158,158,158,158,158,158',
625
- '158,158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159,,159,159,159',
626
- '159,159,159,159,159,159,159,159,159,159,159,,,166,,,,,159,,,,159,166',
627
- '166,166,,166,,166,,166,,166,166,166,166,166,166,166,166,166,166,166',
628
- '166,166,166,,,167,,,,,166,,,,166,167,167,167,,167,,167,,167,,167,167',
629
- '167,167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167,,,,167',
630
- '168,168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168,168',
631
- '168,168,168,168,,,170,,,,,168,,,,168,170,170,170,,170,,170,,170,,170',
632
- '170,170,170,170,170,170,170,170,170,170,170,170,170,,,171,,,,,170,,',
633
- ',170,171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171',
589
+ '196,196,,196,,,,196,,196,,196,196,,,,,,196,196,196,196,196,196,196,',
590
+ ',,196,196,196,,,,,196,196,196,196,197,,,197,197,197,197,,,,197,197,197',
591
+ ',197,197,197,,197,,197,197,197,197,197,197,197,197,197,197,197,197,197',
592
+ '197,197,197,197,197,197,197,,197,,,,197,,197,,197,197,,,,,,197,197,197',
593
+ '197,197,197,197,,,,197,197,197,,,,,197,197,197,197,198,,,198,198,198',
594
+ '198,,,,198,198,198,,198,198,198,,198,,198,198,198,198,198,198,198,198',
595
+ '198,198,198,198,198,198,198,198,198,198,198,198,,198,,,,198,,198,,,198',
596
+ ',,,,,198,198,198,198,198,198,198,,,,198,198,198,,,,,198,198,198,198',
597
+ '207,,,207,207,207,207,,,,207,207,207,,207,207,207,,207,,207,207,207',
598
+ '207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207',
599
+ ',207,,,,207,,207,,207,207,,,,,,207,207,207,207,207,207,207,,,,207,207',
600
+ '207,,,,,207,207,207,207,255,,,255,255,255,255,,,,255,255,255,,255,255',
601
+ '255,,255,,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255',
602
+ '255,255,255,255,255,,255,,,,255,,255,,,255,,,,,,255,255,255,255,255',
603
+ '255,255,,,,255,255,255,,,,,255,255,255,255,30,30,30,30,,,,30,30,30,',
604
+ ',,,,,,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30,30,30,,,,',
605
+ ',,,,143,,143,,,,,,30,30,30,30,30,30,30,,30,30,30,30,30,,,,,30,30,30',
606
+ '30,165,165,165,165,,,,165,165,165,,,,,,143,143,165,165,165,165,165,165',
607
+ '165,165,165,,165,165,165,165,165,165,165,165,165,165,143,,,,,,,,,,,',
608
+ ',,,,165,165,165,165,165,165,165,,165,165,165,165,165,199,199,199,199',
609
+ '165,165,165,165,,,,,,,,,,199,199,199,199,199,199,199,199,199,,199,199',
610
+ '199,199,199,199,199,199,199,199,201,,201,,,,,199,,,199,,,,,,199,199',
611
+ '199,199,199,199,199,203,,203,199,199,199,200,200,200,200,199,199,199',
612
+ '199,,,,,,,,201,201,200,200,200,200,200,200,200,200,200,,200,200,200',
613
+ '200,200,200,200,200,200,200,201,203,203,,,,,200,,,200,,,,,,200,200,200',
614
+ '200,200,200,200,203,,,200,200,200,234,234,234,234,200,200,200,200,,',
615
+ ',,,,,,,234,234,234,234,234,234,234,234,234,,234,234,234,234,234,234',
616
+ '234,234,234,234,204,,204,205,,205,238,,238,,,,,,,,234,234,234,234,234',
617
+ '234,234,,,,234,234,234,,,,,234,234,234,234,,,,,,,,204,204,,205,205,',
618
+ '238,238,279,,279,,279,,279,,,279,279,279,,,204,,,205,,,238,,286,,286',
619
+ ',286,,286,,279,286,286,286,,,,,,279,279,,,279,288,,288,,288,,288,,286',
620
+ '288,288,288,,,,279,,286,286,,297,286,,297,,297,,,297,,288,,,,,,,286',
621
+ ',288,288,,2,288,,297,,297,297,297,297,297,2,2,2,297,2,,2,288,2,,2,2',
622
+ '2,2,2,2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25,,25,25',
623
+ '25,25,25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26,,26,',
624
+ '26,,26,,26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,,,,26',
625
+ '40,40,40,,40,,40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,,41',
626
+ ',,,,40,,,,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41,41',
627
+ '41,41,41,,,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43,43',
628
+ '43,43,43,43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53,53',
629
+ '53,53,53,53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53,92,92,92,,92,,92',
630
+ ',92,,92,92,92,92,92,92,92,92,92,92,92,92,92,92,,,125,,,,,92,,,,92,125',
631
+ '125,125,,125,,125,125,125,,125,125,125,125,125,125,125,125,125,125,125',
632
+ '125,125,125,,,157,,,,,125,,,,125,157,157,157,,157,,157,,157,,157,157',
633
+ '157,157,157,157,157,157,157,157,157,157,157,157,,,158,,,,,157,,,,157',
634
+ '158,158,158,,158,,158,,158,,158,158,158,158,158,158,158,158,158,158',
635
+ '158,158,158,158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159,,159',
636
+ '159,159,159,159,159,159,159,159,159,159,159,159,159,,,166,,,,,159,,',
637
+ ',159,166,166,166,,166,,166,,166,,166,166,166,166,166,166,166,166,166',
638
+ '166,166,166,166,166,,,167,,,,,166,,,,166,167,167,167,,167,,167,,167',
639
+ ',167,167,167,167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167',
640
+ ',,,167,168,168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168',
641
+ '168,168,168,168,168,,,170,,,,,168,,,,168,170,170,170,,170,,170,,170',
642
+ ',170,170,170,170,170,170,170,170,170,170,170,170,170,170,,,171,,,,,170',
643
+ ',,,170,171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171',
634
644
  '171,171,171,171,171,,,172,,,,,171,,,,171,172,172,172,,172,,172,,172',
635
645
  ',172,172,172,172,172,172,172,172,172,172,172,172,172,172,,,178,,,,,172',
636
646
  ',,,172,178,178,178,,178,,178,,178,,178,178,178,178,178,178,178,178,178',
@@ -644,29 +654,29 @@ clist = [
644
654
  ',209,209,209,209,209,209,209,209,209,209,209,209,209,209,,,228,,,,,209',
645
655
  ',,,209,228,228,228,,228,,228,,228,,228,228,228,228,228,228,228,228,228',
646
656
  '228,228,228,228,228,,,251,,,,,228,,,,228,251,251,251,,251,,251,,251',
647
- ',251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,279,,,,,251',
648
- ',,,251,279,279,279,,279,,279,,279,,279,279,279,279,279,279,279,279,279',
649
- '279,279,279,279,279,,,315,,,,,279,,,,279,315,315,315,,315,,315,,315',
650
- ',315,315,315,315,315,315,315,315,315,315,315,315,315,315,,,327,,,,,315',
651
- ',,,315,327,327,327,,327,,327,,327,,327,327,327,327,327,327,327,327,327',
652
- '327,327,327,327,327,,,328,,,,,327,,,,327,328,328,328,,328,,328,,328',
653
- ',328,328,328,328,328,328,328,328,328,328,328,328,328,328,,,365,,,,,328',
654
- ',,,328,365,365,365,,365,,365,,365,,365,365,365,365,365,365,365,365,365',
655
- '365,365,365,365,365,,,367,,,,,365,,,,365,367,367,367,,367,,367,,367',
656
- ',367,367,367,367,367,367,367,367,367,367,367,367,367,367,,,369,,,,,367',
657
- ',,,367,369,369,369,,369,,369,,369,,369,369,369,369,369,369,369,369,369',
658
- '369,369,369,369,369,,,371,,,,,369,,,,369,371,371,371,,371,,371,,371',
659
- ',371,371,371,371,371,371,371,371,371,371,371,371,371,371,,,372,,,,,371',
660
- ',,,371,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372',
661
- '372,372,372,372,372,,,373,,,,,372,,,,372,373,373,373,,373,,373,,373',
662
- ',373,373,373,373,373,373,373,373,373,373,373,373,373,373,,,379,,,,,373',
663
- ',,,373,379,379,379,,379,,379,,379,,379,379,379,379,379,379,379,379,379',
664
- '379,379,379,379,379,,,395,,,,,379,,,,379,395,395,395,,395,,395,,395',
665
- ',395,395,395,395,395,395,395,395,395,395,395,395,395,395,,,398,,,,,395',
666
- ',,,395,398,398,398,,398,,398,,398,,398,398,398,398,398,398,398,398,398',
667
- '398,398,398,398,398,,,399,,,,,398,,,,398,399,399,399,,399,,399,,399',
668
- ',399,399,399,399,399,399,399,399,399,399,399,399,399,399,,,,,,,,399',
669
- ',,,399' ]
657
+ ',251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,290,,,,,251',
658
+ ',,,251,290,290,290,,290,,290,,290,,290,290,290,290,290,290,290,290,290',
659
+ '290,290,290,290,290,,,313,,,,,290,,,,290,313,313,313,,313,,313,,313',
660
+ ',313,313,313,313,313,313,313,313,313,313,313,313,313,313,,,328,,,,,313',
661
+ ',,,313,328,328,328,,328,,328,,328,,328,328,328,328,328,328,328,328,328',
662
+ '328,328,328,328,328,,,329,,,,,328,,,,328,329,329,329,,329,,329,,329',
663
+ ',329,329,329,329,329,329,329,329,329,329,329,329,329,329,,,365,,,,,329',
664
+ ',,,329,365,365,365,,365,,365,,365,,365,365,365,365,365,365,365,365,365',
665
+ '365,365,365,365,365,,,372,,,,,365,,,,365,372,372,372,,372,,372,,372',
666
+ ',372,372,372,372,372,372,372,372,372,372,372,372,372,372,,,374,,,,,372',
667
+ ',,,372,374,374,374,,374,,374,,374,,374,374,374,374,374,374,374,374,374',
668
+ '374,374,374,374,374,,,376,,,,,374,,,,374,376,376,376,,376,,376,,376',
669
+ ',376,376,376,376,376,376,376,376,376,376,376,376,376,376,,,378,,,,,376',
670
+ ',,,376,378,378,378,,378,,378,,378,,378,378,378,378,378,378,378,378,378',
671
+ '378,378,378,378,378,,,379,,,,,378,,,,378,379,379,379,,379,,379,,379',
672
+ ',379,379,379,379,379,379,379,379,379,379,379,379,379,379,,,380,,,,,379',
673
+ ',,,379,380,380,380,,380,,380,,380,,380,380,380,380,380,380,380,380,380',
674
+ '380,380,380,380,380,,,403,,,,,380,,,,380,403,403,403,,403,,403,,403',
675
+ ',403,403,403,403,403,403,403,403,403,403,403,403,403,403,,,406,,,,,403',
676
+ ',,,403,406,406,406,,406,,406,,406,,406,406,406,406,406,406,406,406,406',
677
+ '406,406,406,406,406,,,407,,,,,406,,,,406,407,407,407,,407,,407,,407',
678
+ ',407,407,407,407,407,407,407,407,407,407,407,407,407,407,,,,,,,,407',
679
+ ',,,407' ]
670
680
  racc_action_check = arr = ::Array.new(3044, nil)
671
681
  idx = 0
672
682
  clist.each do |str|
@@ -677,55 +687,55 @@ clist = [
677
687
  end
678
688
 
679
689
  racc_action_pointer = [
680
- 173, 4, 1590, nil, nil, 6, 103, -42, nil, nil,
690
+ 130, 9, 1590, nil, nil, 16, 116, -33, nil, nil,
681
691
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
682
- nil, nil, nil, nil, -4, 1626, 1662, 56, -6, nil,
683
- 1140, 167, 84, nil, 316, 14, 140, nil, nil, nil,
684
- 1698, 1734, nil, 1770, -27, nil, 121, 52, -2, 604,
685
- nil, 101, nil, 1806, nil, nil, nil, nil, nil, nil,
692
+ nil, nil, nil, nil, 11, 1626, 1662, 64, 38, nil,
693
+ 1140, 238, 83, nil, 4, 76, 211, nil, nil, nil,
694
+ 1698, 1734, nil, 1770, -27, nil, 192, 123, -2, 604,
695
+ nil, 93, nil, 1806, nil, nil, nil, nil, nil, nil,
686
696
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
687
697
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
688
- nil, nil, nil, nil, nil, nil, nil, 125, nil, 119,
689
- 152, 174, 1842, 188, 195, 197, nil, nil, nil, nil,
698
+ nil, nil, nil, nil, nil, nil, nil, 196, nil, 190,
699
+ 229, 255, 1842, 268, 295, 308, nil, nil, nil, nil,
690
700
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
691
- nil, nil, nil, 238, 694, 224, 160, 237, nil, 71,
692
- 308, 269, nil, 52, 298, 1878, nil, 302, 337, 333,
693
- 320, 337, 347, 349, 366, 379, 408, 409, 416, 418,
694
- 423, 450, 425, 1189, nil, 426, 425, nil, 426, nil,
695
- 428, nil, nil, 429, 430, nil, 681, 1914, 1950, 1986,
696
- 77, 455, 428, 428, 466, 1214, 2022, 2058, 2094, 165,
701
+ nil, nil, nil, 368, 694, 349, 160, 366, nil, 74,
702
+ 419, 374, nil, 148, 402, 1878, nil, 408, 426, 413,
703
+ 389, 390, 391, 406, 407, 408, 409, 416, 418, 423,
704
+ 424, 451, 426, 1189, nil, 427, 426, nil, 428, nil,
705
+ 429, nil, nil, 430, 431, nil, 681, 1914, 1950, 1986,
706
+ 109, 456, 429, 438, 477, 1214, 2022, 2058, 2094, 43,
697
707
  2130, 2166, 2202, nil, nil, nil, nil, 3, 2238, 2274,
698
- nil, 2310, nil, 89, nil, nil, 2346, nil, 202, nil,
699
- 450, nil, nil, nil, nil, nil, 758, 835, 912, 1280,
700
- 1346, 1321, 2382, 1344, 1453, 1456, 478, 989, 78, 2418,
701
- nil, nil, 206, 208, 210, 232, 238, 243, 4, 9,
702
- 10, 446, 503, 245, 278, 280, nil, 505, 2454, nil,
703
- nil, nil, 465, nil, 1412, nil, nil, nil, 1459, nil,
704
- nil, nil, nil, 493, 490, 463, 511, 517, 27, 518,
705
- 534, 2490, nil, nil, 489, 1066, nil, 491, nil, 483,
706
- 464, 501, 500, nil, 527, nil, nil, 303, nil, nil,
707
- 38, 132, nil, 279, nil, nil, 52, 1506, 77, 2526,
708
- -8, 1528, 528, nil, 470, 548, nil, nil, 1550, 514,
709
- 1537, nil, nil, nil, nil, nil, nil, nil, nil, nil,
710
- nil, nil, nil, 527, 528, 516, nil, 154, nil, nil,
711
- nil, nil, nil, 168, nil, 2562, nil, nil, nil, 545,
712
- 546, 550, 87, 88, 89, -62, -2, 2598, 2634, 572,
713
- nil, 155, 527, 77, 156, 235, 565, 580, 581, nil,
714
- 563, nil, nil, nil, nil, nil, nil, nil, nil, nil,
715
- 311, nil, nil, nil, nil, nil, nil, nil, 546, 306,
716
- 340, 342, 565, nil, nil, 2670, 592, 2706, 597, 2742,
717
- 598, 2778, 2814, 2850, 363, nil, nil, 377, nil, 2886,
718
- 350, 573, 0, 352, 577, 374, 581, 156, 168, 185,
719
- 456, 570, 591, 618, 380, 2922, nil, 632, 2958, 2994,
720
- nil, nil, nil, 594, nil, 610, nil, nil, 599, 385,
721
- nil, 387, 403, nil, 612, nil, nil, 527, 602, nil,
722
- nil ]
708
+ nil, 2310, nil, 160, nil, nil, 2346, nil, 119, nil,
709
+ 451, nil, nil, nil, nil, nil, 758, 835, 912, 1280,
710
+ 1346, 1321, 2382, 1344, 1453, 1456, 479, 989, 143, 2418,
711
+ nil, nil, 202, 224, 230, 235, 253, 255, 9, 10,
712
+ 38, 450, 504, 270, 272, 274, nil, 509, 2454, nil,
713
+ nil, nil, 466, nil, 1412, nil, nil, nil, 1459, nil,
714
+ nil, nil, nil, 494, 491, 480, 517, 518, 231, 519,
715
+ 535, 2490, nil, nil, 490, 1066, nil, 492, nil, 484,
716
+ 466, 502, 40, nil, nil, 277, nil, nil, 69, 177,
717
+ nil, 249, nil, nil, 75, 501, nil, 528, -8, 1506,
718
+ 529, nil, 471, 558, nil, nil, 1528, 525, 1550, 80,
719
+ 2526, nil, nil, nil, nil, nil, 83, 1537, nil, nil,
720
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
721
+ 528, 529, 520, 2562, nil, nil, nil, nil, nil, 178,
722
+ 98, -61, -2, 546, 550, 551, 109, 115, 2598, 2634,
723
+ 573, 200, nil, 565, nil, 561, nil, nil, nil, nil,
724
+ nil, nil, nil, nil, nil, 277, nil, nil, nil, nil,
725
+ nil, nil, nil, 544, 69, 545, 148, 227, 306, 583,
726
+ 589, 303, 309, 566, nil, 2670, 329, nil, nil, 377,
727
+ nil, nil, 2706, 597, 2742, 598, 2778, 599, 2814, 2850,
728
+ 2886, 201, 456, 564, 568, 595, 316, 604, 70, 340,
729
+ 606, 342, 607, 227, 239, 344, nil, 594, nil, 610,
730
+ nil, nil, 599, 2922, nil, 640, 2958, 2994, nil, nil,
731
+ nil, 613, nil, nil, 527, 348, nil, 350, 352, 603,
732
+ nil, nil ]
723
733
 
724
734
  racc_action_default = [
725
735
  -248, -248, -242, -6, -15, -248, -4, -157, -160, -161,
726
736
  -162, -163, -164, -165, -166, -167, -168, -169, -170, -171,
727
737
  -172, -173, -174, -175, -176, -242, -242, -248, -80, -184,
728
- -248, -248, -243, -245, -16, -4, -147, 421, -1, -5,
738
+ -248, -248, -243, -245, -16, -4, -147, 422, -1, -5,
729
739
  -242, -242, -183, -242, -185, -178, -247, -248, -242, -242,
730
740
  -182, -248, -204, -242, -104, -105, -106, -107, -108, -109,
731
741
  -110, -111, -112, -113, -114, -115, -116, -117, -118, -119,
@@ -746,127 +756,129 @@ racc_action_default = [
746
756
  -187, -189, -190, -191, -192, -194, -195, -196, -242, -242,
747
757
  -242, -248, -248, -154, -155, -156, -148, -248, -242, -207,
748
758
  -215, -210, -217, -213, -248, -220, -222, -226, -231, -227,
749
- -228, -230, -82, -248, -248, -203, -137, -137, -242, -137,
759
+ -228, -230, -82, -248, -248, -203, -137, -137, -248, -137,
750
760
  -248, -242, -241, -150, -205, -242, -229, -248, -83, -19,
751
- -145, -24, -30, -26, -29, -57, -239, -153, -216, -30,
752
- -242, -248, -139, -142, -146, -30, -242, -16, -242, -242,
753
- -16, -16, -20, -138, -145, -248, -143, -144, -16, -25,
754
- -71, -23, -31, -32, -33, -34, -35, -36, -37, -38,
755
- -39, -40, -41, -248, -248, -248, -27, -248, -56, -58,
756
- -59, -60, -61, -71, -18, -242, -140, -141, -22, -42,
757
- -42, -42, -242, -242, -242, -68, -248, -242, -242, -248,
758
- -28, -248, -248, -248, -248, -248, -62, -64, -66, -69,
759
- -248, -72, -86, -87, -88, -89, -90, -91, -92, -93,
760
- -94, -97, -98, -99, -100, -101, -102, -103, -129, -248,
761
- -53, -54, -248, -21, -43, -242, -50, -242, -50, -242,
762
- -50, -242, -242, -242, -73, -95, -96, -248, -151, -242,
763
- -44, -248, -248, -46, -248, -48, -248, -248, -248, -248,
764
- -248, -248, -248, -248, -55, -242, -51, -248, -242, -242,
765
- -63, -65, -67, -15, -84, -248, -74, -75, -248, -45,
766
- -52, -47, -49, -70, -76, -77, -85, -248, -15, -152,
767
- -78 ]
761
+ -145, -24, -242, -57, -239, -153, -216, -30, -242, -248,
762
+ -139, -142, -146, -30, -242, -30, -26, -29, -16, -16,
763
+ -20, -138, -145, -248, -143, -144, -16, -25, -16, -242,
764
+ -242, -56, -58, -59, -60, -61, -71, -71, -18, -31,
765
+ -32, -33, -34, -35, -36, -37, -38, -39, -40, -41,
766
+ -248, -248, -248, -242, -140, -141, -22, -23, -27, -248,
767
+ -242, -68, -248, -42, -42, -42, -242, -242, -242, -242,
768
+ -248, -248, -28, -62, -69, -248, -72, -86, -87, -88,
769
+ -89, -90, -91, -92, -93, -94, -97, -98, -99, -100,
770
+ -101, -102, -103, -129, -248, -248, -248, -248, -248, -64,
771
+ -66, -53, -54, -248, -21, -242, -73, -95, -96, -248,
772
+ -151, -43, -242, -50, -242, -50, -242, -50, -242, -242,
773
+ -242, -248, -248, -248, -248, -248, -44, -248, -248, -46,
774
+ -248, -48, -248, -248, -248, -55, -63, -15, -84, -248,
775
+ -74, -75, -248, -242, -51, -248, -242, -242, -65, -67,
776
+ -70, -76, -77, -85, -248, -45, -52, -47, -49, -15,
777
+ -152, -78 ]
768
778
 
769
779
  racc_goto_table = [
770
- 6, 93, 127, 46, 92, 116, 163, 88, 114, 191,
771
- 50, 202, 206, 129, 38, 230, 124, 233, 264, 128,
772
- 272, 123, 359, 262, 47, 232, 232, 1, 277, 366,
773
- 368, 370, 235, 236, 413, 281, 34, 35, 121, 122,
774
- 106, 288, 105, 118, 316, 269, 264, 143, 264, 420,
775
- 381, 289, 384, 275, 386, 378, 306, 164, 259, 261,
776
- 244, 265, 218, 219, 220, 310, 311, 237, 312, 239,
777
- 240, 241, 249, 393, 268, 333, 334, 335, 280, 309,
778
- 340, 390, 403, 232, 119, 162, 405, 173, 271, 202,
779
- 169, 285, 336, 337, 338, 183, 221, 87, 231, 100,
780
- nil, 182, nil, nil, 256, nil, nil, nil, nil, nil,
781
- nil, nil, nil, 419, nil, nil, nil, nil, nil, nil,
780
+ 6, 46, 116, 127, 93, 163, 114, 92, 88, 191,
781
+ 50, 202, 206, 129, 354, 277, 128, 124, 230, 123,
782
+ 233, 410, 270, 38, 47, 232, 232, 277, 275, 279,
783
+ 387, 1, 390, 34, 392, 286, 35, 288, 121, 122,
784
+ 287, 106, 277, 421, 314, 267, 370, 143, 373, 375,
785
+ 377, 105, 118, 259, 261, 273, 263, 318, 164, 293,
786
+ 244, 385, 218, 219, 220, 235, 236, 237, 294, 239,
787
+ 240, 241, 295, 333, 399, 249, 278, 266, 292, 359,
788
+ 360, 335, 382, 232, 397, 173, 356, 357, 358, 202,
789
+ 169, 119, 162, 269, 283, 183, 221, 87, 231, 100,
790
+ nil, 182, nil, nil, 256, nil, 420, nil, nil, nil,
791
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
782
792
  nil, nil, nil, 188, nil, nil, nil, nil, nil, nil,
783
- nil, nil, nil, nil, nil, nil, 93, nil, nil, 92,
784
- nil, nil, 211, nil, nil, nil, nil, nil, 222, nil,
793
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 93,
794
+ nil, nil, 92, 211, nil, 222, nil, nil, nil, nil,
785
795
  nil, nil, nil, nil, 201, 203, 204, 205, nil, nil,
786
- 229, nil, 245, nil, 212, 213, 214, nil, 215, 216,
787
- 217, 243, 246, 247, nil, nil, 223, 224, nil, 225,
788
- nil, 254, nil, nil, 188, nil, nil, nil, nil, 128,
789
- 128, 250, nil, nil, 143, 143, 143, nil, nil, nil,
796
+ 229, 245, nil, nil, 212, 213, 214, nil, 215, 216,
797
+ 217, 243, nil, 246, 247, nil, 223, 224, nil, 225,
798
+ 254, nil, nil, nil, 188, nil, 128, 248, 250, nil,
799
+ nil, nil, nil, nil, 143, 143, 143, nil, nil, nil,
790
800
  238, nil, nil, nil, nil, 143, nil, nil, nil, nil,
791
801
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
792
- nil, nil, nil, nil, 282, nil, nil, nil, nil, nil,
802
+ nil, nil, nil, 280, nil, nil, nil, nil, nil, nil,
803
+ nil, nil, nil, nil, nil, nil, 128, nil, nil, nil,
804
+ nil, nil, nil, nil, nil, nil, nil, 116, nil, 265,
805
+ 296, nil, nil, 143, 116, nil, 116, nil, nil, nil,
806
+ nil, nil, nil, nil, nil, nil, 319, nil, nil, nil,
793
807
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
794
- nil, 128, nil, nil, nil, nil, nil, nil, 116, 267,
795
- nil, nil, 116, 143, 313, nil, nil, 307, nil, 116,
808
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 331,
809
+ nil, nil, nil, nil, nil, nil, 352, nil, nil, nil,
796
810
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
797
811
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
812
+ nil, nil, nil, nil, nil, nil, 361, 362, 352, nil,
813
+ 352, 352, 352, 372, 374, 376, nil, nil, nil, nil,
814
+ nil, 381, nil, 352, nil, nil, nil, nil, nil, nil,
815
+ nil, nil, nil, nil, 393, 394, 352, nil, nil, 398,
798
816
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
799
- nil, nil, nil, 331, nil, nil, nil, 357, nil, nil,
800
- nil, nil, nil, nil, 357, 357, 357, 365, 367, 369,
817
+ 386, nil, 389, nil, 391, nil, nil, nil, 395, nil,
818
+ nil, nil, nil, nil, nil, nil, nil, nil, 352, nil,
801
819
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
802
- nil, nil, nil, nil, nil, 360, 361, nil, nil, nil,
803
- 357, nil, nil, nil, nil, nil, nil, nil, nil, nil,
804
- nil, nil, nil, nil, nil, nil, nil, nil, 357, 387,
805
- 388, 389, nil, nil, nil, nil, nil, nil, nil, nil,
806
- nil, 357, nil, 380, 404, 383, nil, 385, nil, nil,
807
- nil, nil, nil, nil, nil, nil, nil, 394, nil, nil,
808
- nil, nil, nil, nil, nil, nil, nil, nil, 357, nil,
809
- nil, nil, nil, 409, nil, nil, 411, 412 ]
820
+ nil, 415, nil, nil, 417, 418 ]
810
821
 
811
822
  racc_goto_check = [
812
- 2, 52, 16, 20, 34, 59, 60, 64, 15, 76,
813
- 46, 65, 50, 48, 3, 71, 61, 71, 24, 59,
814
- 54, 20, 35, 22, 2, 66, 66, 1, 19, 35,
815
- 35, 35, 72, 72, 44, 19, 4, 5, 2, 2,
816
- 6, 19, 3, 3, 54, 18, 24, 2, 24, 44,
817
- 36, 22, 36, 21, 36, 35, 23, 61, 17, 17,
818
- 50, 17, 13, 13, 13, 26, 27, 76, 32, 76,
819
- 76, 76, 37, 35, 71, 33, 33, 33, 38, 39,
820
- 40, 42, 43, 66, 45, 49, 35, 15, 53, 65,
821
- 2, 56, 24, 24, 24, 57, 58, 63, 67, 77,
822
- nil, 46, nil, nil, 76, nil, nil, nil, nil, nil,
823
- nil, nil, nil, 35, nil, nil, nil, nil, nil, nil,
823
+ 2, 20, 22, 16, 53, 60, 15, 35, 64, 76,
824
+ 47, 65, 51, 49, 36, 25, 22, 61, 71, 20,
825
+ 71, 45, 55, 3, 2, 66, 66, 25, 23, 19,
826
+ 37, 1, 37, 4, 37, 19, 5, 19, 2, 2,
827
+ 23, 6, 25, 45, 55, 18, 36, 2, 36, 36,
828
+ 36, 3, 3, 17, 17, 21, 17, 24, 61, 27,
829
+ 51, 36, 13, 13, 13, 72, 72, 76, 28, 76,
830
+ 76, 76, 33, 25, 36, 38, 39, 71, 40, 25,
831
+ 25, 41, 43, 66, 44, 15, 34, 34, 34, 65,
832
+ 2, 46, 50, 54, 57, 58, 59, 63, 67, 77,
833
+ nil, 47, nil, nil, 76, nil, 36, nil, nil, nil,
834
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
824
835
  nil, nil, nil, 2, nil, nil, nil, nil, nil, nil,
825
- nil, nil, nil, nil, nil, nil, 52, nil, nil, 34,
826
- nil, nil, 64, nil, nil, nil, nil, nil, 59, nil,
836
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 53,
837
+ nil, nil, 35, 64, nil, 22, nil, nil, nil, nil,
827
838
  nil, nil, nil, nil, 2, 2, 2, 2, nil, nil,
828
- 48, nil, 60, nil, 2, 2, 2, nil, 2, 2,
829
- 2, 48, 16, 16, nil, nil, 2, 2, nil, 2,
830
- nil, 60, nil, nil, 2, nil, nil, nil, nil, 59,
831
- 59, 59, nil, nil, 2, 2, 2, nil, nil, nil,
839
+ 49, 60, nil, nil, 2, 2, 2, nil, 2, 2,
840
+ 2, 49, nil, 16, 16, nil, 2, 2, nil, 2,
841
+ 60, nil, nil, nil, 2, nil, 22, 22, 22, nil,
842
+ nil, nil, nil, nil, 2, 2, 2, nil, nil, nil,
832
843
  2, nil, nil, nil, nil, 2, nil, nil, nil, nil,
833
844
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
834
- nil, nil, nil, nil, 16, nil, nil, nil, nil, nil,
845
+ nil, nil, nil, 16, nil, nil, nil, nil, nil, nil,
846
+ nil, nil, nil, nil, nil, nil, 22, nil, nil, nil,
847
+ nil, nil, nil, nil, nil, nil, nil, 22, nil, 2,
848
+ 15, nil, nil, 2, 22, nil, 22, nil, nil, nil,
849
+ nil, nil, nil, nil, nil, nil, 20, nil, nil, nil,
835
850
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
836
- nil, 59, nil, nil, nil, nil, nil, nil, 59, 2,
837
- nil, nil, 59, 2, 15, nil, nil, 20, nil, 59,
851
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 20,
852
+ nil, nil, nil, nil, nil, nil, 53, nil, nil, nil,
838
853
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
839
854
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
855
+ nil, nil, nil, nil, nil, nil, 2, 2, 53, nil,
856
+ 53, 53, 53, 35, 35, 35, nil, nil, nil, nil,
857
+ nil, 20, nil, 53, nil, nil, nil, nil, nil, nil,
858
+ nil, nil, nil, nil, 20, 20, 53, nil, nil, 35,
840
859
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
841
- nil, nil, nil, 20, nil, nil, nil, 52, nil, nil,
842
- nil, nil, nil, nil, 52, 52, 52, 34, 34, 34,
860
+ 2, nil, 2, nil, 2, nil, nil, nil, 2, nil,
861
+ nil, nil, nil, nil, nil, nil, nil, nil, 53, nil,
843
862
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
844
- nil, nil, nil, nil, nil, 2, 2, nil, nil, nil,
845
- 52, nil, nil, nil, nil, nil, nil, nil, nil, nil,
846
- nil, nil, nil, nil, nil, nil, nil, nil, 52, 20,
847
- 20, 20, nil, nil, nil, nil, nil, nil, nil, nil,
848
- nil, 52, nil, 2, 34, 2, nil, 2, nil, nil,
849
- nil, nil, nil, nil, nil, nil, nil, 2, nil, nil,
850
- nil, nil, nil, nil, nil, nil, nil, nil, 52, nil,
851
- nil, nil, nil, 2, nil, nil, 2, 2 ]
863
+ nil, 2, nil, nil, 2, 2 ]
852
864
 
853
865
  racc_goto_pointer = [
854
- nil, 27, -2, 8, 33, 33, 6, nil, nil, nil,
855
- nil, nil, nil, -112, nil, -26, -46, -188, -214, -234,
856
- -22, -208, -225, -222, -230, nil, -215, -214, nil, nil,
857
- nil, nil, -212, -244, -26, -304, -316, -148, -187, -201,
858
- -245, nil, -293, -308, -369, 48, -18, nil, -36, 34,
859
- -148, nil, -29, -172, -240, nil, -182, -25, -81, -29,
860
- -47, -30, nil, 67, -23, -145, -172, -99, nil, nil,
861
- nil, -181, -167, nil, nil, nil, -134, 68 ]
866
+ nil, 31, -2, 17, 30, 32, 7, nil, nil, nil,
867
+ nil, nil, nil, -112, nil, -28, -45, -193, -214, -238,
868
+ -24, -206, -32, -234, -232, -247, nil, -219, -210, nil,
869
+ nil, nil, nil, -206, -237, -23, -308, -343, -145, -187,
870
+ -200, -240, nil, -284, -298, -376, 55, -18, nil, -36,
871
+ 41, -148, nil, -26, -167, -238, nil, -177, -25, -81,
872
+ -48, -29, nil, 67, -22, -145, -172, -99, nil, nil,
873
+ nil, -178, -134, nil, nil, nil, -134, 68 ]
862
874
 
863
875
  racc_goto_default = [
864
- nil, nil, 44, nil, nil, 414, 302, 107, 108, 109,
865
- 110, 111, 112, nil, 36, 290, 115, nil, nil, nil,
866
- nil, nil, nil, 263, 24, 292, 293, 294, 295, 296,
867
- 297, 298, 301, nil, 144, nil, nil, nil, nil, nil,
868
- nil, 325, nil, nil, nil, nil, nil, 51, nil, nil,
869
- 52, 350, 145, nil, nil, 273, nil, nil, nil, 31,
876
+ nil, nil, 44, nil, nil, 411, 309, 107, 108, 109,
877
+ 110, 111, 112, nil, 36, 297, 115, nil, nil, nil,
878
+ nil, nil, 31, nil, 276, 24, 299, 300, 301, 302,
879
+ 303, 304, 305, 308, nil, 144, nil, nil, nil, nil,
880
+ nil, nil, 321, nil, nil, nil, nil, nil, 51, nil,
881
+ nil, 52, 345, 145, nil, nil, 271, nil, nil, nil,
870
882
  7, nil, 29, nil, nil, 158, 146, 147, 148, 149,
871
883
  150, 151, 152, 153, 154, 155, nil, nil ]
872
884
 
@@ -894,136 +906,136 @@ racc_reduce_table = [
894
906
  2, 99, :_reduce_20,
895
907
  5, 99, :_reduce_21,
896
908
  8, 92, :_reduce_22,
897
- 7, 92, :_reduce_23,
909
+ 8, 92, :_reduce_23,
898
910
  0, 102, :_reduce_24,
899
911
  2, 102, :_reduce_25,
900
- 1, 103, :_reduce_26,
901
- 3, 103, :_reduce_27,
902
- 4, 104, :_reduce_28,
903
- 1, 104, :_reduce_29,
912
+ 1, 104, :_reduce_26,
913
+ 3, 104, :_reduce_27,
914
+ 4, 105, :_reduce_28,
915
+ 1, 105, :_reduce_29,
904
916
  0, 100, :_reduce_30,
905
917
  2, 100, :_reduce_31,
906
- 1, 106, :_reduce_none,
907
- 1, 106, :_reduce_none,
908
- 1, 106, :_reduce_none,
909
- 1, 106, :_reduce_none,
910
- 1, 106, :_reduce_none,
911
- 1, 106, :_reduce_none,
912
- 1, 106, :_reduce_38,
913
- 1, 106, :_reduce_39,
914
- 1, 106, :_reduce_none,
915
- 1, 106, :_reduce_none,
916
- 0, 114, :_reduce_42,
917
- 2, 114, :_reduce_43,
918
- 5, 112, :_reduce_44,
919
- 7, 112, :_reduce_45,
920
- 5, 112, :_reduce_46,
921
- 7, 112, :_reduce_47,
922
- 5, 112, :_reduce_48,
923
- 7, 112, :_reduce_49,
924
- 0, 117, :_reduce_50,
925
- 2, 117, :_reduce_51,
926
- 3, 117, :_reduce_52,
927
- 3, 111, :_reduce_53,
928
- 3, 111, :_reduce_54,
929
- 5, 111, :_reduce_55,
918
+ 1, 107, :_reduce_none,
919
+ 1, 107, :_reduce_none,
920
+ 1, 107, :_reduce_none,
921
+ 1, 107, :_reduce_none,
922
+ 1, 107, :_reduce_none,
923
+ 1, 107, :_reduce_none,
924
+ 1, 107, :_reduce_38,
925
+ 1, 107, :_reduce_39,
926
+ 1, 107, :_reduce_none,
927
+ 1, 107, :_reduce_none,
928
+ 0, 115, :_reduce_42,
929
+ 2, 115, :_reduce_43,
930
+ 5, 113, :_reduce_44,
931
+ 7, 113, :_reduce_45,
932
+ 5, 113, :_reduce_46,
933
+ 7, 113, :_reduce_47,
934
+ 5, 113, :_reduce_48,
935
+ 7, 113, :_reduce_49,
936
+ 0, 118, :_reduce_50,
937
+ 2, 118, :_reduce_51,
938
+ 3, 118, :_reduce_52,
939
+ 3, 112, :_reduce_53,
940
+ 3, 112, :_reduce_54,
941
+ 5, 112, :_reduce_55,
930
942
  7, 91, :_reduce_56,
931
- 0, 119, :_reduce_57,
932
- 2, 119, :_reduce_58,
933
- 1, 120, :_reduce_59,
934
- 1, 120, :_reduce_60,
935
- 1, 120, :_reduce_none,
936
- 3, 108, :_reduce_62,
937
- 6, 108, :_reduce_63,
938
- 3, 109, :_reduce_64,
939
- 6, 109, :_reduce_65,
940
- 3, 110, :_reduce_66,
941
- 6, 110, :_reduce_67,
942
- 0, 121, :_reduce_68,
943
- 1, 121, :_reduce_69,
944
- 7, 107, :_reduce_70,
945
- 0, 122, :_reduce_none,
946
- 2, 122, :_reduce_72,
947
- 0, 123, :_reduce_73,
948
- 2, 123, :_reduce_74,
949
- 2, 123, :_reduce_75,
950
- 1, 125, :_reduce_76,
951
- 1, 125, :_reduce_77,
952
- 3, 125, :_reduce_78,
943
+ 0, 120, :_reduce_57,
944
+ 2, 120, :_reduce_58,
945
+ 1, 121, :_reduce_59,
946
+ 1, 121, :_reduce_60,
947
+ 1, 121, :_reduce_none,
948
+ 3, 109, :_reduce_62,
949
+ 6, 109, :_reduce_63,
950
+ 3, 110, :_reduce_64,
951
+ 6, 110, :_reduce_65,
952
+ 3, 111, :_reduce_66,
953
+ 6, 111, :_reduce_67,
954
+ 0, 122, :_reduce_68,
955
+ 1, 122, :_reduce_69,
956
+ 7, 108, :_reduce_70,
957
+ 0, 123, :_reduce_none,
958
+ 2, 123, :_reduce_72,
959
+ 0, 124, :_reduce_73,
960
+ 2, 124, :_reduce_74,
961
+ 2, 124, :_reduce_75,
962
+ 1, 126, :_reduce_76,
963
+ 1, 126, :_reduce_77,
964
+ 3, 126, :_reduce_78,
953
965
  3, 86, :_reduce_79,
954
- 0, 128, :_reduce_80,
955
- 3, 128, :_reduce_81,
956
- 3, 130, :_reduce_82,
957
- 4, 130, :_reduce_83,
958
- 1, 124, :_reduce_none,
959
- 2, 124, :_reduce_85,
960
- 1, 116, :_reduce_none,
961
- 1, 116, :_reduce_none,
962
- 1, 116, :_reduce_none,
963
- 1, 116, :_reduce_none,
964
- 1, 116, :_reduce_none,
965
- 1, 116, :_reduce_none,
966
- 1, 116, :_reduce_none,
967
- 1, 116, :_reduce_none,
968
- 1, 116, :_reduce_none,
969
- 2, 116, :_reduce_95,
970
- 2, 116, :_reduce_96,
971
- 1, 116, :_reduce_none,
972
- 1, 116, :_reduce_none,
973
- 1, 116, :_reduce_none,
974
- 1, 132, :_reduce_none,
975
- 1, 132, :_reduce_none,
976
- 1, 132, :_reduce_none,
977
- 1, 132, :_reduce_none,
978
- 1, 133, :_reduce_none,
979
- 1, 133, :_reduce_none,
980
- 1, 133, :_reduce_none,
981
- 1, 133, :_reduce_none,
982
- 1, 133, :_reduce_none,
983
- 1, 133, :_reduce_none,
984
- 1, 133, :_reduce_none,
985
- 1, 133, :_reduce_none,
986
- 1, 133, :_reduce_none,
987
- 1, 133, :_reduce_none,
988
- 1, 133, :_reduce_none,
989
- 1, 133, :_reduce_none,
990
- 1, 133, :_reduce_none,
991
- 1, 133, :_reduce_none,
992
- 1, 133, :_reduce_none,
993
- 1, 133, :_reduce_none,
994
- 1, 133, :_reduce_none,
995
- 1, 133, :_reduce_none,
996
- 1, 133, :_reduce_none,
997
- 1, 133, :_reduce_none,
998
- 1, 133, :_reduce_none,
999
- 1, 133, :_reduce_none,
1000
- 1, 133, :_reduce_none,
1001
- 1, 133, :_reduce_none,
1002
- 1, 133, :_reduce_none,
1003
- 1, 133, :_reduce_none,
1004
- 1, 133, :_reduce_none,
1005
- 1, 133, :_reduce_none,
1006
- 1, 133, :_reduce_none,
966
+ 0, 129, :_reduce_80,
967
+ 3, 129, :_reduce_81,
968
+ 3, 131, :_reduce_82,
969
+ 4, 131, :_reduce_83,
970
+ 1, 125, :_reduce_84,
971
+ 2, 125, :_reduce_85,
972
+ 1, 117, :_reduce_none,
973
+ 1, 117, :_reduce_none,
974
+ 1, 117, :_reduce_none,
975
+ 1, 117, :_reduce_none,
976
+ 1, 117, :_reduce_none,
977
+ 1, 117, :_reduce_none,
978
+ 1, 117, :_reduce_none,
979
+ 1, 117, :_reduce_none,
980
+ 1, 117, :_reduce_none,
981
+ 2, 117, :_reduce_95,
982
+ 2, 117, :_reduce_96,
983
+ 1, 117, :_reduce_none,
984
+ 1, 117, :_reduce_none,
985
+ 1, 117, :_reduce_none,
1007
986
  1, 133, :_reduce_none,
1008
987
  1, 133, :_reduce_none,
1009
988
  1, 133, :_reduce_none,
1010
989
  1, 133, :_reduce_none,
990
+ 1, 134, :_reduce_none,
991
+ 1, 134, :_reduce_none,
992
+ 1, 134, :_reduce_none,
993
+ 1, 134, :_reduce_none,
994
+ 1, 134, :_reduce_none,
995
+ 1, 134, :_reduce_none,
996
+ 1, 134, :_reduce_none,
997
+ 1, 134, :_reduce_none,
998
+ 1, 134, :_reduce_none,
999
+ 1, 134, :_reduce_none,
1000
+ 1, 134, :_reduce_none,
1001
+ 1, 134, :_reduce_none,
1002
+ 1, 134, :_reduce_none,
1003
+ 1, 134, :_reduce_none,
1004
+ 1, 134, :_reduce_none,
1005
+ 1, 134, :_reduce_none,
1006
+ 1, 134, :_reduce_none,
1007
+ 1, 134, :_reduce_none,
1008
+ 1, 134, :_reduce_none,
1009
+ 1, 134, :_reduce_none,
1010
+ 1, 134, :_reduce_none,
1011
+ 1, 134, :_reduce_none,
1012
+ 1, 134, :_reduce_none,
1013
+ 1, 134, :_reduce_none,
1014
+ 1, 134, :_reduce_none,
1015
+ 1, 134, :_reduce_none,
1016
+ 1, 134, :_reduce_none,
1017
+ 1, 134, :_reduce_none,
1018
+ 1, 134, :_reduce_none,
1019
+ 1, 134, :_reduce_none,
1020
+ 1, 134, :_reduce_none,
1021
+ 1, 134, :_reduce_none,
1022
+ 1, 134, :_reduce_none,
1011
1023
  0, 98, :_reduce_137,
1012
1024
  3, 98, :_reduce_138,
1013
- 1, 134, :_reduce_139,
1014
- 3, 134, :_reduce_140,
1015
- 3, 135, :_reduce_141,
1016
- 0, 137, :_reduce_142,
1017
- 1, 137, :_reduce_143,
1018
- 1, 137, :_reduce_144,
1019
- 0, 136, :_reduce_145,
1020
- 1, 136, :_reduce_146,
1021
- 0, 126, :_reduce_147,
1022
- 3, 126, :_reduce_148,
1023
- 1, 138, :_reduce_149,
1024
- 3, 138, :_reduce_150,
1025
- 4, 113, :_reduce_151,
1026
- 8, 113, :_reduce_152,
1025
+ 1, 135, :_reduce_139,
1026
+ 3, 135, :_reduce_140,
1027
+ 3, 136, :_reduce_141,
1028
+ 0, 138, :_reduce_142,
1029
+ 1, 138, :_reduce_143,
1030
+ 1, 138, :_reduce_144,
1031
+ 0, 137, :_reduce_145,
1032
+ 1, 137, :_reduce_146,
1033
+ 0, 127, :_reduce_147,
1034
+ 3, 127, :_reduce_148,
1035
+ 1, 139, :_reduce_149,
1036
+ 3, 139, :_reduce_150,
1037
+ 4, 114, :_reduce_151,
1038
+ 8, 114, :_reduce_152,
1027
1039
  5, 88, :_reduce_153,
1028
1040
  3, 89, :_reduce_154,
1029
1041
  3, 89, :_reduce_155,
@@ -1070,17 +1082,17 @@ racc_reduce_table = [
1070
1082
  3, 145, :_reduce_196,
1071
1083
  1, 146, :_reduce_none,
1072
1084
  2, 146, :_reduce_198,
1073
- 1, 115, :_reduce_none,
1074
- 1, 115, :_reduce_none,
1075
- 1, 115, :_reduce_none,
1076
- 1, 115, :_reduce_none,
1077
- 4, 127, :_reduce_203,
1078
- 1, 127, :_reduce_204,
1079
- 5, 131, :_reduce_205,
1080
- 2, 131, :_reduce_206,
1081
- 3, 129, :_reduce_207,
1082
- 1, 129, :_reduce_208,
1083
- 1, 129, :_reduce_none,
1085
+ 1, 116, :_reduce_none,
1086
+ 1, 116, :_reduce_none,
1087
+ 1, 116, :_reduce_none,
1088
+ 1, 116, :_reduce_none,
1089
+ 4, 128, :_reduce_203,
1090
+ 1, 128, :_reduce_204,
1091
+ 5, 132, :_reduce_205,
1092
+ 2, 132, :_reduce_206,
1093
+ 3, 130, :_reduce_207,
1094
+ 1, 130, :_reduce_208,
1095
+ 1, 130, :_reduce_none,
1084
1096
  3, 148, :_reduce_210,
1085
1097
  1, 148, :_reduce_211,
1086
1098
  1, 148, :_reduce_none,
@@ -1106,23 +1118,23 @@ racc_reduce_table = [
1106
1118
  1, 157, :_reduce_none,
1107
1119
  1, 157, :_reduce_none,
1108
1120
  1, 157, :_reduce_none,
1109
- 2, 105, :_reduce_235,
1121
+ 2, 106, :_reduce_235,
1110
1122
  1, 158, :_reduce_none,
1111
1123
  1, 158, :_reduce_none,
1112
1124
  1, 158, :_reduce_none,
1113
- 2, 118, :_reduce_239,
1125
+ 2, 119, :_reduce_239,
1114
1126
  2, 97, :_reduce_240,
1115
- 2, 139, :_reduce_241,
1116
- 0, 140, :_reduce_242,
1117
- 1, 140, :_reduce_243,
1118
- 2, 140, :_reduce_244,
1119
- 1, 140, :_reduce_245,
1127
+ 2, 140, :_reduce_241,
1128
+ 0, 103, :_reduce_242,
1129
+ 1, 103, :_reduce_243,
1130
+ 2, 103, :_reduce_244,
1131
+ 1, 103, :_reduce_245,
1120
1132
  1, 142, :_reduce_none,
1121
1133
  0, 142, :_reduce_none ]
1122
1134
 
1123
1135
  racc_reduce_n = 248
1124
1136
 
1125
- racc_shift_n = 421
1137
+ racc_shift_n = 422
1126
1138
 
1127
1139
  racc_token_table = {
1128
1140
  false => 0,
@@ -1331,6 +1343,7 @@ Racc_token_to_s_table = [
1331
1343
  "class_members",
1332
1344
  "type_list",
1333
1345
  "colon_module_self_types",
1346
+ "namespace",
1334
1347
  "module_self_types",
1335
1348
  "module_self_type",
1336
1349
  "qualified_name",
@@ -1368,7 +1381,6 @@ Racc_token_to_s_table = [
1368
1381
  "type_param_variance",
1369
1382
  "type_params0",
1370
1383
  "type_alias_name",
1371
- "namespace",
1372
1384
  "simple_type",
1373
1385
  "comma_opt",
1374
1386
  "record_type",
@@ -1483,10 +1495,21 @@ module_eval(<<'.,.,', 'parser.y', 64)
1483
1495
  reset_variable_scope
1484
1496
 
1485
1497
  location = val[1].location + val[7].location
1498
+ location = location.with_children(
1499
+ required: {
1500
+ keyword: val[1].location,
1501
+ name: val[3].location,
1502
+ end: val[7].location
1503
+ },
1504
+ optional: {
1505
+ type_params: val[4]&.location,
1506
+ lt: val[5]&.location
1507
+ }
1508
+ )
1486
1509
  result = Declarations::Class.new(
1487
1510
  name: val[3].value,
1488
1511
  type_params: val[4]&.value || Declarations::ModuleTypeParams.empty,
1489
- super_class: val[5],
1512
+ super_class: val[5]&.value,
1490
1513
  members: val[6],
1491
1514
  annotations: val[0],
1492
1515
  location: location,
@@ -1497,42 +1520,72 @@ module_eval(<<'.,.,', 'parser.y', 64)
1497
1520
  end
1498
1521
  .,.,
1499
1522
 
1500
- module_eval(<<'.,.,', 'parser.y', 79)
1523
+ module_eval(<<'.,.,', 'parser.y', 90)
1501
1524
  def _reduce_19(val, _values, result)
1502
1525
  result = nil
1503
1526
  result
1504
1527
  end
1505
1528
  .,.,
1506
1529
 
1507
- module_eval(<<'.,.,', 'parser.y', 81)
1530
+ module_eval(<<'.,.,', 'parser.y', 92)
1508
1531
  def _reduce_20(val, _values, result)
1509
- result = Declarations::Class::Super.new(name: val[1].value,
1510
- args: [],
1511
- location: val[1].location)
1532
+ loc = val[1].location.with_children(
1533
+ required: { name: val[1].location },
1534
+ optional: { args: nil }
1535
+ )
1536
+ sup = Declarations::Class::Super.new(name: val[1].value, args: [], location: loc)
1537
+ result = LocatedValue.new(value: sup, location: val[0].location)
1512
1538
 
1513
1539
  result
1514
1540
  end
1515
1541
  .,.,
1516
1542
 
1517
- module_eval(<<'.,.,', 'parser.y', 86)
1543
+ module_eval(<<'.,.,', 'parser.y', 100)
1518
1544
  def _reduce_21(val, _values, result)
1519
- result = Declarations::Class::Super.new(name: val[1].value,
1520
- args: val[3],
1521
- location: val[1].location + val[4].location)
1545
+ loc = (val[1].location + val[4].location).with_children(
1546
+ required: { name: val[1].location },
1547
+ optional: { args: val[2].location + val[4].location }
1548
+ )
1549
+ sup = Declarations::Class::Super.new(name: val[1].value, args: val[3], location: loc)
1550
+ result = LocatedValue.new(value: sup, location: val[0].location)
1522
1551
 
1523
1552
  result
1524
1553
  end
1525
1554
  .,.,
1526
1555
 
1527
- module_eval(<<'.,.,', 'parser.y', 93)
1556
+ module_eval(<<'.,.,', 'parser.y', 110)
1528
1557
  def _reduce_22(val, _values, result)
1529
1558
  reset_variable_scope
1530
1559
 
1560
+ colon_loc = val[5].location
1561
+ self_loc = val[5].value.yield_self do |params|
1562
+ case params.size
1563
+ when 0
1564
+ nil
1565
+ when 1
1566
+ params[0].location
1567
+ else
1568
+ params.first.location + params.last.location
1569
+ end
1570
+ end
1571
+
1531
1572
  location = val[1].location + val[7].location
1573
+ location = location.with_children(
1574
+ required: {
1575
+ keyword: val[1].location,
1576
+ name: val[3].location,
1577
+ end: val[7].location
1578
+ },
1579
+ optional: {
1580
+ type_params: val[4]&.location,
1581
+ colon: colon_loc,
1582
+ self_types: self_loc
1583
+ }
1584
+ )
1532
1585
  result = Declarations::Module.new(
1533
1586
  name: val[3].value,
1534
1587
  type_params: val[4]&.value || Declarations::ModuleTypeParams.empty,
1535
- self_types: val[5],
1588
+ self_types: val[5].value,
1536
1589
  members: val[6],
1537
1590
  annotations: val[0],
1538
1591
  location: location,
@@ -1543,16 +1596,30 @@ module_eval(<<'.,.,', 'parser.y', 93)
1543
1596
  end
1544
1597
  .,.,
1545
1598
 
1546
- module_eval(<<'.,.,', 'parser.y', 107)
1599
+ module_eval(<<'.,.,', 'parser.y', 148)
1547
1600
  def _reduce_23(val, _values, result)
1548
1601
  reset_variable_scope
1549
1602
 
1550
- location = val[1].location + val[6].location
1603
+ location = val[1].location + val[7].location
1604
+ name_loc, colon_loc = split_kw_loc(val[4].location)
1605
+ self_loc = case val[5].size
1606
+ when 0
1607
+ nil
1608
+ when 1
1609
+ val[5][0].location
1610
+ else
1611
+ val[5].first.location + val[5].last.location
1612
+ end
1613
+ location = location.with_children(
1614
+ required: { keyword: val[1].location, name: name_loc, end: val[7].location },
1615
+ optional: { colon: colon_loc, type_params: nil, self_types: self_loc }
1616
+ )
1617
+
1551
1618
  result = Declarations::Module.new(
1552
- name: val[3].value,
1619
+ name: RBS::TypeName.new(name: val[4].value, namespace: val[3]&.value || RBS::Namespace.empty),
1553
1620
  type_params: Declarations::ModuleTypeParams.empty,
1554
- self_types: val[4],
1555
- members: val[5],
1621
+ self_types: val[5],
1622
+ members: val[6],
1556
1623
  annotations: val[0],
1557
1624
  location: location,
1558
1625
  comment: leading_comment(val[0].first&.location || location)
@@ -1562,22 +1629,22 @@ module_eval(<<'.,.,', 'parser.y', 107)
1562
1629
  end
1563
1630
  .,.,
1564
1631
 
1565
- module_eval(<<'.,.,', 'parser.y', 122)
1632
+ module_eval(<<'.,.,', 'parser.y', 177)
1566
1633
  def _reduce_24(val, _values, result)
1567
- result = []
1634
+ result = LocatedValue.new(value: [], location: nil)
1568
1635
  result
1569
1636
  end
1570
1637
  .,.,
1571
1638
 
1572
- module_eval(<<'.,.,', 'parser.y', 124)
1639
+ module_eval(<<'.,.,', 'parser.y', 179)
1573
1640
  def _reduce_25(val, _values, result)
1574
- result = val[1]
1641
+ result = LocatedValue.new(value: val[1], location: val[0].location)
1575
1642
 
1576
1643
  result
1577
1644
  end
1578
1645
  .,.,
1579
1646
 
1580
- module_eval(<<'.,.,', 'parser.y', 129)
1647
+ module_eval(<<'.,.,', 'parser.y', 184)
1581
1648
  def _reduce_26(val, _values, result)
1582
1649
  result = [val[0]]
1583
1650
 
@@ -1585,7 +1652,7 @@ module_eval(<<'.,.,', 'parser.y', 129)
1585
1652
  end
1586
1653
  .,.,
1587
1654
 
1588
- module_eval(<<'.,.,', 'parser.y', 132)
1655
+ module_eval(<<'.,.,', 'parser.y', 187)
1589
1656
  def _reduce_27(val, _values, result)
1590
1657
  result = val[0].push(val[2])
1591
1658
 
@@ -1593,11 +1660,15 @@ module_eval(<<'.,.,', 'parser.y', 132)
1593
1660
  end
1594
1661
  .,.,
1595
1662
 
1596
- module_eval(<<'.,.,', 'parser.y', 137)
1663
+ module_eval(<<'.,.,', 'parser.y', 192)
1597
1664
  def _reduce_28(val, _values, result)
1598
1665
  name = val[0].value
1599
1666
  args = val[2]
1600
1667
  location = val[0].location + val[3].location
1668
+ location = location.with_children(
1669
+ required: { name: val[0].location },
1670
+ optional: { args: val[1].location + val[3].location }
1671
+ )
1601
1672
 
1602
1673
  case
1603
1674
  when name.class?
@@ -1612,11 +1683,14 @@ module_eval(<<'.,.,', 'parser.y', 137)
1612
1683
  end
1613
1684
  .,.,
1614
1685
 
1615
- module_eval(<<'.,.,', 'parser.y', 151)
1686
+ module_eval(<<'.,.,', 'parser.y', 210)
1616
1687
  def _reduce_29(val, _values, result)
1617
1688
  name = val[0].value
1618
1689
  args = []
1619
- location = val[0].location
1690
+ location = val[0].location.with_children(
1691
+ required: { name: val[0].location },
1692
+ optional: { args: nil }
1693
+ )
1620
1694
 
1621
1695
  case
1622
1696
  when name.class?
@@ -1631,14 +1705,14 @@ module_eval(<<'.,.,', 'parser.y', 151)
1631
1705
  end
1632
1706
  .,.,
1633
1707
 
1634
- module_eval(<<'.,.,', 'parser.y', 166)
1708
+ module_eval(<<'.,.,', 'parser.y', 228)
1635
1709
  def _reduce_30(val, _values, result)
1636
1710
  result = []
1637
1711
  result
1638
1712
  end
1639
1713
  .,.,
1640
1714
 
1641
- module_eval(<<'.,.,', 'parser.y', 168)
1715
+ module_eval(<<'.,.,', 'parser.y', 230)
1642
1716
  def _reduce_31(val, _values, result)
1643
1717
  result = val[0].push(val[1])
1644
1718
 
@@ -1658,7 +1732,7 @@ module_eval(<<'.,.,', 'parser.y', 168)
1658
1732
 
1659
1733
  # reduce 37 omitted
1660
1734
 
1661
- module_eval(<<'.,.,', 'parser.y', 179)
1735
+ module_eval(<<'.,.,', 'parser.y', 241)
1662
1736
  def _reduce_38(val, _values, result)
1663
1737
  result = Members::Public.new(location: val[0].location)
1664
1738
 
@@ -1666,7 +1740,7 @@ module_eval(<<'.,.,', 'parser.y', 179)
1666
1740
  end
1667
1741
  .,.,
1668
1742
 
1669
- module_eval(<<'.,.,', 'parser.y', 182)
1743
+ module_eval(<<'.,.,', 'parser.y', 244)
1670
1744
  def _reduce_39(val, _values, result)
1671
1745
  result = Members::Private.new(location: val[0].location)
1672
1746
 
@@ -1678,27 +1752,32 @@ module_eval(<<'.,.,', 'parser.y', 182)
1678
1752
 
1679
1753
  # reduce 41 omitted
1680
1754
 
1681
- module_eval(<<'.,.,', 'parser.y', 188)
1755
+ module_eval(<<'.,.,', 'parser.y', 250)
1682
1756
  def _reduce_42(val, _values, result)
1683
- result = :instance
1757
+ result = LocatedValue.new(value: :instance, location: nil)
1684
1758
  result
1685
1759
  end
1686
1760
  .,.,
1687
1761
 
1688
- module_eval(<<'.,.,', 'parser.y', 189)
1762
+ module_eval(<<'.,.,', 'parser.y', 251)
1689
1763
  def _reduce_43(val, _values, result)
1690
- result = :singleton
1764
+ result = LocatedValue.new(value: :singleton, location: val[0].location + val[1].location)
1691
1765
  result
1692
1766
  end
1693
1767
  .,.,
1694
1768
 
1695
- module_eval(<<'.,.,', 'parser.y', 193)
1769
+ module_eval(<<'.,.,', 'parser.y', 255)
1696
1770
  def _reduce_44(val, _values, result)
1697
1771
  location = val[1].location + val[4].location
1772
+ name_loc, colon_loc = split_kw_loc(val[3].location)
1773
+ location = location.with_children(
1774
+ required: { keyword: val[1].location, name: name_loc, colon: colon_loc },
1775
+ optional: { ivar: nil, ivar_name: nil, kind: val[2].location }
1776
+ )
1698
1777
  result = Members::AttrReader.new(name: val[3].value,
1699
1778
  ivar_name: nil,
1700
1779
  type: val[4],
1701
- kind: val[2],
1780
+ kind: val[2].value,
1702
1781
  annotations: val[0],
1703
1782
  location: location,
1704
1783
  comment: leading_comment(val[0].first&.location || location))
@@ -1707,13 +1786,29 @@ module_eval(<<'.,.,', 'parser.y', 193)
1707
1786
  end
1708
1787
  .,.,
1709
1788
 
1710
- module_eval(<<'.,.,', 'parser.y', 203)
1789
+ module_eval(<<'.,.,', 'parser.y', 270)
1711
1790
  def _reduce_45(val, _values, result)
1712
1791
  location = val[1].location + val[6].location
1792
+ ivar_loc = val[4]&.location
1793
+ case name_value = val[4]&.value
1794
+ when LocatedValue
1795
+ ivar_name = name_value.value
1796
+ ivar_name_loc = name_value.location
1797
+ when false
1798
+ ivar_name = false
1799
+ ivar_name_loc = nil
1800
+ else
1801
+ ivar_name = nil
1802
+ ivar_loc = nil
1803
+ end
1804
+ location = location.with_children(
1805
+ required: { keyword: val[1].location, name: val[3].location, colon: val[5].location },
1806
+ optional: { ivar: ivar_loc, ivar_name: ivar_name_loc, kind: val[2].location }
1807
+ )
1713
1808
  result = Members::AttrReader.new(name: val[3].value.to_sym,
1714
- ivar_name: val[4],
1809
+ ivar_name: ivar_name,
1715
1810
  type: val[6],
1716
- kind: val[2],
1811
+ kind: val[2].value,
1717
1812
  annotations: val[0],
1718
1813
  location: location,
1719
1814
  comment: leading_comment(val[0].first&.location || location))
@@ -1722,12 +1817,17 @@ module_eval(<<'.,.,', 'parser.y', 203)
1722
1817
  end
1723
1818
  .,.,
1724
1819
 
1725
- module_eval(<<'.,.,', 'parser.y', 213)
1820
+ module_eval(<<'.,.,', 'parser.y', 296)
1726
1821
  def _reduce_46(val, _values, result)
1727
1822
  location = val[1].location + val[4].location
1823
+ name_loc, colon_loc = split_kw_loc(val[3].location)
1824
+ location = location.with_children(
1825
+ required: { keyword: val[1].location, name: name_loc, colon: colon_loc },
1826
+ optional: { ivar: nil, ivar_name: nil, kind: val[2].location }
1827
+ )
1728
1828
  result = Members::AttrWriter.new(name: val[3].value,
1729
1829
  ivar_name: nil,
1730
- kind: val[2],
1830
+ kind: val[2].value,
1731
1831
  type: val[4],
1732
1832
  annotations: val[0],
1733
1833
  location: location,
@@ -1737,12 +1837,29 @@ module_eval(<<'.,.,', 'parser.y', 213)
1737
1837
  end
1738
1838
  .,.,
1739
1839
 
1740
- module_eval(<<'.,.,', 'parser.y', 223)
1840
+ module_eval(<<'.,.,', 'parser.y', 311)
1741
1841
  def _reduce_47(val, _values, result)
1742
1842
  location = val[1].location + val[6].location
1843
+ ivar_loc = val[4]&.location
1844
+ case name_value = val[4]&.value
1845
+ when LocatedValue
1846
+ ivar_name = name_value.value
1847
+ ivar_name_loc = name_value.location
1848
+ when false
1849
+ ivar_name = false
1850
+ ivar_name_loc = nil
1851
+ else
1852
+ ivar_name = nil
1853
+ ivar_loc = nil
1854
+ end
1855
+ location = location.with_children(
1856
+ required: { keyword: val[1].location, name: val[3].location, colon: val[5].location },
1857
+ optional: { ivar: ivar_loc, ivar_name: ivar_name_loc, kind: val[2].location }
1858
+ )
1859
+
1743
1860
  result = Members::AttrWriter.new(name: val[3].value.to_sym,
1744
- ivar_name: val[4],
1745
- kind: val[2],
1861
+ ivar_name: ivar_name,
1862
+ kind: val[2].value,
1746
1863
  type: val[6],
1747
1864
  annotations: val[0],
1748
1865
  location: location,
@@ -1752,12 +1869,18 @@ module_eval(<<'.,.,', 'parser.y', 223)
1752
1869
  end
1753
1870
  .,.,
1754
1871
 
1755
- module_eval(<<'.,.,', 'parser.y', 233)
1872
+ module_eval(<<'.,.,', 'parser.y', 338)
1756
1873
  def _reduce_48(val, _values, result)
1757
1874
  location = val[1].location + val[4].location
1875
+ name_loc, colon_loc = split_kw_loc(val[3].location)
1876
+ location = location.with_children(
1877
+ required: { keyword: val[1].location, name: name_loc, colon: colon_loc },
1878
+ optional: { ivar: nil, ivar_name: nil, kind: val[2].location }
1879
+ )
1880
+
1758
1881
  result = Members::AttrAccessor.new(name: val[3].value,
1759
1882
  ivar_name: nil,
1760
- kind: val[2],
1883
+ kind: val[2].value,
1761
1884
  type: val[4],
1762
1885
  annotations: val[0],
1763
1886
  location: location,
@@ -1767,12 +1890,29 @@ module_eval(<<'.,.,', 'parser.y', 233)
1767
1890
  end
1768
1891
  .,.,
1769
1892
 
1770
- module_eval(<<'.,.,', 'parser.y', 243)
1893
+ module_eval(<<'.,.,', 'parser.y', 354)
1771
1894
  def _reduce_49(val, _values, result)
1772
1895
  location = val[1].location + val[6].location
1896
+ ivar_loc = val[4]&.location
1897
+ case name_value = val[4]&.value
1898
+ when LocatedValue
1899
+ ivar_name = name_value.value
1900
+ ivar_name_loc = name_value.location
1901
+ when false
1902
+ ivar_name = false
1903
+ ivar_name_loc = nil
1904
+ else
1905
+ ivar_name = nil
1906
+ ivar_loc = nil
1907
+ end
1908
+ location = location.with_children(
1909
+ required: { keyword: val[1].location, name: val[3].location, colon: val[5].location },
1910
+ optional: { ivar: ivar_loc, ivar_name: ivar_name_loc, kind: val[2].location }
1911
+ )
1912
+
1773
1913
  result = Members::AttrAccessor.new(name: val[3].value.to_sym,
1774
- ivar_name: val[4],
1775
- kind: val[2],
1914
+ ivar_name: ivar_name,
1915
+ kind: val[2].value,
1776
1916
  type: val[6],
1777
1917
  annotations: val[0],
1778
1918
  location: location,
@@ -1782,30 +1922,38 @@ module_eval(<<'.,.,', 'parser.y', 243)
1782
1922
  end
1783
1923
  .,.,
1784
1924
 
1785
- module_eval(<<'.,.,', 'parser.y', 254)
1925
+ module_eval(<<'.,.,', 'parser.y', 382)
1786
1926
  def _reduce_50(val, _values, result)
1787
1927
  result = nil
1788
1928
  result
1789
1929
  end
1790
1930
  .,.,
1791
1931
 
1792
- module_eval(<<'.,.,', 'parser.y', 255)
1932
+ module_eval(<<'.,.,', 'parser.y', 383)
1793
1933
  def _reduce_51(val, _values, result)
1794
- result = false
1934
+ result = LocatedValue.new(value: false, location: val[0].location + val[1].location)
1795
1935
  result
1796
1936
  end
1797
1937
  .,.,
1798
1938
 
1799
- module_eval(<<'.,.,', 'parser.y', 256)
1939
+ module_eval(<<'.,.,', 'parser.y', 385)
1800
1940
  def _reduce_52(val, _values, result)
1801
- result = val[1].value
1941
+ result = LocatedValue.new(
1942
+ value: val[1],
1943
+ location: val[0].location + val[2].location
1944
+ )
1945
+
1802
1946
  result
1803
1947
  end
1804
1948
  .,.,
1805
1949
 
1806
- module_eval(<<'.,.,', 'parser.y', 260)
1950
+ module_eval(<<'.,.,', 'parser.y', 393)
1807
1951
  def _reduce_53(val, _values, result)
1808
- location = val[0].location + val[2].location
1952
+ location = (val[0].location + val[2].location).with_children(
1953
+ required: { name: val[0].location, colon: val[1].location },
1954
+ optional: { kind: nil }
1955
+ )
1956
+
1809
1957
  result = Members::InstanceVariable.new(
1810
1958
  name: val[0].value,
1811
1959
  type: val[2],
@@ -1817,7 +1965,7 @@ module_eval(<<'.,.,', 'parser.y', 260)
1817
1965
  end
1818
1966
  .,.,
1819
1967
 
1820
- module_eval(<<'.,.,', 'parser.y', 269)
1968
+ module_eval(<<'.,.,', 'parser.y', 406)
1821
1969
  def _reduce_54(val, _values, result)
1822
1970
  type = val[2]
1823
1971
 
@@ -1829,7 +1977,11 @@ module_eval(<<'.,.,', 'parser.y', 269)
1829
1977
  )
1830
1978
  end
1831
1979
 
1832
- location = val[0].location + val[2].location
1980
+ location = (val[0].location + val[2].location).with_children(
1981
+ required: { name: val[0].location, colon: val[1].location },
1982
+ optional: { kind: nil }
1983
+ )
1984
+
1833
1985
  result = Members::ClassVariable.new(
1834
1986
  name: val[0].value,
1835
1987
  type: type,
@@ -1841,7 +1993,7 @@ module_eval(<<'.,.,', 'parser.y', 269)
1841
1993
  end
1842
1994
  .,.,
1843
1995
 
1844
- module_eval(<<'.,.,', 'parser.y', 288)
1996
+ module_eval(<<'.,.,', 'parser.y', 429)
1845
1997
  def _reduce_55(val, _values, result)
1846
1998
  type = val[4]
1847
1999
 
@@ -1853,7 +2005,11 @@ module_eval(<<'.,.,', 'parser.y', 288)
1853
2005
  )
1854
2006
  end
1855
2007
 
1856
- location = val[0].location + val[4].location
2008
+ location = (val[0].location + val[4].location).with_children(
2009
+ required: { name: val[2].location, colon: val[3].location },
2010
+ optional: { kind: val[0].location + val[1].location }
2011
+ )
2012
+
1857
2013
  result = Members::ClassInstanceVariable.new(
1858
2014
  name: val[2].value,
1859
2015
  type: type,
@@ -1865,11 +2021,15 @@ module_eval(<<'.,.,', 'parser.y', 288)
1865
2021
  end
1866
2022
  .,.,
1867
2023
 
1868
- module_eval(<<'.,.,', 'parser.y', 309)
2024
+ module_eval(<<'.,.,', 'parser.y', 454)
1869
2025
  def _reduce_56(val, _values, result)
1870
2026
  reset_variable_scope
1871
2027
 
1872
2028
  location = val[1].location + val[6].location
2029
+ location = location.with_children(
2030
+ required: { keyword: val[1].location, name: val[3].location, end: val[6].location },
2031
+ optional: { type_params: val[4]&.location }
2032
+ )
1873
2033
  result = Declarations::Interface.new(
1874
2034
  name: val[3].value,
1875
2035
  type_params: val[4]&.value || Declarations::ModuleTypeParams.empty,
@@ -1883,14 +2043,14 @@ module_eval(<<'.,.,', 'parser.y', 309)
1883
2043
  end
1884
2044
  .,.,
1885
2045
 
1886
- module_eval(<<'.,.,', 'parser.y', 323)
2046
+ module_eval(<<'.,.,', 'parser.y', 472)
1887
2047
  def _reduce_57(val, _values, result)
1888
2048
  result = []
1889
2049
  result
1890
2050
  end
1891
2051
  .,.,
1892
2052
 
1893
- module_eval(<<'.,.,', 'parser.y', 325)
2053
+ module_eval(<<'.,.,', 'parser.y', 474)
1894
2054
  def _reduce_58(val, _values, result)
1895
2055
  result = val[0].push(val[1])
1896
2056
 
@@ -1898,7 +2058,7 @@ module_eval(<<'.,.,', 'parser.y', 325)
1898
2058
  end
1899
2059
  .,.,
1900
2060
 
1901
- module_eval(<<'.,.,', 'parser.y', 330)
2061
+ module_eval(<<'.,.,', 'parser.y', 479)
1902
2062
  def _reduce_59(val, _values, result)
1903
2063
  unless val[0].kind == :instance
1904
2064
  raise SemanticsError.new("Interface cannot have singleton method", subject: val[0], location: val[0].location)
@@ -1914,7 +2074,7 @@ module_eval(<<'.,.,', 'parser.y', 330)
1914
2074
  end
1915
2075
  .,.,
1916
2076
 
1917
- module_eval(<<'.,.,', 'parser.y', 341)
2077
+ module_eval(<<'.,.,', 'parser.y', 490)
1918
2078
  def _reduce_60(val, _values, result)
1919
2079
  unless val[0].name.interface?
1920
2080
  raise SemanticsError.new("Interface should include an interface", subject: val[0], location: val[0].location)
@@ -1928,12 +2088,17 @@ module_eval(<<'.,.,', 'parser.y', 341)
1928
2088
 
1929
2089
  # reduce 61 omitted
1930
2090
 
1931
- module_eval(<<'.,.,', 'parser.y', 351)
2091
+ module_eval(<<'.,.,', 'parser.y', 500)
1932
2092
  def _reduce_62(val, _values, result)
1933
2093
  if val[2].value.alias?
1934
2094
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1935
2095
  end
1936
- location = val[1].location + val[2].location
2096
+
2097
+ location = (val[1].location + val[2].location).with_children(
2098
+ required: { keyword: val[1].location, name: val[2].location },
2099
+ optional: { args: nil }
2100
+ )
2101
+
1937
2102
  result = Members::Include.new(name: val[2].value,
1938
2103
  args: [],
1939
2104
  annotations: val[0],
@@ -1944,12 +2109,17 @@ module_eval(<<'.,.,', 'parser.y', 351)
1944
2109
  end
1945
2110
  .,.,
1946
2111
 
1947
- module_eval(<<'.,.,', 'parser.y', 362)
2112
+ module_eval(<<'.,.,', 'parser.y', 516)
1948
2113
  def _reduce_63(val, _values, result)
1949
2114
  if val[2].value.alias?
1950
2115
  raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location)
1951
2116
  end
1952
- location = val[1].location + val[5].location
2117
+
2118
+ location = (val[1].location + val[5].location).with_children(
2119
+ required: { keyword: val[1].location, name: val[2].location },
2120
+ optional: { args: val[3].location + val[5].location }
2121
+ )
2122
+
1953
2123
  result = Members::Include.new(name: val[2].value,
1954
2124
  args: val[4],
1955
2125
  annotations: val[0],
@@ -1960,12 +2130,17 @@ module_eval(<<'.,.,', 'parser.y', 362)
1960
2130
  end
1961
2131
  .,.,
1962
2132
 
1963
- module_eval(<<'.,.,', 'parser.y', 375)
2133
+ module_eval(<<'.,.,', 'parser.y', 534)
1964
2134
  def _reduce_64(val, _values, result)
1965
2135
  if val[2].value.alias?
1966
2136
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1967
2137
  end
1968
- location = val[1].location + val[2].location
2138
+
2139
+ location = (val[1].location + val[2].location).with_children(
2140
+ required: { keyword: val[1].location, name: val[2].location },
2141
+ optional: { args: nil }
2142
+ )
2143
+
1969
2144
  result = Members::Extend.new(name: val[2].value,
1970
2145
  args: [],
1971
2146
  annotations: val[0],
@@ -1976,12 +2151,17 @@ module_eval(<<'.,.,', 'parser.y', 375)
1976
2151
  end
1977
2152
  .,.,
1978
2153
 
1979
- module_eval(<<'.,.,', 'parser.y', 386)
2154
+ module_eval(<<'.,.,', 'parser.y', 550)
1980
2155
  def _reduce_65(val, _values, result)
1981
2156
  if val[2].value.alias?
1982
2157
  raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location)
1983
2158
  end
1984
- location = val[1].location + val[5].location
2159
+
2160
+ location = (val[1].location + val[5].location).with_children(
2161
+ required: { keyword: val[1].location, name: val[2].location },
2162
+ optional: { args: val[3].location + val[5].location }
2163
+ )
2164
+
1985
2165
  result = Members::Extend.new(name: val[2].value,
1986
2166
  args: val[4],
1987
2167
  annotations: val[0],
@@ -1992,12 +2172,17 @@ module_eval(<<'.,.,', 'parser.y', 386)
1992
2172
  end
1993
2173
  .,.,
1994
2174
 
1995
- module_eval(<<'.,.,', 'parser.y', 399)
2175
+ module_eval(<<'.,.,', 'parser.y', 568)
1996
2176
  def _reduce_66(val, _values, result)
1997
2177
  unless val[2].value.class?
1998
2178
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
1999
2179
  end
2000
- location = val[1].location + val[2].location
2180
+
2181
+ location = (val[1].location + val[2].location).with_children(
2182
+ required: { keyword: val[1].location, name: val[2].location },
2183
+ optional: { args: nil }
2184
+ )
2185
+
2001
2186
  result = Members::Prepend.new(name: val[2].value,
2002
2187
  args: [],
2003
2188
  annotations: val[0],
@@ -2008,12 +2193,17 @@ module_eval(<<'.,.,', 'parser.y', 399)
2008
2193
  end
2009
2194
  .,.,
2010
2195
 
2011
- module_eval(<<'.,.,', 'parser.y', 410)
2196
+ module_eval(<<'.,.,', 'parser.y', 584)
2012
2197
  def _reduce_67(val, _values, result)
2013
2198
  unless val[2].value.class?
2014
2199
  raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location)
2015
2200
  end
2016
- location = val[1].location + val[5].location
2201
+
2202
+ location = (val[1].location + val[5].location).with_children(
2203
+ required: { keyword: val[1].location, name: val[2].location },
2204
+ optional: { args: val[3].location + val[5].location }
2205
+ )
2206
+
2017
2207
  result = Members::Prepend.new(name: val[2].value,
2018
2208
  args: val[4],
2019
2209
  annotations: val[0],
@@ -2024,14 +2214,14 @@ module_eval(<<'.,.,', 'parser.y', 410)
2024
2214
  end
2025
2215
  .,.,
2026
2216
 
2027
- module_eval(<<'.,.,', 'parser.y', 422)
2217
+ module_eval(<<'.,.,', 'parser.y', 601)
2028
2218
  def _reduce_68(val, _values, result)
2029
2219
  result = nil
2030
2220
  result
2031
2221
  end
2032
2222
  .,.,
2033
2223
 
2034
- module_eval(<<'.,.,', 'parser.y', 424)
2224
+ module_eval(<<'.,.,', 'parser.y', 603)
2035
2225
  def _reduce_69(val, _values, result)
2036
2226
  RBS.logger.warn "`overload def` syntax is deprecated. Use `...` syntax instead."
2037
2227
  result = val[0]
@@ -2040,13 +2230,25 @@ module_eval(<<'.,.,', 'parser.y', 424)
2040
2230
  end
2041
2231
  .,.,
2042
2232
 
2043
- module_eval(<<'.,.,', 'parser.y', 430)
2233
+ module_eval(<<'.,.,', 'parser.y', 609)
2044
2234
  def _reduce_70(val, _values, result)
2045
2235
  location = val[3].location + val[6].last.location
2236
+ children = {}
2237
+
2238
+ required_children = { keyword: val[3].location, name: val[5].location }
2239
+ optional_children = { kind: nil, overload: nil }
2240
+
2241
+ if val[4]
2242
+ kind = val[4].value
2243
+ optional_children[:kind] = val[4].location
2244
+ else
2245
+ kind = :instance
2246
+ end
2046
2247
 
2047
2248
  last_type = val[6].last
2048
2249
  if last_type.is_a?(LocatedValue) && last_type.value == :dot3
2049
2250
  overload = true
2251
+ optional_children[:overload] = last_type.location
2050
2252
  val[6].pop
2051
2253
  else
2052
2254
  overload = false
@@ -2054,10 +2256,10 @@ module_eval(<<'.,.,', 'parser.y', 430)
2054
2256
 
2055
2257
  result = Members::MethodDefinition.new(
2056
2258
  name: val[5].value,
2057
- kind: val[4],
2259
+ kind: kind,
2058
2260
  types: val[6],
2059
2261
  annotations: val[0],
2060
- location: location,
2262
+ location: location.with_children(required: required_children, optional: optional_children),
2061
2263
  comment: leading_comment(val[0].first&.location || val[2]&.location || val[3].location),
2062
2264
  overload: overload || !!val[2]
2063
2265
  )
@@ -2068,7 +2270,7 @@ module_eval(<<'.,.,', 'parser.y', 430)
2068
2270
 
2069
2271
  # reduce 71 omitted
2070
2272
 
2071
- module_eval(<<'.,.,', 'parser.y', 453)
2273
+ module_eval(<<'.,.,', 'parser.y', 644)
2072
2274
  def _reduce_72(val, _values, result)
2073
2275
  RBS.logger.warn "`incompatible` method attribute is deprecated and ignored."
2074
2276
 
@@ -2076,42 +2278,42 @@ module_eval(<<'.,.,', 'parser.y', 453)
2076
2278
  end
2077
2279
  .,.,
2078
2280
 
2079
- module_eval(<<'.,.,', 'parser.y', 457)
2281
+ module_eval(<<'.,.,', 'parser.y', 648)
2080
2282
  def _reduce_73(val, _values, result)
2081
- result = :instance
2283
+ result = nil
2082
2284
  result
2083
2285
  end
2084
2286
  .,.,
2085
2287
 
2086
- module_eval(<<'.,.,', 'parser.y', 458)
2288
+ module_eval(<<'.,.,', 'parser.y', 649)
2087
2289
  def _reduce_74(val, _values, result)
2088
- result = :singleton
2290
+ result = LocatedValue.new(value: :singleton, location: val[0].location + val[1].location)
2089
2291
  result
2090
2292
  end
2091
2293
  .,.,
2092
2294
 
2093
- module_eval(<<'.,.,', 'parser.y', 459)
2295
+ module_eval(<<'.,.,', 'parser.y', 650)
2094
2296
  def _reduce_75(val, _values, result)
2095
- result = :singleton_instance
2297
+ result = LocatedValue.new(value: :singleton_instance, location: val[0].location + val[1].location)
2096
2298
  result
2097
2299
  end
2098
2300
  .,.,
2099
2301
 
2100
- module_eval(<<'.,.,', 'parser.y', 462)
2302
+ module_eval(<<'.,.,', 'parser.y', 653)
2101
2303
  def _reduce_76(val, _values, result)
2102
2304
  result = [val[0]]
2103
2305
  result
2104
2306
  end
2105
2307
  .,.,
2106
2308
 
2107
- module_eval(<<'.,.,', 'parser.y', 463)
2309
+ module_eval(<<'.,.,', 'parser.y', 654)
2108
2310
  def _reduce_77(val, _values, result)
2109
2311
  result = [LocatedValue.new(value: :dot3, location: val[0].location)]
2110
2312
  result
2111
2313
  end
2112
2314
  .,.,
2113
2315
 
2114
- module_eval(<<'.,.,', 'parser.y', 465)
2316
+ module_eval(<<'.,.,', 'parser.y', 656)
2115
2317
  def _reduce_78(val, _values, result)
2116
2318
  result = val[2].unshift(val[0])
2117
2319
 
@@ -2119,7 +2321,7 @@ module_eval(<<'.,.,', 'parser.y', 465)
2119
2321
  end
2120
2322
  .,.,
2121
2323
 
2122
- module_eval(<<'.,.,', 'parser.y', 470)
2324
+ module_eval(<<'.,.,', 'parser.y', 661)
2123
2325
  def _reduce_79(val, _values, result)
2124
2326
  reset_variable_scope
2125
2327
 
@@ -2137,14 +2339,14 @@ module_eval(<<'.,.,', 'parser.y', 470)
2137
2339
  end
2138
2340
  .,.,
2139
2341
 
2140
- module_eval(<<'.,.,', 'parser.y', 484)
2342
+ module_eval(<<'.,.,', 'parser.y', 675)
2141
2343
  def _reduce_80(val, _values, result)
2142
2344
  result = nil
2143
2345
  result
2144
2346
  end
2145
2347
  .,.,
2146
2348
 
2147
- module_eval(<<'.,.,', 'parser.y', 486)
2349
+ module_eval(<<'.,.,', 'parser.y', 677)
2148
2350
  def _reduce_81(val, _values, result)
2149
2351
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
2150
2352
 
@@ -2152,7 +2354,7 @@ module_eval(<<'.,.,', 'parser.y', 486)
2152
2354
  end
2153
2355
  .,.,
2154
2356
 
2155
- module_eval(<<'.,.,', 'parser.y', 491)
2357
+ module_eval(<<'.,.,', 'parser.y', 682)
2156
2358
  def _reduce_82(val, _values, result)
2157
2359
  block = Types::Block.new(type: val[1].value, required: true)
2158
2360
  result = LocatedValue.new(value: block, location: val[0].location + val[2].location)
@@ -2161,7 +2363,7 @@ module_eval(<<'.,.,', 'parser.y', 491)
2161
2363
  end
2162
2364
  .,.,
2163
2365
 
2164
- module_eval(<<'.,.,', 'parser.y', 495)
2366
+ module_eval(<<'.,.,', 'parser.y', 686)
2165
2367
  def _reduce_83(val, _values, result)
2166
2368
  block = Types::Block.new(type: val[2].value, required: false)
2167
2369
  result = LocatedValue.new(value: block, location: val[0].location + val[3].location)
@@ -2170,9 +2372,20 @@ module_eval(<<'.,.,', 'parser.y', 495)
2170
2372
  end
2171
2373
  .,.,
2172
2374
 
2173
- # reduce 84 omitted
2375
+ module_eval(<<'.,.,', 'parser.y', 692)
2376
+ def _reduce_84(val, _values, result)
2377
+ loc = val[0].location
2174
2378
 
2175
- module_eval(<<'.,.,', 'parser.y', 502)
2379
+ result = LocatedValue.new(
2380
+ value: val[0].value,
2381
+ location: Location.new(buffer: loc.buffer, start_pos: loc.start_pos, end_pos: loc.end_pos - 1)
2382
+ )
2383
+
2384
+ result
2385
+ end
2386
+ .,.,
2387
+
2388
+ module_eval(<<'.,.,', 'parser.y', 700)
2176
2389
  def _reduce_85(val, _values, result)
2177
2390
  result = LocatedValue.new(value: val[0].value.to_sym,
2178
2391
  location: val[0].location + val[1].location)
@@ -2199,7 +2412,7 @@ module_eval(<<'.,.,', 'parser.y', 502)
2199
2412
 
2200
2413
  # reduce 94 omitted
2201
2414
 
2202
- module_eval(<<'.,.,', 'parser.y', 511)
2415
+ module_eval(<<'.,.,', 'parser.y', 709)
2203
2416
  def _reduce_95(val, _values, result)
2204
2417
  unless val[0].location.pred?(val[1].location)
2205
2418
  raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1])
@@ -2212,7 +2425,7 @@ module_eval(<<'.,.,', 'parser.y', 511)
2212
2425
  end
2213
2426
  .,.,
2214
2427
 
2215
- module_eval(<<'.,.,', 'parser.y', 519)
2428
+ module_eval(<<'.,.,', 'parser.y', 717)
2216
2429
  def _reduce_96(val, _values, result)
2217
2430
  unless val[0].location.pred?(val[1].location)
2218
2431
  raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1])
@@ -2305,14 +2518,14 @@ module_eval(<<'.,.,', 'parser.y', 519)
2305
2518
 
2306
2519
  # reduce 136 omitted
2307
2520
 
2308
- module_eval(<<'.,.,', 'parser.y', 539)
2521
+ module_eval(<<'.,.,', 'parser.y', 737)
2309
2522
  def _reduce_137(val, _values, result)
2310
2523
  result = nil
2311
2524
  result
2312
2525
  end
2313
2526
  .,.,
2314
2527
 
2315
- module_eval(<<'.,.,', 'parser.y', 541)
2528
+ module_eval(<<'.,.,', 'parser.y', 739)
2316
2529
  def _reduce_138(val, _values, result)
2317
2530
  val[1].each {|p| insert_bound_variable(p.name) }
2318
2531
 
@@ -2322,7 +2535,7 @@ module_eval(<<'.,.,', 'parser.y', 541)
2322
2535
  end
2323
2536
  .,.,
2324
2537
 
2325
- module_eval(<<'.,.,', 'parser.y', 548)
2538
+ module_eval(<<'.,.,', 'parser.y', 746)
2326
2539
  def _reduce_139(val, _values, result)
2327
2540
  result = Declarations::ModuleTypeParams.new()
2328
2541
  result.add(val[0])
@@ -2331,7 +2544,7 @@ module_eval(<<'.,.,', 'parser.y', 548)
2331
2544
  end
2332
2545
  .,.,
2333
2546
 
2334
- module_eval(<<'.,.,', 'parser.y', 552)
2547
+ module_eval(<<'.,.,', 'parser.y', 750)
2335
2548
  def _reduce_140(val, _values, result)
2336
2549
  result = val[0].add(val[2])
2337
2550
 
@@ -2339,59 +2552,74 @@ module_eval(<<'.,.,', 'parser.y', 552)
2339
2552
  end
2340
2553
  .,.,
2341
2554
 
2342
- module_eval(<<'.,.,', 'parser.y', 557)
2555
+ module_eval(<<'.,.,', 'parser.y', 755)
2343
2556
  def _reduce_141(val, _values, result)
2344
- result = Declarations::ModuleTypeParams::TypeParam.new(name: val[2].value.to_sym,
2345
- variance: val[1],
2346
- skip_validation: val[0])
2557
+ loc = case
2558
+ when l0 = val[0].location
2559
+ l0 + val[2].location
2560
+ when l1 = val[1].location
2561
+ l1 + val[2].location
2562
+ else
2563
+ val[2].location
2564
+ end
2565
+ loc = loc.with_children(
2566
+ required: { name: val[2].location },
2567
+ optional: { variance: val[1].location, unchecked: val[0].location }
2568
+ )
2569
+ result = Declarations::ModuleTypeParams::TypeParam.new(
2570
+ name: val[2].value.to_sym,
2571
+ variance: val[1].value,
2572
+ skip_validation: val[0].value,
2573
+ location: loc
2574
+ )
2347
2575
 
2348
2576
  result
2349
2577
  end
2350
2578
  .,.,
2351
2579
 
2352
- module_eval(<<'.,.,', 'parser.y', 563)
2580
+ module_eval(<<'.,.,', 'parser.y', 776)
2353
2581
  def _reduce_142(val, _values, result)
2354
- result = :invariant
2582
+ result = LocatedValue.new(value: :invariant, location: nil)
2355
2583
  result
2356
2584
  end
2357
2585
  .,.,
2358
2586
 
2359
- module_eval(<<'.,.,', 'parser.y', 564)
2587
+ module_eval(<<'.,.,', 'parser.y', 777)
2360
2588
  def _reduce_143(val, _values, result)
2361
- result = :covariant
2589
+ result = LocatedValue.new(value: :covariant, location: val[0].location)
2362
2590
  result
2363
2591
  end
2364
2592
  .,.,
2365
2593
 
2366
- module_eval(<<'.,.,', 'parser.y', 565)
2594
+ module_eval(<<'.,.,', 'parser.y', 778)
2367
2595
  def _reduce_144(val, _values, result)
2368
- result = :contravariant
2596
+ result = LocatedValue.new(value: :contravariant, location: val[0].location)
2369
2597
  result
2370
2598
  end
2371
2599
  .,.,
2372
2600
 
2373
- module_eval(<<'.,.,', 'parser.y', 568)
2601
+ module_eval(<<'.,.,', 'parser.y', 781)
2374
2602
  def _reduce_145(val, _values, result)
2375
- result = false
2603
+ result = LocatedValue.new(value: false, location: nil)
2376
2604
  result
2377
2605
  end
2378
2606
  .,.,
2379
2607
 
2380
- module_eval(<<'.,.,', 'parser.y', 569)
2608
+ module_eval(<<'.,.,', 'parser.y', 782)
2381
2609
  def _reduce_146(val, _values, result)
2382
- result = true
2610
+ result = LocatedValue.new(value: true, location: val[0].location)
2383
2611
  result
2384
2612
  end
2385
2613
  .,.,
2386
2614
 
2387
- module_eval(<<'.,.,', 'parser.y', 572)
2615
+ module_eval(<<'.,.,', 'parser.y', 785)
2388
2616
  def _reduce_147(val, _values, result)
2389
2617
  result = nil
2390
2618
  result
2391
2619
  end
2392
2620
  .,.,
2393
2621
 
2394
- module_eval(<<'.,.,', 'parser.y', 574)
2622
+ module_eval(<<'.,.,', 'parser.y', 787)
2395
2623
  def _reduce_148(val, _values, result)
2396
2624
  val[1].each {|var| insert_bound_variable(var) }
2397
2625
 
@@ -2402,7 +2630,7 @@ module_eval(<<'.,.,', 'parser.y', 574)
2402
2630
  end
2403
2631
  .,.,
2404
2632
 
2405
- module_eval(<<'.,.,', 'parser.y', 582)
2633
+ module_eval(<<'.,.,', 'parser.y', 795)
2406
2634
  def _reduce_149(val, _values, result)
2407
2635
  result = [val[0].value.to_sym]
2408
2636
 
@@ -2410,7 +2638,7 @@ module_eval(<<'.,.,', 'parser.y', 582)
2410
2638
  end
2411
2639
  .,.,
2412
2640
 
2413
- module_eval(<<'.,.,', 'parser.y', 585)
2641
+ module_eval(<<'.,.,', 'parser.y', 798)
2414
2642
  def _reduce_150(val, _values, result)
2415
2643
  result = val[0].push(val[2].value.to_sym)
2416
2644
 
@@ -2418,9 +2646,13 @@ module_eval(<<'.,.,', 'parser.y', 585)
2418
2646
  end
2419
2647
  .,.,
2420
2648
 
2421
- module_eval(<<'.,.,', 'parser.y', 590)
2649
+ module_eval(<<'.,.,', 'parser.y', 803)
2422
2650
  def _reduce_151(val, _values, result)
2423
2651
  location = val[1].location + val[3].location
2652
+ location = location.with_children(
2653
+ required: { keyword: val[1].location, new_name: val[2].location, old_name: val[3].location },
2654
+ optional: { new_kind: nil, old_kind: nil }
2655
+ )
2424
2656
  result = Members::Alias.new(
2425
2657
  new_name: val[2].value.to_sym,
2426
2658
  old_name: val[3].value.to_sym,
@@ -2434,9 +2666,16 @@ module_eval(<<'.,.,', 'parser.y', 590)
2434
2666
  end
2435
2667
  .,.,
2436
2668
 
2437
- module_eval(<<'.,.,', 'parser.y', 601)
2669
+ module_eval(<<'.,.,', 'parser.y', 818)
2438
2670
  def _reduce_152(val, _values, result)
2439
2671
  location = val[1].location + val[7].location
2672
+ location = location.with_children(
2673
+ required: { keyword: val[1].location, new_name: val[4].location, old_name: val[7].location },
2674
+ optional: {
2675
+ new_kind: val[2].location + val[3].location,
2676
+ old_kind: val[5].location + val[6].location
2677
+ }
2678
+ )
2440
2679
  result = Members::Alias.new(
2441
2680
  new_name: val[4].value.to_sym,
2442
2681
  old_name: val[7].value.to_sym,
@@ -2450,22 +2689,30 @@ module_eval(<<'.,.,', 'parser.y', 601)
2450
2689
  end
2451
2690
  .,.,
2452
2691
 
2453
- module_eval(<<'.,.,', 'parser.y', 614)
2692
+ module_eval(<<'.,.,', 'parser.y', 838)
2454
2693
  def _reduce_153(val, _values, result)
2455
2694
  location = val[1].location + val[4].location
2456
- result = Declarations::Alias.new(name: val[2].value,
2457
- type: val[4],
2458
- annotations: val[0],
2459
- location: location,
2460
- comment: leading_comment(val[0].first&.location || location))
2695
+ location = location.with_children(
2696
+ required: { keyword: val[1].location, name: val[2].location, eq: val[3].location }
2697
+ )
2698
+ result = Declarations::Alias.new(
2699
+ name: val[2].value,
2700
+ type: val[4],
2701
+ annotations: val[0],
2702
+ location: location,
2703
+ comment: leading_comment(val[0].first&.location || location)
2704
+ )
2461
2705
 
2462
2706
  result
2463
2707
  end
2464
2708
  .,.,
2465
2709
 
2466
- module_eval(<<'.,.,', 'parser.y', 624)
2710
+ module_eval(<<'.,.,', 'parser.y', 853)
2467
2711
  def _reduce_154(val, _values, result)
2468
2712
  location = val[0].location + val[2].location
2713
+ location = location.with_children(
2714
+ required: { name: val[0].location, colon: val[1].location }
2715
+ )
2469
2716
  result = Declarations::Constant.new(name: val[0].value,
2470
2717
  type: val[2],
2471
2718
  location: location,
@@ -2475,9 +2722,16 @@ module_eval(<<'.,.,', 'parser.y', 624)
2475
2722
  end
2476
2723
  .,.,
2477
2724
 
2478
- module_eval(<<'.,.,', 'parser.y', 631)
2725
+ module_eval(<<'.,.,', 'parser.y', 863)
2479
2726
  def _reduce_155(val, _values, result)
2480
2727
  location = (val[0] || val[1]).location + val[2].location
2728
+
2729
+ lhs_loc = (val[0] || val[1]).location + val[1].location
2730
+ name_loc, colon_loc = split_kw_loc(lhs_loc)
2731
+ location = location.with_children(
2732
+ required: { name: name_loc, colon: colon_loc }
2733
+ )
2734
+
2481
2735
  name = TypeName.new(name: val[1].value, namespace: val[0]&.value || Namespace.empty)
2482
2736
  result = Declarations::Constant.new(name: name,
2483
2737
  type: val[2],
@@ -2488,9 +2742,12 @@ module_eval(<<'.,.,', 'parser.y', 631)
2488
2742
  end
2489
2743
  .,.,
2490
2744
 
2491
- module_eval(<<'.,.,', 'parser.y', 641)
2745
+ module_eval(<<'.,.,', 'parser.y', 880)
2492
2746
  def _reduce_156(val, _values, result)
2493
2747
  location = val[0].location + val[2].location
2748
+ location = location.with_children(
2749
+ required: { name: val[0].location, colon: val[1].location }
2750
+ )
2494
2751
  result = Declarations::Global.new(name: val[0].value.to_sym,
2495
2752
  type: val[2],
2496
2753
  location: location,
@@ -2502,7 +2759,7 @@ module_eval(<<'.,.,', 'parser.y', 641)
2502
2759
 
2503
2760
  # reduce 157 omitted
2504
2761
 
2505
- module_eval(<<'.,.,', 'parser.y', 651)
2762
+ module_eval(<<'.,.,', 'parser.y', 893)
2506
2763
  def _reduce_158(val, _values, result)
2507
2764
  types = case l = val[0]
2508
2765
  when Types::Union
@@ -2517,7 +2774,7 @@ module_eval(<<'.,.,', 'parser.y', 651)
2517
2774
  end
2518
2775
  .,.,
2519
2776
 
2520
- module_eval(<<'.,.,', 'parser.y', 661)
2777
+ module_eval(<<'.,.,', 'parser.y', 903)
2521
2778
  def _reduce_159(val, _values, result)
2522
2779
  types = case l = val[0]
2523
2780
  when Types::Intersection
@@ -2533,7 +2790,7 @@ module_eval(<<'.,.,', 'parser.y', 661)
2533
2790
  end
2534
2791
  .,.,
2535
2792
 
2536
- module_eval(<<'.,.,', 'parser.y', 674)
2793
+ module_eval(<<'.,.,', 'parser.y', 916)
2537
2794
  def _reduce_160(val, _values, result)
2538
2795
  result = Types::Bases::Void.new(location: val[0].location)
2539
2796
 
@@ -2541,7 +2798,7 @@ module_eval(<<'.,.,', 'parser.y', 674)
2541
2798
  end
2542
2799
  .,.,
2543
2800
 
2544
- module_eval(<<'.,.,', 'parser.y', 677)
2801
+ module_eval(<<'.,.,', 'parser.y', 919)
2545
2802
  def _reduce_161(val, _values, result)
2546
2803
  RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})"
2547
2804
  result = Types::Bases::Any.new(location: val[0].location)
@@ -2550,7 +2807,7 @@ module_eval(<<'.,.,', 'parser.y', 677)
2550
2807
  end
2551
2808
  .,.,
2552
2809
 
2553
- module_eval(<<'.,.,', 'parser.y', 681)
2810
+ module_eval(<<'.,.,', 'parser.y', 923)
2554
2811
  def _reduce_162(val, _values, result)
2555
2812
  result = Types::Bases::Any.new(location: val[0].location)
2556
2813
 
@@ -2558,7 +2815,7 @@ module_eval(<<'.,.,', 'parser.y', 681)
2558
2815
  end
2559
2816
  .,.,
2560
2817
 
2561
- module_eval(<<'.,.,', 'parser.y', 684)
2818
+ module_eval(<<'.,.,', 'parser.y', 926)
2562
2819
  def _reduce_163(val, _values, result)
2563
2820
  result = Types::Bases::Bool.new(location: val[0].location)
2564
2821
 
@@ -2566,7 +2823,7 @@ module_eval(<<'.,.,', 'parser.y', 684)
2566
2823
  end
2567
2824
  .,.,
2568
2825
 
2569
- module_eval(<<'.,.,', 'parser.y', 687)
2826
+ module_eval(<<'.,.,', 'parser.y', 929)
2570
2827
  def _reduce_164(val, _values, result)
2571
2828
  result = Types::Bases::Nil.new(location: val[0].location)
2572
2829
 
@@ -2574,7 +2831,7 @@ module_eval(<<'.,.,', 'parser.y', 687)
2574
2831
  end
2575
2832
  .,.,
2576
2833
 
2577
- module_eval(<<'.,.,', 'parser.y', 690)
2834
+ module_eval(<<'.,.,', 'parser.y', 932)
2578
2835
  def _reduce_165(val, _values, result)
2579
2836
  result = Types::Bases::Top.new(location: val[0].location)
2580
2837
 
@@ -2582,7 +2839,7 @@ module_eval(<<'.,.,', 'parser.y', 690)
2582
2839
  end
2583
2840
  .,.,
2584
2841
 
2585
- module_eval(<<'.,.,', 'parser.y', 693)
2842
+ module_eval(<<'.,.,', 'parser.y', 935)
2586
2843
  def _reduce_166(val, _values, result)
2587
2844
  result = Types::Bases::Bottom.new(location: val[0].location)
2588
2845
 
@@ -2590,7 +2847,7 @@ module_eval(<<'.,.,', 'parser.y', 693)
2590
2847
  end
2591
2848
  .,.,
2592
2849
 
2593
- module_eval(<<'.,.,', 'parser.y', 696)
2850
+ module_eval(<<'.,.,', 'parser.y', 938)
2594
2851
  def _reduce_167(val, _values, result)
2595
2852
  result = Types::Bases::Self.new(location: val[0].location)
2596
2853
 
@@ -2598,7 +2855,7 @@ module_eval(<<'.,.,', 'parser.y', 696)
2598
2855
  end
2599
2856
  .,.,
2600
2857
 
2601
- module_eval(<<'.,.,', 'parser.y', 699)
2858
+ module_eval(<<'.,.,', 'parser.y', 941)
2602
2859
  def _reduce_168(val, _values, result)
2603
2860
  result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location),
2604
2861
  location: val[0].location)
@@ -2607,7 +2864,7 @@ module_eval(<<'.,.,', 'parser.y', 699)
2607
2864
  end
2608
2865
  .,.,
2609
2866
 
2610
- module_eval(<<'.,.,', 'parser.y', 703)
2867
+ module_eval(<<'.,.,', 'parser.y', 945)
2611
2868
  def _reduce_169(val, _values, result)
2612
2869
  result = Types::Bases::Instance.new(location: val[0].location)
2613
2870
 
@@ -2615,7 +2872,7 @@ module_eval(<<'.,.,', 'parser.y', 703)
2615
2872
  end
2616
2873
  .,.,
2617
2874
 
2618
- module_eval(<<'.,.,', 'parser.y', 706)
2875
+ module_eval(<<'.,.,', 'parser.y', 948)
2619
2876
  def _reduce_170(val, _values, result)
2620
2877
  result = Types::Bases::Class.new(location: val[0].location)
2621
2878
 
@@ -2623,7 +2880,7 @@ module_eval(<<'.,.,', 'parser.y', 706)
2623
2880
  end
2624
2881
  .,.,
2625
2882
 
2626
- module_eval(<<'.,.,', 'parser.y', 709)
2883
+ module_eval(<<'.,.,', 'parser.y', 951)
2627
2884
  def _reduce_171(val, _values, result)
2628
2885
  result = Types::Literal.new(literal: true, location: val[0].location)
2629
2886
 
@@ -2631,7 +2888,7 @@ module_eval(<<'.,.,', 'parser.y', 709)
2631
2888
  end
2632
2889
  .,.,
2633
2890
 
2634
- module_eval(<<'.,.,', 'parser.y', 712)
2891
+ module_eval(<<'.,.,', 'parser.y', 954)
2635
2892
  def _reduce_172(val, _values, result)
2636
2893
  result = Types::Literal.new(literal: false, location: val[0].location)
2637
2894
 
@@ -2639,7 +2896,7 @@ module_eval(<<'.,.,', 'parser.y', 712)
2639
2896
  end
2640
2897
  .,.,
2641
2898
 
2642
- module_eval(<<'.,.,', 'parser.y', 715)
2899
+ module_eval(<<'.,.,', 'parser.y', 957)
2643
2900
  def _reduce_173(val, _values, result)
2644
2901
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2645
2902
 
@@ -2647,7 +2904,7 @@ module_eval(<<'.,.,', 'parser.y', 715)
2647
2904
  end
2648
2905
  .,.,
2649
2906
 
2650
- module_eval(<<'.,.,', 'parser.y', 718)
2907
+ module_eval(<<'.,.,', 'parser.y', 960)
2651
2908
  def _reduce_174(val, _values, result)
2652
2909
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2653
2910
 
@@ -2655,7 +2912,7 @@ module_eval(<<'.,.,', 'parser.y', 718)
2655
2912
  end
2656
2913
  .,.,
2657
2914
 
2658
- module_eval(<<'.,.,', 'parser.y', 721)
2915
+ module_eval(<<'.,.,', 'parser.y', 963)
2659
2916
  def _reduce_175(val, _values, result)
2660
2917
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2661
2918
 
@@ -2663,7 +2920,7 @@ module_eval(<<'.,.,', 'parser.y', 721)
2663
2920
  end
2664
2921
  .,.,
2665
2922
 
2666
- module_eval(<<'.,.,', 'parser.y', 724)
2923
+ module_eval(<<'.,.,', 'parser.y', 966)
2667
2924
  def _reduce_176(val, _values, result)
2668
2925
  name = val[0].value
2669
2926
  args = []
@@ -2674,11 +2931,23 @@ module_eval(<<'.,.,', 'parser.y', 724)
2674
2931
  if is_bound_variable?(name.name)
2675
2932
  result = Types::Variable.new(name: name.name, location: location)
2676
2933
  else
2934
+ location = location.with_children(
2935
+ required: { name: val[0].location },
2936
+ optional: { args: nil }
2937
+ )
2677
2938
  result = Types::ClassInstance.new(name: name, args: args, location: location)
2678
2939
  end
2679
2940
  when name.alias?
2941
+ location = location.with_children(
2942
+ required: { name: val[0].location },
2943
+ optional: { args: nil }
2944
+ )
2680
2945
  result = Types::Alias.new(name: name, location: location)
2681
2946
  when name.interface?
2947
+ location = location.with_children(
2948
+ required: { name: val[0].location },
2949
+ optional: { args: nil }
2950
+ )
2682
2951
  result = Types::Interface.new(name: name, args: args, location: location)
2683
2952
  end
2684
2953
 
@@ -2686,7 +2955,7 @@ module_eval(<<'.,.,', 'parser.y', 724)
2686
2955
  end
2687
2956
  .,.,
2688
2957
 
2689
- module_eval(<<'.,.,', 'parser.y', 742)
2958
+ module_eval(<<'.,.,', 'parser.y', 996)
2690
2959
  def _reduce_177(val, _values, result)
2691
2960
  name = val[0].value
2692
2961
  args = val[2]
@@ -2697,8 +2966,16 @@ module_eval(<<'.,.,', 'parser.y', 742)
2697
2966
  if is_bound_variable?(name.name)
2698
2967
  raise SemanticsError.new("#{name.name} is type variable and cannot be applied", subject: name, location: location)
2699
2968
  end
2969
+ location = location.with_children(
2970
+ required: { name: val[0].location },
2971
+ optional: { args: val[1].location + val[3].location }
2972
+ )
2700
2973
  result = Types::ClassInstance.new(name: name, args: args, location: location)
2701
2974
  when name.interface?
2975
+ location = location.with_children(
2976
+ required: { name: val[0].location },
2977
+ optional: { args: val[1].location + val[3].location }
2978
+ )
2702
2979
  result = Types::Interface.new(name: name, args: args, location: location)
2703
2980
  else
2704
2981
  raise SyntaxError.new(token_str: "kLBRACKET", error_value: val[1])
@@ -2708,7 +2985,7 @@ module_eval(<<'.,.,', 'parser.y', 742)
2708
2985
  end
2709
2986
  .,.,
2710
2987
 
2711
- module_eval(<<'.,.,', 'parser.y', 759)
2988
+ module_eval(<<'.,.,', 'parser.y', 1021)
2712
2989
  def _reduce_178(val, _values, result)
2713
2990
  location = val[0].location + val[1].location
2714
2991
  result = Types::Tuple.new(types: [], location: location)
@@ -2717,7 +2994,7 @@ module_eval(<<'.,.,', 'parser.y', 759)
2717
2994
  end
2718
2995
  .,.,
2719
2996
 
2720
- module_eval(<<'.,.,', 'parser.y', 763)
2997
+ module_eval(<<'.,.,', 'parser.y', 1025)
2721
2998
  def _reduce_179(val, _values, result)
2722
2999
  location = val[0].location + val[3].location
2723
3000
  types = val[1]
@@ -2727,7 +3004,7 @@ module_eval(<<'.,.,', 'parser.y', 763)
2727
3004
  end
2728
3005
  .,.,
2729
3006
 
2730
- module_eval(<<'.,.,', 'parser.y', 768)
3007
+ module_eval(<<'.,.,', 'parser.y', 1030)
2731
3008
  def _reduce_180(val, _values, result)
2732
3009
  type = val[1].dup
2733
3010
  type.instance_eval do
@@ -2739,16 +3016,19 @@ module_eval(<<'.,.,', 'parser.y', 768)
2739
3016
  end
2740
3017
  .,.,
2741
3018
 
2742
- module_eval(<<'.,.,', 'parser.y', 775)
3019
+ module_eval(<<'.,.,', 'parser.y', 1037)
2743
3020
  def _reduce_181(val, _values, result)
2744
- result = Types::ClassSingleton.new(name: val[2].value,
2745
- location: val[0].location + val[3].location)
3021
+ location = val[0].location + val[3].location
3022
+ location = location.with_children(
3023
+ required: { name: val[2].location }
3024
+ )
3025
+ result = Types::ClassSingleton.new(name: val[2].value, location: location)
2746
3026
 
2747
3027
  result
2748
3028
  end
2749
3029
  .,.,
2750
3030
 
2751
- module_eval(<<'.,.,', 'parser.y', 779)
3031
+ module_eval(<<'.,.,', 'parser.y', 1044)
2752
3032
  def _reduce_182(val, _values, result)
2753
3033
  type, block = val[1].value
2754
3034
  result = Types::Proc.new(type: type, block: block, location: val[0].location + val[1].location)
@@ -2757,7 +3037,7 @@ module_eval(<<'.,.,', 'parser.y', 779)
2757
3037
  end
2758
3038
  .,.,
2759
3039
 
2760
- module_eval(<<'.,.,', 'parser.y', 783)
3040
+ module_eval(<<'.,.,', 'parser.y', 1048)
2761
3041
  def _reduce_183(val, _values, result)
2762
3042
  result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location)
2763
3043
 
@@ -2767,7 +3047,7 @@ module_eval(<<'.,.,', 'parser.y', 783)
2767
3047
 
2768
3048
  # reduce 184 omitted
2769
3049
 
2770
- module_eval(<<'.,.,', 'parser.y', 789)
3050
+ module_eval(<<'.,.,', 'parser.y', 1054)
2771
3051
  def _reduce_185(val, _values, result)
2772
3052
  result = [val[0]]
2773
3053
 
@@ -2775,7 +3055,7 @@ module_eval(<<'.,.,', 'parser.y', 789)
2775
3055
  end
2776
3056
  .,.,
2777
3057
 
2778
- module_eval(<<'.,.,', 'parser.y', 792)
3058
+ module_eval(<<'.,.,', 'parser.y', 1057)
2779
3059
  def _reduce_186(val, _values, result)
2780
3060
  result = val[0] + [val[2]]
2781
3061
 
@@ -2783,7 +3063,7 @@ module_eval(<<'.,.,', 'parser.y', 792)
2783
3063
  end
2784
3064
  .,.,
2785
3065
 
2786
- module_eval(<<'.,.,', 'parser.y', 797)
3066
+ module_eval(<<'.,.,', 'parser.y', 1062)
2787
3067
  def _reduce_187(val, _values, result)
2788
3068
  result = Types::Record.new(
2789
3069
  fields: val[1],
@@ -2794,7 +3074,7 @@ module_eval(<<'.,.,', 'parser.y', 797)
2794
3074
  end
2795
3075
  .,.,
2796
3076
 
2797
- module_eval(<<'.,.,', 'parser.y', 805)
3077
+ module_eval(<<'.,.,', 'parser.y', 1070)
2798
3078
  def _reduce_188(val, _values, result)
2799
3079
  result = val[0]
2800
3080
 
@@ -2802,7 +3082,7 @@ module_eval(<<'.,.,', 'parser.y', 805)
2802
3082
  end
2803
3083
  .,.,
2804
3084
 
2805
- module_eval(<<'.,.,', 'parser.y', 808)
3085
+ module_eval(<<'.,.,', 'parser.y', 1073)
2806
3086
  def _reduce_189(val, _values, result)
2807
3087
  result = val[0].merge!(val[2])
2808
3088
 
@@ -2810,7 +3090,7 @@ module_eval(<<'.,.,', 'parser.y', 808)
2810
3090
  end
2811
3091
  .,.,
2812
3092
 
2813
- module_eval(<<'.,.,', 'parser.y', 813)
3093
+ module_eval(<<'.,.,', 'parser.y', 1078)
2814
3094
  def _reduce_190(val, _values, result)
2815
3095
  result = { val[0].value => val[2] }
2816
3096
 
@@ -2818,7 +3098,7 @@ module_eval(<<'.,.,', 'parser.y', 813)
2818
3098
  end
2819
3099
  .,.,
2820
3100
 
2821
- module_eval(<<'.,.,', 'parser.y', 816)
3101
+ module_eval(<<'.,.,', 'parser.y', 1081)
2822
3102
  def _reduce_191(val, _values, result)
2823
3103
  result = { val[0].value => val[2] }
2824
3104
 
@@ -2826,7 +3106,7 @@ module_eval(<<'.,.,', 'parser.y', 816)
2826
3106
  end
2827
3107
  .,.,
2828
3108
 
2829
- module_eval(<<'.,.,', 'parser.y', 819)
3109
+ module_eval(<<'.,.,', 'parser.y', 1084)
2830
3110
  def _reduce_192(val, _values, result)
2831
3111
  result = { val[0].value => val[2] }
2832
3112
 
@@ -2834,7 +3114,7 @@ module_eval(<<'.,.,', 'parser.y', 819)
2834
3114
  end
2835
3115
  .,.,
2836
3116
 
2837
- module_eval(<<'.,.,', 'parser.y', 822)
3117
+ module_eval(<<'.,.,', 'parser.y', 1087)
2838
3118
  def _reduce_193(val, _values, result)
2839
3119
  result = { val[0].value => val[1] }
2840
3120
 
@@ -2842,7 +3122,7 @@ module_eval(<<'.,.,', 'parser.y', 822)
2842
3122
  end
2843
3123
  .,.,
2844
3124
 
2845
- module_eval(<<'.,.,', 'parser.y', 825)
3125
+ module_eval(<<'.,.,', 'parser.y', 1090)
2846
3126
  def _reduce_194(val, _values, result)
2847
3127
  result = { val[0].value => val[2] }
2848
3128
 
@@ -2850,7 +3130,7 @@ module_eval(<<'.,.,', 'parser.y', 825)
2850
3130
  end
2851
3131
  .,.,
2852
3132
 
2853
- module_eval(<<'.,.,', 'parser.y', 828)
3133
+ module_eval(<<'.,.,', 'parser.y', 1093)
2854
3134
  def _reduce_195(val, _values, result)
2855
3135
  result = { val[0].value => val[2] }
2856
3136
 
@@ -2858,7 +3138,7 @@ module_eval(<<'.,.,', 'parser.y', 828)
2858
3138
  end
2859
3139
  .,.,
2860
3140
 
2861
- module_eval(<<'.,.,', 'parser.y', 831)
3141
+ module_eval(<<'.,.,', 'parser.y', 1096)
2862
3142
  def _reduce_196(val, _values, result)
2863
3143
  result = { val[0].value => val[2] }
2864
3144
 
@@ -2868,7 +3148,7 @@ module_eval(<<'.,.,', 'parser.y', 831)
2868
3148
 
2869
3149
  # reduce 197 omitted
2870
3150
 
2871
- module_eval(<<'.,.,', 'parser.y', 837)
3151
+ module_eval(<<'.,.,', 'parser.y', 1102)
2872
3152
  def _reduce_198(val, _values, result)
2873
3153
  result = val[0]
2874
3154
 
@@ -2884,7 +3164,7 @@ module_eval(<<'.,.,', 'parser.y', 837)
2884
3164
 
2885
3165
  # reduce 202 omitted
2886
3166
 
2887
- module_eval(<<'.,.,', 'parser.y', 844)
3167
+ module_eval(<<'.,.,', 'parser.y', 1109)
2888
3168
  def _reduce_203(val, _values, result)
2889
3169
  location = (val[0] || val[1] || val[2]).location + val[3].location
2890
3170
 
@@ -2909,7 +3189,7 @@ module_eval(<<'.,.,', 'parser.y', 844)
2909
3189
  end
2910
3190
  .,.,
2911
3191
 
2912
- module_eval(<<'.,.,', 'parser.y', 864)
3192
+ module_eval(<<'.,.,', 'parser.y', 1129)
2913
3193
  def _reduce_204(val, _values, result)
2914
3194
  result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location)
2915
3195
 
@@ -2917,7 +3197,7 @@ module_eval(<<'.,.,', 'parser.y', 864)
2917
3197
  end
2918
3198
  .,.,
2919
3199
 
2920
- module_eval(<<'.,.,', 'parser.y', 869)
3200
+ module_eval(<<'.,.,', 'parser.y', 1134)
2921
3201
  def _reduce_205(val, _values, result)
2922
3202
  location = val[0].location + val[4].location
2923
3203
  type = Types::Function.new(
@@ -2937,7 +3217,7 @@ module_eval(<<'.,.,', 'parser.y', 869)
2937
3217
  end
2938
3218
  .,.,
2939
3219
 
2940
- module_eval(<<'.,.,', 'parser.y', 884)
3220
+ module_eval(<<'.,.,', 'parser.y', 1149)
2941
3221
  def _reduce_206(val, _values, result)
2942
3222
  location = val[0].location + val[1].location
2943
3223
  type = Types::Function.new(
@@ -2957,7 +3237,7 @@ module_eval(<<'.,.,', 'parser.y', 884)
2957
3237
  end
2958
3238
  .,.,
2959
3239
 
2960
- module_eval(<<'.,.,', 'parser.y', 901)
3240
+ module_eval(<<'.,.,', 'parser.y', 1166)
2961
3241
  def _reduce_207(val, _values, result)
2962
3242
  result = val[2]
2963
3243
  result[0].unshift(val[0])
@@ -2966,7 +3246,7 @@ module_eval(<<'.,.,', 'parser.y', 901)
2966
3246
  end
2967
3247
  .,.,
2968
3248
 
2969
- module_eval(<<'.,.,', 'parser.y', 905)
3249
+ module_eval(<<'.,.,', 'parser.y', 1170)
2970
3250
  def _reduce_208(val, _values, result)
2971
3251
  result = empty_params_result
2972
3252
  result[0].unshift(val[0])
@@ -2977,7 +3257,7 @@ module_eval(<<'.,.,', 'parser.y', 905)
2977
3257
 
2978
3258
  # reduce 209 omitted
2979
3259
 
2980
- module_eval(<<'.,.,', 'parser.y', 912)
3260
+ module_eval(<<'.,.,', 'parser.y', 1177)
2981
3261
  def _reduce_210(val, _values, result)
2982
3262
  result = val[2]
2983
3263
  result[1].unshift(val[0])
@@ -2986,7 +3266,7 @@ module_eval(<<'.,.,', 'parser.y', 912)
2986
3266
  end
2987
3267
  .,.,
2988
3268
 
2989
- module_eval(<<'.,.,', 'parser.y', 916)
3269
+ module_eval(<<'.,.,', 'parser.y', 1181)
2990
3270
  def _reduce_211(val, _values, result)
2991
3271
  result = empty_params_result
2992
3272
  result[1].unshift(val[0])
@@ -2997,7 +3277,7 @@ module_eval(<<'.,.,', 'parser.y', 916)
2997
3277
 
2998
3278
  # reduce 212 omitted
2999
3279
 
3000
- module_eval(<<'.,.,', 'parser.y', 923)
3280
+ module_eval(<<'.,.,', 'parser.y', 1188)
3001
3281
  def _reduce_213(val, _values, result)
3002
3282
  result = val[2]
3003
3283
  result[2] = val[0]
@@ -3006,7 +3286,7 @@ module_eval(<<'.,.,', 'parser.y', 923)
3006
3286
  end
3007
3287
  .,.,
3008
3288
 
3009
- module_eval(<<'.,.,', 'parser.y', 927)
3289
+ module_eval(<<'.,.,', 'parser.y', 1192)
3010
3290
  def _reduce_214(val, _values, result)
3011
3291
  result = empty_params_result
3012
3292
  result[2] = val[0]
@@ -3017,7 +3297,7 @@ module_eval(<<'.,.,', 'parser.y', 927)
3017
3297
 
3018
3298
  # reduce 215 omitted
3019
3299
 
3020
- module_eval(<<'.,.,', 'parser.y', 934)
3300
+ module_eval(<<'.,.,', 'parser.y', 1199)
3021
3301
  def _reduce_216(val, _values, result)
3022
3302
  result = val[2]
3023
3303
  result[3].unshift(val[0])
@@ -3026,7 +3306,7 @@ module_eval(<<'.,.,', 'parser.y', 934)
3026
3306
  end
3027
3307
  .,.,
3028
3308
 
3029
- module_eval(<<'.,.,', 'parser.y', 938)
3309
+ module_eval(<<'.,.,', 'parser.y', 1203)
3030
3310
  def _reduce_217(val, _values, result)
3031
3311
  result = empty_params_result
3032
3312
  result[3].unshift(val[0])
@@ -3037,7 +3317,7 @@ module_eval(<<'.,.,', 'parser.y', 938)
3037
3317
 
3038
3318
  # reduce 218 omitted
3039
3319
 
3040
- module_eval(<<'.,.,', 'parser.y', 945)
3320
+ module_eval(<<'.,.,', 'parser.y', 1210)
3041
3321
  def _reduce_219(val, _values, result)
3042
3322
  result = empty_params_result
3043
3323
 
@@ -3045,7 +3325,7 @@ module_eval(<<'.,.,', 'parser.y', 945)
3045
3325
  end
3046
3326
  .,.,
3047
3327
 
3048
- module_eval(<<'.,.,', 'parser.y', 948)
3328
+ module_eval(<<'.,.,', 'parser.y', 1213)
3049
3329
  def _reduce_220(val, _values, result)
3050
3330
  result = val[2]
3051
3331
  result[4].merge!(val[0])
@@ -3054,7 +3334,7 @@ module_eval(<<'.,.,', 'parser.y', 948)
3054
3334
  end
3055
3335
  .,.,
3056
3336
 
3057
- module_eval(<<'.,.,', 'parser.y', 952)
3337
+ module_eval(<<'.,.,', 'parser.y', 1217)
3058
3338
  def _reduce_221(val, _values, result)
3059
3339
  result = empty_params_result
3060
3340
  result[4].merge!(val[0])
@@ -3063,7 +3343,7 @@ module_eval(<<'.,.,', 'parser.y', 952)
3063
3343
  end
3064
3344
  .,.,
3065
3345
 
3066
- module_eval(<<'.,.,', 'parser.y', 956)
3346
+ module_eval(<<'.,.,', 'parser.y', 1221)
3067
3347
  def _reduce_222(val, _values, result)
3068
3348
  result = val[2]
3069
3349
  result[5].merge!(val[0])
@@ -3072,7 +3352,7 @@ module_eval(<<'.,.,', 'parser.y', 956)
3072
3352
  end
3073
3353
  .,.,
3074
3354
 
3075
- module_eval(<<'.,.,', 'parser.y', 960)
3355
+ module_eval(<<'.,.,', 'parser.y', 1225)
3076
3356
  def _reduce_223(val, _values, result)
3077
3357
  result = empty_params_result
3078
3358
  result[5].merge!(val[0])
@@ -3081,7 +3361,7 @@ module_eval(<<'.,.,', 'parser.y', 960)
3081
3361
  end
3082
3362
  .,.,
3083
3363
 
3084
- module_eval(<<'.,.,', 'parser.y', 964)
3364
+ module_eval(<<'.,.,', 'parser.y', 1229)
3085
3365
  def _reduce_224(val, _values, result)
3086
3366
  result = empty_params_result
3087
3367
  result[6] = val[0]
@@ -3090,57 +3370,114 @@ module_eval(<<'.,.,', 'parser.y', 964)
3090
3370
  end
3091
3371
  .,.,
3092
3372
 
3093
- module_eval(<<'.,.,', 'parser.y', 970)
3373
+ module_eval(<<'.,.,', 'parser.y', 1235)
3094
3374
  def _reduce_225(val, _values, result)
3095
- result = Types::Function::Param.new(type: val[0],
3096
- name: val[1]&.value&.to_sym)
3375
+ loc = val[0].location
3376
+ if var_name = val[1]
3377
+ loc = loc + var_name.location
3378
+ end
3379
+ loc = loc.with_children(optional: { name: var_name&.location })
3380
+
3381
+ result = Types::Function::Param.new(
3382
+ type: val[0],
3383
+ name: var_name&.value&.to_sym,
3384
+ location: loc
3385
+ )
3097
3386
 
3098
3387
  result
3099
3388
  end
3100
3389
  .,.,
3101
3390
 
3102
- module_eval(<<'.,.,', 'parser.y', 976)
3391
+ module_eval(<<'.,.,', 'parser.y', 1250)
3103
3392
  def _reduce_226(val, _values, result)
3104
- result = Types::Function::Param.new(type: val[1],
3105
- name: val[2]&.value&.to_sym)
3393
+ loc = val[0].location + val[1].location
3394
+ if var_name = val[2]
3395
+ loc = loc + var_name.location
3396
+ end
3397
+ loc = loc.with_children(optional: { name: var_name&.location })
3398
+
3399
+ result = Types::Function::Param.new(
3400
+ type: val[1],
3401
+ name: val[2]&.value&.to_sym,
3402
+ location: loc
3403
+ )
3106
3404
 
3107
3405
  result
3108
3406
  end
3109
3407
  .,.,
3110
3408
 
3111
- module_eval(<<'.,.,', 'parser.y', 982)
3409
+ module_eval(<<'.,.,', 'parser.y', 1265)
3112
3410
  def _reduce_227(val, _values, result)
3113
- result = Types::Function::Param.new(type: val[1],
3114
- name: val[2]&.value&.to_sym)
3411
+ loc = val[0].location + val[1].location
3412
+ if var_name = val[2]
3413
+ loc = loc + var_name.location
3414
+ end
3415
+ loc = loc.with_children(optional: { name: var_name&.location })
3416
+
3417
+ result = Types::Function::Param.new(
3418
+ type: val[1],
3419
+ name: val[2]&.value&.to_sym,
3420
+ location: loc
3421
+ )
3115
3422
 
3116
3423
  result
3117
3424
  end
3118
3425
  .,.,
3119
3426
 
3120
- module_eval(<<'.,.,', 'parser.y', 988)
3427
+ module_eval(<<'.,.,', 'parser.y', 1280)
3121
3428
  def _reduce_228(val, _values, result)
3122
- param = Types::Function::Param.new(type: val[1],
3123
- name: val[2]&.value&.to_sym)
3429
+ loc = val[0].location + val[1].location
3430
+ if var_name = val[2]
3431
+ loc = loc + var_name.location
3432
+ end
3433
+
3434
+ loc = loc.with_children(optional: { name: var_name&.location })
3435
+
3436
+ param = Types::Function::Param.new(
3437
+ type: val[1],
3438
+ name: val[2]&.value&.to_sym,
3439
+ location: loc
3440
+ )
3124
3441
  result = { val[0].value => param }
3125
3442
 
3126
3443
  result
3127
3444
  end
3128
3445
  .,.,
3129
3446
 
3130
- module_eval(<<'.,.,', 'parser.y', 995)
3447
+ module_eval(<<'.,.,', 'parser.y', 1297)
3131
3448
  def _reduce_229(val, _values, result)
3132
- param = Types::Function::Param.new(type: val[2],
3133
- name: val[3]&.value&.to_sym)
3449
+ loc = val[0].location + val[2].location
3450
+ if var_name = val[3]
3451
+ loc = loc + var_name.location
3452
+ end
3453
+
3454
+ loc = loc.with_children(optional: { name: var_name&.location })
3455
+
3456
+ param = Types::Function::Param.new(
3457
+ type: val[2],
3458
+ name: val[3]&.value&.to_sym,
3459
+ location: loc
3460
+ )
3134
3461
  result = { val[1].value => param }
3135
3462
 
3136
3463
  result
3137
3464
  end
3138
3465
  .,.,
3139
3466
 
3140
- module_eval(<<'.,.,', 'parser.y', 1002)
3467
+ module_eval(<<'.,.,', 'parser.y', 1314)
3141
3468
  def _reduce_230(val, _values, result)
3142
- result = Types::Function::Param.new(type: val[1],
3143
- name: val[2]&.value&.to_sym)
3469
+ loc = val[0].location + val[1].location
3470
+ if var_name = val[2]
3471
+ loc = loc + var_name.location
3472
+ end
3473
+
3474
+ loc = loc.with_children(optional: { name: var_name&.location })
3475
+
3476
+ result = Types::Function::Param.new(
3477
+ type: val[1],
3478
+ name: val[2]&.value&.to_sym,
3479
+ location: loc
3480
+ )
3144
3481
 
3145
3482
  result
3146
3483
  end
@@ -3154,7 +3491,7 @@ module_eval(<<'.,.,', 'parser.y', 1002)
3154
3491
 
3155
3492
  # reduce 234 omitted
3156
3493
 
3157
- module_eval(<<'.,.,', 'parser.y', 1011)
3494
+ module_eval(<<'.,.,', 'parser.y', 1333)
3158
3495
  def _reduce_235(val, _values, result)
3159
3496
  namespace = val[0]&.value || Namespace.empty
3160
3497
  name = val[1].value.to_sym
@@ -3172,7 +3509,7 @@ module_eval(<<'.,.,', 'parser.y', 1011)
3172
3509
 
3173
3510
  # reduce 238 omitted
3174
3511
 
3175
- module_eval(<<'.,.,', 'parser.y', 1023)
3512
+ module_eval(<<'.,.,', 'parser.y', 1345)
3176
3513
  def _reduce_239(val, _values, result)
3177
3514
  namespace = val[0]&.value || Namespace.empty
3178
3515
  name = val[1].value.to_sym
@@ -3184,7 +3521,7 @@ module_eval(<<'.,.,', 'parser.y', 1023)
3184
3521
  end
3185
3522
  .,.,
3186
3523
 
3187
- module_eval(<<'.,.,', 'parser.y', 1032)
3524
+ module_eval(<<'.,.,', 'parser.y', 1354)
3188
3525
  def _reduce_240(val, _values, result)
3189
3526
  namespace = val[0]&.value || Namespace.empty
3190
3527
  name = val[1].value.to_sym
@@ -3196,7 +3533,7 @@ module_eval(<<'.,.,', 'parser.y', 1032)
3196
3533
  end
3197
3534
  .,.,
3198
3535
 
3199
- module_eval(<<'.,.,', 'parser.y', 1041)
3536
+ module_eval(<<'.,.,', 'parser.y', 1363)
3200
3537
  def _reduce_241(val, _values, result)
3201
3538
  namespace = val[0]&.value || Namespace.empty
3202
3539
  name = val[1].value.to_sym
@@ -3208,7 +3545,7 @@ module_eval(<<'.,.,', 'parser.y', 1041)
3208
3545
  end
3209
3546
  .,.,
3210
3547
 
3211
- module_eval(<<'.,.,', 'parser.y', 1051)
3548
+ module_eval(<<'.,.,', 'parser.y', 1373)
3212
3549
  def _reduce_242(val, _values, result)
3213
3550
  result = nil
3214
3551
 
@@ -3216,7 +3553,7 @@ module_eval(<<'.,.,', 'parser.y', 1051)
3216
3553
  end
3217
3554
  .,.,
3218
3555
 
3219
- module_eval(<<'.,.,', 'parser.y', 1054)
3556
+ module_eval(<<'.,.,', 'parser.y', 1376)
3220
3557
  def _reduce_243(val, _values, result)
3221
3558
  result = LocatedValue.new(value: Namespace.root, location: val[0].location)
3222
3559
 
@@ -3224,7 +3561,7 @@ module_eval(<<'.,.,', 'parser.y', 1054)
3224
3561
  end
3225
3562
  .,.,
3226
3563
 
3227
- module_eval(<<'.,.,', 'parser.y', 1057)
3564
+ module_eval(<<'.,.,', 'parser.y', 1379)
3228
3565
  def _reduce_244(val, _values, result)
3229
3566
  namespace = Namespace.parse(val[1].value).absolute!
3230
3567
  result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location)
@@ -3233,7 +3570,7 @@ module_eval(<<'.,.,', 'parser.y', 1057)
3233
3570
  end
3234
3571
  .,.,
3235
3572
 
3236
- module_eval(<<'.,.,', 'parser.y', 1061)
3573
+ module_eval(<<'.,.,', 'parser.y', 1383)
3237
3574
  def _reduce_245(val, _values, result)
3238
3575
  namespace = Namespace.parse(val[0].value)
3239
3576
  result = LocatedValue.new(value: namespace, location: val[0].location)