prism 0.22.0 → 0.24.0

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