prism 0.19.0 → 0.24.0

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