prism 0.18.0 → 0.19.0

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