prism 0.18.0 → 0.19.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -1
  3. data/README.md +2 -1
  4. data/config.yml +188 -55
  5. data/docs/building.md +9 -2
  6. data/docs/configuration.md +10 -9
  7. data/docs/encoding.md +24 -56
  8. data/docs/local_variable_depth.md +229 -0
  9. data/docs/ruby_api.md +2 -0
  10. data/docs/serialization.md +18 -13
  11. data/ext/prism/api_node.c +337 -195
  12. data/ext/prism/extconf.rb +13 -7
  13. data/ext/prism/extension.c +96 -32
  14. data/ext/prism/extension.h +1 -1
  15. data/include/prism/ast.h +340 -137
  16. data/include/prism/defines.h +17 -0
  17. data/include/prism/diagnostic.h +11 -5
  18. data/include/prism/encoding.h +248 -0
  19. data/include/prism/options.h +2 -2
  20. data/include/prism/parser.h +62 -42
  21. data/include/prism/regexp.h +2 -2
  22. data/include/prism/util/pm_buffer.h +9 -1
  23. data/include/prism/util/pm_memchr.h +2 -2
  24. data/include/prism/util/pm_strpbrk.h +3 -3
  25. data/include/prism/version.h +2 -2
  26. data/include/prism.h +13 -15
  27. data/lib/prism/compiler.rb +12 -0
  28. data/lib/prism/debug.rb +9 -4
  29. data/lib/prism/desugar_compiler.rb +3 -3
  30. data/lib/prism/dispatcher.rb +56 -0
  31. data/lib/prism/dot_visitor.rb +476 -198
  32. data/lib/prism/dsl.rb +66 -46
  33. data/lib/prism/ffi.rb +16 -3
  34. data/lib/prism/lex_compat.rb +19 -9
  35. data/lib/prism/mutation_compiler.rb +20 -0
  36. data/lib/prism/node.rb +1173 -450
  37. data/lib/prism/node_ext.rb +41 -16
  38. data/lib/prism/parse_result.rb +12 -15
  39. data/lib/prism/ripper_compat.rb +49 -34
  40. data/lib/prism/serialize.rb +242 -212
  41. data/lib/prism/visitor.rb +12 -0
  42. data/lib/prism.rb +20 -4
  43. data/prism.gemspec +4 -10
  44. data/rbi/prism.rbi +605 -230
  45. data/rbi/prism_static.rbi +3 -0
  46. data/sig/prism.rbs +379 -124
  47. data/sig/prism_static.rbs +1 -0
  48. data/src/diagnostic.c +228 -222
  49. data/src/encoding.c +5137 -0
  50. data/src/node.c +66 -0
  51. data/src/options.c +21 -2
  52. data/src/prettyprint.c +806 -406
  53. data/src/prism.c +1092 -700
  54. data/src/regexp.c +3 -3
  55. data/src/serialize.c +227 -157
  56. data/src/util/pm_buffer.c +10 -1
  57. data/src/util/pm_memchr.c +1 -1
  58. data/src/util/pm_strpbrk.c +4 -4
  59. metadata +5 -11
  60. data/include/prism/enc/pm_encoding.h +0 -227
  61. data/src/enc/pm_big5.c +0 -116
  62. data/src/enc/pm_cp51932.c +0 -57
  63. data/src/enc/pm_euc_jp.c +0 -69
  64. data/src/enc/pm_gbk.c +0 -65
  65. data/src/enc/pm_shift_jis.c +0 -57
  66. data/src/enc/pm_tables.c +0 -2073
  67. data/src/enc/pm_unicode.c +0 -2369
  68. data/src/enc/pm_windows_31j.c +0 -57
@@ -27,7 +27,7 @@ module Prism
27
27
 
28
28
  # The minor version of prism that we are expecting to find in the serialized
29
29
  # strings.
30
- MINOR_VERSION = 18
30
+ MINOR_VERSION = 19
31
31
 
32
32
  # The patch version of prism that we are expecting to find in the serialized
33
33
  # strings.
@@ -80,18 +80,18 @@ module Prism
80
80
  end
81
81
 
82
82
  def load_encoding
83
- @encoding = Encoding.find(io.read(load_varint))
83
+ @encoding = Encoding.find(io.read(load_varuint))
84
84
  @input = input.force_encoding(@encoding).freeze
85
85
  @encoding
86
86
  end
87
87
 
88
88
  def load_start_line
89
- source.start_line = load_varint
89
+ source.start_line = load_varsint
90
90
  end
91
91
 
92
92
  def load_comments
93
- load_varint.times.map do
94
- case load_varint
93
+ load_varuint.times.map do
94
+ case load_varuint
95
95
  when 0 then InlineComment.new(load_location)
96
96
  when 1 then EmbDocComment.new(load_location)
97
97
  when 2 then DATAComment.new(load_location)
@@ -101,18 +101,19 @@ module Prism
101
101
 
102
102
  def load_metadata
103
103
  comments = load_comments
104
- magic_comments = load_varint.times.map { MagicComment.new(load_location, load_location) }
105
- errors = load_varint.times.map { ParseError.new(load_embedded_string, load_location) }
106
- warnings = load_varint.times.map { ParseWarning.new(load_embedded_string, load_location) }
107
- [comments, magic_comments, errors, warnings]
104
+ magic_comments = load_varuint.times.map { MagicComment.new(load_location, load_location) }
105
+ data_loc = load_optional_location
106
+ errors = load_varuint.times.map { ParseError.new(load_embedded_string, load_location) }
107
+ warnings = load_varuint.times.map { ParseWarning.new(load_embedded_string, load_location) }
108
+ [comments, magic_comments, data_loc, errors, warnings]
108
109
  end
109
110
 
110
111
  def load_tokens
111
112
  tokens = []
112
- while type = TOKEN_TYPES.fetch(load_varint)
113
- start = load_varint
114
- length = load_varint
115
- lex_state = load_varint
113
+ while type = TOKEN_TYPES.fetch(load_varuint)
114
+ start = load_varuint
115
+ length = load_varuint
116
+ lex_state = load_varuint
116
117
  location = Location.new(@source, start, length)
117
118
  tokens << [Prism::Token.new(type, location.slice, location), lex_state]
118
119
  end
@@ -124,11 +125,11 @@ module Prism
124
125
  tokens = load_tokens
125
126
  encoding = load_encoding
126
127
  load_start_line
127
- comments, magic_comments, errors, warnings = load_metadata
128
+ comments, magic_comments, data_loc, errors, warnings = load_metadata
128
129
  tokens.each { |token,| token.value.force_encoding(encoding) }
129
130
 
130
131
  raise "Expected to consume all bytes while deserializing" unless @io.eof?
131
- Prism::ParseResult.new(tokens, comments, magic_comments, errors, warnings, @source)
132
+ Prism::ParseResult.new(tokens, comments, magic_comments, data_loc, errors, warnings, @source)
132
133
  end
133
134
 
134
135
  def load_nodes
@@ -136,24 +137,24 @@ module Prism
136
137
  load_encoding
137
138
  load_start_line
138
139
 
139
- comments, magic_comments, errors, warnings = load_metadata
140
+ comments, magic_comments, data_loc, errors, warnings = load_metadata
140
141
 
141
142
  @constant_pool_offset = io.read(4).unpack1("L")
142
- @constant_pool = Array.new(load_varint, nil)
143
+ @constant_pool = Array.new(load_varuint, nil)
143
144
 
144
- [load_node, comments, magic_comments, errors, warnings]
145
+ [load_node, comments, magic_comments, data_loc, errors, warnings]
145
146
  end
146
147
 
147
148
  def load_result
148
- node, comments, magic_comments, errors, warnings = load_nodes
149
- Prism::ParseResult.new(node, comments, magic_comments, errors, warnings, @source)
149
+ node, comments, magic_comments, data_loc, errors, warnings = load_nodes
150
+ Prism::ParseResult.new(node, comments, magic_comments, data_loc, errors, warnings, @source)
150
151
  end
151
152
 
152
153
  private
153
154
 
154
155
  # variable-length integer using https://en.wikipedia.org/wiki/LEB128
155
156
  # This is also what protobuf uses: https://protobuf.dev/programming-guides/encoding/#varints
156
- def load_varint
157
+ def load_varuint
157
158
  n = io.getbyte
158
159
  if n < 128
159
160
  n
@@ -167,6 +168,11 @@ module Prism
167
168
  end
168
169
  end
169
170
 
171
+ def load_varsint
172
+ n = load_varuint
173
+ (n >> 1) ^ (-(n & 1))
174
+ end
175
+
170
176
  def load_serialized_length
171
177
  io.read(4).unpack1("L")
172
178
  end
@@ -179,14 +185,14 @@ module Prism
179
185
  end
180
186
 
181
187
  def load_embedded_string
182
- io.read(load_varint).force_encoding(encoding)
188
+ io.read(load_varuint).force_encoding(encoding)
183
189
  end
184
190
 
185
191
  def load_string
186
192
  type = io.getbyte
187
193
  case type
188
194
  when 1
189
- input.byteslice(load_varint, load_varint).force_encoding(encoding)
195
+ input.byteslice(load_varuint, load_varuint).force_encoding(encoding)
190
196
  when 2
191
197
  load_embedded_string
192
198
  else
@@ -195,7 +201,7 @@ module Prism
195
201
  end
196
202
 
197
203
  def load_location
198
- Location.new(source, load_varint, load_varint)
204
+ Location.new(source, load_varuint, load_varuint)
199
205
  end
200
206
 
201
207
  def load_optional_location
@@ -224,11 +230,11 @@ module Prism
224
230
  end
225
231
 
226
232
  def load_required_constant
227
- load_constant(load_varint - 1)
233
+ load_constant(load_varuint - 1)
228
234
  end
229
235
 
230
236
  def load_optional_constant
231
- index = load_varint
237
+ index = load_varuint
232
238
  load_constant(index - 1) if index != 0
233
239
  end
234
240
 
@@ -247,11 +253,11 @@ module Prism
247
253
  when 4 then
248
254
  AndNode.new(load_node, load_node, load_location, location)
249
255
  when 5 then
250
- ArgumentsNode.new(Array.new(load_varint) { load_node }, load_varint, location)
256
+ ArgumentsNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
251
257
  when 6 then
252
- ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
258
+ ArrayNode.new(load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
253
259
  when 7 then
254
- ArrayPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
260
+ ArrayPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
255
261
  when 8 then
256
262
  AssocNode.new(load_node, load_optional_node, load_optional_location, location)
257
263
  when 9 then
@@ -265,267 +271,275 @@ module Prism
265
271
  when 13 then
266
272
  BlockLocalVariableNode.new(load_required_constant, location)
267
273
  when 14 then
268
- BlockNode.new(Array.new(load_varint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
274
+ BlockNode.new(Array.new(load_varuint) { load_required_constant }, load_varuint, load_optional_node, load_optional_node, load_location, load_location, location)
269
275
  when 15 then
270
276
  BlockParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
271
277
  when 16 then
272
- BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
278
+ BlockParametersNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
273
279
  when 17 then
274
280
  BreakNode.new(load_optional_node, load_location, location)
275
281
  when 18 then
276
- CallAndWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
282
+ CallAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
277
283
  when 19 then
278
- CallNode.new(load_optional_node, load_optional_location, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, load_varint, load_required_constant, location)
284
+ CallNode.new(load_varuint, load_optional_node, load_optional_location, load_required_constant, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
279
285
  when 20 then
280
- CallOperatorWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_required_constant, load_location, load_node, location)
286
+ CallOperatorWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_required_constant, load_location, load_node, location)
281
287
  when 21 then
282
- CallOrWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
288
+ CallOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
283
289
  when 22 then
284
- CapturePatternNode.new(load_node, load_node, load_location, location)
290
+ CallTargetNode.new(load_varuint, load_node, load_location, load_required_constant, load_location, location)
285
291
  when 23 then
286
- CaseMatchNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
292
+ CapturePatternNode.new(load_node, load_node, load_location, location)
287
293
  when 24 then
288
- CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
294
+ CaseMatchNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
289
295
  when 25 then
290
- ClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant, location)
296
+ CaseNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
291
297
  when 26 then
292
- ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
298
+ ClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant, location)
293
299
  when 27 then
294
- ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
300
+ ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
295
301
  when 28 then
296
- ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
302
+ ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
297
303
  when 29 then
298
- ClassVariableReadNode.new(load_required_constant, location)
304
+ ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
299
305
  when 30 then
300
- ClassVariableTargetNode.new(load_required_constant, location)
306
+ ClassVariableReadNode.new(load_required_constant, location)
301
307
  when 31 then
302
- ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
308
+ ClassVariableTargetNode.new(load_required_constant, location)
303
309
  when 32 then
304
- ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
310
+ ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
305
311
  when 33 then
306
- ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
312
+ ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
307
313
  when 34 then
308
- ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
314
+ ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
309
315
  when 35 then
310
- ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
316
+ ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
311
317
  when 36 then
312
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
318
+ ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
313
319
  when 37 then
314
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
320
+ ConstantPathNode.new(load_optional_node, load_node, load_location, location)
315
321
  when 38 then
316
- ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
322
+ ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
317
323
  when 39 then
318
- ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
324
+ ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
319
325
  when 40 then
320
- ConstantPathWriteNode.new(load_node, load_location, load_node, location)
326
+ ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
321
327
  when 41 then
322
- ConstantReadNode.new(load_required_constant, location)
328
+ ConstantPathWriteNode.new(load_node, load_location, load_node, location)
323
329
  when 42 then
324
- ConstantTargetNode.new(load_required_constant, location)
330
+ ConstantReadNode.new(load_required_constant, location)
325
331
  when 43 then
326
- ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
332
+ ConstantTargetNode.new(load_required_constant, location)
327
333
  when 44 then
328
- load_serialized_length
329
- DefNode.new(load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
334
+ ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
330
335
  when 45 then
331
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
336
+ load_serialized_length
337
+ DefNode.new(load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_varuint, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
332
338
  when 46 then
333
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
339
+ DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
334
340
  when 47 then
335
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
341
+ ElseNode.new(load_location, load_optional_node, load_optional_location, location)
336
342
  when 48 then
337
- EmbeddedVariableNode.new(load_location, load_node, location)
343
+ EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
338
344
  when 49 then
339
- EnsureNode.new(load_location, load_optional_node, load_location, location)
345
+ EmbeddedVariableNode.new(load_location, load_node, location)
340
346
  when 50 then
341
- FalseNode.new(location)
347
+ EnsureNode.new(load_location, load_optional_node, load_location, location)
342
348
  when 51 then
343
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
349
+ FalseNode.new(location)
344
350
  when 52 then
345
- FlipFlopNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
351
+ FindPatternNode.new(load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
346
352
  when 53 then
347
- FloatNode.new(location)
353
+ FlipFlopNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
348
354
  when 54 then
349
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
355
+ FloatNode.new(location)
350
356
  when 55 then
351
- ForwardingArgumentsNode.new(location)
357
+ ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
352
358
  when 56 then
353
- ForwardingParameterNode.new(location)
359
+ ForwardingArgumentsNode.new(location)
354
360
  when 57 then
355
- ForwardingSuperNode.new(load_optional_node, location)
361
+ ForwardingParameterNode.new(location)
356
362
  when 58 then
357
- GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
363
+ ForwardingSuperNode.new(load_optional_node, location)
358
364
  when 59 then
359
- GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
365
+ GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
360
366
  when 60 then
361
- GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
367
+ GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
362
368
  when 61 then
363
- GlobalVariableReadNode.new(load_required_constant, location)
369
+ GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
364
370
  when 62 then
365
- GlobalVariableTargetNode.new(load_required_constant, location)
371
+ GlobalVariableReadNode.new(load_required_constant, location)
366
372
  when 63 then
367
- GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
373
+ GlobalVariableTargetNode.new(load_required_constant, location)
368
374
  when 64 then
369
- HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
375
+ GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
370
376
  when 65 then
371
- HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
377
+ HashNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
372
378
  when 66 then
373
- IfNode.new(load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
379
+ HashPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
374
380
  when 67 then
375
- ImaginaryNode.new(load_node, location)
381
+ IfNode.new(load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
376
382
  when 68 then
377
- ImplicitNode.new(load_node, location)
383
+ ImaginaryNode.new(load_node, location)
378
384
  when 69 then
379
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
385
+ ImplicitNode.new(load_node, location)
380
386
  when 70 then
381
- IndexAndWriteNode.new(load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_varint, load_location, load_node, location)
387
+ ImplicitRestNode.new(location)
382
388
  when 71 then
383
- IndexOperatorWriteNode.new(load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_varint, load_required_constant, load_location, load_node, location)
389
+ InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
384
390
  when 72 then
385
- IndexOrWriteNode.new(load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_varint, load_location, load_node, location)
391
+ IndexAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
386
392
  when 73 then
387
- InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
393
+ IndexOperatorWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_required_constant, load_location, load_node, location)
388
394
  when 74 then
389
- InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
395
+ IndexOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
390
396
  when 75 then
391
- InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
397
+ IndexTargetNode.new(load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
392
398
  when 76 then
393
- InstanceVariableReadNode.new(load_required_constant, location)
399
+ InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
394
400
  when 77 then
395
- InstanceVariableTargetNode.new(load_required_constant, location)
401
+ InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
396
402
  when 78 then
397
- InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
403
+ InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
398
404
  when 79 then
399
- IntegerNode.new(load_varint, location)
405
+ InstanceVariableReadNode.new(load_required_constant, location)
400
406
  when 80 then
401
- InterpolatedMatchLastLineNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
407
+ InstanceVariableTargetNode.new(load_required_constant, location)
402
408
  when 81 then
403
- InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
409
+ InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
404
410
  when 82 then
405
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
411
+ IntegerNode.new(load_varuint, location)
406
412
  when 83 then
407
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
413
+ InterpolatedMatchLastLineNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
408
414
  when 84 then
409
- InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
415
+ InterpolatedRegularExpressionNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
410
416
  when 85 then
411
- KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
417
+ InterpolatedStringNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
412
418
  when 86 then
413
- KeywordRestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
419
+ InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
414
420
  when 87 then
415
- LambdaNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
421
+ InterpolatedXStringNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
416
422
  when 88 then
417
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
423
+ KeywordHashNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
418
424
  when 89 then
419
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varint, location)
425
+ KeywordRestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
420
426
  when 90 then
421
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
427
+ LambdaNode.new(Array.new(load_varuint) { load_required_constant }, load_varuint, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
422
428
  when 91 then
423
- LocalVariableReadNode.new(load_required_constant, load_varint, location)
429
+ LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
424
430
  when 92 then
425
- LocalVariableTargetNode.new(load_required_constant, load_varint, location)
431
+ LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
426
432
  when 93 then
427
- LocalVariableWriteNode.new(load_required_constant, load_varint, load_location, load_node, load_location, location)
433
+ LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
428
434
  when 94 then
429
- MatchLastLineNode.new(load_location, load_location, load_location, load_string, load_varint, location)
435
+ LocalVariableReadNode.new(load_required_constant, load_varuint, location)
430
436
  when 95 then
431
- MatchPredicateNode.new(load_node, load_node, load_location, location)
437
+ LocalVariableTargetNode.new(load_required_constant, load_varuint, location)
432
438
  when 96 then
433
- MatchRequiredNode.new(load_node, load_node, load_location, location)
439
+ LocalVariableWriteNode.new(load_required_constant, load_varuint, load_location, load_node, load_location, location)
434
440
  when 97 then
435
- MatchWriteNode.new(load_node, Array.new(load_varint) { load_node }, location)
441
+ MatchLastLineNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
436
442
  when 98 then
437
- MissingNode.new(location)
443
+ MatchPredicateNode.new(load_node, load_node, load_location, location)
438
444
  when 99 then
439
- ModuleNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
445
+ MatchRequiredNode.new(load_node, load_node, load_location, location)
440
446
  when 100 then
441
- MultiTargetNode.new(Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
447
+ MatchWriteNode.new(load_node, Array.new(load_varuint) { load_node }, location)
442
448
  when 101 then
443
- MultiWriteNode.new(Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
449
+ MissingNode.new(location)
444
450
  when 102 then
445
- NextNode.new(load_optional_node, load_location, location)
451
+ ModuleNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
446
452
  when 103 then
447
- NilNode.new(location)
453
+ MultiTargetNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
448
454
  when 104 then
449
- NoKeywordsParameterNode.new(load_location, load_location, location)
455
+ MultiWriteNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
450
456
  when 105 then
451
- NumberedReferenceReadNode.new(load_varint, location)
457
+ NextNode.new(load_optional_node, load_location, location)
452
458
  when 106 then
453
- OptionalKeywordParameterNode.new(load_required_constant, load_location, load_node, location)
459
+ NilNode.new(location)
454
460
  when 107 then
455
- OptionalParameterNode.new(load_required_constant, load_location, load_location, load_node, location)
461
+ NoKeywordsParameterNode.new(load_location, load_location, location)
456
462
  when 108 then
457
- OrNode.new(load_node, load_node, load_location, location)
463
+ NumberedParametersNode.new(io.getbyte, location)
458
464
  when 109 then
459
- ParametersNode.new(Array.new(load_varint) { load_node }, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, Array.new(load_varint) { load_node }, load_optional_node, load_optional_node, location)
465
+ NumberedReferenceReadNode.new(load_varuint, location)
460
466
  when 110 then
461
- ParenthesesNode.new(load_optional_node, load_location, load_location, location)
467
+ OptionalKeywordParameterNode.new(load_required_constant, load_location, load_node, location)
462
468
  when 111 then
463
- PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
469
+ OptionalParameterNode.new(load_required_constant, load_location, load_location, load_node, location)
464
470
  when 112 then
465
- PinnedVariableNode.new(load_node, load_location, location)
471
+ OrNode.new(load_node, load_node, load_location, location)
466
472
  when 113 then
467
- PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
473
+ ParametersNode.new(Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_node, location)
468
474
  when 114 then
469
- PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
475
+ ParenthesesNode.new(load_optional_node, load_location, load_location, location)
470
476
  when 115 then
471
- ProgramNode.new(Array.new(load_varint) { load_required_constant }, load_node, location)
477
+ PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
472
478
  when 116 then
473
- RangeNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
479
+ PinnedVariableNode.new(load_node, load_location, location)
474
480
  when 117 then
475
- RationalNode.new(load_node, location)
481
+ PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
476
482
  when 118 then
477
- RedoNode.new(location)
483
+ PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
478
484
  when 119 then
479
- RegularExpressionNode.new(load_location, load_location, load_location, load_string, load_varint, location)
485
+ ProgramNode.new(Array.new(load_varuint) { load_required_constant }, load_node, location)
480
486
  when 120 then
481
- RequiredKeywordParameterNode.new(load_required_constant, load_location, location)
487
+ RangeNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
482
488
  when 121 then
483
- RequiredParameterNode.new(load_required_constant, location)
489
+ RationalNode.new(load_node, location)
484
490
  when 122 then
485
- RescueModifierNode.new(load_node, load_location, load_node, location)
491
+ RedoNode.new(location)
486
492
  when 123 then
487
- RescueNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
493
+ RegularExpressionNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
488
494
  when 124 then
489
- RestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
495
+ RequiredKeywordParameterNode.new(load_required_constant, load_location, location)
490
496
  when 125 then
491
- RetryNode.new(location)
497
+ RequiredParameterNode.new(load_required_constant, location)
492
498
  when 126 then
493
- ReturnNode.new(load_location, load_optional_node, location)
499
+ RescueModifierNode.new(load_node, load_location, load_node, location)
494
500
  when 127 then
495
- SelfNode.new(location)
501
+ RescueNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
496
502
  when 128 then
497
- SingletonClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
503
+ RestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
498
504
  when 129 then
499
- SourceEncodingNode.new(location)
505
+ RetryNode.new(location)
500
506
  when 130 then
501
- SourceFileNode.new(load_string, location)
507
+ ReturnNode.new(load_location, load_optional_node, location)
502
508
  when 131 then
503
- SourceLineNode.new(location)
509
+ SelfNode.new(location)
504
510
  when 132 then
505
- SplatNode.new(load_location, load_optional_node, location)
511
+ SingletonClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
506
512
  when 133 then
507
- StatementsNode.new(Array.new(load_varint) { load_node }, location)
513
+ SourceEncodingNode.new(location)
508
514
  when 134 then
509
- StringNode.new(load_varint, load_optional_location, load_location, load_optional_location, load_string, location)
515
+ SourceFileNode.new(load_string, location)
510
516
  when 135 then
511
- SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
517
+ SourceLineNode.new(location)
512
518
  when 136 then
513
- SymbolNode.new(load_optional_location, load_optional_location, load_optional_location, load_string, location)
519
+ SplatNode.new(load_location, load_optional_node, location)
514
520
  when 137 then
515
- TrueNode.new(location)
521
+ StatementsNode.new(Array.new(load_varuint) { load_node }, location)
516
522
  when 138 then
517
- UndefNode.new(Array.new(load_varint) { load_node }, load_location, location)
523
+ StringNode.new(load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
518
524
  when 139 then
519
- UnlessNode.new(load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
525
+ SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
520
526
  when 140 then
521
- UntilNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
527
+ SymbolNode.new(load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
522
528
  when 141 then
523
- WhenNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_node, location)
529
+ TrueNode.new(location)
524
530
  when 142 then
525
- WhileNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
531
+ UndefNode.new(Array.new(load_varuint) { load_node }, load_location, location)
526
532
  when 143 then
527
- XStringNode.new(load_location, load_location, load_location, load_string, location)
533
+ UnlessNode.new(load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
528
534
  when 144 then
535
+ UntilNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
536
+ when 145 then
537
+ WhenNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
538
+ when 146 then
539
+ WhileNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
540
+ when 147 then
541
+ XStringNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
542
+ when 148 then
529
543
  YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
530
544
  end
531
545
  end
@@ -556,15 +570,15 @@ module Prism
556
570
  },
557
571
  -> {
558
572
  location = load_location
559
- ArgumentsNode.new(Array.new(load_varint) { load_node }, load_varint, location)
573
+ ArgumentsNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
560
574
  },
561
575
  -> {
562
576
  location = load_location
563
- ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
577
+ ArrayNode.new(load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
564
578
  },
565
579
  -> {
566
580
  location = load_location
567
- ArrayPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
581
+ ArrayPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
568
582
  },
569
583
  -> {
570
584
  location = load_location
@@ -592,7 +606,7 @@ module Prism
592
606
  },
593
607
  -> {
594
608
  location = load_location
595
- BlockNode.new(Array.new(load_varint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
609
+ BlockNode.new(Array.new(load_varuint) { load_required_constant }, load_varuint, load_optional_node, load_optional_node, load_location, load_location, location)
596
610
  },
597
611
  -> {
598
612
  location = load_location
@@ -600,7 +614,7 @@ module Prism
600
614
  },
601
615
  -> {
602
616
  location = load_location
603
- BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
617
+ BlockParametersNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
604
618
  },
605
619
  -> {
606
620
  location = load_location
@@ -608,19 +622,23 @@ module Prism
608
622
  },
609
623
  -> {
610
624
  location = load_location
611
- CallAndWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
625
+ CallAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
612
626
  },
613
627
  -> {
614
628
  location = load_location
615
- CallNode.new(load_optional_node, load_optional_location, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, load_varint, load_required_constant, location)
629
+ CallNode.new(load_varuint, load_optional_node, load_optional_location, load_required_constant, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
616
630
  },
617
631
  -> {
618
632
  location = load_location
619
- CallOperatorWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_required_constant, load_location, load_node, location)
633
+ CallOperatorWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_required_constant, load_location, load_node, location)
620
634
  },
621
635
  -> {
622
636
  location = load_location
623
- CallOrWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
637
+ CallOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
638
+ },
639
+ -> {
640
+ location = load_location
641
+ CallTargetNode.new(load_varuint, load_node, load_location, load_required_constant, load_location, location)
624
642
  },
625
643
  -> {
626
644
  location = load_location
@@ -628,15 +646,15 @@ module Prism
628
646
  },
629
647
  -> {
630
648
  location = load_location
631
- CaseMatchNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
649
+ CaseMatchNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
632
650
  },
633
651
  -> {
634
652
  location = load_location
635
- CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
653
+ CaseNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
636
654
  },
637
655
  -> {
638
656
  location = load_location
639
- ClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant, location)
657
+ ClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant, location)
640
658
  },
641
659
  -> {
642
660
  location = load_location
@@ -713,7 +731,7 @@ module Prism
713
731
  -> {
714
732
  location = load_location
715
733
  load_serialized_length
716
- DefNode.new(load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
734
+ DefNode.new(load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_varuint, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
717
735
  },
718
736
  -> {
719
737
  location = load_location
@@ -741,11 +759,11 @@ module Prism
741
759
  },
742
760
  -> {
743
761
  location = load_location
744
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
762
+ FindPatternNode.new(load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
745
763
  },
746
764
  -> {
747
765
  location = load_location
748
- FlipFlopNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
766
+ FlipFlopNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
749
767
  },
750
768
  -> {
751
769
  location = load_location
@@ -793,11 +811,11 @@ module Prism
793
811
  },
794
812
  -> {
795
813
  location = load_location
796
- HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
814
+ HashNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
797
815
  },
798
816
  -> {
799
817
  location = load_location
800
- HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
818
+ HashPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
801
819
  },
802
820
  -> {
803
821
  location = load_location
@@ -811,21 +829,29 @@ module Prism
811
829
  location = load_location
812
830
  ImplicitNode.new(load_node, location)
813
831
  },
832
+ -> {
833
+ location = load_location
834
+ ImplicitRestNode.new(location)
835
+ },
814
836
  -> {
815
837
  location = load_location
816
838
  InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
817
839
  },
818
840
  -> {
819
841
  location = load_location
820
- IndexAndWriteNode.new(load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_varint, load_location, load_node, location)
842
+ IndexAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
843
+ },
844
+ -> {
845
+ location = load_location
846
+ IndexOperatorWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_required_constant, load_location, load_node, location)
821
847
  },
822
848
  -> {
823
849
  location = load_location
824
- IndexOperatorWriteNode.new(load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_varint, load_required_constant, load_location, load_node, location)
850
+ IndexOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
825
851
  },
826
852
  -> {
827
853
  location = load_location
828
- IndexOrWriteNode.new(load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_varint, load_location, load_node, location)
854
+ IndexTargetNode.new(load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
829
855
  },
830
856
  -> {
831
857
  location = load_location
@@ -853,31 +879,31 @@ module Prism
853
879
  },
854
880
  -> {
855
881
  location = load_location
856
- IntegerNode.new(load_varint, location)
882
+ IntegerNode.new(load_varuint, location)
857
883
  },
858
884
  -> {
859
885
  location = load_location
860
- InterpolatedMatchLastLineNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
886
+ InterpolatedMatchLastLineNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
861
887
  },
862
888
  -> {
863
889
  location = load_location
864
- InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
890
+ InterpolatedRegularExpressionNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
865
891
  },
866
892
  -> {
867
893
  location = load_location
868
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
894
+ InterpolatedStringNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
869
895
  },
870
896
  -> {
871
897
  location = load_location
872
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
898
+ InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
873
899
  },
874
900
  -> {
875
901
  location = load_location
876
- InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
902
+ InterpolatedXStringNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
877
903
  },
878
904
  -> {
879
905
  location = load_location
880
- KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
906
+ KeywordHashNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
881
907
  },
882
908
  -> {
883
909
  location = load_location
@@ -885,35 +911,35 @@ module Prism
885
911
  },
886
912
  -> {
887
913
  location = load_location
888
- LambdaNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
914
+ LambdaNode.new(Array.new(load_varuint) { load_required_constant }, load_varuint, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
889
915
  },
890
916
  -> {
891
917
  location = load_location
892
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
918
+ LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
893
919
  },
894
920
  -> {
895
921
  location = load_location
896
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varint, location)
922
+ LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
897
923
  },
898
924
  -> {
899
925
  location = load_location
900
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
926
+ LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
901
927
  },
902
928
  -> {
903
929
  location = load_location
904
- LocalVariableReadNode.new(load_required_constant, load_varint, location)
930
+ LocalVariableReadNode.new(load_required_constant, load_varuint, location)
905
931
  },
906
932
  -> {
907
933
  location = load_location
908
- LocalVariableTargetNode.new(load_required_constant, load_varint, location)
934
+ LocalVariableTargetNode.new(load_required_constant, load_varuint, location)
909
935
  },
910
936
  -> {
911
937
  location = load_location
912
- LocalVariableWriteNode.new(load_required_constant, load_varint, load_location, load_node, load_location, location)
938
+ LocalVariableWriteNode.new(load_required_constant, load_varuint, load_location, load_node, load_location, location)
913
939
  },
914
940
  -> {
915
941
  location = load_location
916
- MatchLastLineNode.new(load_location, load_location, load_location, load_string, load_varint, location)
942
+ MatchLastLineNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
917
943
  },
918
944
  -> {
919
945
  location = load_location
@@ -925,7 +951,7 @@ module Prism
925
951
  },
926
952
  -> {
927
953
  location = load_location
928
- MatchWriteNode.new(load_node, Array.new(load_varint) { load_node }, location)
954
+ MatchWriteNode.new(load_node, Array.new(load_varuint) { load_node }, location)
929
955
  },
930
956
  -> {
931
957
  location = load_location
@@ -933,15 +959,15 @@ module Prism
933
959
  },
934
960
  -> {
935
961
  location = load_location
936
- ModuleNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
962
+ ModuleNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
937
963
  },
938
964
  -> {
939
965
  location = load_location
940
- MultiTargetNode.new(Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
966
+ MultiTargetNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
941
967
  },
942
968
  -> {
943
969
  location = load_location
944
- MultiWriteNode.new(Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
970
+ MultiWriteNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
945
971
  },
946
972
  -> {
947
973
  location = load_location
@@ -957,7 +983,11 @@ module Prism
957
983
  },
958
984
  -> {
959
985
  location = load_location
960
- NumberedReferenceReadNode.new(load_varint, location)
986
+ NumberedParametersNode.new(io.getbyte, location)
987
+ },
988
+ -> {
989
+ location = load_location
990
+ NumberedReferenceReadNode.new(load_varuint, location)
961
991
  },
962
992
  -> {
963
993
  location = load_location
@@ -973,7 +1003,7 @@ module Prism
973
1003
  },
974
1004
  -> {
975
1005
  location = load_location
976
- ParametersNode.new(Array.new(load_varint) { load_node }, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, Array.new(load_varint) { load_node }, load_optional_node, load_optional_node, location)
1006
+ ParametersNode.new(Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_node, location)
977
1007
  },
978
1008
  -> {
979
1009
  location = load_location
@@ -997,11 +1027,11 @@ module Prism
997
1027
  },
998
1028
  -> {
999
1029
  location = load_location
1000
- ProgramNode.new(Array.new(load_varint) { load_required_constant }, load_node, location)
1030
+ ProgramNode.new(Array.new(load_varuint) { load_required_constant }, load_node, location)
1001
1031
  },
1002
1032
  -> {
1003
1033
  location = load_location
1004
- RangeNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
1034
+ RangeNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
1005
1035
  },
1006
1036
  -> {
1007
1037
  location = load_location
@@ -1013,7 +1043,7 @@ module Prism
1013
1043
  },
1014
1044
  -> {
1015
1045
  location = load_location
1016
- RegularExpressionNode.new(load_location, load_location, load_location, load_string, load_varint, location)
1046
+ RegularExpressionNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1017
1047
  },
1018
1048
  -> {
1019
1049
  location = load_location
@@ -1029,7 +1059,7 @@ module Prism
1029
1059
  },
1030
1060
  -> {
1031
1061
  location = load_location
1032
- RescueNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1062
+ RescueNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1033
1063
  },
1034
1064
  -> {
1035
1065
  location = load_location
@@ -1049,7 +1079,7 @@ module Prism
1049
1079
  },
1050
1080
  -> {
1051
1081
  location = load_location
1052
- SingletonClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1082
+ SingletonClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1053
1083
  },
1054
1084
  -> {
1055
1085
  location = load_location
@@ -1069,11 +1099,11 @@ module Prism
1069
1099
  },
1070
1100
  -> {
1071
1101
  location = load_location
1072
- StatementsNode.new(Array.new(load_varint) { load_node }, location)
1102
+ StatementsNode.new(Array.new(load_varuint) { load_node }, location)
1073
1103
  },
1074
1104
  -> {
1075
1105
  location = load_location
1076
- StringNode.new(load_varint, load_optional_location, load_location, load_optional_location, load_string, location)
1106
+ StringNode.new(load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1077
1107
  },
1078
1108
  -> {
1079
1109
  location = load_location
@@ -1081,7 +1111,7 @@ module Prism
1081
1111
  },
1082
1112
  -> {
1083
1113
  location = load_location
1084
- SymbolNode.new(load_optional_location, load_optional_location, load_optional_location, load_string, location)
1114
+ SymbolNode.new(load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1085
1115
  },
1086
1116
  -> {
1087
1117
  location = load_location
@@ -1089,7 +1119,7 @@ module Prism
1089
1119
  },
1090
1120
  -> {
1091
1121
  location = load_location
1092
- UndefNode.new(Array.new(load_varint) { load_node }, load_location, location)
1122
+ UndefNode.new(Array.new(load_varuint) { load_node }, load_location, location)
1093
1123
  },
1094
1124
  -> {
1095
1125
  location = load_location
@@ -1097,19 +1127,19 @@ module Prism
1097
1127
  },
1098
1128
  -> {
1099
1129
  location = load_location
1100
- UntilNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
1130
+ UntilNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1101
1131
  },
1102
1132
  -> {
1103
1133
  location = load_location
1104
- WhenNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_node, location)
1134
+ WhenNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1105
1135
  },
1106
1136
  -> {
1107
1137
  location = load_location
1108
- WhileNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
1138
+ WhileNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1109
1139
  },
1110
1140
  -> {
1111
1141
  location = load_location
1112
- XStringNode.new(load_location, load_location, load_location, load_string, location)
1142
+ XStringNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1113
1143
  },
1114
1144
  -> {
1115
1145
  location = load_location