rbs 1.1.1 → 1.2.0

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