prism 0.22.0 → 0.24.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -1
  3. data/README.md +2 -1
  4. data/docs/releasing.md +67 -17
  5. data/docs/ruby_parser_translation.md +19 -0
  6. data/docs/serialization.md +2 -0
  7. data/ext/prism/api_node.c +1982 -1538
  8. data/ext/prism/extension.c +12 -7
  9. data/ext/prism/extension.h +2 -2
  10. data/include/prism/diagnostic.h +3 -4
  11. data/include/prism/encoding.h +7 -0
  12. data/include/prism/util/pm_constant_pool.h +1 -1
  13. data/include/prism/util/pm_newline_list.h +4 -3
  14. data/include/prism/util/pm_strpbrk.h +4 -1
  15. data/include/prism/version.h +2 -2
  16. data/lib/prism/desugar_compiler.rb +225 -80
  17. data/lib/prism/dsl.rb +302 -299
  18. data/lib/prism/ffi.rb +103 -77
  19. data/lib/prism/lex_compat.rb +1 -0
  20. data/lib/prism/node.rb +3624 -2114
  21. data/lib/prism/node_ext.rb +25 -2
  22. data/lib/prism/parse_result.rb +56 -19
  23. data/lib/prism/serialize.rb +605 -303
  24. data/lib/prism/translation/parser/compiler.rb +1 -1
  25. data/lib/prism/translation/parser/rubocop.rb +11 -3
  26. data/lib/prism/translation/parser.rb +25 -12
  27. data/lib/prism/translation/parser33.rb +12 -0
  28. data/lib/prism/translation/parser34.rb +12 -0
  29. data/lib/prism/translation/ripper.rb +696 -0
  30. data/lib/prism/translation/ruby_parser.rb +1521 -0
  31. data/lib/prism/translation.rb +3 -3
  32. data/lib/prism.rb +0 -1
  33. data/prism.gemspec +6 -2
  34. data/src/diagnostic.c +10 -11
  35. data/src/encoding.c +16 -17
  36. data/src/options.c +7 -2
  37. data/src/prettyprint.c +3 -3
  38. data/src/prism.c +172 -97
  39. data/src/serialize.c +24 -13
  40. data/src/token_type.c +3 -3
  41. data/src/util/pm_constant_pool.c +1 -1
  42. data/src/util/pm_newline_list.c +6 -3
  43. data/src/util/pm_strpbrk.c +122 -14
  44. metadata +8 -4
  45. data/lib/prism/ripper_compat.rb +0 -285
@@ -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 = 22
30
+ MINOR_VERSION = 24
31
31
 
32
32
  # The patch version of prism that we are expecting to find in the serialized
33
33
  # strings.
@@ -86,11 +86,15 @@ module Prism
86
86
  end
87
87
 
88
88
  def load_start_line
89
- source.start_line = load_varsint
89
+ source.instance_variable_set :@start_line, load_varsint
90
+ end
91
+
92
+ def load_line_offsets
93
+ source.instance_variable_set :@offsets, Array.new(load_varuint) { load_varuint }
90
94
  end
91
95
 
92
96
  def load_comments
93
- load_varuint.times.map do
97
+ Array.new(load_varuint) do
94
98
  case load_varuint
95
99
  when 0 then InlineComment.new(load_location)
96
100
  when 1 then EmbDocComment.new(load_location)
@@ -101,10 +105,10 @@ module Prism
101
105
 
102
106
  def load_metadata
103
107
  comments = load_comments
104
- magic_comments = load_varuint.times.map { MagicComment.new(load_location, load_location) }
108
+ magic_comments = Array.new(load_varuint) { MagicComment.new(load_location, load_location) }
105
109
  data_loc = load_optional_location
106
- errors = load_varuint.times.map { ParseError.new(load_embedded_string, load_location, load_error_level) }
107
- warnings = load_varuint.times.map { ParseWarning.new(load_embedded_string, load_location, load_warning_level) }
110
+ errors = Array.new(load_varuint) { ParseError.new(load_embedded_string, load_location, load_error_level) }
111
+ warnings = Array.new(load_varuint) { ParseWarning.new(load_embedded_string, load_location, load_warning_level) }
108
112
  [comments, magic_comments, data_loc, errors, warnings]
109
113
  end
110
114
 
@@ -115,7 +119,7 @@ module Prism
115
119
  length = load_varuint
116
120
  lex_state = load_varuint
117
121
  location = Location.new(@source, start, length)
118
- tokens << [Prism::Token.new(type, location.slice, location), lex_state]
122
+ tokens << [Prism::Token.new(source, type, location.slice, location), lex_state]
119
123
  end
120
124
 
121
125
  tokens
@@ -125,6 +129,7 @@ module Prism
125
129
  tokens = load_tokens
126
130
  encoding = load_encoding
127
131
  load_start_line
132
+ load_line_offsets
128
133
  comments, magic_comments, data_loc, errors, warnings = load_metadata
129
134
  tokens.each { |token,| token.value.force_encoding(encoding) }
130
135
 
@@ -136,6 +141,7 @@ module Prism
136
141
  load_header
137
142
  load_encoding
138
143
  load_start_line
144
+ load_line_offsets
139
145
 
140
146
  comments, magic_comments, data_loc, errors, warnings = load_metadata
141
147
 
@@ -271,302 +277,450 @@ module Prism
271
277
 
272
278
  case type
273
279
  when 1 then
274
- AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
280
+ AliasGlobalVariableNode.new(
281
+ source, load_node, load_node, load_location, location)
275
282
  when 2 then
276
- AliasMethodNode.new(load_node, load_node, load_location, location)
283
+ AliasMethodNode.new(
284
+ source, load_node, load_node, load_location, location)
277
285
  when 3 then
278
- AlternationPatternNode.new(load_node, load_node, load_location, location)
286
+ AlternationPatternNode.new(
287
+ source, load_node, load_node, load_location, location)
279
288
  when 4 then
280
- AndNode.new(load_node, load_node, load_location, location)
289
+ AndNode.new(
290
+ source, load_node, load_node, load_location, location)
281
291
  when 5 then
282
- ArgumentsNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
292
+ ArgumentsNode.new(
293
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
283
294
  when 6 then
284
- ArrayNode.new(load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
295
+ ArrayNode.new(
296
+ source, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
285
297
  when 7 then
286
- 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)
298
+ ArrayPatternNode.new(
299
+ source, 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)
287
300
  when 8 then
288
- AssocNode.new(load_node, load_node, load_optional_location, location)
301
+ AssocNode.new(
302
+ source, load_node, load_node, load_optional_location, location)
289
303
  when 9 then
290
- AssocSplatNode.new(load_optional_node, load_location, location)
304
+ AssocSplatNode.new(
305
+ source, load_optional_node, load_location, location)
291
306
  when 10 then
292
- BackReferenceReadNode.new(load_required_constant, location)
307
+ BackReferenceReadNode.new(
308
+ source, load_required_constant, location)
293
309
  when 11 then
294
- BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
310
+ BeginNode.new(
311
+ source, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
295
312
  when 12 then
296
- BlockArgumentNode.new(load_optional_node, load_location, location)
313
+ BlockArgumentNode.new(
314
+ source, load_optional_node, load_location, location)
297
315
  when 13 then
298
- BlockLocalVariableNode.new(load_varuint, load_required_constant, location)
316
+ BlockLocalVariableNode.new(
317
+ source, load_varuint, load_required_constant, location)
299
318
  when 14 then
300
- BlockNode.new(Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
319
+ BlockNode.new(
320
+ source, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
301
321
  when 15 then
302
- BlockParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
322
+ BlockParameterNode.new(
323
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
303
324
  when 16 then
304
- BlockParametersNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
325
+ BlockParametersNode.new(
326
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
305
327
  when 17 then
306
- BreakNode.new(load_optional_node, load_location, location)
328
+ BreakNode.new(
329
+ source, load_optional_node, load_location, location)
307
330
  when 18 then
308
- CallAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
331
+ CallAndWriteNode.new(
332
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
309
333
  when 19 then
310
- 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)
334
+ CallNode.new(
335
+ source, 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)
311
336
  when 20 then
312
- 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)
337
+ CallOperatorWriteNode.new(
338
+ source, 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)
313
339
  when 21 then
314
- CallOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
340
+ CallOrWriteNode.new(
341
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
315
342
  when 22 then
316
- CallTargetNode.new(load_varuint, load_node, load_location, load_required_constant, load_location, location)
343
+ CallTargetNode.new(
344
+ source, load_varuint, load_node, load_location, load_required_constant, load_location, location)
317
345
  when 23 then
318
- CapturePatternNode.new(load_node, load_node, load_location, location)
346
+ CapturePatternNode.new(
347
+ source, load_node, load_node, load_location, location)
319
348
  when 24 then
320
- CaseMatchNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
349
+ CaseMatchNode.new(
350
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
321
351
  when 25 then
322
- CaseNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
352
+ CaseNode.new(
353
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
323
354
  when 26 then
324
- 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)
355
+ ClassNode.new(
356
+ source, 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)
325
357
  when 27 then
326
- ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
358
+ ClassVariableAndWriteNode.new(
359
+ source, load_required_constant, load_location, load_location, load_node, location)
327
360
  when 28 then
328
- ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
361
+ ClassVariableOperatorWriteNode.new(
362
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
329
363
  when 29 then
330
- ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
364
+ ClassVariableOrWriteNode.new(
365
+ source, load_required_constant, load_location, load_location, load_node, location)
331
366
  when 30 then
332
- ClassVariableReadNode.new(load_required_constant, location)
367
+ ClassVariableReadNode.new(
368
+ source, load_required_constant, location)
333
369
  when 31 then
334
- ClassVariableTargetNode.new(load_required_constant, location)
370
+ ClassVariableTargetNode.new(
371
+ source, load_required_constant, location)
335
372
  when 32 then
336
- ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
373
+ ClassVariableWriteNode.new(
374
+ source, load_required_constant, load_location, load_node, load_optional_location, location)
337
375
  when 33 then
338
- ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
376
+ ConstantAndWriteNode.new(
377
+ source, load_required_constant, load_location, load_location, load_node, location)
339
378
  when 34 then
340
- ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
379
+ ConstantOperatorWriteNode.new(
380
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
341
381
  when 35 then
342
- ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
382
+ ConstantOrWriteNode.new(
383
+ source, load_required_constant, load_location, load_location, load_node, location)
343
384
  when 36 then
344
- ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
385
+ ConstantPathAndWriteNode.new(
386
+ source, load_node, load_location, load_node, location)
345
387
  when 37 then
346
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
388
+ ConstantPathNode.new(
389
+ source, load_optional_node, load_node, load_location, location)
347
390
  when 38 then
348
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
391
+ ConstantPathOperatorWriteNode.new(
392
+ source, load_node, load_location, load_node, load_required_constant, location)
349
393
  when 39 then
350
- ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
394
+ ConstantPathOrWriteNode.new(
395
+ source, load_node, load_location, load_node, location)
351
396
  when 40 then
352
- ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
397
+ ConstantPathTargetNode.new(
398
+ source, load_optional_node, load_node, load_location, location)
353
399
  when 41 then
354
- ConstantPathWriteNode.new(load_node, load_location, load_node, location)
400
+ ConstantPathWriteNode.new(
401
+ source, load_node, load_location, load_node, location)
355
402
  when 42 then
356
- ConstantReadNode.new(load_required_constant, location)
403
+ ConstantReadNode.new(
404
+ source, load_required_constant, location)
357
405
  when 43 then
358
- ConstantTargetNode.new(load_required_constant, location)
406
+ ConstantTargetNode.new(
407
+ source, load_required_constant, location)
359
408
  when 44 then
360
- ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
409
+ ConstantWriteNode.new(
410
+ source, load_required_constant, load_location, load_node, load_location, location)
361
411
  when 45 then
362
412
  load_serialized_length
363
- DefNode.new(load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
413
+ DefNode.new(
414
+ source, load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
364
415
  when 46 then
365
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
416
+ DefinedNode.new(
417
+ source, load_optional_location, load_node, load_optional_location, load_location, location)
366
418
  when 47 then
367
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
419
+ ElseNode.new(
420
+ source, load_location, load_optional_node, load_optional_location, location)
368
421
  when 48 then
369
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
422
+ EmbeddedStatementsNode.new(
423
+ source, load_location, load_optional_node, load_location, location)
370
424
  when 49 then
371
- EmbeddedVariableNode.new(load_location, load_node, location)
425
+ EmbeddedVariableNode.new(
426
+ source, load_location, load_node, location)
372
427
  when 50 then
373
- EnsureNode.new(load_location, load_optional_node, load_location, location)
428
+ EnsureNode.new(
429
+ source, load_location, load_optional_node, load_location, location)
374
430
  when 51 then
375
- FalseNode.new(location)
431
+ FalseNode.new(
432
+ source, location)
376
433
  when 52 then
377
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
434
+ FindPatternNode.new(
435
+ source, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
378
436
  when 53 then
379
- FlipFlopNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
437
+ FlipFlopNode.new(
438
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
380
439
  when 54 then
381
- FloatNode.new(location)
440
+ FloatNode.new(
441
+ source, location)
382
442
  when 55 then
383
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
443
+ ForNode.new(
444
+ source, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
384
445
  when 56 then
385
- ForwardingArgumentsNode.new(location)
446
+ ForwardingArgumentsNode.new(
447
+ source, location)
386
448
  when 57 then
387
- ForwardingParameterNode.new(location)
449
+ ForwardingParameterNode.new(
450
+ source, location)
388
451
  when 58 then
389
- ForwardingSuperNode.new(load_optional_node, location)
452
+ ForwardingSuperNode.new(
453
+ source, load_optional_node, location)
390
454
  when 59 then
391
- GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
455
+ GlobalVariableAndWriteNode.new(
456
+ source, load_required_constant, load_location, load_location, load_node, location)
392
457
  when 60 then
393
- GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
458
+ GlobalVariableOperatorWriteNode.new(
459
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
394
460
  when 61 then
395
- GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
461
+ GlobalVariableOrWriteNode.new(
462
+ source, load_required_constant, load_location, load_location, load_node, location)
396
463
  when 62 then
397
- GlobalVariableReadNode.new(load_required_constant, location)
464
+ GlobalVariableReadNode.new(
465
+ source, load_required_constant, location)
398
466
  when 63 then
399
- GlobalVariableTargetNode.new(load_required_constant, location)
467
+ GlobalVariableTargetNode.new(
468
+ source, load_required_constant, location)
400
469
  when 64 then
401
- GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
470
+ GlobalVariableWriteNode.new(
471
+ source, load_required_constant, load_location, load_node, load_location, location)
402
472
  when 65 then
403
- HashNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
473
+ HashNode.new(
474
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
404
475
  when 66 then
405
- HashPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
476
+ HashPatternNode.new(
477
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
406
478
  when 67 then
407
- IfNode.new(load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
479
+ IfNode.new(
480
+ source, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
408
481
  when 68 then
409
- ImaginaryNode.new(load_node, location)
482
+ ImaginaryNode.new(
483
+ source, load_node, location)
410
484
  when 69 then
411
- ImplicitNode.new(load_node, location)
485
+ ImplicitNode.new(
486
+ source, load_node, location)
412
487
  when 70 then
413
- ImplicitRestNode.new(location)
488
+ ImplicitRestNode.new(
489
+ source, location)
414
490
  when 71 then
415
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
491
+ InNode.new(
492
+ source, load_node, load_optional_node, load_location, load_optional_location, location)
416
493
  when 72 then
417
- 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)
494
+ IndexAndWriteNode.new(
495
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
418
496
  when 73 then
419
- 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)
497
+ IndexOperatorWriteNode.new(
498
+ source, 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)
420
499
  when 74 then
421
- 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)
500
+ IndexOrWriteNode.new(
501
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
422
502
  when 75 then
423
- IndexTargetNode.new(load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
503
+ IndexTargetNode.new(
504
+ source, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
424
505
  when 76 then
425
- InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
506
+ InstanceVariableAndWriteNode.new(
507
+ source, load_required_constant, load_location, load_location, load_node, location)
426
508
  when 77 then
427
- InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
509
+ InstanceVariableOperatorWriteNode.new(
510
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
428
511
  when 78 then
429
- InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
512
+ InstanceVariableOrWriteNode.new(
513
+ source, load_required_constant, load_location, load_location, load_node, location)
430
514
  when 79 then
431
- InstanceVariableReadNode.new(load_required_constant, location)
515
+ InstanceVariableReadNode.new(
516
+ source, load_required_constant, location)
432
517
  when 80 then
433
- InstanceVariableTargetNode.new(load_required_constant, location)
518
+ InstanceVariableTargetNode.new(
519
+ source, load_required_constant, location)
434
520
  when 81 then
435
- InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
521
+ InstanceVariableWriteNode.new(
522
+ source, load_required_constant, load_location, load_node, load_location, location)
436
523
  when 82 then
437
- IntegerNode.new(load_varuint, location)
524
+ IntegerNode.new(
525
+ source, load_varuint, location)
438
526
  when 83 then
439
- InterpolatedMatchLastLineNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
527
+ InterpolatedMatchLastLineNode.new(
528
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
440
529
  when 84 then
441
- InterpolatedRegularExpressionNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
530
+ InterpolatedRegularExpressionNode.new(
531
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
442
532
  when 85 then
443
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
533
+ InterpolatedStringNode.new(
534
+ source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
444
535
  when 86 then
445
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
536
+ InterpolatedSymbolNode.new(
537
+ source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
446
538
  when 87 then
447
- InterpolatedXStringNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
539
+ InterpolatedXStringNode.new(
540
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
448
541
  when 88 then
449
- KeywordHashNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
542
+ KeywordHashNode.new(
543
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
450
544
  when 89 then
451
- KeywordRestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
545
+ KeywordRestParameterNode.new(
546
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
452
547
  when 90 then
453
- LambdaNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
548
+ LambdaNode.new(
549
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
454
550
  when 91 then
455
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
551
+ LocalVariableAndWriteNode.new(
552
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
456
553
  when 92 then
457
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
554
+ LocalVariableOperatorWriteNode.new(
555
+ source, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
458
556
  when 93 then
459
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
557
+ LocalVariableOrWriteNode.new(
558
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
460
559
  when 94 then
461
- LocalVariableReadNode.new(load_required_constant, load_varuint, location)
560
+ LocalVariableReadNode.new(
561
+ source, load_required_constant, load_varuint, location)
462
562
  when 95 then
463
- LocalVariableTargetNode.new(load_required_constant, load_varuint, location)
563
+ LocalVariableTargetNode.new(
564
+ source, load_required_constant, load_varuint, location)
464
565
  when 96 then
465
- LocalVariableWriteNode.new(load_required_constant, load_varuint, load_location, load_node, load_location, location)
566
+ LocalVariableWriteNode.new(
567
+ source, load_required_constant, load_varuint, load_location, load_node, load_location, location)
466
568
  when 97 then
467
- MatchLastLineNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
569
+ MatchLastLineNode.new(
570
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
468
571
  when 98 then
469
- MatchPredicateNode.new(load_node, load_node, load_location, location)
572
+ MatchPredicateNode.new(
573
+ source, load_node, load_node, load_location, location)
470
574
  when 99 then
471
- MatchRequiredNode.new(load_node, load_node, load_location, location)
575
+ MatchRequiredNode.new(
576
+ source, load_node, load_node, load_location, location)
472
577
  when 100 then
473
- MatchWriteNode.new(load_node, Array.new(load_varuint) { load_node }, location)
578
+ MatchWriteNode.new(
579
+ source, load_node, Array.new(load_varuint) { load_node }, location)
474
580
  when 101 then
475
- MissingNode.new(location)
581
+ MissingNode.new(
582
+ source, location)
476
583
  when 102 then
477
- ModuleNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
584
+ ModuleNode.new(
585
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
478
586
  when 103 then
479
- MultiTargetNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
587
+ MultiTargetNode.new(
588
+ source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
480
589
  when 104 then
481
- 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)
590
+ MultiWriteNode.new(
591
+ source, 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)
482
592
  when 105 then
483
- NextNode.new(load_optional_node, load_location, location)
593
+ NextNode.new(
594
+ source, load_optional_node, load_location, location)
484
595
  when 106 then
485
- NilNode.new(location)
596
+ NilNode.new(
597
+ source, location)
486
598
  when 107 then
487
- NoKeywordsParameterNode.new(load_location, load_location, location)
599
+ NoKeywordsParameterNode.new(
600
+ source, load_location, load_location, location)
488
601
  when 108 then
489
- NumberedParametersNode.new(io.getbyte, location)
602
+ NumberedParametersNode.new(
603
+ source, io.getbyte, location)
490
604
  when 109 then
491
- NumberedReferenceReadNode.new(load_varuint, location)
605
+ NumberedReferenceReadNode.new(
606
+ source, load_varuint, location)
492
607
  when 110 then
493
- OptionalKeywordParameterNode.new(load_varuint, load_required_constant, load_location, load_node, location)
608
+ OptionalKeywordParameterNode.new(
609
+ source, load_varuint, load_required_constant, load_location, load_node, location)
494
610
  when 111 then
495
- OptionalParameterNode.new(load_varuint, load_required_constant, load_location, load_location, load_node, location)
611
+ OptionalParameterNode.new(
612
+ source, load_varuint, load_required_constant, load_location, load_location, load_node, location)
496
613
  when 112 then
497
- OrNode.new(load_node, load_node, load_location, location)
614
+ OrNode.new(
615
+ source, load_node, load_node, load_location, location)
498
616
  when 113 then
499
- 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)
617
+ ParametersNode.new(
618
+ source, 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)
500
619
  when 114 then
501
- ParenthesesNode.new(load_optional_node, load_location, load_location, location)
620
+ ParenthesesNode.new(
621
+ source, load_optional_node, load_location, load_location, location)
502
622
  when 115 then
503
- PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
623
+ PinnedExpressionNode.new(
624
+ source, load_node, load_location, load_location, load_location, location)
504
625
  when 116 then
505
- PinnedVariableNode.new(load_node, load_location, location)
626
+ PinnedVariableNode.new(
627
+ source, load_node, load_location, location)
506
628
  when 117 then
507
- PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
629
+ PostExecutionNode.new(
630
+ source, load_optional_node, load_location, load_location, load_location, location)
508
631
  when 118 then
509
- PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
632
+ PreExecutionNode.new(
633
+ source, load_optional_node, load_location, load_location, load_location, location)
510
634
  when 119 then
511
- ProgramNode.new(Array.new(load_varuint) { load_required_constant }, load_node, location)
635
+ ProgramNode.new(
636
+ source, Array.new(load_varuint) { load_required_constant }, load_node, location)
512
637
  when 120 then
513
- RangeNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
638
+ RangeNode.new(
639
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
514
640
  when 121 then
515
- RationalNode.new(load_node, location)
641
+ RationalNode.new(
642
+ source, load_node, location)
516
643
  when 122 then
517
- RedoNode.new(location)
644
+ RedoNode.new(
645
+ source, location)
518
646
  when 123 then
519
- RegularExpressionNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
647
+ RegularExpressionNode.new(
648
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
520
649
  when 124 then
521
- RequiredKeywordParameterNode.new(load_varuint, load_required_constant, load_location, location)
650
+ RequiredKeywordParameterNode.new(
651
+ source, load_varuint, load_required_constant, load_location, location)
522
652
  when 125 then
523
- RequiredParameterNode.new(load_varuint, load_required_constant, location)
653
+ RequiredParameterNode.new(
654
+ source, load_varuint, load_required_constant, location)
524
655
  when 126 then
525
- RescueModifierNode.new(load_node, load_location, load_node, location)
656
+ RescueModifierNode.new(
657
+ source, load_node, load_location, load_node, location)
526
658
  when 127 then
527
- RescueNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
659
+ RescueNode.new(
660
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
528
661
  when 128 then
529
- RestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
662
+ RestParameterNode.new(
663
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
530
664
  when 129 then
531
- RetryNode.new(location)
665
+ RetryNode.new(
666
+ source, location)
532
667
  when 130 then
533
- ReturnNode.new(load_location, load_optional_node, location)
668
+ ReturnNode.new(
669
+ source, load_location, load_optional_node, location)
534
670
  when 131 then
535
- SelfNode.new(location)
671
+ SelfNode.new(
672
+ source, location)
536
673
  when 132 then
537
- SingletonClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
674
+ SingletonClassNode.new(
675
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
538
676
  when 133 then
539
- SourceEncodingNode.new(location)
677
+ SourceEncodingNode.new(
678
+ source, location)
540
679
  when 134 then
541
- SourceFileNode.new(load_string, location)
680
+ SourceFileNode.new(
681
+ source, load_string, location)
542
682
  when 135 then
543
- SourceLineNode.new(location)
683
+ SourceLineNode.new(
684
+ source, location)
544
685
  when 136 then
545
- SplatNode.new(load_location, load_optional_node, location)
686
+ SplatNode.new(
687
+ source, load_location, load_optional_node, location)
546
688
  when 137 then
547
- StatementsNode.new(Array.new(load_varuint) { load_node }, location)
689
+ StatementsNode.new(
690
+ source, Array.new(load_varuint) { load_node }, location)
548
691
  when 138 then
549
- StringNode.new(load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
692
+ StringNode.new(
693
+ source, load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
550
694
  when 139 then
551
- SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
695
+ SuperNode.new(
696
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
552
697
  when 140 then
553
- SymbolNode.new(load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
698
+ SymbolNode.new(
699
+ source, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
554
700
  when 141 then
555
- TrueNode.new(location)
701
+ TrueNode.new(
702
+ source, location)
556
703
  when 142 then
557
- UndefNode.new(Array.new(load_varuint) { load_node }, load_location, location)
704
+ UndefNode.new(
705
+ source, Array.new(load_varuint) { load_node }, load_location, location)
558
706
  when 143 then
559
- UnlessNode.new(load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
707
+ UnlessNode.new(
708
+ source, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
560
709
  when 144 then
561
- UntilNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
710
+ UntilNode.new(
711
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
562
712
  when 145 then
563
- WhenNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
713
+ WhenNode.new(
714
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
564
715
  when 146 then
565
- WhileNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
716
+ WhileNode.new(
717
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
566
718
  when 147 then
567
- XStringNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
719
+ XStringNode.new(
720
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
568
721
  when 148 then
569
- YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
722
+ YieldNode.new(
723
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, location)
570
724
  end
571
725
  end
572
726
  else
@@ -580,596 +734,744 @@ module Prism
580
734
  nil,
581
735
  -> {
582
736
  location = load_location
583
- AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
737
+ AliasGlobalVariableNode.new(
738
+ source, load_node, load_node, load_location, location)
584
739
  },
585
740
  -> {
586
741
  location = load_location
587
- AliasMethodNode.new(load_node, load_node, load_location, location)
742
+ AliasMethodNode.new(
743
+ source, load_node, load_node, load_location, location)
588
744
  },
589
745
  -> {
590
746
  location = load_location
591
- AlternationPatternNode.new(load_node, load_node, load_location, location)
747
+ AlternationPatternNode.new(
748
+ source, load_node, load_node, load_location, location)
592
749
  },
593
750
  -> {
594
751
  location = load_location
595
- AndNode.new(load_node, load_node, load_location, location)
752
+ AndNode.new(
753
+ source, load_node, load_node, load_location, location)
596
754
  },
597
755
  -> {
598
756
  location = load_location
599
- ArgumentsNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
757
+ ArgumentsNode.new(
758
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
600
759
  },
601
760
  -> {
602
761
  location = load_location
603
- ArrayNode.new(load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
762
+ ArrayNode.new(
763
+ source, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
604
764
  },
605
765
  -> {
606
766
  location = load_location
607
- 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)
767
+ ArrayPatternNode.new(
768
+ source, 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)
608
769
  },
609
770
  -> {
610
771
  location = load_location
611
- AssocNode.new(load_node, load_node, load_optional_location, location)
772
+ AssocNode.new(
773
+ source, load_node, load_node, load_optional_location, location)
612
774
  },
613
775
  -> {
614
776
  location = load_location
615
- AssocSplatNode.new(load_optional_node, load_location, location)
777
+ AssocSplatNode.new(
778
+ source, load_optional_node, load_location, location)
616
779
  },
617
780
  -> {
618
781
  location = load_location
619
- BackReferenceReadNode.new(load_required_constant, location)
782
+ BackReferenceReadNode.new(
783
+ source, load_required_constant, location)
620
784
  },
621
785
  -> {
622
786
  location = load_location
623
- BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
787
+ BeginNode.new(
788
+ source, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
624
789
  },
625
790
  -> {
626
791
  location = load_location
627
- BlockArgumentNode.new(load_optional_node, load_location, location)
792
+ BlockArgumentNode.new(
793
+ source, load_optional_node, load_location, location)
628
794
  },
629
795
  -> {
630
796
  location = load_location
631
- BlockLocalVariableNode.new(load_varuint, load_required_constant, location)
797
+ BlockLocalVariableNode.new(
798
+ source, load_varuint, load_required_constant, location)
632
799
  },
633
800
  -> {
634
801
  location = load_location
635
- BlockNode.new(Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
802
+ BlockNode.new(
803
+ source, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
636
804
  },
637
805
  -> {
638
806
  location = load_location
639
- BlockParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
807
+ BlockParameterNode.new(
808
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
640
809
  },
641
810
  -> {
642
811
  location = load_location
643
- BlockParametersNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
812
+ BlockParametersNode.new(
813
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
644
814
  },
645
815
  -> {
646
816
  location = load_location
647
- BreakNode.new(load_optional_node, load_location, location)
817
+ BreakNode.new(
818
+ source, load_optional_node, load_location, location)
648
819
  },
649
820
  -> {
650
821
  location = load_location
651
- CallAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
822
+ CallAndWriteNode.new(
823
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
652
824
  },
653
825
  -> {
654
826
  location = load_location
655
- 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)
827
+ CallNode.new(
828
+ source, 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)
656
829
  },
657
830
  -> {
658
831
  location = load_location
659
- 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)
832
+ CallOperatorWriteNode.new(
833
+ source, 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)
660
834
  },
661
835
  -> {
662
836
  location = load_location
663
- CallOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
837
+ CallOrWriteNode.new(
838
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
664
839
  },
665
840
  -> {
666
841
  location = load_location
667
- CallTargetNode.new(load_varuint, load_node, load_location, load_required_constant, load_location, location)
842
+ CallTargetNode.new(
843
+ source, load_varuint, load_node, load_location, load_required_constant, load_location, location)
668
844
  },
669
845
  -> {
670
846
  location = load_location
671
- CapturePatternNode.new(load_node, load_node, load_location, location)
847
+ CapturePatternNode.new(
848
+ source, load_node, load_node, load_location, location)
672
849
  },
673
850
  -> {
674
851
  location = load_location
675
- CaseMatchNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
852
+ CaseMatchNode.new(
853
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
676
854
  },
677
855
  -> {
678
856
  location = load_location
679
- CaseNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
857
+ CaseNode.new(
858
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
680
859
  },
681
860
  -> {
682
861
  location = load_location
683
- 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)
862
+ ClassNode.new(
863
+ source, 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)
684
864
  },
685
865
  -> {
686
866
  location = load_location
687
- ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
867
+ ClassVariableAndWriteNode.new(
868
+ source, load_required_constant, load_location, load_location, load_node, location)
688
869
  },
689
870
  -> {
690
871
  location = load_location
691
- ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
872
+ ClassVariableOperatorWriteNode.new(
873
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
692
874
  },
693
875
  -> {
694
876
  location = load_location
695
- ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
877
+ ClassVariableOrWriteNode.new(
878
+ source, load_required_constant, load_location, load_location, load_node, location)
696
879
  },
697
880
  -> {
698
881
  location = load_location
699
- ClassVariableReadNode.new(load_required_constant, location)
882
+ ClassVariableReadNode.new(
883
+ source, load_required_constant, location)
700
884
  },
701
885
  -> {
702
886
  location = load_location
703
- ClassVariableTargetNode.new(load_required_constant, location)
887
+ ClassVariableTargetNode.new(
888
+ source, load_required_constant, location)
704
889
  },
705
890
  -> {
706
891
  location = load_location
707
- ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
892
+ ClassVariableWriteNode.new(
893
+ source, load_required_constant, load_location, load_node, load_optional_location, location)
708
894
  },
709
895
  -> {
710
896
  location = load_location
711
- ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
897
+ ConstantAndWriteNode.new(
898
+ source, load_required_constant, load_location, load_location, load_node, location)
712
899
  },
713
900
  -> {
714
901
  location = load_location
715
- ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
902
+ ConstantOperatorWriteNode.new(
903
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
716
904
  },
717
905
  -> {
718
906
  location = load_location
719
- ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
907
+ ConstantOrWriteNode.new(
908
+ source, load_required_constant, load_location, load_location, load_node, location)
720
909
  },
721
910
  -> {
722
911
  location = load_location
723
- ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
912
+ ConstantPathAndWriteNode.new(
913
+ source, load_node, load_location, load_node, location)
724
914
  },
725
915
  -> {
726
916
  location = load_location
727
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
917
+ ConstantPathNode.new(
918
+ source, load_optional_node, load_node, load_location, location)
728
919
  },
729
920
  -> {
730
921
  location = load_location
731
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
922
+ ConstantPathOperatorWriteNode.new(
923
+ source, load_node, load_location, load_node, load_required_constant, location)
732
924
  },
733
925
  -> {
734
926
  location = load_location
735
- ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
927
+ ConstantPathOrWriteNode.new(
928
+ source, load_node, load_location, load_node, location)
736
929
  },
737
930
  -> {
738
931
  location = load_location
739
- ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
932
+ ConstantPathTargetNode.new(
933
+ source, load_optional_node, load_node, load_location, location)
740
934
  },
741
935
  -> {
742
936
  location = load_location
743
- ConstantPathWriteNode.new(load_node, load_location, load_node, location)
937
+ ConstantPathWriteNode.new(
938
+ source, load_node, load_location, load_node, location)
744
939
  },
745
940
  -> {
746
941
  location = load_location
747
- ConstantReadNode.new(load_required_constant, location)
942
+ ConstantReadNode.new(
943
+ source, load_required_constant, location)
748
944
  },
749
945
  -> {
750
946
  location = load_location
751
- ConstantTargetNode.new(load_required_constant, location)
947
+ ConstantTargetNode.new(
948
+ source, load_required_constant, location)
752
949
  },
753
950
  -> {
754
951
  location = load_location
755
- ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
952
+ ConstantWriteNode.new(
953
+ source, load_required_constant, load_location, load_node, load_location, location)
756
954
  },
757
955
  -> {
758
956
  location = load_location
759
957
  load_serialized_length
760
- DefNode.new(load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
958
+ DefNode.new(
959
+ source, load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
761
960
  },
762
961
  -> {
763
962
  location = load_location
764
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
963
+ DefinedNode.new(
964
+ source, load_optional_location, load_node, load_optional_location, load_location, location)
765
965
  },
766
966
  -> {
767
967
  location = load_location
768
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
968
+ ElseNode.new(
969
+ source, load_location, load_optional_node, load_optional_location, location)
769
970
  },
770
971
  -> {
771
972
  location = load_location
772
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
973
+ EmbeddedStatementsNode.new(
974
+ source, load_location, load_optional_node, load_location, location)
773
975
  },
774
976
  -> {
775
977
  location = load_location
776
- EmbeddedVariableNode.new(load_location, load_node, location)
978
+ EmbeddedVariableNode.new(
979
+ source, load_location, load_node, location)
777
980
  },
778
981
  -> {
779
982
  location = load_location
780
- EnsureNode.new(load_location, load_optional_node, load_location, location)
983
+ EnsureNode.new(
984
+ source, load_location, load_optional_node, load_location, location)
781
985
  },
782
986
  -> {
783
987
  location = load_location
784
- FalseNode.new(location)
988
+ FalseNode.new(
989
+ source, location)
785
990
  },
786
991
  -> {
787
992
  location = load_location
788
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
993
+ FindPatternNode.new(
994
+ source, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
789
995
  },
790
996
  -> {
791
997
  location = load_location
792
- FlipFlopNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
998
+ FlipFlopNode.new(
999
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
793
1000
  },
794
1001
  -> {
795
1002
  location = load_location
796
- FloatNode.new(location)
1003
+ FloatNode.new(
1004
+ source, location)
797
1005
  },
798
1006
  -> {
799
1007
  location = load_location
800
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
1008
+ ForNode.new(
1009
+ source, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
801
1010
  },
802
1011
  -> {
803
1012
  location = load_location
804
- ForwardingArgumentsNode.new(location)
1013
+ ForwardingArgumentsNode.new(
1014
+ source, location)
805
1015
  },
806
1016
  -> {
807
1017
  location = load_location
808
- ForwardingParameterNode.new(location)
1018
+ ForwardingParameterNode.new(
1019
+ source, location)
809
1020
  },
810
1021
  -> {
811
1022
  location = load_location
812
- ForwardingSuperNode.new(load_optional_node, location)
1023
+ ForwardingSuperNode.new(
1024
+ source, load_optional_node, location)
813
1025
  },
814
1026
  -> {
815
1027
  location = load_location
816
- GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1028
+ GlobalVariableAndWriteNode.new(
1029
+ source, load_required_constant, load_location, load_location, load_node, location)
817
1030
  },
818
1031
  -> {
819
1032
  location = load_location
820
- GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1033
+ GlobalVariableOperatorWriteNode.new(
1034
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
821
1035
  },
822
1036
  -> {
823
1037
  location = load_location
824
- GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1038
+ GlobalVariableOrWriteNode.new(
1039
+ source, load_required_constant, load_location, load_location, load_node, location)
825
1040
  },
826
1041
  -> {
827
1042
  location = load_location
828
- GlobalVariableReadNode.new(load_required_constant, location)
1043
+ GlobalVariableReadNode.new(
1044
+ source, load_required_constant, location)
829
1045
  },
830
1046
  -> {
831
1047
  location = load_location
832
- GlobalVariableTargetNode.new(load_required_constant, location)
1048
+ GlobalVariableTargetNode.new(
1049
+ source, load_required_constant, location)
833
1050
  },
834
1051
  -> {
835
1052
  location = load_location
836
- GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
1053
+ GlobalVariableWriteNode.new(
1054
+ source, load_required_constant, load_location, load_node, load_location, location)
837
1055
  },
838
1056
  -> {
839
1057
  location = load_location
840
- HashNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
1058
+ HashNode.new(
1059
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
841
1060
  },
842
1061
  -> {
843
1062
  location = load_location
844
- HashPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
1063
+ HashPatternNode.new(
1064
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
845
1065
  },
846
1066
  -> {
847
1067
  location = load_location
848
- IfNode.new(load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1068
+ IfNode.new(
1069
+ source, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
849
1070
  },
850
1071
  -> {
851
1072
  location = load_location
852
- ImaginaryNode.new(load_node, location)
1073
+ ImaginaryNode.new(
1074
+ source, load_node, location)
853
1075
  },
854
1076
  -> {
855
1077
  location = load_location
856
- ImplicitNode.new(load_node, location)
1078
+ ImplicitNode.new(
1079
+ source, load_node, location)
857
1080
  },
858
1081
  -> {
859
1082
  location = load_location
860
- ImplicitRestNode.new(location)
1083
+ ImplicitRestNode.new(
1084
+ source, location)
861
1085
  },
862
1086
  -> {
863
1087
  location = load_location
864
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
1088
+ InNode.new(
1089
+ source, load_node, load_optional_node, load_location, load_optional_location, location)
865
1090
  },
866
1091
  -> {
867
1092
  location = load_location
868
- 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)
1093
+ IndexAndWriteNode.new(
1094
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
869
1095
  },
870
1096
  -> {
871
1097
  location = load_location
872
- 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)
1098
+ IndexOperatorWriteNode.new(
1099
+ source, 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)
873
1100
  },
874
1101
  -> {
875
1102
  location = load_location
876
- 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)
1103
+ IndexOrWriteNode.new(
1104
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
877
1105
  },
878
1106
  -> {
879
1107
  location = load_location
880
- IndexTargetNode.new(load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
1108
+ IndexTargetNode.new(
1109
+ source, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
881
1110
  },
882
1111
  -> {
883
1112
  location = load_location
884
- InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1113
+ InstanceVariableAndWriteNode.new(
1114
+ source, load_required_constant, load_location, load_location, load_node, location)
885
1115
  },
886
1116
  -> {
887
1117
  location = load_location
888
- InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1118
+ InstanceVariableOperatorWriteNode.new(
1119
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
889
1120
  },
890
1121
  -> {
891
1122
  location = load_location
892
- InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1123
+ InstanceVariableOrWriteNode.new(
1124
+ source, load_required_constant, load_location, load_location, load_node, location)
893
1125
  },
894
1126
  -> {
895
1127
  location = load_location
896
- InstanceVariableReadNode.new(load_required_constant, location)
1128
+ InstanceVariableReadNode.new(
1129
+ source, load_required_constant, location)
897
1130
  },
898
1131
  -> {
899
1132
  location = load_location
900
- InstanceVariableTargetNode.new(load_required_constant, location)
1133
+ InstanceVariableTargetNode.new(
1134
+ source, load_required_constant, location)
901
1135
  },
902
1136
  -> {
903
1137
  location = load_location
904
- InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
1138
+ InstanceVariableWriteNode.new(
1139
+ source, load_required_constant, load_location, load_node, load_location, location)
905
1140
  },
906
1141
  -> {
907
1142
  location = load_location
908
- IntegerNode.new(load_varuint, location)
1143
+ IntegerNode.new(
1144
+ source, load_varuint, location)
909
1145
  },
910
1146
  -> {
911
1147
  location = load_location
912
- InterpolatedMatchLastLineNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1148
+ InterpolatedMatchLastLineNode.new(
1149
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
913
1150
  },
914
1151
  -> {
915
1152
  location = load_location
916
- InterpolatedRegularExpressionNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1153
+ InterpolatedRegularExpressionNode.new(
1154
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
917
1155
  },
918
1156
  -> {
919
1157
  location = load_location
920
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1158
+ InterpolatedStringNode.new(
1159
+ source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
921
1160
  },
922
1161
  -> {
923
1162
  location = load_location
924
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1163
+ InterpolatedSymbolNode.new(
1164
+ source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
925
1165
  },
926
1166
  -> {
927
1167
  location = load_location
928
- InterpolatedXStringNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
1168
+ InterpolatedXStringNode.new(
1169
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
929
1170
  },
930
1171
  -> {
931
1172
  location = load_location
932
- KeywordHashNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
1173
+ KeywordHashNode.new(
1174
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
933
1175
  },
934
1176
  -> {
935
1177
  location = load_location
936
- KeywordRestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
1178
+ KeywordRestParameterNode.new(
1179
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
937
1180
  },
938
1181
  -> {
939
1182
  location = load_location
940
- LambdaNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
1183
+ LambdaNode.new(
1184
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
941
1185
  },
942
1186
  -> {
943
1187
  location = load_location
944
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
1188
+ LocalVariableAndWriteNode.new(
1189
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
945
1190
  },
946
1191
  -> {
947
1192
  location = load_location
948
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
1193
+ LocalVariableOperatorWriteNode.new(
1194
+ source, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
949
1195
  },
950
1196
  -> {
951
1197
  location = load_location
952
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
1198
+ LocalVariableOrWriteNode.new(
1199
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
953
1200
  },
954
1201
  -> {
955
1202
  location = load_location
956
- LocalVariableReadNode.new(load_required_constant, load_varuint, location)
1203
+ LocalVariableReadNode.new(
1204
+ source, load_required_constant, load_varuint, location)
957
1205
  },
958
1206
  -> {
959
1207
  location = load_location
960
- LocalVariableTargetNode.new(load_required_constant, load_varuint, location)
1208
+ LocalVariableTargetNode.new(
1209
+ source, load_required_constant, load_varuint, location)
961
1210
  },
962
1211
  -> {
963
1212
  location = load_location
964
- LocalVariableWriteNode.new(load_required_constant, load_varuint, load_location, load_node, load_location, location)
1213
+ LocalVariableWriteNode.new(
1214
+ source, load_required_constant, load_varuint, load_location, load_node, load_location, location)
965
1215
  },
966
1216
  -> {
967
1217
  location = load_location
968
- MatchLastLineNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1218
+ MatchLastLineNode.new(
1219
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
969
1220
  },
970
1221
  -> {
971
1222
  location = load_location
972
- MatchPredicateNode.new(load_node, load_node, load_location, location)
1223
+ MatchPredicateNode.new(
1224
+ source, load_node, load_node, load_location, location)
973
1225
  },
974
1226
  -> {
975
1227
  location = load_location
976
- MatchRequiredNode.new(load_node, load_node, load_location, location)
1228
+ MatchRequiredNode.new(
1229
+ source, load_node, load_node, load_location, location)
977
1230
  },
978
1231
  -> {
979
1232
  location = load_location
980
- MatchWriteNode.new(load_node, Array.new(load_varuint) { load_node }, location)
1233
+ MatchWriteNode.new(
1234
+ source, load_node, Array.new(load_varuint) { load_node }, location)
981
1235
  },
982
1236
  -> {
983
1237
  location = load_location
984
- MissingNode.new(location)
1238
+ MissingNode.new(
1239
+ source, location)
985
1240
  },
986
1241
  -> {
987
1242
  location = load_location
988
- ModuleNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
1243
+ ModuleNode.new(
1244
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
989
1245
  },
990
1246
  -> {
991
1247
  location = load_location
992
- MultiTargetNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
1248
+ MultiTargetNode.new(
1249
+ source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
993
1250
  },
994
1251
  -> {
995
1252
  location = load_location
996
- 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)
1253
+ MultiWriteNode.new(
1254
+ source, 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)
997
1255
  },
998
1256
  -> {
999
1257
  location = load_location
1000
- NextNode.new(load_optional_node, load_location, location)
1258
+ NextNode.new(
1259
+ source, load_optional_node, load_location, location)
1001
1260
  },
1002
1261
  -> {
1003
1262
  location = load_location
1004
- NilNode.new(location)
1263
+ NilNode.new(
1264
+ source, location)
1005
1265
  },
1006
1266
  -> {
1007
1267
  location = load_location
1008
- NoKeywordsParameterNode.new(load_location, load_location, location)
1268
+ NoKeywordsParameterNode.new(
1269
+ source, load_location, load_location, location)
1009
1270
  },
1010
1271
  -> {
1011
1272
  location = load_location
1012
- NumberedParametersNode.new(io.getbyte, location)
1273
+ NumberedParametersNode.new(
1274
+ source, io.getbyte, location)
1013
1275
  },
1014
1276
  -> {
1015
1277
  location = load_location
1016
- NumberedReferenceReadNode.new(load_varuint, location)
1278
+ NumberedReferenceReadNode.new(
1279
+ source, load_varuint, location)
1017
1280
  },
1018
1281
  -> {
1019
1282
  location = load_location
1020
- OptionalKeywordParameterNode.new(load_varuint, load_required_constant, load_location, load_node, location)
1283
+ OptionalKeywordParameterNode.new(
1284
+ source, load_varuint, load_required_constant, load_location, load_node, location)
1021
1285
  },
1022
1286
  -> {
1023
1287
  location = load_location
1024
- OptionalParameterNode.new(load_varuint, load_required_constant, load_location, load_location, load_node, location)
1288
+ OptionalParameterNode.new(
1289
+ source, load_varuint, load_required_constant, load_location, load_location, load_node, location)
1025
1290
  },
1026
1291
  -> {
1027
1292
  location = load_location
1028
- OrNode.new(load_node, load_node, load_location, location)
1293
+ OrNode.new(
1294
+ source, load_node, load_node, load_location, location)
1029
1295
  },
1030
1296
  -> {
1031
1297
  location = load_location
1032
- 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)
1298
+ ParametersNode.new(
1299
+ source, 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)
1033
1300
  },
1034
1301
  -> {
1035
1302
  location = load_location
1036
- ParenthesesNode.new(load_optional_node, load_location, load_location, location)
1303
+ ParenthesesNode.new(
1304
+ source, load_optional_node, load_location, load_location, location)
1037
1305
  },
1038
1306
  -> {
1039
1307
  location = load_location
1040
- PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
1308
+ PinnedExpressionNode.new(
1309
+ source, load_node, load_location, load_location, load_location, location)
1041
1310
  },
1042
1311
  -> {
1043
1312
  location = load_location
1044
- PinnedVariableNode.new(load_node, load_location, location)
1313
+ PinnedVariableNode.new(
1314
+ source, load_node, load_location, location)
1045
1315
  },
1046
1316
  -> {
1047
1317
  location = load_location
1048
- PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
1318
+ PostExecutionNode.new(
1319
+ source, load_optional_node, load_location, load_location, load_location, location)
1049
1320
  },
1050
1321
  -> {
1051
1322
  location = load_location
1052
- PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
1323
+ PreExecutionNode.new(
1324
+ source, load_optional_node, load_location, load_location, load_location, location)
1053
1325
  },
1054
1326
  -> {
1055
1327
  location = load_location
1056
- ProgramNode.new(Array.new(load_varuint) { load_required_constant }, load_node, location)
1328
+ ProgramNode.new(
1329
+ source, Array.new(load_varuint) { load_required_constant }, load_node, location)
1057
1330
  },
1058
1331
  -> {
1059
1332
  location = load_location
1060
- RangeNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
1333
+ RangeNode.new(
1334
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
1061
1335
  },
1062
1336
  -> {
1063
1337
  location = load_location
1064
- RationalNode.new(load_node, location)
1338
+ RationalNode.new(
1339
+ source, load_node, location)
1065
1340
  },
1066
1341
  -> {
1067
1342
  location = load_location
1068
- RedoNode.new(location)
1343
+ RedoNode.new(
1344
+ source, location)
1069
1345
  },
1070
1346
  -> {
1071
1347
  location = load_location
1072
- RegularExpressionNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1348
+ RegularExpressionNode.new(
1349
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
1073
1350
  },
1074
1351
  -> {
1075
1352
  location = load_location
1076
- RequiredKeywordParameterNode.new(load_varuint, load_required_constant, load_location, location)
1353
+ RequiredKeywordParameterNode.new(
1354
+ source, load_varuint, load_required_constant, load_location, location)
1077
1355
  },
1078
1356
  -> {
1079
1357
  location = load_location
1080
- RequiredParameterNode.new(load_varuint, load_required_constant, location)
1358
+ RequiredParameterNode.new(
1359
+ source, load_varuint, load_required_constant, location)
1081
1360
  },
1082
1361
  -> {
1083
1362
  location = load_location
1084
- RescueModifierNode.new(load_node, load_location, load_node, location)
1363
+ RescueModifierNode.new(
1364
+ source, load_node, load_location, load_node, location)
1085
1365
  },
1086
1366
  -> {
1087
1367
  location = load_location
1088
- RescueNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1368
+ RescueNode.new(
1369
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1089
1370
  },
1090
1371
  -> {
1091
1372
  location = load_location
1092
- RestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
1373
+ RestParameterNode.new(
1374
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
1093
1375
  },
1094
1376
  -> {
1095
1377
  location = load_location
1096
- RetryNode.new(location)
1378
+ RetryNode.new(
1379
+ source, location)
1097
1380
  },
1098
1381
  -> {
1099
1382
  location = load_location
1100
- ReturnNode.new(load_location, load_optional_node, location)
1383
+ ReturnNode.new(
1384
+ source, load_location, load_optional_node, location)
1101
1385
  },
1102
1386
  -> {
1103
1387
  location = load_location
1104
- SelfNode.new(location)
1388
+ SelfNode.new(
1389
+ source, location)
1105
1390
  },
1106
1391
  -> {
1107
1392
  location = load_location
1108
- SingletonClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1393
+ SingletonClassNode.new(
1394
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1109
1395
  },
1110
1396
  -> {
1111
1397
  location = load_location
1112
- SourceEncodingNode.new(location)
1398
+ SourceEncodingNode.new(
1399
+ source, location)
1113
1400
  },
1114
1401
  -> {
1115
1402
  location = load_location
1116
- SourceFileNode.new(load_string, location)
1403
+ SourceFileNode.new(
1404
+ source, load_string, location)
1117
1405
  },
1118
1406
  -> {
1119
1407
  location = load_location
1120
- SourceLineNode.new(location)
1408
+ SourceLineNode.new(
1409
+ source, location)
1121
1410
  },
1122
1411
  -> {
1123
1412
  location = load_location
1124
- SplatNode.new(load_location, load_optional_node, location)
1413
+ SplatNode.new(
1414
+ source, load_location, load_optional_node, location)
1125
1415
  },
1126
1416
  -> {
1127
1417
  location = load_location
1128
- StatementsNode.new(Array.new(load_varuint) { load_node }, location)
1418
+ StatementsNode.new(
1419
+ source, Array.new(load_varuint) { load_node }, location)
1129
1420
  },
1130
1421
  -> {
1131
1422
  location = load_location
1132
- StringNode.new(load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1423
+ StringNode.new(
1424
+ source, load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1133
1425
  },
1134
1426
  -> {
1135
1427
  location = load_location
1136
- SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1428
+ SuperNode.new(
1429
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1137
1430
  },
1138
1431
  -> {
1139
1432
  location = load_location
1140
- SymbolNode.new(load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1433
+ SymbolNode.new(
1434
+ source, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1141
1435
  },
1142
1436
  -> {
1143
1437
  location = load_location
1144
- TrueNode.new(location)
1438
+ TrueNode.new(
1439
+ source, location)
1145
1440
  },
1146
1441
  -> {
1147
1442
  location = load_location
1148
- UndefNode.new(Array.new(load_varuint) { load_node }, load_location, location)
1443
+ UndefNode.new(
1444
+ source, Array.new(load_varuint) { load_node }, load_location, location)
1149
1445
  },
1150
1446
  -> {
1151
1447
  location = load_location
1152
- UnlessNode.new(load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1448
+ UnlessNode.new(
1449
+ source, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1153
1450
  },
1154
1451
  -> {
1155
1452
  location = load_location
1156
- UntilNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1453
+ UntilNode.new(
1454
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1157
1455
  },
1158
1456
  -> {
1159
1457
  location = load_location
1160
- WhenNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1458
+ WhenNode.new(
1459
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1161
1460
  },
1162
1461
  -> {
1163
1462
  location = load_location
1164
- WhileNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1463
+ WhileNode.new(
1464
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1165
1465
  },
1166
1466
  -> {
1167
1467
  location = load_location
1168
- XStringNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1468
+ XStringNode.new(
1469
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
1169
1470
  },
1170
1471
  -> {
1171
1472
  location = load_location
1172
- YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
1473
+ YieldNode.new(
1474
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, location)
1173
1475
  },
1174
1476
  ]
1175
1477
  end