prism 0.15.0 → 0.16.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -1
  3. data/Makefile +6 -0
  4. data/README.md +2 -0
  5. data/config.yml +21 -20
  6. data/docs/configuration.md +2 -0
  7. data/docs/javascript.md +90 -0
  8. data/docs/releasing.md +27 -0
  9. data/docs/ruby_api.md +2 -0
  10. data/ext/prism/api_node.c +66 -68
  11. data/ext/prism/extension.c +73 -0
  12. data/ext/prism/extension.h +1 -1
  13. data/include/prism/ast.h +40 -40
  14. data/include/prism/defines.h +9 -0
  15. data/include/prism/enc/pm_encoding.h +1 -0
  16. data/include/prism/node.h +0 -17
  17. data/include/prism/parser.h +1 -0
  18. data/include/prism/prettyprint.h +15 -0
  19. data/include/prism/util/pm_buffer.h +10 -4
  20. data/include/prism/util/pm_constant_pool.h +1 -1
  21. data/include/prism/util/pm_newline_list.h +1 -1
  22. data/include/prism/version.h +2 -2
  23. data/include/prism.h +11 -11
  24. data/lib/prism/compiler.rb +0 -3
  25. data/lib/prism/debug.rb +20 -6
  26. data/lib/prism/desugar_compiler.rb +1 -1
  27. data/lib/prism/dispatcher.rb +0 -14
  28. data/lib/prism/dsl.rb +8 -13
  29. data/lib/prism/ffi.rb +25 -0
  30. data/lib/prism/lex_compat.rb +1 -1
  31. data/lib/prism/mutation_compiler.rb +3 -8
  32. data/lib/prism/node.rb +123 -159
  33. data/lib/prism/node_ext.rb +23 -16
  34. data/lib/prism/parse_result.rb +21 -5
  35. data/lib/prism/pattern.rb +3 -3
  36. data/lib/prism/serialize.rb +900 -304
  37. data/lib/prism/visitor.rb +0 -3
  38. data/prism.gemspec +8 -1
  39. data/rbi/prism.rbi +7261 -0
  40. data/rbi/prism_static.rbi +182 -0
  41. data/sig/prism.rbs +4439 -0
  42. data/sig/prism_static.rbs +110 -0
  43. data/src/enc/pm_unicode.c +1 -1
  44. data/src/node.c +28 -29
  45. data/src/prettyprint.c +7674 -1647
  46. data/src/prism.c +353 -300
  47. data/src/regexp.c +2 -0
  48. data/src/serialize.c +392 -381
  49. data/src/util/pm_buffer.c +47 -12
  50. data/src/util/pm_constant_pool.c +2 -2
  51. data/src/util/pm_newline_list.c +8 -54
  52. metadata +9 -2
@@ -21,7 +21,7 @@ end
21
21
  module Prism
22
22
  module Serialize
23
23
  MAJOR_VERSION = 0
24
- MINOR_VERSION = 15
24
+ MINOR_VERSION = 16
25
25
  PATCH_VERSION = 0
26
26
 
27
27
  def self.load(input, serialized)
@@ -54,14 +54,33 @@ module Prism
54
54
  @constant_pool = nil
55
55
 
56
56
  @source = source
57
+ define_load_node_lambdas unless RUBY_ENGINE == 'ruby'
58
+ end
59
+
60
+ def load_header
61
+ raise "Invalid serialization" if io.read(5) != "PRISM"
62
+ raise "Invalid serialization" if io.read(3).unpack("C3") != [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION]
63
+ only_semantic_fields = io.read(1).unpack1("C")
64
+ unless only_semantic_fields == 0
65
+ raise "Invalid serialization (location fields must be included but are not)"
66
+ end
57
67
  end
58
68
 
59
69
  def load_encoding
60
70
  Encoding.find(io.read(load_varint))
61
71
  end
62
72
 
73
+ def load_force_encoding
74
+ @encoding = load_encoding
75
+ @input = input.force_encoding(@encoding).freeze
76
+ end
77
+
78
+ def load_comments
79
+ load_varint.times.map { Comment.new(Comment::TYPES.fetch(load_varint), load_location) }
80
+ end
81
+
63
82
  def load_metadata
64
- comments = load_varint.times.map { Comment.new(Comment::TYPES.fetch(load_varint), load_location) }
83
+ comments = load_comments
65
84
  magic_comments = load_varint.times.map { MagicComment.new(load_location, load_location) }
66
85
  errors = load_varint.times.map { ParseError.new(load_embedded_string, load_location) }
67
86
  warnings = load_varint.times.map { ParseWarning.new(load_embedded_string, load_location) }
@@ -95,15 +114,8 @@ module Prism
95
114
  end
96
115
 
97
116
  def load_nodes
98
- raise "Invalid serialization" if io.read(5) != "PRISM"
99
- raise "Invalid serialization" if io.read(3).unpack("C3") != [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION]
100
- only_semantic_fields = io.read(1).unpack1("C")
101
- unless only_semantic_fields == 0
102
- raise "Invalid serialization (location fields must be included but are not)"
103
- end
104
-
105
- @encoding = load_encoding
106
- @input = input.force_encoding(@encoding).freeze
117
+ load_header
118
+ load_force_encoding
107
119
 
108
120
  comments, magic_comments, errors, warnings = load_metadata
109
121
 
@@ -201,300 +213,884 @@ module Prism
201
213
  load_constant(index - 1) if index != 0
202
214
  end
203
215
 
204
- def load_node
205
- type = io.getbyte
206
- location = load_location
216
+ if RUBY_ENGINE == 'ruby'
217
+ def load_node
218
+ type = io.getbyte
219
+ location = load_location
207
220
 
208
- case type
209
- when 1 then
210
- AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
211
- when 2 then
212
- AliasMethodNode.new(load_node, load_node, load_location, location)
213
- when 3 then
214
- AlternationPatternNode.new(load_node, load_node, load_location, location)
215
- when 4 then
216
- AndNode.new(load_node, load_node, load_location, location)
217
- when 5 then
218
- ArgumentsNode.new(Array.new(load_varint) { load_node }, location)
219
- when 6 then
220
- ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
221
- when 7 then
222
- 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)
223
- when 8 then
224
- AssocNode.new(load_node, load_optional_node, load_optional_location, location)
225
- when 9 then
226
- AssocSplatNode.new(load_optional_node, load_location, location)
227
- when 10 then
228
- BackReferenceReadNode.new(load_required_constant, location)
229
- when 11 then
230
- BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
231
- when 12 then
232
- BlockArgumentNode.new(load_optional_node, load_location, location)
233
- when 13 then
234
- BlockLocalVariableNode.new(load_required_constant, location)
235
- when 14 then
236
- BlockNode.new(Array.new(load_varint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
237
- when 15 then
238
- BlockParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
239
- when 16 then
240
- BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
241
- when 17 then
242
- BreakNode.new(load_optional_node, load_location, location)
243
- when 18 then
244
- CallAndWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
245
- when 19 then
246
- 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)
247
- when 20 then
248
- 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)
249
- when 21 then
250
- CallOrWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
251
- when 22 then
252
- CapturePatternNode.new(load_node, load_node, load_location, location)
253
- when 23 then
254
- CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
255
- when 24 then
256
- 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)
257
- when 25 then
258
- ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
259
- when 26 then
260
- ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
261
- when 27 then
262
- ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
263
- when 28 then
264
- ClassVariableReadNode.new(load_required_constant, location)
265
- when 29 then
266
- ClassVariableTargetNode.new(load_required_constant, location)
267
- when 30 then
268
- ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
269
- when 31 then
270
- ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
271
- when 32 then
272
- ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
273
- when 33 then
274
- ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
275
- when 34 then
276
- ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
277
- when 35 then
278
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
279
- when 36 then
280
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
281
- when 37 then
282
- ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
283
- when 38 then
284
- ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
285
- when 39 then
286
- ConstantPathWriteNode.new(load_node, load_location, load_node, location)
287
- when 40 then
288
- ConstantReadNode.new(load_required_constant, location)
289
- when 41 then
290
- ConstantTargetNode.new(load_required_constant, location)
291
- when 42 then
292
- ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
293
- when 43 then
294
- load_serialized_length
295
- 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)
296
- when 44 then
297
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
298
- when 45 then
299
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
300
- when 46 then
301
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
302
- when 47 then
303
- EmbeddedVariableNode.new(load_location, load_node, location)
304
- when 48 then
305
- EnsureNode.new(load_location, load_optional_node, load_location, location)
306
- when 49 then
307
- FalseNode.new(location)
308
- when 50 then
309
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
310
- when 51 then
311
- FlipFlopNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
312
- when 52 then
313
- FloatNode.new(location)
314
- when 53 then
315
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
316
- when 54 then
317
- ForwardingArgumentsNode.new(location)
318
- when 55 then
319
- ForwardingParameterNode.new(location)
320
- when 56 then
321
- ForwardingSuperNode.new(load_optional_node, location)
322
- when 57 then
323
- GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
324
- when 58 then
325
- GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
326
- when 59 then
327
- GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
328
- when 60 then
329
- GlobalVariableReadNode.new(load_required_constant, location)
330
- when 61 then
331
- GlobalVariableTargetNode.new(load_required_constant, location)
332
- when 62 then
333
- GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
334
- when 63 then
335
- HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
336
- when 64 then
337
- HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
338
- when 65 then
339
- IfNode.new(load_optional_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
340
- when 66 then
341
- ImaginaryNode.new(load_node, location)
342
- when 67 then
343
- ImplicitNode.new(load_node, location)
344
- when 68 then
345
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
346
- when 69 then
347
- 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)
348
- when 70 then
349
- 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)
350
- when 71 then
351
- 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)
352
- when 72 then
353
- InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
354
- when 73 then
355
- InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
356
- when 74 then
357
- InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
358
- when 75 then
359
- InstanceVariableReadNode.new(load_required_constant, location)
360
- when 76 then
361
- InstanceVariableTargetNode.new(load_required_constant, location)
362
- when 77 then
363
- InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
364
- when 78 then
365
- IntegerNode.new(load_varint, location)
366
- when 79 then
367
- InterpolatedMatchLastLineNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
368
- when 80 then
369
- InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
370
- when 81 then
371
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
372
- when 82 then
373
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
374
- when 83 then
375
- InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
376
- when 84 then
377
- KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
378
- when 85 then
379
- KeywordParameterNode.new(load_required_constant, load_location, load_optional_node, location)
380
- when 86 then
381
- KeywordRestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
382
- when 87 then
383
- LambdaNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
384
- when 88 then
385
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
386
- when 89 then
387
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varint, location)
388
- when 90 then
389
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
390
- when 91 then
391
- LocalVariableReadNode.new(load_required_constant, load_varint, location)
392
- when 92 then
393
- LocalVariableTargetNode.new(load_required_constant, load_varint, location)
394
- when 93 then
395
- LocalVariableWriteNode.new(load_required_constant, load_varint, load_location, load_node, load_location, location)
396
- when 94 then
397
- MatchLastLineNode.new(load_location, load_location, load_location, load_string, load_varint, location)
398
- when 95 then
399
- MatchPredicateNode.new(load_node, load_node, load_location, location)
400
- when 96 then
401
- MatchRequiredNode.new(load_node, load_node, load_location, location)
402
- when 97 then
403
- MatchWriteNode.new(load_node, Array.new(load_varint) { load_required_constant }, location)
404
- when 98 then
405
- MissingNode.new(location)
406
- when 99 then
407
- ModuleNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
408
- when 100 then
409
- MultiTargetNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
410
- when 101 then
411
- MultiWriteNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
412
- when 102 then
413
- NextNode.new(load_optional_node, load_location, location)
414
- when 103 then
415
- NilNode.new(location)
416
- when 104 then
417
- NoKeywordsParameterNode.new(load_location, load_location, location)
418
- when 105 then
419
- NumberedReferenceReadNode.new(load_varint, location)
420
- when 106 then
421
- OptionalParameterNode.new(load_required_constant, load_location, load_location, load_node, location)
422
- when 107 then
423
- OrNode.new(load_node, load_node, load_location, location)
424
- when 108 then
425
- 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)
426
- when 109 then
427
- ParenthesesNode.new(load_optional_node, load_location, load_location, location)
428
- when 110 then
429
- PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
430
- when 111 then
431
- PinnedVariableNode.new(load_node, load_location, location)
432
- when 112 then
433
- PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
434
- when 113 then
435
- PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
436
- when 114 then
437
- ProgramNode.new(Array.new(load_varint) { load_required_constant }, load_node, location)
438
- when 115 then
439
- RangeNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
440
- when 116 then
441
- RationalNode.new(load_node, location)
442
- when 117 then
443
- RedoNode.new(location)
444
- when 118 then
445
- RegularExpressionNode.new(load_location, load_location, load_location, load_string, load_varint, location)
446
- when 119 then
447
- RequiredDestructuredParameterNode.new(Array.new(load_varint) { load_node }, load_location, load_location, location)
448
- when 120 then
449
- RequiredParameterNode.new(load_required_constant, location)
450
- when 121 then
451
- RescueModifierNode.new(load_node, load_location, load_node, location)
452
- when 122 then
453
- RescueNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
454
- when 123 then
455
- RestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
456
- when 124 then
457
- RetryNode.new(location)
458
- when 125 then
459
- ReturnNode.new(load_location, load_optional_node, location)
460
- when 126 then
461
- SelfNode.new(location)
462
- when 127 then
463
- SingletonClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
464
- when 128 then
465
- SourceEncodingNode.new(location)
466
- when 129 then
467
- SourceFileNode.new(load_string, location)
468
- when 130 then
469
- SourceLineNode.new(location)
470
- when 131 then
471
- SplatNode.new(load_location, load_optional_node, location)
472
- when 132 then
473
- StatementsNode.new(Array.new(load_varint) { load_node }, location)
474
- when 133 then
475
- StringConcatNode.new(load_node, load_node, location)
476
- when 134 then
477
- StringNode.new(load_varint, load_optional_location, load_location, load_optional_location, load_string, location)
478
- when 135 then
479
- SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
480
- when 136 then
481
- SymbolNode.new(load_optional_location, load_optional_location, load_optional_location, load_string, location)
482
- when 137 then
483
- TrueNode.new(location)
484
- when 138 then
485
- UndefNode.new(Array.new(load_varint) { load_node }, load_location, location)
486
- when 139 then
487
- UnlessNode.new(load_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
488
- when 140 then
489
- UntilNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
490
- when 141 then
491
- WhenNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_node, location)
492
- when 142 then
493
- WhileNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
494
- when 143 then
495
- XStringNode.new(load_location, load_location, load_location, load_string, location)
496
- when 144 then
497
- YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
221
+ case type
222
+ when 1 then
223
+ AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
224
+ when 2 then
225
+ AliasMethodNode.new(load_node, load_node, load_location, location)
226
+ when 3 then
227
+ AlternationPatternNode.new(load_node, load_node, load_location, location)
228
+ when 4 then
229
+ AndNode.new(load_node, load_node, load_location, location)
230
+ when 5 then
231
+ ArgumentsNode.new(Array.new(load_varint) { load_node }, load_varint, location)
232
+ when 6 then
233
+ ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
234
+ when 7 then
235
+ 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)
236
+ when 8 then
237
+ AssocNode.new(load_node, load_optional_node, load_optional_location, location)
238
+ when 9 then
239
+ AssocSplatNode.new(load_optional_node, load_location, location)
240
+ when 10 then
241
+ BackReferenceReadNode.new(load_required_constant, location)
242
+ when 11 then
243
+ BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
244
+ when 12 then
245
+ BlockArgumentNode.new(load_optional_node, load_location, location)
246
+ when 13 then
247
+ BlockLocalVariableNode.new(load_required_constant, location)
248
+ when 14 then
249
+ BlockNode.new(Array.new(load_varint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
250
+ when 15 then
251
+ BlockParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
252
+ when 16 then
253
+ BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
254
+ when 17 then
255
+ BreakNode.new(load_optional_node, load_location, location)
256
+ when 18 then
257
+ CallAndWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
258
+ when 19 then
259
+ 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)
260
+ when 20 then
261
+ 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)
262
+ when 21 then
263
+ CallOrWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
264
+ when 22 then
265
+ CapturePatternNode.new(load_node, load_node, load_location, location)
266
+ when 23 then
267
+ CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
268
+ when 24 then
269
+ 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)
270
+ when 25 then
271
+ ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
272
+ when 26 then
273
+ ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
274
+ when 27 then
275
+ ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
276
+ when 28 then
277
+ ClassVariableReadNode.new(load_required_constant, location)
278
+ when 29 then
279
+ ClassVariableTargetNode.new(load_required_constant, location)
280
+ when 30 then
281
+ ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
282
+ when 31 then
283
+ ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
284
+ when 32 then
285
+ ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
286
+ when 33 then
287
+ ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
288
+ when 34 then
289
+ ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
290
+ when 35 then
291
+ ConstantPathNode.new(load_optional_node, load_node, load_location, location)
292
+ when 36 then
293
+ ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
294
+ when 37 then
295
+ ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
296
+ when 38 then
297
+ ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
298
+ when 39 then
299
+ ConstantPathWriteNode.new(load_node, load_location, load_node, location)
300
+ when 40 then
301
+ ConstantReadNode.new(load_required_constant, location)
302
+ when 41 then
303
+ ConstantTargetNode.new(load_required_constant, location)
304
+ when 42 then
305
+ ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
306
+ when 43 then
307
+ load_serialized_length
308
+ 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)
309
+ when 44 then
310
+ DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
311
+ when 45 then
312
+ ElseNode.new(load_location, load_optional_node, load_optional_location, location)
313
+ when 46 then
314
+ EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
315
+ when 47 then
316
+ EmbeddedVariableNode.new(load_location, load_node, location)
317
+ when 48 then
318
+ EnsureNode.new(load_location, load_optional_node, load_location, location)
319
+ when 49 then
320
+ FalseNode.new(location)
321
+ when 50 then
322
+ FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
323
+ when 51 then
324
+ FlipFlopNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
325
+ when 52 then
326
+ FloatNode.new(location)
327
+ when 53 then
328
+ ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
329
+ when 54 then
330
+ ForwardingArgumentsNode.new(location)
331
+ when 55 then
332
+ ForwardingParameterNode.new(location)
333
+ when 56 then
334
+ ForwardingSuperNode.new(load_optional_node, location)
335
+ when 57 then
336
+ GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
337
+ when 58 then
338
+ GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
339
+ when 59 then
340
+ GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
341
+ when 60 then
342
+ GlobalVariableReadNode.new(load_required_constant, location)
343
+ when 61 then
344
+ GlobalVariableTargetNode.new(load_required_constant, location)
345
+ when 62 then
346
+ GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
347
+ when 63 then
348
+ HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
349
+ when 64 then
350
+ HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
351
+ when 65 then
352
+ IfNode.new(load_optional_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
353
+ when 66 then
354
+ ImaginaryNode.new(load_node, location)
355
+ when 67 then
356
+ ImplicitNode.new(load_node, location)
357
+ when 68 then
358
+ InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
359
+ when 69 then
360
+ 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)
361
+ when 70 then
362
+ 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)
363
+ when 71 then
364
+ 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)
365
+ when 72 then
366
+ InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
367
+ when 73 then
368
+ InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
369
+ when 74 then
370
+ InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
371
+ when 75 then
372
+ InstanceVariableReadNode.new(load_required_constant, location)
373
+ when 76 then
374
+ InstanceVariableTargetNode.new(load_required_constant, location)
375
+ when 77 then
376
+ InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
377
+ when 78 then
378
+ IntegerNode.new(load_varint, location)
379
+ when 79 then
380
+ InterpolatedMatchLastLineNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
381
+ when 80 then
382
+ InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
383
+ when 81 then
384
+ InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
385
+ when 82 then
386
+ InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
387
+ when 83 then
388
+ InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
389
+ when 84 then
390
+ KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
391
+ when 85 then
392
+ KeywordParameterNode.new(load_required_constant, load_location, load_optional_node, location)
393
+ when 86 then
394
+ KeywordRestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
395
+ when 87 then
396
+ LambdaNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
397
+ when 88 then
398
+ LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
399
+ when 89 then
400
+ LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varint, location)
401
+ when 90 then
402
+ LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
403
+ when 91 then
404
+ LocalVariableReadNode.new(load_required_constant, load_varint, location)
405
+ when 92 then
406
+ LocalVariableTargetNode.new(load_required_constant, load_varint, location)
407
+ when 93 then
408
+ LocalVariableWriteNode.new(load_required_constant, load_varint, load_location, load_node, load_location, location)
409
+ when 94 then
410
+ MatchLastLineNode.new(load_location, load_location, load_location, load_string, load_varint, location)
411
+ when 95 then
412
+ MatchPredicateNode.new(load_node, load_node, load_location, location)
413
+ when 96 then
414
+ MatchRequiredNode.new(load_node, load_node, load_location, location)
415
+ when 97 then
416
+ MatchWriteNode.new(load_node, Array.new(load_varint) { load_required_constant }, location)
417
+ when 98 then
418
+ MissingNode.new(location)
419
+ when 99 then
420
+ ModuleNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
421
+ when 100 then
422
+ MultiTargetNode.new(Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
423
+ when 101 then
424
+ 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)
425
+ when 102 then
426
+ NextNode.new(load_optional_node, load_location, location)
427
+ when 103 then
428
+ NilNode.new(location)
429
+ when 104 then
430
+ NoKeywordsParameterNode.new(load_location, load_location, location)
431
+ when 105 then
432
+ NumberedReferenceReadNode.new(load_varint, location)
433
+ when 106 then
434
+ OptionalParameterNode.new(load_required_constant, load_location, load_location, load_node, location)
435
+ when 107 then
436
+ OrNode.new(load_node, load_node, load_location, location)
437
+ when 108 then
438
+ 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)
439
+ when 109 then
440
+ ParenthesesNode.new(load_optional_node, load_location, load_location, location)
441
+ when 110 then
442
+ PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
443
+ when 111 then
444
+ PinnedVariableNode.new(load_node, load_location, location)
445
+ when 112 then
446
+ PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
447
+ when 113 then
448
+ PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
449
+ when 114 then
450
+ ProgramNode.new(Array.new(load_varint) { load_required_constant }, load_node, location)
451
+ when 115 then
452
+ RangeNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
453
+ when 116 then
454
+ RationalNode.new(load_node, location)
455
+ when 117 then
456
+ RedoNode.new(location)
457
+ when 118 then
458
+ RegularExpressionNode.new(load_location, load_location, load_location, load_string, load_varint, location)
459
+ when 119 then
460
+ RequiredParameterNode.new(load_required_constant, location)
461
+ when 120 then
462
+ RescueModifierNode.new(load_node, load_location, load_node, location)
463
+ when 121 then
464
+ RescueNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
465
+ when 122 then
466
+ RestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
467
+ when 123 then
468
+ RetryNode.new(location)
469
+ when 124 then
470
+ ReturnNode.new(load_location, load_optional_node, location)
471
+ when 125 then
472
+ SelfNode.new(location)
473
+ when 126 then
474
+ SingletonClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
475
+ when 127 then
476
+ SourceEncodingNode.new(location)
477
+ when 128 then
478
+ SourceFileNode.new(load_string, location)
479
+ when 129 then
480
+ SourceLineNode.new(location)
481
+ when 130 then
482
+ SplatNode.new(load_location, load_optional_node, location)
483
+ when 131 then
484
+ StatementsNode.new(Array.new(load_varint) { load_node }, location)
485
+ when 132 then
486
+ StringConcatNode.new(load_node, load_node, location)
487
+ when 133 then
488
+ StringNode.new(load_varint, load_optional_location, load_location, load_optional_location, load_string, location)
489
+ when 134 then
490
+ SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
491
+ when 135 then
492
+ SymbolNode.new(load_optional_location, load_optional_location, load_optional_location, load_string, location)
493
+ when 136 then
494
+ TrueNode.new(location)
495
+ when 137 then
496
+ UndefNode.new(Array.new(load_varint) { load_node }, load_location, location)
497
+ when 138 then
498
+ UnlessNode.new(load_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
499
+ when 139 then
500
+ UntilNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
501
+ when 140 then
502
+ WhenNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_node, location)
503
+ when 141 then
504
+ WhileNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
505
+ when 142 then
506
+ XStringNode.new(load_location, load_location, load_location, load_string, location)
507
+ when 143 then
508
+ YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
509
+ end
510
+ end
511
+ else
512
+ def load_node
513
+ type = io.getbyte
514
+ @load_node_lambdas[type].call
515
+ end
516
+
517
+ def define_load_node_lambdas
518
+ @load_node_lambdas = [
519
+ nil,
520
+ -> {
521
+ location = load_location
522
+ AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
523
+ },
524
+ -> {
525
+ location = load_location
526
+ AliasMethodNode.new(load_node, load_node, load_location, location)
527
+ },
528
+ -> {
529
+ location = load_location
530
+ AlternationPatternNode.new(load_node, load_node, load_location, location)
531
+ },
532
+ -> {
533
+ location = load_location
534
+ AndNode.new(load_node, load_node, load_location, location)
535
+ },
536
+ -> {
537
+ location = load_location
538
+ ArgumentsNode.new(Array.new(load_varint) { load_node }, load_varint, location)
539
+ },
540
+ -> {
541
+ location = load_location
542
+ ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
543
+ },
544
+ -> {
545
+ location = load_location
546
+ 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)
547
+ },
548
+ -> {
549
+ location = load_location
550
+ AssocNode.new(load_node, load_optional_node, load_optional_location, location)
551
+ },
552
+ -> {
553
+ location = load_location
554
+ AssocSplatNode.new(load_optional_node, load_location, location)
555
+ },
556
+ -> {
557
+ location = load_location
558
+ BackReferenceReadNode.new(load_required_constant, location)
559
+ },
560
+ -> {
561
+ location = load_location
562
+ BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
563
+ },
564
+ -> {
565
+ location = load_location
566
+ BlockArgumentNode.new(load_optional_node, load_location, location)
567
+ },
568
+ -> {
569
+ location = load_location
570
+ BlockLocalVariableNode.new(load_required_constant, location)
571
+ },
572
+ -> {
573
+ location = load_location
574
+ BlockNode.new(Array.new(load_varint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
575
+ },
576
+ -> {
577
+ location = load_location
578
+ BlockParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
579
+ },
580
+ -> {
581
+ location = load_location
582
+ BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
583
+ },
584
+ -> {
585
+ location = load_location
586
+ BreakNode.new(load_optional_node, load_location, location)
587
+ },
588
+ -> {
589
+ location = load_location
590
+ CallAndWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
591
+ },
592
+ -> {
593
+ location = load_location
594
+ 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)
595
+ },
596
+ -> {
597
+ location = load_location
598
+ 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)
599
+ },
600
+ -> {
601
+ location = load_location
602
+ CallOrWriteNode.new(load_optional_node, load_optional_location, load_optional_location, load_varint, load_required_constant, load_required_constant, load_location, load_node, location)
603
+ },
604
+ -> {
605
+ location = load_location
606
+ CapturePatternNode.new(load_node, load_node, load_location, location)
607
+ },
608
+ -> {
609
+ location = load_location
610
+ CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
611
+ },
612
+ -> {
613
+ location = load_location
614
+ 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)
615
+ },
616
+ -> {
617
+ location = load_location
618
+ ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
619
+ },
620
+ -> {
621
+ location = load_location
622
+ ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
623
+ },
624
+ -> {
625
+ location = load_location
626
+ ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
627
+ },
628
+ -> {
629
+ location = load_location
630
+ ClassVariableReadNode.new(load_required_constant, location)
631
+ },
632
+ -> {
633
+ location = load_location
634
+ ClassVariableTargetNode.new(load_required_constant, location)
635
+ },
636
+ -> {
637
+ location = load_location
638
+ ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
639
+ },
640
+ -> {
641
+ location = load_location
642
+ ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
643
+ },
644
+ -> {
645
+ location = load_location
646
+ ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
647
+ },
648
+ -> {
649
+ location = load_location
650
+ ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
651
+ },
652
+ -> {
653
+ location = load_location
654
+ ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
655
+ },
656
+ -> {
657
+ location = load_location
658
+ ConstantPathNode.new(load_optional_node, load_node, load_location, location)
659
+ },
660
+ -> {
661
+ location = load_location
662
+ ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
663
+ },
664
+ -> {
665
+ location = load_location
666
+ ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
667
+ },
668
+ -> {
669
+ location = load_location
670
+ ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
671
+ },
672
+ -> {
673
+ location = load_location
674
+ ConstantPathWriteNode.new(load_node, load_location, load_node, location)
675
+ },
676
+ -> {
677
+ location = load_location
678
+ ConstantReadNode.new(load_required_constant, location)
679
+ },
680
+ -> {
681
+ location = load_location
682
+ ConstantTargetNode.new(load_required_constant, location)
683
+ },
684
+ -> {
685
+ location = load_location
686
+ ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
687
+ },
688
+ -> {
689
+ location = load_location
690
+ load_serialized_length
691
+ 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)
692
+ },
693
+ -> {
694
+ location = load_location
695
+ DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
696
+ },
697
+ -> {
698
+ location = load_location
699
+ ElseNode.new(load_location, load_optional_node, load_optional_location, location)
700
+ },
701
+ -> {
702
+ location = load_location
703
+ EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
704
+ },
705
+ -> {
706
+ location = load_location
707
+ EmbeddedVariableNode.new(load_location, load_node, location)
708
+ },
709
+ -> {
710
+ location = load_location
711
+ EnsureNode.new(load_location, load_optional_node, load_location, location)
712
+ },
713
+ -> {
714
+ location = load_location
715
+ FalseNode.new(location)
716
+ },
717
+ -> {
718
+ location = load_location
719
+ FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
720
+ },
721
+ -> {
722
+ location = load_location
723
+ FlipFlopNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
724
+ },
725
+ -> {
726
+ location = load_location
727
+ FloatNode.new(location)
728
+ },
729
+ -> {
730
+ location = load_location
731
+ ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
732
+ },
733
+ -> {
734
+ location = load_location
735
+ ForwardingArgumentsNode.new(location)
736
+ },
737
+ -> {
738
+ location = load_location
739
+ ForwardingParameterNode.new(location)
740
+ },
741
+ -> {
742
+ location = load_location
743
+ ForwardingSuperNode.new(load_optional_node, location)
744
+ },
745
+ -> {
746
+ location = load_location
747
+ GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
748
+ },
749
+ -> {
750
+ location = load_location
751
+ GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
752
+ },
753
+ -> {
754
+ location = load_location
755
+ GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
756
+ },
757
+ -> {
758
+ location = load_location
759
+ GlobalVariableReadNode.new(load_required_constant, location)
760
+ },
761
+ -> {
762
+ location = load_location
763
+ GlobalVariableTargetNode.new(load_required_constant, location)
764
+ },
765
+ -> {
766
+ location = load_location
767
+ GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
768
+ },
769
+ -> {
770
+ location = load_location
771
+ HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
772
+ },
773
+ -> {
774
+ location = load_location
775
+ HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
776
+ },
777
+ -> {
778
+ location = load_location
779
+ IfNode.new(load_optional_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
780
+ },
781
+ -> {
782
+ location = load_location
783
+ ImaginaryNode.new(load_node, location)
784
+ },
785
+ -> {
786
+ location = load_location
787
+ ImplicitNode.new(load_node, location)
788
+ },
789
+ -> {
790
+ location = load_location
791
+ InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
792
+ },
793
+ -> {
794
+ location = load_location
795
+ 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)
796
+ },
797
+ -> {
798
+ location = load_location
799
+ 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)
800
+ },
801
+ -> {
802
+ location = load_location
803
+ 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)
804
+ },
805
+ -> {
806
+ location = load_location
807
+ InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
808
+ },
809
+ -> {
810
+ location = load_location
811
+ InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
812
+ },
813
+ -> {
814
+ location = load_location
815
+ InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
816
+ },
817
+ -> {
818
+ location = load_location
819
+ InstanceVariableReadNode.new(load_required_constant, location)
820
+ },
821
+ -> {
822
+ location = load_location
823
+ InstanceVariableTargetNode.new(load_required_constant, location)
824
+ },
825
+ -> {
826
+ location = load_location
827
+ InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
828
+ },
829
+ -> {
830
+ location = load_location
831
+ IntegerNode.new(load_varint, location)
832
+ },
833
+ -> {
834
+ location = load_location
835
+ InterpolatedMatchLastLineNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
836
+ },
837
+ -> {
838
+ location = load_location
839
+ InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
840
+ },
841
+ -> {
842
+ location = load_location
843
+ InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
844
+ },
845
+ -> {
846
+ location = load_location
847
+ InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
848
+ },
849
+ -> {
850
+ location = load_location
851
+ InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
852
+ },
853
+ -> {
854
+ location = load_location
855
+ KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
856
+ },
857
+ -> {
858
+ location = load_location
859
+ KeywordParameterNode.new(load_required_constant, load_location, load_optional_node, location)
860
+ },
861
+ -> {
862
+ location = load_location
863
+ KeywordRestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
864
+ },
865
+ -> {
866
+ location = load_location
867
+ LambdaNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
868
+ },
869
+ -> {
870
+ location = load_location
871
+ LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
872
+ },
873
+ -> {
874
+ location = load_location
875
+ LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varint, location)
876
+ },
877
+ -> {
878
+ location = load_location
879
+ LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varint, location)
880
+ },
881
+ -> {
882
+ location = load_location
883
+ LocalVariableReadNode.new(load_required_constant, load_varint, location)
884
+ },
885
+ -> {
886
+ location = load_location
887
+ LocalVariableTargetNode.new(load_required_constant, load_varint, location)
888
+ },
889
+ -> {
890
+ location = load_location
891
+ LocalVariableWriteNode.new(load_required_constant, load_varint, load_location, load_node, load_location, location)
892
+ },
893
+ -> {
894
+ location = load_location
895
+ MatchLastLineNode.new(load_location, load_location, load_location, load_string, load_varint, location)
896
+ },
897
+ -> {
898
+ location = load_location
899
+ MatchPredicateNode.new(load_node, load_node, load_location, location)
900
+ },
901
+ -> {
902
+ location = load_location
903
+ MatchRequiredNode.new(load_node, load_node, load_location, location)
904
+ },
905
+ -> {
906
+ location = load_location
907
+ MatchWriteNode.new(load_node, Array.new(load_varint) { load_required_constant }, location)
908
+ },
909
+ -> {
910
+ location = load_location
911
+ MissingNode.new(location)
912
+ },
913
+ -> {
914
+ location = load_location
915
+ ModuleNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
916
+ },
917
+ -> {
918
+ location = load_location
919
+ MultiTargetNode.new(Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
920
+ },
921
+ -> {
922
+ location = load_location
923
+ 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)
924
+ },
925
+ -> {
926
+ location = load_location
927
+ NextNode.new(load_optional_node, load_location, location)
928
+ },
929
+ -> {
930
+ location = load_location
931
+ NilNode.new(location)
932
+ },
933
+ -> {
934
+ location = load_location
935
+ NoKeywordsParameterNode.new(load_location, load_location, location)
936
+ },
937
+ -> {
938
+ location = load_location
939
+ NumberedReferenceReadNode.new(load_varint, location)
940
+ },
941
+ -> {
942
+ location = load_location
943
+ OptionalParameterNode.new(load_required_constant, load_location, load_location, load_node, location)
944
+ },
945
+ -> {
946
+ location = load_location
947
+ OrNode.new(load_node, load_node, load_location, location)
948
+ },
949
+ -> {
950
+ location = load_location
951
+ 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)
952
+ },
953
+ -> {
954
+ location = load_location
955
+ ParenthesesNode.new(load_optional_node, load_location, load_location, location)
956
+ },
957
+ -> {
958
+ location = load_location
959
+ PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
960
+ },
961
+ -> {
962
+ location = load_location
963
+ PinnedVariableNode.new(load_node, load_location, location)
964
+ },
965
+ -> {
966
+ location = load_location
967
+ PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
968
+ },
969
+ -> {
970
+ location = load_location
971
+ PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
972
+ },
973
+ -> {
974
+ location = load_location
975
+ ProgramNode.new(Array.new(load_varint) { load_required_constant }, load_node, location)
976
+ },
977
+ -> {
978
+ location = load_location
979
+ RangeNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
980
+ },
981
+ -> {
982
+ location = load_location
983
+ RationalNode.new(load_node, location)
984
+ },
985
+ -> {
986
+ location = load_location
987
+ RedoNode.new(location)
988
+ },
989
+ -> {
990
+ location = load_location
991
+ RegularExpressionNode.new(load_location, load_location, load_location, load_string, load_varint, location)
992
+ },
993
+ -> {
994
+ location = load_location
995
+ RequiredParameterNode.new(load_required_constant, location)
996
+ },
997
+ -> {
998
+ location = load_location
999
+ RescueModifierNode.new(load_node, load_location, load_node, location)
1000
+ },
1001
+ -> {
1002
+ location = load_location
1003
+ RescueNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1004
+ },
1005
+ -> {
1006
+ location = load_location
1007
+ RestParameterNode.new(load_optional_constant, load_optional_location, load_location, location)
1008
+ },
1009
+ -> {
1010
+ location = load_location
1011
+ RetryNode.new(location)
1012
+ },
1013
+ -> {
1014
+ location = load_location
1015
+ ReturnNode.new(load_location, load_optional_node, location)
1016
+ },
1017
+ -> {
1018
+ location = load_location
1019
+ SelfNode.new(location)
1020
+ },
1021
+ -> {
1022
+ location = load_location
1023
+ SingletonClassNode.new(Array.new(load_varint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1024
+ },
1025
+ -> {
1026
+ location = load_location
1027
+ SourceEncodingNode.new(location)
1028
+ },
1029
+ -> {
1030
+ location = load_location
1031
+ SourceFileNode.new(load_string, location)
1032
+ },
1033
+ -> {
1034
+ location = load_location
1035
+ SourceLineNode.new(location)
1036
+ },
1037
+ -> {
1038
+ location = load_location
1039
+ SplatNode.new(load_location, load_optional_node, location)
1040
+ },
1041
+ -> {
1042
+ location = load_location
1043
+ StatementsNode.new(Array.new(load_varint) { load_node }, location)
1044
+ },
1045
+ -> {
1046
+ location = load_location
1047
+ StringConcatNode.new(load_node, load_node, location)
1048
+ },
1049
+ -> {
1050
+ location = load_location
1051
+ StringNode.new(load_varint, load_optional_location, load_location, load_optional_location, load_string, location)
1052
+ },
1053
+ -> {
1054
+ location = load_location
1055
+ SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1056
+ },
1057
+ -> {
1058
+ location = load_location
1059
+ SymbolNode.new(load_optional_location, load_optional_location, load_optional_location, load_string, location)
1060
+ },
1061
+ -> {
1062
+ location = load_location
1063
+ TrueNode.new(location)
1064
+ },
1065
+ -> {
1066
+ location = load_location
1067
+ UndefNode.new(Array.new(load_varint) { load_node }, load_location, location)
1068
+ },
1069
+ -> {
1070
+ location = load_location
1071
+ UnlessNode.new(load_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
1072
+ },
1073
+ -> {
1074
+ location = load_location
1075
+ UntilNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
1076
+ },
1077
+ -> {
1078
+ location = load_location
1079
+ WhenNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_node, location)
1080
+ },
1081
+ -> {
1082
+ location = load_location
1083
+ WhileNode.new(load_location, load_optional_location, load_node, load_optional_node, load_varint, location)
1084
+ },
1085
+ -> {
1086
+ location = load_location
1087
+ XStringNode.new(load_location, load_location, load_location, load_string, location)
1088
+ },
1089
+ -> {
1090
+ location = load_location
1091
+ YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
1092
+ },
1093
+ ]
498
1094
  end
499
1095
  end
500
1096
  end