prism 0.23.0 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/BSDmakefile +58 -0
  3. data/CHANGELOG.md +65 -1
  4. data/Makefile +5 -2
  5. data/README.md +45 -6
  6. data/config.yml +499 -4
  7. data/docs/build_system.md +31 -0
  8. data/docs/configuration.md +2 -0
  9. data/docs/cruby_compilation.md +1 -1
  10. data/docs/parser_translation.md +14 -9
  11. data/docs/releasing.md +3 -3
  12. data/docs/ripper_translation.md +50 -0
  13. data/docs/ruby_api.md +1 -0
  14. data/docs/serialization.md +26 -5
  15. data/ext/prism/api_node.c +2342 -1801
  16. data/ext/prism/api_pack.c +9 -0
  17. data/ext/prism/extconf.rb +27 -11
  18. data/ext/prism/extension.c +313 -66
  19. data/ext/prism/extension.h +5 -4
  20. data/include/prism/ast.h +213 -64
  21. data/include/prism/defines.h +106 -2
  22. data/include/prism/diagnostic.h +134 -71
  23. data/include/prism/encoding.h +22 -4
  24. data/include/prism/node.h +93 -0
  25. data/include/prism/options.h +82 -7
  26. data/include/prism/pack.h +11 -0
  27. data/include/prism/parser.h +198 -53
  28. data/include/prism/prettyprint.h +8 -0
  29. data/include/prism/static_literals.h +118 -0
  30. data/include/prism/util/pm_buffer.h +65 -2
  31. data/include/prism/util/pm_constant_pool.h +18 -1
  32. data/include/prism/util/pm_integer.h +119 -0
  33. data/include/prism/util/pm_list.h +1 -1
  34. data/include/prism/util/pm_newline_list.h +12 -3
  35. data/include/prism/util/pm_string.h +26 -2
  36. data/include/prism/version.h +2 -2
  37. data/include/prism.h +59 -1
  38. data/lib/prism/compiler.rb +8 -1
  39. data/lib/prism/debug.rb +46 -3
  40. data/lib/prism/desugar_compiler.rb +225 -80
  41. data/lib/prism/dispatcher.rb +29 -0
  42. data/lib/prism/dot_visitor.rb +87 -16
  43. data/lib/prism/dsl.rb +315 -300
  44. data/lib/prism/ffi.rb +165 -84
  45. data/lib/prism/lex_compat.rb +17 -15
  46. data/lib/prism/mutation_compiler.rb +11 -0
  47. data/lib/prism/node.rb +4857 -3750
  48. data/lib/prism/node_ext.rb +77 -29
  49. data/lib/prism/pack.rb +4 -0
  50. data/lib/prism/parse_result/comments.rb +34 -17
  51. data/lib/prism/parse_result/newlines.rb +3 -1
  52. data/lib/prism/parse_result.rb +88 -34
  53. data/lib/prism/pattern.rb +16 -4
  54. data/lib/prism/polyfill/string.rb +12 -0
  55. data/lib/prism/serialize.rb +960 -327
  56. data/lib/prism/translation/parser/compiler.rb +152 -50
  57. data/lib/prism/translation/parser/lexer.rb +103 -22
  58. data/lib/prism/translation/parser/rubocop.rb +47 -11
  59. data/lib/prism/translation/parser.rb +134 -10
  60. data/lib/prism/translation/parser33.rb +12 -0
  61. data/lib/prism/translation/parser34.rb +12 -0
  62. data/lib/prism/translation/ripper/sexp.rb +125 -0
  63. data/lib/prism/translation/ripper/shim.rb +5 -0
  64. data/lib/prism/translation/ripper.rb +3248 -379
  65. data/lib/prism/translation/ruby_parser.rb +35 -18
  66. data/lib/prism/translation.rb +3 -1
  67. data/lib/prism/visitor.rb +10 -0
  68. data/lib/prism.rb +8 -2
  69. data/prism.gemspec +35 -4
  70. data/rbi/prism/compiler.rbi +14 -0
  71. data/rbi/prism/desugar_compiler.rbi +5 -0
  72. data/rbi/prism/mutation_compiler.rbi +5 -0
  73. data/rbi/prism/node.rbi +8221 -0
  74. data/rbi/prism/node_ext.rbi +102 -0
  75. data/rbi/prism/parse_result.rbi +304 -0
  76. data/rbi/prism/translation/parser/compiler.rbi +13 -0
  77. data/rbi/prism/translation/ripper/ripper_compiler.rbi +5 -0
  78. data/rbi/prism/translation/ripper.rbi +25 -0
  79. data/rbi/prism/translation/ruby_parser.rbi +11 -0
  80. data/rbi/prism/visitor.rbi +470 -0
  81. data/rbi/prism.rbi +39 -7749
  82. data/sig/prism/compiler.rbs +9 -0
  83. data/sig/prism/dispatcher.rbs +16 -0
  84. data/sig/prism/dot_visitor.rbs +6 -0
  85. data/sig/prism/dsl.rbs +462 -0
  86. data/sig/prism/mutation_compiler.rbs +158 -0
  87. data/sig/prism/node.rbs +3529 -0
  88. data/sig/prism/node_ext.rbs +78 -0
  89. data/sig/prism/pack.rbs +43 -0
  90. data/sig/prism/parse_result.rbs +127 -0
  91. data/sig/prism/pattern.rbs +13 -0
  92. data/sig/prism/serialize.rbs +7 -0
  93. data/sig/prism/visitor.rbs +168 -0
  94. data/sig/prism.rbs +188 -4767
  95. data/src/diagnostic.c +575 -230
  96. data/src/encoding.c +211 -108
  97. data/src/node.c +7526 -447
  98. data/src/options.c +36 -12
  99. data/src/pack.c +33 -17
  100. data/src/prettyprint.c +1297 -1388
  101. data/src/prism.c +3665 -1121
  102. data/src/regexp.c +17 -2
  103. data/src/serialize.c +47 -28
  104. data/src/static_literals.c +552 -0
  105. data/src/token_type.c +1 -0
  106. data/src/util/pm_buffer.c +147 -20
  107. data/src/util/pm_char.c +4 -4
  108. data/src/util/pm_constant_pool.c +35 -11
  109. data/src/util/pm_integer.c +629 -0
  110. data/src/util/pm_list.c +1 -1
  111. data/src/util/pm_newline_list.c +20 -8
  112. data/src/util/pm_string.c +134 -5
  113. data/src/util/pm_string_list.c +2 -2
  114. metadata +37 -6
  115. data/docs/ripper.md +0 -36
  116. data/rbi/prism_static.rbi +0 -207
  117. data/sig/prism_static.rbs +0 -201
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  =begin
3
4
  This file is generated by the templates/template.rb script and should not be
4
5
  modified manually. See templates/lib/prism/serialize.rb.erb
@@ -6,17 +7,7 @@ if you are looking to modify the template
6
7
  =end
7
8
 
8
9
  require "stringio"
9
-
10
- # Polyfill for String#unpack1 with the offset parameter.
11
- if String.instance_method(:unpack1).parameters.none? { |_, name| name == :offset }
12
- String.prepend(
13
- Module.new {
14
- def unpack1(format, offset: 0) # :nodoc:
15
- offset == 0 ? super(format) : self[offset..].unpack1(format)
16
- end
17
- }
18
- )
19
- end
10
+ require_relative "polyfill/string"
20
11
 
21
12
  module Prism
22
13
  # A module responsible for deserializing parse results.
@@ -27,7 +18,7 @@ module Prism
27
18
 
28
19
  # The minor version of prism that we are expecting to find in the serialized
29
20
  # strings.
30
- MINOR_VERSION = 23
21
+ MINOR_VERSION = 25
31
22
 
32
23
  # The patch version of prism that we are expecting to find in the serialized
33
24
  # strings.
@@ -51,6 +42,37 @@ module Prism
51
42
  end
52
43
 
53
44
  class Loader # :nodoc:
45
+ if RUBY_ENGINE == "truffleruby"
46
+ # StringIO is synchronized and that adds a high overhead on TruffleRuby.
47
+ class FastStringIO # :nodoc:
48
+ attr_accessor :pos
49
+
50
+ def initialize(string)
51
+ @string = string
52
+ @pos = 0
53
+ end
54
+
55
+ def getbyte
56
+ byte = @string.getbyte(@pos)
57
+ @pos += 1
58
+ byte
59
+ end
60
+
61
+ def read(n)
62
+ slice = @string.byteslice(@pos, n)
63
+ @pos += n
64
+ slice
65
+ end
66
+
67
+ def eof?
68
+ @pos >= @string.bytesize
69
+ end
70
+ end
71
+ else
72
+ FastStringIO = ::StringIO
73
+ end
74
+ private_constant :FastStringIO
75
+
54
76
  attr_reader :encoding, :input, :serialized, :io
55
77
  attr_reader :constant_pool_offset, :constant_pool, :source
56
78
  attr_reader :start_line
@@ -59,9 +81,9 @@ module Prism
59
81
  @encoding = Encoding::UTF_8
60
82
 
61
83
  @input = source.source.dup
84
+ raise unless serialized.encoding == Encoding::BINARY
62
85
  @serialized = serialized
63
- @io = StringIO.new(serialized)
64
- @io.set_encoding(Encoding::BINARY)
86
+ @io = FastStringIO.new(serialized)
65
87
 
66
88
  @constant_pool_offset = nil
67
89
  @constant_pool = nil
@@ -73,7 +95,7 @@ module Prism
73
95
  def load_header
74
96
  raise "Invalid serialization" if io.read(5) != "PRISM"
75
97
  raise "Invalid serialization" if io.read(3).unpack("C3") != [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION]
76
- only_semantic_fields = io.read(1).unpack1("C")
98
+ only_semantic_fields = io.getbyte
77
99
  unless only_semantic_fields == 0
78
100
  raise "Invalid serialization (location fields must be included but are not)"
79
101
  end
@@ -96,19 +118,293 @@ module Prism
96
118
  def load_comments
97
119
  Array.new(load_varuint) do
98
120
  case load_varuint
99
- when 0 then InlineComment.new(load_location)
100
- when 1 then EmbDocComment.new(load_location)
101
- when 2 then DATAComment.new(load_location)
121
+ when 0 then InlineComment.new(load_location_object)
122
+ when 1 then EmbDocComment.new(load_location_object)
102
123
  end
103
124
  end
104
125
  end
105
126
 
127
+ DIAGNOSTIC_TYPES = [
128
+ :alias_argument,
129
+ :alias_argument_numbered_reference,
130
+ :ampampeq_multi_assign,
131
+ :argument_after_block,
132
+ :argument_after_forwarding_ellipses,
133
+ :argument_bare_hash,
134
+ :argument_block_forwarding,
135
+ :argument_block_multi,
136
+ :argument_formal_class,
137
+ :argument_formal_constant,
138
+ :argument_formal_global,
139
+ :argument_formal_ivar,
140
+ :argument_forwarding_unbound,
141
+ :argument_in,
142
+ :argument_no_forwarding_amp,
143
+ :argument_no_forwarding_ellipses,
144
+ :argument_no_forwarding_star,
145
+ :argument_no_forwarding_star_star,
146
+ :argument_splat_after_assoc_splat,
147
+ :argument_splat_after_splat,
148
+ :argument_term_paren,
149
+ :argument_unexpected_block,
150
+ :array_element,
151
+ :array_expression,
152
+ :array_expression_after_star,
153
+ :array_separator,
154
+ :array_term,
155
+ :begin_lonely_else,
156
+ :begin_term,
157
+ :begin_upcase_brace,
158
+ :begin_upcase_term,
159
+ :begin_upcase_toplevel,
160
+ :block_param_local_variable,
161
+ :block_param_pipe_term,
162
+ :block_term_brace,
163
+ :block_term_end,
164
+ :cannot_parse_expression,
165
+ :cannot_parse_string_part,
166
+ :case_expression_after_case,
167
+ :case_expression_after_when,
168
+ :case_match_missing_predicate,
169
+ :case_missing_conditions,
170
+ :case_term,
171
+ :class_in_method,
172
+ :class_name,
173
+ :class_superclass,
174
+ :class_term,
175
+ :class_unexpected_end,
176
+ :class_variable_bare,
177
+ :conditional_elsif_predicate,
178
+ :conditional_if_predicate,
179
+ :conditional_predicate_term,
180
+ :conditional_term,
181
+ :conditional_term_else,
182
+ :conditional_unless_predicate,
183
+ :conditional_until_predicate,
184
+ :conditional_while_predicate,
185
+ :constant_path_colon_colon_constant,
186
+ :def_endless,
187
+ :def_endless_setter,
188
+ :def_name,
189
+ :def_name_after_receiver,
190
+ :def_params_term,
191
+ :def_params_term_paren,
192
+ :def_receiver,
193
+ :def_receiver_term,
194
+ :def_term,
195
+ :defined_expression,
196
+ :embdoc_term,
197
+ :embexpr_end,
198
+ :embvar_invalid,
199
+ :end_upcase_brace,
200
+ :end_upcase_term,
201
+ :escape_invalid_control,
202
+ :escape_invalid_control_repeat,
203
+ :escape_invalid_hexadecimal,
204
+ :escape_invalid_meta,
205
+ :escape_invalid_meta_repeat,
206
+ :escape_invalid_unicode,
207
+ :escape_invalid_unicode_cm_flags,
208
+ :escape_invalid_unicode_literal,
209
+ :escape_invalid_unicode_long,
210
+ :escape_invalid_unicode_term,
211
+ :expect_argument,
212
+ :expect_eol_after_statement,
213
+ :expect_expression_after_ampampeq,
214
+ :expect_expression_after_comma,
215
+ :expect_expression_after_equal,
216
+ :expect_expression_after_less_less,
217
+ :expect_expression_after_lparen,
218
+ :expect_expression_after_operator,
219
+ :expect_expression_after_pipepipeeq,
220
+ :expect_expression_after_question,
221
+ :expect_expression_after_splat,
222
+ :expect_expression_after_splat_hash,
223
+ :expect_expression_after_star,
224
+ :expect_ident_req_parameter,
225
+ :expect_lparen_req_parameter,
226
+ :expect_rbracket,
227
+ :expect_rparen,
228
+ :expect_rparen_after_multi,
229
+ :expect_rparen_req_parameter,
230
+ :expect_string_content,
231
+ :expect_when_delimiter,
232
+ :expression_bare_hash,
233
+ :float_parse,
234
+ :for_collection,
235
+ :for_in,
236
+ :for_index,
237
+ :for_term,
238
+ :global_variable_bare,
239
+ :hash_expression_after_label,
240
+ :hash_key,
241
+ :hash_rocket,
242
+ :hash_term,
243
+ :hash_value,
244
+ :heredoc_term,
245
+ :incomplete_question_mark,
246
+ :incomplete_variable_class,
247
+ :incomplete_variable_class_3_3_0,
248
+ :incomplete_variable_instance,
249
+ :incomplete_variable_instance_3_3_0,
250
+ :instance_variable_bare,
251
+ :invalid_block_exit,
252
+ :invalid_character,
253
+ :invalid_encoding_magic_comment,
254
+ :invalid_float_exponent,
255
+ :invalid_multibyte_char,
256
+ :invalid_multibyte_character,
257
+ :invalid_multibyte_escape,
258
+ :invalid_number_binary,
259
+ :invalid_number_decimal,
260
+ :invalid_number_hexadecimal,
261
+ :invalid_number_octal,
262
+ :invalid_number_underscore,
263
+ :invalid_percent,
264
+ :invalid_printable_character,
265
+ :invalid_retry_after_else,
266
+ :invalid_retry_after_ensure,
267
+ :invalid_retry_without_rescue,
268
+ :invalid_variable_global,
269
+ :invalid_variable_global_3_3_0,
270
+ :invalid_yield,
271
+ :it_not_allowed_numbered,
272
+ :it_not_allowed_ordinary,
273
+ :lambda_open,
274
+ :lambda_term_brace,
275
+ :lambda_term_end,
276
+ :list_i_lower_element,
277
+ :list_i_lower_term,
278
+ :list_i_upper_element,
279
+ :list_i_upper_term,
280
+ :list_w_lower_element,
281
+ :list_w_lower_term,
282
+ :list_w_upper_element,
283
+ :list_w_upper_term,
284
+ :malloc_failed,
285
+ :mixed_encoding,
286
+ :module_in_method,
287
+ :module_name,
288
+ :module_term,
289
+ :multi_assign_multi_splats,
290
+ :multi_assign_unexpected_rest,
291
+ :no_local_variable,
292
+ :not_expression,
293
+ :number_literal_underscore,
294
+ :numbered_parameter_it,
295
+ :numbered_parameter_ordinary,
296
+ :numbered_parameter_outer_scope,
297
+ :operator_multi_assign,
298
+ :operator_write_arguments,
299
+ :operator_write_block,
300
+ :parameter_assoc_splat_multi,
301
+ :parameter_block_multi,
302
+ :parameter_circular,
303
+ :parameter_method_name,
304
+ :parameter_name_duplicated,
305
+ :parameter_no_default,
306
+ :parameter_no_default_kw,
307
+ :parameter_numbered_reserved,
308
+ :parameter_order,
309
+ :parameter_splat_multi,
310
+ :parameter_star,
311
+ :parameter_unexpected_fwd,
312
+ :parameter_wild_loose_comma,
313
+ :pattern_capture_duplicate,
314
+ :pattern_expression_after_bracket,
315
+ :pattern_expression_after_comma,
316
+ :pattern_expression_after_hrocket,
317
+ :pattern_expression_after_in,
318
+ :pattern_expression_after_key,
319
+ :pattern_expression_after_paren,
320
+ :pattern_expression_after_pin,
321
+ :pattern_expression_after_pipe,
322
+ :pattern_expression_after_range,
323
+ :pattern_expression_after_rest,
324
+ :pattern_hash_key,
325
+ :pattern_hash_key_duplicate,
326
+ :pattern_hash_key_label,
327
+ :pattern_ident_after_hrocket,
328
+ :pattern_label_after_comma,
329
+ :pattern_rest,
330
+ :pattern_term_brace,
331
+ :pattern_term_bracket,
332
+ :pattern_term_paren,
333
+ :pipepipeeq_multi_assign,
334
+ :regexp_encoding_option_mismatch,
335
+ :regexp_incompat_char_encoding,
336
+ :regexp_invalid_unicode_range,
337
+ :regexp_non_escaped_mbc,
338
+ :regexp_term,
339
+ :regexp_unknown_options,
340
+ :regexp_utf8_char_non_utf8_regexp,
341
+ :rescue_expression,
342
+ :rescue_modifier_value,
343
+ :rescue_term,
344
+ :rescue_variable,
345
+ :return_invalid,
346
+ :script_not_found,
347
+ :singleton_for_literals,
348
+ :statement_alias,
349
+ :statement_postexe_end,
350
+ :statement_preexe_begin,
351
+ :statement_undef,
352
+ :string_concatenation,
353
+ :string_interpolated_term,
354
+ :string_literal_eof,
355
+ :string_literal_term,
356
+ :symbol_invalid,
357
+ :symbol_term_dynamic,
358
+ :symbol_term_interpolated,
359
+ :ternary_colon,
360
+ :ternary_expression_false,
361
+ :ternary_expression_true,
362
+ :unary_receiver,
363
+ :undef_argument,
364
+ :unexpected_token_close_context,
365
+ :unexpected_token_ignore,
366
+ :until_term,
367
+ :void_expression,
368
+ :while_term,
369
+ :write_target_in_method,
370
+ :write_target_readonly,
371
+ :write_target_unexpected,
372
+ :xstring_term,
373
+ :ambiguous_first_argument_minus,
374
+ :ambiguous_first_argument_plus,
375
+ :ambiguous_prefix_ampersand,
376
+ :ambiguous_prefix_star,
377
+ :ambiguous_prefix_star_star,
378
+ :ambiguous_slash,
379
+ :comparison_after_comparison,
380
+ :dot_dot_dot_eol,
381
+ :equal_in_conditional,
382
+ :equal_in_conditional_3_3_0,
383
+ :end_in_method,
384
+ :duplicated_hash_key,
385
+ :duplicated_when_clause,
386
+ :float_out_of_range,
387
+ :ignored_frozen_string_literal,
388
+ :integer_in_flip_flop,
389
+ :invalid_character,
390
+ :invalid_numbered_reference,
391
+ :invalid_shareable_constant_value,
392
+ :keyword_eol,
393
+ :literal_in_condition_default,
394
+ :literal_in_condition_verbose,
395
+ :shebang_carriage_return,
396
+ :unexpected_carriage_return,
397
+ :unused_local_variable,
398
+ ].freeze
399
+
400
+ private_constant :DIAGNOSTIC_TYPES
401
+
106
402
  def load_metadata
107
403
  comments = load_comments
108
- magic_comments = Array.new(load_varuint) { MagicComment.new(load_location, load_location) }
109
- data_loc = load_optional_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) }
404
+ magic_comments = Array.new(load_varuint) { MagicComment.new(load_location_object, load_location_object) }
405
+ data_loc = load_optional_location_object
406
+ errors = Array.new(load_varuint) { ParseError.new(DIAGNOSTIC_TYPES[load_varuint], load_embedded_string, load_location_object, load_error_level) }
407
+ warnings = Array.new(load_varuint) { ParseWarning.new(DIAGNOSTIC_TYPES[load_varuint], load_embedded_string, load_location_object, load_warning_level) }
112
408
  [comments, magic_comments, data_loc, errors, warnings]
113
409
  end
114
410
 
@@ -119,7 +415,7 @@ module Prism
119
415
  length = load_varuint
120
416
  lex_state = load_varuint
121
417
  location = Location.new(@source, start, length)
122
- tokens << [Prism::Token.new(type, location.slice, location), lex_state]
418
+ tokens << [Prism::Token.new(source, type, location.slice, location), lex_state]
123
419
  end
124
420
 
125
421
  tokens
@@ -145,7 +441,7 @@ module Prism
145
441
 
146
442
  comments, magic_comments, data_loc, errors, warnings = load_metadata
147
443
 
148
- @constant_pool_offset = io.read(4).unpack1("L")
444
+ @constant_pool_offset = load_uint32
149
445
  @constant_pool = Array.new(load_varuint, nil)
150
446
 
151
447
  [load_node, comments, magic_comments, data_loc, errors, warnings]
@@ -179,7 +475,22 @@ module Prism
179
475
  (n >> 1) ^ (-(n & 1))
180
476
  end
181
477
 
182
- def load_serialized_length
478
+ def load_integer
479
+ negative = io.getbyte != 0
480
+ length = load_varuint
481
+
482
+ value = 0
483
+ length.times { |index| value |= (load_varuint << (index * 32)) }
484
+
485
+ value = -value if negative
486
+ value
487
+ end
488
+
489
+ def load_double
490
+ io.read(8).unpack1("D")
491
+ end
492
+
493
+ def load_uint32
183
494
  io.read(4).unpack1("L")
184
495
  end
185
496
 
@@ -207,6 +518,10 @@ module Prism
207
518
  end
208
519
 
209
520
  def load_location
521
+ (load_varuint << 32) | load_varuint
522
+ end
523
+
524
+ def load_location_object
210
525
  Location.new(source, load_varuint, load_varuint)
211
526
  end
212
527
 
@@ -214,19 +529,23 @@ module Prism
214
529
  load_location if io.getbyte != 0
215
530
  end
216
531
 
532
+ def load_optional_location_object
533
+ load_location_object if io.getbyte != 0
534
+ end
535
+
217
536
  def load_constant(index)
218
537
  constant = constant_pool[index]
219
538
 
220
539
  unless constant
221
540
  offset = constant_pool_offset + index * 8
222
- start = serialized.unpack1("L", offset: offset)
223
- length = serialized.unpack1("L", offset: offset + 4)
541
+ start = @serialized.unpack1("L", offset: offset)
542
+ length = @serialized.unpack1("L", offset: offset + 4)
224
543
 
225
544
  constant =
226
545
  if start.nobits?(1 << 31)
227
546
  input.byteslice(start, length).force_encoding(@encoding).to_sym
228
547
  else
229
- serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(@encoding).to_sym
548
+ @serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(@encoding).to_sym
230
549
  end
231
550
 
232
551
  constant_pool[index] = constant
@@ -249,9 +568,11 @@ module Prism
249
568
 
250
569
  case level
251
570
  when 0
252
- :fatal
571
+ :syntax
253
572
  when 1
254
573
  :argument
574
+ when 2
575
+ :load
255
576
  else
256
577
  raise "Unknown level: #{level}"
257
578
  end
@@ -277,302 +598,456 @@ module Prism
277
598
 
278
599
  case type
279
600
  when 1 then
280
- AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
601
+ AliasGlobalVariableNode.new(
602
+ source, load_node, load_node, load_location, location)
281
603
  when 2 then
282
- AliasMethodNode.new(load_node, load_node, load_location, location)
604
+ AliasMethodNode.new(
605
+ source, load_node, load_node, load_location, location)
283
606
  when 3 then
284
- AlternationPatternNode.new(load_node, load_node, load_location, location)
607
+ AlternationPatternNode.new(
608
+ source, load_node, load_node, load_location, location)
285
609
  when 4 then
286
- AndNode.new(load_node, load_node, load_location, location)
610
+ AndNode.new(
611
+ source, load_node, load_node, load_location, location)
287
612
  when 5 then
288
- ArgumentsNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
613
+ ArgumentsNode.new(
614
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
289
615
  when 6 then
290
- ArrayNode.new(load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
616
+ ArrayNode.new(
617
+ source, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
291
618
  when 7 then
292
- 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)
619
+ ArrayPatternNode.new(
620
+ 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)
293
621
  when 8 then
294
- AssocNode.new(load_node, load_node, load_optional_location, location)
622
+ AssocNode.new(
623
+ source, load_node, load_node, load_optional_location, location)
295
624
  when 9 then
296
- AssocSplatNode.new(load_optional_node, load_location, location)
625
+ AssocSplatNode.new(
626
+ source, load_optional_node, load_location, location)
297
627
  when 10 then
298
- BackReferenceReadNode.new(load_required_constant, location)
628
+ BackReferenceReadNode.new(
629
+ source, load_required_constant, location)
299
630
  when 11 then
300
- BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
631
+ BeginNode.new(
632
+ source, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
301
633
  when 12 then
302
- BlockArgumentNode.new(load_optional_node, load_location, location)
634
+ BlockArgumentNode.new(
635
+ source, load_optional_node, load_location, location)
303
636
  when 13 then
304
- BlockLocalVariableNode.new(load_varuint, load_required_constant, location)
637
+ BlockLocalVariableNode.new(
638
+ source, load_varuint, load_required_constant, location)
305
639
  when 14 then
306
- BlockNode.new(Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
640
+ BlockNode.new(
641
+ source, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
307
642
  when 15 then
308
- BlockParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
643
+ BlockParameterNode.new(
644
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
309
645
  when 16 then
310
- BlockParametersNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
646
+ BlockParametersNode.new(
647
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
311
648
  when 17 then
312
- BreakNode.new(load_optional_node, load_location, location)
649
+ BreakNode.new(
650
+ source, load_optional_node, load_location, location)
313
651
  when 18 then
314
- CallAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
652
+ CallAndWriteNode.new(
653
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
315
654
  when 19 then
316
- 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)
655
+ CallNode.new(
656
+ 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)
317
657
  when 20 then
318
- 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)
658
+ CallOperatorWriteNode.new(
659
+ 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)
319
660
  when 21 then
320
- CallOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
661
+ CallOrWriteNode.new(
662
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
321
663
  when 22 then
322
- CallTargetNode.new(load_varuint, load_node, load_location, load_required_constant, load_location, location)
664
+ CallTargetNode.new(
665
+ source, load_varuint, load_node, load_location, load_required_constant, load_location, location)
323
666
  when 23 then
324
- CapturePatternNode.new(load_node, load_node, load_location, location)
667
+ CapturePatternNode.new(
668
+ source, load_node, load_node, load_location, location)
325
669
  when 24 then
326
- CaseMatchNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
670
+ CaseMatchNode.new(
671
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
327
672
  when 25 then
328
- CaseNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
673
+ CaseNode.new(
674
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
329
675
  when 26 then
330
- 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)
676
+ ClassNode.new(
677
+ 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)
331
678
  when 27 then
332
- ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
679
+ ClassVariableAndWriteNode.new(
680
+ source, load_required_constant, load_location, load_location, load_node, location)
333
681
  when 28 then
334
- ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
682
+ ClassVariableOperatorWriteNode.new(
683
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
335
684
  when 29 then
336
- ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
685
+ ClassVariableOrWriteNode.new(
686
+ source, load_required_constant, load_location, load_location, load_node, location)
337
687
  when 30 then
338
- ClassVariableReadNode.new(load_required_constant, location)
688
+ ClassVariableReadNode.new(
689
+ source, load_required_constant, location)
339
690
  when 31 then
340
- ClassVariableTargetNode.new(load_required_constant, location)
691
+ ClassVariableTargetNode.new(
692
+ source, load_required_constant, location)
341
693
  when 32 then
342
- ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
694
+ ClassVariableWriteNode.new(
695
+ source, load_required_constant, load_location, load_node, load_location, location)
343
696
  when 33 then
344
- ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
697
+ ConstantAndWriteNode.new(
698
+ source, load_required_constant, load_location, load_location, load_node, location)
345
699
  when 34 then
346
- ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
700
+ ConstantOperatorWriteNode.new(
701
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
347
702
  when 35 then
348
- ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
703
+ ConstantOrWriteNode.new(
704
+ source, load_required_constant, load_location, load_location, load_node, location)
349
705
  when 36 then
350
- ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
706
+ ConstantPathAndWriteNode.new(
707
+ source, load_node, load_location, load_node, location)
351
708
  when 37 then
352
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
709
+ ConstantPathNode.new(
710
+ source, load_optional_node, load_node, load_location, location)
353
711
  when 38 then
354
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
712
+ ConstantPathOperatorWriteNode.new(
713
+ source, load_node, load_location, load_node, load_required_constant, location)
355
714
  when 39 then
356
- ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
715
+ ConstantPathOrWriteNode.new(
716
+ source, load_node, load_location, load_node, location)
357
717
  when 40 then
358
- ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
718
+ ConstantPathTargetNode.new(
719
+ source, load_optional_node, load_node, load_location, location)
359
720
  when 41 then
360
- ConstantPathWriteNode.new(load_node, load_location, load_node, location)
721
+ ConstantPathWriteNode.new(
722
+ source, load_node, load_location, load_node, location)
361
723
  when 42 then
362
- ConstantReadNode.new(load_required_constant, location)
724
+ ConstantReadNode.new(
725
+ source, load_required_constant, location)
363
726
  when 43 then
364
- ConstantTargetNode.new(load_required_constant, location)
727
+ ConstantTargetNode.new(
728
+ source, load_required_constant, location)
365
729
  when 44 then
366
- ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
730
+ ConstantWriteNode.new(
731
+ source, load_required_constant, load_location, load_node, load_location, location)
367
732
  when 45 then
368
- load_serialized_length
369
- 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)
733
+ load_uint32
734
+ DefNode.new(
735
+ 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)
370
736
  when 46 then
371
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
737
+ DefinedNode.new(
738
+ source, load_optional_location, load_node, load_optional_location, load_location, location)
372
739
  when 47 then
373
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
740
+ ElseNode.new(
741
+ source, load_location, load_optional_node, load_optional_location, location)
374
742
  when 48 then
375
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
743
+ EmbeddedStatementsNode.new(
744
+ source, load_location, load_optional_node, load_location, location)
376
745
  when 49 then
377
- EmbeddedVariableNode.new(load_location, load_node, location)
746
+ EmbeddedVariableNode.new(
747
+ source, load_location, load_node, location)
378
748
  when 50 then
379
- EnsureNode.new(load_location, load_optional_node, load_location, location)
749
+ EnsureNode.new(
750
+ source, load_location, load_optional_node, load_location, location)
380
751
  when 51 then
381
- FalseNode.new(location)
752
+ FalseNode.new(
753
+ source, location)
382
754
  when 52 then
383
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
755
+ FindPatternNode.new(
756
+ source, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
384
757
  when 53 then
385
- FlipFlopNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
758
+ FlipFlopNode.new(
759
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
386
760
  when 54 then
387
- FloatNode.new(location)
761
+ FloatNode.new(
762
+ source, load_double, location)
388
763
  when 55 then
389
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
764
+ ForNode.new(
765
+ source, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
390
766
  when 56 then
391
- ForwardingArgumentsNode.new(location)
767
+ ForwardingArgumentsNode.new(
768
+ source, location)
392
769
  when 57 then
393
- ForwardingParameterNode.new(location)
770
+ ForwardingParameterNode.new(
771
+ source, location)
394
772
  when 58 then
395
- ForwardingSuperNode.new(load_optional_node, location)
773
+ ForwardingSuperNode.new(
774
+ source, load_optional_node, location)
396
775
  when 59 then
397
- GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
776
+ GlobalVariableAndWriteNode.new(
777
+ source, load_required_constant, load_location, load_location, load_node, location)
398
778
  when 60 then
399
- GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
779
+ GlobalVariableOperatorWriteNode.new(
780
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
400
781
  when 61 then
401
- GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
782
+ GlobalVariableOrWriteNode.new(
783
+ source, load_required_constant, load_location, load_location, load_node, location)
402
784
  when 62 then
403
- GlobalVariableReadNode.new(load_required_constant, location)
785
+ GlobalVariableReadNode.new(
786
+ source, load_required_constant, location)
404
787
  when 63 then
405
- GlobalVariableTargetNode.new(load_required_constant, location)
788
+ GlobalVariableTargetNode.new(
789
+ source, load_required_constant, location)
406
790
  when 64 then
407
- GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
791
+ GlobalVariableWriteNode.new(
792
+ source, load_required_constant, load_location, load_node, load_location, location)
408
793
  when 65 then
409
- HashNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
794
+ HashNode.new(
795
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
410
796
  when 66 then
411
- HashPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
797
+ HashPatternNode.new(
798
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
412
799
  when 67 then
413
- IfNode.new(load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
800
+ IfNode.new(
801
+ source, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
414
802
  when 68 then
415
- ImaginaryNode.new(load_node, location)
803
+ ImaginaryNode.new(
804
+ source, load_node, location)
416
805
  when 69 then
417
- ImplicitNode.new(load_node, location)
806
+ ImplicitNode.new(
807
+ source, load_node, location)
418
808
  when 70 then
419
- ImplicitRestNode.new(location)
809
+ ImplicitRestNode.new(
810
+ source, location)
420
811
  when 71 then
421
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
812
+ InNode.new(
813
+ source, load_node, load_optional_node, load_location, load_optional_location, location)
422
814
  when 72 then
423
- 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)
815
+ IndexAndWriteNode.new(
816
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
424
817
  when 73 then
425
- 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)
818
+ IndexOperatorWriteNode.new(
819
+ 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)
426
820
  when 74 then
427
- 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)
821
+ IndexOrWriteNode.new(
822
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
428
823
  when 75 then
429
- IndexTargetNode.new(load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
824
+ IndexTargetNode.new(
825
+ source, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
430
826
  when 76 then
431
- InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
827
+ InstanceVariableAndWriteNode.new(
828
+ source, load_required_constant, load_location, load_location, load_node, location)
432
829
  when 77 then
433
- InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
830
+ InstanceVariableOperatorWriteNode.new(
831
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
434
832
  when 78 then
435
- InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
833
+ InstanceVariableOrWriteNode.new(
834
+ source, load_required_constant, load_location, load_location, load_node, location)
436
835
  when 79 then
437
- InstanceVariableReadNode.new(load_required_constant, location)
836
+ InstanceVariableReadNode.new(
837
+ source, load_required_constant, location)
438
838
  when 80 then
439
- InstanceVariableTargetNode.new(load_required_constant, location)
839
+ InstanceVariableTargetNode.new(
840
+ source, load_required_constant, location)
440
841
  when 81 then
441
- InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
842
+ InstanceVariableWriteNode.new(
843
+ source, load_required_constant, load_location, load_node, load_location, location)
442
844
  when 82 then
443
- IntegerNode.new(load_varuint, location)
845
+ IntegerNode.new(
846
+ source, load_varuint, load_integer, location)
444
847
  when 83 then
445
- InterpolatedMatchLastLineNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
848
+ InterpolatedMatchLastLineNode.new(
849
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
446
850
  when 84 then
447
- InterpolatedRegularExpressionNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
851
+ InterpolatedRegularExpressionNode.new(
852
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
448
853
  when 85 then
449
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
854
+ InterpolatedStringNode.new(
855
+ source, load_varuint, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
450
856
  when 86 then
451
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
857
+ InterpolatedSymbolNode.new(
858
+ source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
452
859
  when 87 then
453
- InterpolatedXStringNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
860
+ InterpolatedXStringNode.new(
861
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
454
862
  when 88 then
455
- KeywordHashNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
863
+ ItParametersNode.new(
864
+ source, location)
456
865
  when 89 then
457
- KeywordRestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
866
+ KeywordHashNode.new(
867
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
458
868
  when 90 then
459
- LambdaNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
869
+ KeywordRestParameterNode.new(
870
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
460
871
  when 91 then
461
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
872
+ LambdaNode.new(
873
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
462
874
  when 92 then
463
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
875
+ LocalVariableAndWriteNode.new(
876
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
464
877
  when 93 then
465
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
878
+ LocalVariableOperatorWriteNode.new(
879
+ source, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
466
880
  when 94 then
467
- LocalVariableReadNode.new(load_required_constant, load_varuint, location)
881
+ LocalVariableOrWriteNode.new(
882
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
468
883
  when 95 then
469
- LocalVariableTargetNode.new(load_required_constant, load_varuint, location)
884
+ LocalVariableReadNode.new(
885
+ source, load_required_constant, load_varuint, location)
470
886
  when 96 then
471
- LocalVariableWriteNode.new(load_required_constant, load_varuint, load_location, load_node, load_location, location)
887
+ LocalVariableTargetNode.new(
888
+ source, load_required_constant, load_varuint, location)
472
889
  when 97 then
473
- MatchLastLineNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
890
+ LocalVariableWriteNode.new(
891
+ source, load_required_constant, load_varuint, load_location, load_node, load_location, location)
474
892
  when 98 then
475
- MatchPredicateNode.new(load_node, load_node, load_location, location)
893
+ MatchLastLineNode.new(
894
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
476
895
  when 99 then
477
- MatchRequiredNode.new(load_node, load_node, load_location, location)
896
+ MatchPredicateNode.new(
897
+ source, load_node, load_node, load_location, location)
478
898
  when 100 then
479
- MatchWriteNode.new(load_node, Array.new(load_varuint) { load_node }, location)
899
+ MatchRequiredNode.new(
900
+ source, load_node, load_node, load_location, location)
480
901
  when 101 then
481
- MissingNode.new(location)
902
+ MatchWriteNode.new(
903
+ source, load_node, Array.new(load_varuint) { load_node }, location)
482
904
  when 102 then
483
- ModuleNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
905
+ MissingNode.new(
906
+ source, location)
484
907
  when 103 then
485
- MultiTargetNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
908
+ ModuleNode.new(
909
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
486
910
  when 104 then
487
- 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)
911
+ MultiTargetNode.new(
912
+ source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
488
913
  when 105 then
489
- NextNode.new(load_optional_node, load_location, location)
914
+ MultiWriteNode.new(
915
+ 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)
490
916
  when 106 then
491
- NilNode.new(location)
917
+ NextNode.new(
918
+ source, load_optional_node, load_location, location)
492
919
  when 107 then
493
- NoKeywordsParameterNode.new(load_location, load_location, location)
920
+ NilNode.new(
921
+ source, location)
494
922
  when 108 then
495
- NumberedParametersNode.new(io.getbyte, location)
923
+ NoKeywordsParameterNode.new(
924
+ source, load_location, load_location, location)
496
925
  when 109 then
497
- NumberedReferenceReadNode.new(load_varuint, location)
926
+ NumberedParametersNode.new(
927
+ source, io.getbyte, location)
498
928
  when 110 then
499
- OptionalKeywordParameterNode.new(load_varuint, load_required_constant, load_location, load_node, location)
929
+ NumberedReferenceReadNode.new(
930
+ source, load_varuint, location)
500
931
  when 111 then
501
- OptionalParameterNode.new(load_varuint, load_required_constant, load_location, load_location, load_node, location)
932
+ OptionalKeywordParameterNode.new(
933
+ source, load_varuint, load_required_constant, load_location, load_node, location)
502
934
  when 112 then
503
- OrNode.new(load_node, load_node, load_location, location)
935
+ OptionalParameterNode.new(
936
+ source, load_varuint, load_required_constant, load_location, load_location, load_node, location)
504
937
  when 113 then
505
- 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)
938
+ OrNode.new(
939
+ source, load_node, load_node, load_location, location)
506
940
  when 114 then
507
- ParenthesesNode.new(load_optional_node, load_location, load_location, location)
941
+ ParametersNode.new(
942
+ 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)
508
943
  when 115 then
509
- PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
944
+ ParenthesesNode.new(
945
+ source, load_optional_node, load_location, load_location, location)
510
946
  when 116 then
511
- PinnedVariableNode.new(load_node, load_location, location)
947
+ PinnedExpressionNode.new(
948
+ source, load_node, load_location, load_location, load_location, location)
512
949
  when 117 then
513
- PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
950
+ PinnedVariableNode.new(
951
+ source, load_node, load_location, location)
514
952
  when 118 then
515
- PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
953
+ PostExecutionNode.new(
954
+ source, load_optional_node, load_location, load_location, load_location, location)
516
955
  when 119 then
517
- ProgramNode.new(Array.new(load_varuint) { load_required_constant }, load_node, location)
956
+ PreExecutionNode.new(
957
+ source, load_optional_node, load_location, load_location, load_location, location)
518
958
  when 120 then
519
- RangeNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
959
+ ProgramNode.new(
960
+ source, Array.new(load_varuint) { load_required_constant }, load_node, location)
520
961
  when 121 then
521
- RationalNode.new(load_node, location)
962
+ RangeNode.new(
963
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
522
964
  when 122 then
523
- RedoNode.new(location)
965
+ RationalNode.new(
966
+ source, load_node, location)
524
967
  when 123 then
525
- RegularExpressionNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
968
+ RedoNode.new(
969
+ source, location)
526
970
  when 124 then
527
- RequiredKeywordParameterNode.new(load_varuint, load_required_constant, load_location, location)
971
+ RegularExpressionNode.new(
972
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
528
973
  when 125 then
529
- RequiredParameterNode.new(load_varuint, load_required_constant, location)
974
+ RequiredKeywordParameterNode.new(
975
+ source, load_varuint, load_required_constant, load_location, location)
530
976
  when 126 then
531
- RescueModifierNode.new(load_node, load_location, load_node, location)
977
+ RequiredParameterNode.new(
978
+ source, load_varuint, load_required_constant, location)
532
979
  when 127 then
533
- RescueNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
980
+ RescueModifierNode.new(
981
+ source, load_node, load_location, load_node, location)
534
982
  when 128 then
535
- RestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
983
+ RescueNode.new(
984
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
536
985
  when 129 then
537
- RetryNode.new(location)
986
+ RestParameterNode.new(
987
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
538
988
  when 130 then
539
- ReturnNode.new(load_location, load_optional_node, location)
989
+ RetryNode.new(
990
+ source, location)
540
991
  when 131 then
541
- SelfNode.new(location)
992
+ ReturnNode.new(
993
+ source, load_location, load_optional_node, location)
542
994
  when 132 then
543
- SingletonClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
995
+ SelfNode.new(
996
+ source, location)
544
997
  when 133 then
545
- SourceEncodingNode.new(location)
998
+ ShareableConstantNode.new(
999
+ source, load_varuint, load_node, location)
546
1000
  when 134 then
547
- SourceFileNode.new(load_string, location)
1001
+ SingletonClassNode.new(
1002
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
548
1003
  when 135 then
549
- SourceLineNode.new(location)
1004
+ SourceEncodingNode.new(
1005
+ source, location)
550
1006
  when 136 then
551
- SplatNode.new(load_location, load_optional_node, location)
1007
+ SourceFileNode.new(
1008
+ source, load_varuint, load_string, location)
552
1009
  when 137 then
553
- StatementsNode.new(Array.new(load_varuint) { load_node }, location)
1010
+ SourceLineNode.new(
1011
+ source, location)
554
1012
  when 138 then
555
- StringNode.new(load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1013
+ SplatNode.new(
1014
+ source, load_location, load_optional_node, location)
556
1015
  when 139 then
557
- SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1016
+ StatementsNode.new(
1017
+ source, Array.new(load_varuint) { load_node }, location)
558
1018
  when 140 then
559
- SymbolNode.new(load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1019
+ StringNode.new(
1020
+ source, load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
560
1021
  when 141 then
561
- TrueNode.new(location)
1022
+ SuperNode.new(
1023
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
562
1024
  when 142 then
563
- UndefNode.new(Array.new(load_varuint) { load_node }, load_location, location)
1025
+ SymbolNode.new(
1026
+ source, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
564
1027
  when 143 then
565
- UnlessNode.new(load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1028
+ TrueNode.new(
1029
+ source, location)
566
1030
  when 144 then
567
- UntilNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1031
+ UndefNode.new(
1032
+ source, Array.new(load_varuint) { load_node }, load_location, location)
568
1033
  when 145 then
569
- WhenNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1034
+ UnlessNode.new(
1035
+ source, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
570
1036
  when 146 then
571
- WhileNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1037
+ UntilNode.new(
1038
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
572
1039
  when 147 then
573
- XStringNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1040
+ WhenNode.new(
1041
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, location)
574
1042
  when 148 then
575
- YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
1043
+ WhileNode.new(
1044
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1045
+ when 149 then
1046
+ XStringNode.new(
1047
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
1048
+ when 150 then
1049
+ YieldNode.new(
1050
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, location)
576
1051
  end
577
1052
  end
578
1053
  else
@@ -586,596 +1061,754 @@ module Prism
586
1061
  nil,
587
1062
  -> {
588
1063
  location = load_location
589
- AliasGlobalVariableNode.new(load_node, load_node, load_location, location)
1064
+ AliasGlobalVariableNode.new(
1065
+ source, load_node, load_node, load_location, location)
1066
+ },
1067
+ -> {
1068
+ location = load_location
1069
+ AliasMethodNode.new(
1070
+ source, load_node, load_node, load_location, location)
1071
+ },
1072
+ -> {
1073
+ location = load_location
1074
+ AlternationPatternNode.new(
1075
+ source, load_node, load_node, load_location, location)
590
1076
  },
591
1077
  -> {
592
1078
  location = load_location
593
- AliasMethodNode.new(load_node, load_node, load_location, location)
1079
+ AndNode.new(
1080
+ source, load_node, load_node, load_location, location)
594
1081
  },
595
1082
  -> {
596
1083
  location = load_location
597
- AlternationPatternNode.new(load_node, load_node, load_location, location)
1084
+ ArgumentsNode.new(
1085
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
598
1086
  },
599
1087
  -> {
600
1088
  location = load_location
601
- AndNode.new(load_node, load_node, load_location, location)
1089
+ ArrayNode.new(
1090
+ source, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
602
1091
  },
603
1092
  -> {
604
1093
  location = load_location
605
- ArgumentsNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
1094
+ ArrayPatternNode.new(
1095
+ 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)
606
1096
  },
607
1097
  -> {
608
1098
  location = load_location
609
- ArrayNode.new(load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
1099
+ AssocNode.new(
1100
+ source, load_node, load_node, load_optional_location, location)
610
1101
  },
611
1102
  -> {
612
1103
  location = load_location
613
- 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)
1104
+ AssocSplatNode.new(
1105
+ source, load_optional_node, load_location, location)
614
1106
  },
615
1107
  -> {
616
1108
  location = load_location
617
- AssocNode.new(load_node, load_node, load_optional_location, location)
1109
+ BackReferenceReadNode.new(
1110
+ source, load_required_constant, location)
618
1111
  },
619
1112
  -> {
620
1113
  location = load_location
621
- AssocSplatNode.new(load_optional_node, load_location, location)
1114
+ BeginNode.new(
1115
+ source, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
622
1116
  },
623
1117
  -> {
624
1118
  location = load_location
625
- BackReferenceReadNode.new(load_required_constant, location)
1119
+ BlockArgumentNode.new(
1120
+ source, load_optional_node, load_location, location)
626
1121
  },
627
1122
  -> {
628
1123
  location = load_location
629
- BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
1124
+ BlockLocalVariableNode.new(
1125
+ source, load_varuint, load_required_constant, location)
630
1126
  },
631
1127
  -> {
632
1128
  location = load_location
633
- BlockArgumentNode.new(load_optional_node, load_location, location)
1129
+ BlockNode.new(
1130
+ source, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
634
1131
  },
635
1132
  -> {
636
1133
  location = load_location
637
- BlockLocalVariableNode.new(load_varuint, load_required_constant, location)
1134
+ BlockParameterNode.new(
1135
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
638
1136
  },
639
1137
  -> {
640
1138
  location = load_location
641
- BlockNode.new(Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
1139
+ BlockParametersNode.new(
1140
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
642
1141
  },
643
1142
  -> {
644
1143
  location = load_location
645
- BlockParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
1144
+ BreakNode.new(
1145
+ source, load_optional_node, load_location, location)
646
1146
  },
647
1147
  -> {
648
1148
  location = load_location
649
- BlockParametersNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
1149
+ CallAndWriteNode.new(
1150
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
650
1151
  },
651
1152
  -> {
652
1153
  location = load_location
653
- BreakNode.new(load_optional_node, load_location, location)
1154
+ CallNode.new(
1155
+ 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)
654
1156
  },
655
1157
  -> {
656
1158
  location = load_location
657
- CallAndWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
1159
+ CallOperatorWriteNode.new(
1160
+ 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)
658
1161
  },
659
1162
  -> {
660
1163
  location = load_location
661
- 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)
1164
+ CallOrWriteNode.new(
1165
+ source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
662
1166
  },
663
1167
  -> {
664
1168
  location = load_location
665
- 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)
1169
+ CallTargetNode.new(
1170
+ source, load_varuint, load_node, load_location, load_required_constant, load_location, location)
666
1171
  },
667
1172
  -> {
668
1173
  location = load_location
669
- CallOrWriteNode.new(load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
1174
+ CapturePatternNode.new(
1175
+ source, load_node, load_node, load_location, location)
670
1176
  },
671
1177
  -> {
672
1178
  location = load_location
673
- CallTargetNode.new(load_varuint, load_node, load_location, load_required_constant, load_location, location)
1179
+ CaseMatchNode.new(
1180
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
674
1181
  },
675
1182
  -> {
676
1183
  location = load_location
677
- CapturePatternNode.new(load_node, load_node, load_location, location)
1184
+ CaseNode.new(
1185
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
678
1186
  },
679
1187
  -> {
680
1188
  location = load_location
681
- CaseMatchNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
1189
+ ClassNode.new(
1190
+ 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)
682
1191
  },
683
1192
  -> {
684
1193
  location = load_location
685
- CaseNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
1194
+ ClassVariableAndWriteNode.new(
1195
+ source, load_required_constant, load_location, load_location, load_node, location)
686
1196
  },
687
1197
  -> {
688
1198
  location = load_location
689
- 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)
1199
+ ClassVariableOperatorWriteNode.new(
1200
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
690
1201
  },
691
1202
  -> {
692
1203
  location = load_location
693
- ClassVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1204
+ ClassVariableOrWriteNode.new(
1205
+ source, load_required_constant, load_location, load_location, load_node, location)
694
1206
  },
695
1207
  -> {
696
1208
  location = load_location
697
- ClassVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1209
+ ClassVariableReadNode.new(
1210
+ source, load_required_constant, location)
698
1211
  },
699
1212
  -> {
700
1213
  location = load_location
701
- ClassVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1214
+ ClassVariableTargetNode.new(
1215
+ source, load_required_constant, location)
702
1216
  },
703
1217
  -> {
704
1218
  location = load_location
705
- ClassVariableReadNode.new(load_required_constant, location)
1219
+ ClassVariableWriteNode.new(
1220
+ source, load_required_constant, load_location, load_node, load_location, location)
706
1221
  },
707
1222
  -> {
708
1223
  location = load_location
709
- ClassVariableTargetNode.new(load_required_constant, location)
1224
+ ConstantAndWriteNode.new(
1225
+ source, load_required_constant, load_location, load_location, load_node, location)
710
1226
  },
711
1227
  -> {
712
1228
  location = load_location
713
- ClassVariableWriteNode.new(load_required_constant, load_location, load_node, load_optional_location, location)
1229
+ ConstantOperatorWriteNode.new(
1230
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
714
1231
  },
715
1232
  -> {
716
1233
  location = load_location
717
- ConstantAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1234
+ ConstantOrWriteNode.new(
1235
+ source, load_required_constant, load_location, load_location, load_node, location)
718
1236
  },
719
1237
  -> {
720
1238
  location = load_location
721
- ConstantOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1239
+ ConstantPathAndWriteNode.new(
1240
+ source, load_node, load_location, load_node, location)
722
1241
  },
723
1242
  -> {
724
1243
  location = load_location
725
- ConstantOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1244
+ ConstantPathNode.new(
1245
+ source, load_optional_node, load_node, load_location, location)
726
1246
  },
727
1247
  -> {
728
1248
  location = load_location
729
- ConstantPathAndWriteNode.new(load_node, load_location, load_node, location)
1249
+ ConstantPathOperatorWriteNode.new(
1250
+ source, load_node, load_location, load_node, load_required_constant, location)
730
1251
  },
731
1252
  -> {
732
1253
  location = load_location
733
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
1254
+ ConstantPathOrWriteNode.new(
1255
+ source, load_node, load_location, load_node, location)
734
1256
  },
735
1257
  -> {
736
1258
  location = load_location
737
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_required_constant, location)
1259
+ ConstantPathTargetNode.new(
1260
+ source, load_optional_node, load_node, load_location, location)
738
1261
  },
739
1262
  -> {
740
1263
  location = load_location
741
- ConstantPathOrWriteNode.new(load_node, load_location, load_node, location)
1264
+ ConstantPathWriteNode.new(
1265
+ source, load_node, load_location, load_node, location)
742
1266
  },
743
1267
  -> {
744
1268
  location = load_location
745
- ConstantPathTargetNode.new(load_optional_node, load_node, load_location, location)
1269
+ ConstantReadNode.new(
1270
+ source, load_required_constant, location)
746
1271
  },
747
1272
  -> {
748
1273
  location = load_location
749
- ConstantPathWriteNode.new(load_node, load_location, load_node, location)
1274
+ ConstantTargetNode.new(
1275
+ source, load_required_constant, location)
750
1276
  },
751
1277
  -> {
752
1278
  location = load_location
753
- ConstantReadNode.new(load_required_constant, location)
1279
+ ConstantWriteNode.new(
1280
+ source, load_required_constant, load_location, load_node, load_location, location)
754
1281
  },
755
1282
  -> {
756
1283
  location = load_location
757
- ConstantTargetNode.new(load_required_constant, location)
1284
+ load_uint32
1285
+ DefNode.new(
1286
+ 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)
758
1287
  },
759
1288
  -> {
760
1289
  location = load_location
761
- ConstantWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
1290
+ DefinedNode.new(
1291
+ source, load_optional_location, load_node, load_optional_location, load_location, location)
762
1292
  },
763
1293
  -> {
764
1294
  location = load_location
765
- load_serialized_length
766
- 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)
1295
+ ElseNode.new(
1296
+ source, load_location, load_optional_node, load_optional_location, location)
767
1297
  },
768
1298
  -> {
769
1299
  location = load_location
770
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
1300
+ EmbeddedStatementsNode.new(
1301
+ source, load_location, load_optional_node, load_location, location)
771
1302
  },
772
1303
  -> {
773
1304
  location = load_location
774
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
1305
+ EmbeddedVariableNode.new(
1306
+ source, load_location, load_node, location)
775
1307
  },
776
1308
  -> {
777
1309
  location = load_location
778
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
1310
+ EnsureNode.new(
1311
+ source, load_location, load_optional_node, load_location, location)
779
1312
  },
780
1313
  -> {
781
1314
  location = load_location
782
- EmbeddedVariableNode.new(load_location, load_node, location)
1315
+ FalseNode.new(
1316
+ source, location)
783
1317
  },
784
1318
  -> {
785
1319
  location = load_location
786
- EnsureNode.new(load_location, load_optional_node, load_location, location)
1320
+ FindPatternNode.new(
1321
+ source, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
787
1322
  },
788
1323
  -> {
789
1324
  location = load_location
790
- FalseNode.new(location)
1325
+ FlipFlopNode.new(
1326
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
791
1327
  },
792
1328
  -> {
793
1329
  location = load_location
794
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
1330
+ FloatNode.new(
1331
+ source, load_double, location)
795
1332
  },
796
1333
  -> {
797
1334
  location = load_location
798
- FlipFlopNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
1335
+ ForNode.new(
1336
+ source, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
799
1337
  },
800
1338
  -> {
801
1339
  location = load_location
802
- FloatNode.new(location)
1340
+ ForwardingArgumentsNode.new(
1341
+ source, location)
803
1342
  },
804
1343
  -> {
805
1344
  location = load_location
806
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
1345
+ ForwardingParameterNode.new(
1346
+ source, location)
807
1347
  },
808
1348
  -> {
809
1349
  location = load_location
810
- ForwardingArgumentsNode.new(location)
1350
+ ForwardingSuperNode.new(
1351
+ source, load_optional_node, location)
811
1352
  },
812
1353
  -> {
813
1354
  location = load_location
814
- ForwardingParameterNode.new(location)
1355
+ GlobalVariableAndWriteNode.new(
1356
+ source, load_required_constant, load_location, load_location, load_node, location)
815
1357
  },
816
1358
  -> {
817
1359
  location = load_location
818
- ForwardingSuperNode.new(load_optional_node, location)
1360
+ GlobalVariableOperatorWriteNode.new(
1361
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
819
1362
  },
820
1363
  -> {
821
1364
  location = load_location
822
- GlobalVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1365
+ GlobalVariableOrWriteNode.new(
1366
+ source, load_required_constant, load_location, load_location, load_node, location)
823
1367
  },
824
1368
  -> {
825
1369
  location = load_location
826
- GlobalVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1370
+ GlobalVariableReadNode.new(
1371
+ source, load_required_constant, location)
827
1372
  },
828
1373
  -> {
829
1374
  location = load_location
830
- GlobalVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1375
+ GlobalVariableTargetNode.new(
1376
+ source, load_required_constant, location)
831
1377
  },
832
1378
  -> {
833
1379
  location = load_location
834
- GlobalVariableReadNode.new(load_required_constant, location)
1380
+ GlobalVariableWriteNode.new(
1381
+ source, load_required_constant, load_location, load_node, load_location, location)
835
1382
  },
836
1383
  -> {
837
1384
  location = load_location
838
- GlobalVariableTargetNode.new(load_required_constant, location)
1385
+ HashNode.new(
1386
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
839
1387
  },
840
1388
  -> {
841
1389
  location = load_location
842
- GlobalVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
1390
+ HashPatternNode.new(
1391
+ source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
843
1392
  },
844
1393
  -> {
845
1394
  location = load_location
846
- HashNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
1395
+ IfNode.new(
1396
+ source, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
847
1397
  },
848
1398
  -> {
849
1399
  location = load_location
850
- HashPatternNode.new(load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
1400
+ ImaginaryNode.new(
1401
+ source, load_node, location)
851
1402
  },
852
1403
  -> {
853
1404
  location = load_location
854
- IfNode.new(load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1405
+ ImplicitNode.new(
1406
+ source, load_node, location)
855
1407
  },
856
1408
  -> {
857
1409
  location = load_location
858
- ImaginaryNode.new(load_node, location)
1410
+ ImplicitRestNode.new(
1411
+ source, location)
859
1412
  },
860
1413
  -> {
861
1414
  location = load_location
862
- ImplicitNode.new(load_node, location)
1415
+ InNode.new(
1416
+ source, load_node, load_optional_node, load_location, load_optional_location, location)
863
1417
  },
864
1418
  -> {
865
1419
  location = load_location
866
- ImplicitRestNode.new(location)
1420
+ IndexAndWriteNode.new(
1421
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
867
1422
  },
868
1423
  -> {
869
1424
  location = load_location
870
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
1425
+ IndexOperatorWriteNode.new(
1426
+ 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)
871
1427
  },
872
1428
  -> {
873
1429
  location = load_location
874
- 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)
1430
+ IndexOrWriteNode.new(
1431
+ source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
875
1432
  },
876
1433
  -> {
877
1434
  location = load_location
878
- 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)
1435
+ IndexTargetNode.new(
1436
+ source, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
879
1437
  },
880
1438
  -> {
881
1439
  location = load_location
882
- 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)
1440
+ InstanceVariableAndWriteNode.new(
1441
+ source, load_required_constant, load_location, load_location, load_node, location)
883
1442
  },
884
1443
  -> {
885
1444
  location = load_location
886
- IndexTargetNode.new(load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
1445
+ InstanceVariableOperatorWriteNode.new(
1446
+ source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
887
1447
  },
888
1448
  -> {
889
1449
  location = load_location
890
- InstanceVariableAndWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1450
+ InstanceVariableOrWriteNode.new(
1451
+ source, load_required_constant, load_location, load_location, load_node, location)
891
1452
  },
892
1453
  -> {
893
1454
  location = load_location
894
- InstanceVariableOperatorWriteNode.new(load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1455
+ InstanceVariableReadNode.new(
1456
+ source, load_required_constant, location)
895
1457
  },
896
1458
  -> {
897
1459
  location = load_location
898
- InstanceVariableOrWriteNode.new(load_required_constant, load_location, load_location, load_node, location)
1460
+ InstanceVariableTargetNode.new(
1461
+ source, load_required_constant, location)
899
1462
  },
900
1463
  -> {
901
1464
  location = load_location
902
- InstanceVariableReadNode.new(load_required_constant, location)
1465
+ InstanceVariableWriteNode.new(
1466
+ source, load_required_constant, load_location, load_node, load_location, location)
903
1467
  },
904
1468
  -> {
905
1469
  location = load_location
906
- InstanceVariableTargetNode.new(load_required_constant, location)
1470
+ IntegerNode.new(
1471
+ source, load_varuint, load_integer, location)
907
1472
  },
908
1473
  -> {
909
1474
  location = load_location
910
- InstanceVariableWriteNode.new(load_required_constant, load_location, load_node, load_location, location)
1475
+ InterpolatedMatchLastLineNode.new(
1476
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
911
1477
  },
912
1478
  -> {
913
1479
  location = load_location
914
- IntegerNode.new(load_varuint, location)
1480
+ InterpolatedRegularExpressionNode.new(
1481
+ source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
915
1482
  },
916
1483
  -> {
917
1484
  location = load_location
918
- InterpolatedMatchLastLineNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1485
+ InterpolatedStringNode.new(
1486
+ source, load_varuint, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
919
1487
  },
920
1488
  -> {
921
1489
  location = load_location
922
- InterpolatedRegularExpressionNode.new(load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1490
+ InterpolatedSymbolNode.new(
1491
+ source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
923
1492
  },
924
1493
  -> {
925
1494
  location = load_location
926
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1495
+ InterpolatedXStringNode.new(
1496
+ source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
927
1497
  },
928
1498
  -> {
929
1499
  location = load_location
930
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1500
+ ItParametersNode.new(
1501
+ source, location)
931
1502
  },
932
1503
  -> {
933
1504
  location = load_location
934
- InterpolatedXStringNode.new(load_location, Array.new(load_varuint) { load_node }, load_location, location)
1505
+ KeywordHashNode.new(
1506
+ source, load_varuint, Array.new(load_varuint) { load_node }, location)
935
1507
  },
936
1508
  -> {
937
1509
  location = load_location
938
- KeywordHashNode.new(load_varuint, Array.new(load_varuint) { load_node }, location)
1510
+ KeywordRestParameterNode.new(
1511
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
939
1512
  },
940
1513
  -> {
941
1514
  location = load_location
942
- KeywordRestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
1515
+ LambdaNode.new(
1516
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
943
1517
  },
944
1518
  -> {
945
1519
  location = load_location
946
- LambdaNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
1520
+ LocalVariableAndWriteNode.new(
1521
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
947
1522
  },
948
1523
  -> {
949
1524
  location = load_location
950
- LocalVariableAndWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
1525
+ LocalVariableOperatorWriteNode.new(
1526
+ source, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
951
1527
  },
952
1528
  -> {
953
1529
  location = load_location
954
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
1530
+ LocalVariableOrWriteNode.new(
1531
+ source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
955
1532
  },
956
1533
  -> {
957
1534
  location = load_location
958
- LocalVariableOrWriteNode.new(load_location, load_location, load_node, load_required_constant, load_varuint, location)
1535
+ LocalVariableReadNode.new(
1536
+ source, load_required_constant, load_varuint, location)
959
1537
  },
960
1538
  -> {
961
1539
  location = load_location
962
- LocalVariableReadNode.new(load_required_constant, load_varuint, location)
1540
+ LocalVariableTargetNode.new(
1541
+ source, load_required_constant, load_varuint, location)
963
1542
  },
964
1543
  -> {
965
1544
  location = load_location
966
- LocalVariableTargetNode.new(load_required_constant, load_varuint, location)
1545
+ LocalVariableWriteNode.new(
1546
+ source, load_required_constant, load_varuint, load_location, load_node, load_location, location)
967
1547
  },
968
1548
  -> {
969
1549
  location = load_location
970
- LocalVariableWriteNode.new(load_required_constant, load_varuint, load_location, load_node, load_location, location)
1550
+ MatchLastLineNode.new(
1551
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
971
1552
  },
972
1553
  -> {
973
1554
  location = load_location
974
- MatchLastLineNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1555
+ MatchPredicateNode.new(
1556
+ source, load_node, load_node, load_location, location)
975
1557
  },
976
1558
  -> {
977
1559
  location = load_location
978
- MatchPredicateNode.new(load_node, load_node, load_location, location)
1560
+ MatchRequiredNode.new(
1561
+ source, load_node, load_node, load_location, location)
979
1562
  },
980
1563
  -> {
981
1564
  location = load_location
982
- MatchRequiredNode.new(load_node, load_node, load_location, location)
1565
+ MatchWriteNode.new(
1566
+ source, load_node, Array.new(load_varuint) { load_node }, location)
983
1567
  },
984
1568
  -> {
985
1569
  location = load_location
986
- MatchWriteNode.new(load_node, Array.new(load_varuint) { load_node }, location)
1570
+ MissingNode.new(
1571
+ source, location)
987
1572
  },
988
1573
  -> {
989
1574
  location = load_location
990
- MissingNode.new(location)
1575
+ ModuleNode.new(
1576
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
991
1577
  },
992
1578
  -> {
993
1579
  location = load_location
994
- ModuleNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
1580
+ MultiTargetNode.new(
1581
+ source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
995
1582
  },
996
1583
  -> {
997
1584
  location = load_location
998
- MultiTargetNode.new(Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
1585
+ MultiWriteNode.new(
1586
+ 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)
999
1587
  },
1000
1588
  -> {
1001
1589
  location = load_location
1002
- 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)
1590
+ NextNode.new(
1591
+ source, load_optional_node, load_location, location)
1003
1592
  },
1004
1593
  -> {
1005
1594
  location = load_location
1006
- NextNode.new(load_optional_node, load_location, location)
1595
+ NilNode.new(
1596
+ source, location)
1007
1597
  },
1008
1598
  -> {
1009
1599
  location = load_location
1010
- NilNode.new(location)
1600
+ NoKeywordsParameterNode.new(
1601
+ source, load_location, load_location, location)
1011
1602
  },
1012
1603
  -> {
1013
1604
  location = load_location
1014
- NoKeywordsParameterNode.new(load_location, load_location, location)
1605
+ NumberedParametersNode.new(
1606
+ source, io.getbyte, location)
1015
1607
  },
1016
1608
  -> {
1017
1609
  location = load_location
1018
- NumberedParametersNode.new(io.getbyte, location)
1610
+ NumberedReferenceReadNode.new(
1611
+ source, load_varuint, location)
1019
1612
  },
1020
1613
  -> {
1021
1614
  location = load_location
1022
- NumberedReferenceReadNode.new(load_varuint, location)
1615
+ OptionalKeywordParameterNode.new(
1616
+ source, load_varuint, load_required_constant, load_location, load_node, location)
1023
1617
  },
1024
1618
  -> {
1025
1619
  location = load_location
1026
- OptionalKeywordParameterNode.new(load_varuint, load_required_constant, load_location, load_node, location)
1620
+ OptionalParameterNode.new(
1621
+ source, load_varuint, load_required_constant, load_location, load_location, load_node, location)
1027
1622
  },
1028
1623
  -> {
1029
1624
  location = load_location
1030
- OptionalParameterNode.new(load_varuint, load_required_constant, load_location, load_location, load_node, location)
1625
+ OrNode.new(
1626
+ source, load_node, load_node, load_location, location)
1031
1627
  },
1032
1628
  -> {
1033
1629
  location = load_location
1034
- OrNode.new(load_node, load_node, load_location, location)
1630
+ ParametersNode.new(
1631
+ 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)
1035
1632
  },
1036
1633
  -> {
1037
1634
  location = load_location
1038
- 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)
1635
+ ParenthesesNode.new(
1636
+ source, load_optional_node, load_location, load_location, location)
1039
1637
  },
1040
1638
  -> {
1041
1639
  location = load_location
1042
- ParenthesesNode.new(load_optional_node, load_location, load_location, location)
1640
+ PinnedExpressionNode.new(
1641
+ source, load_node, load_location, load_location, load_location, location)
1043
1642
  },
1044
1643
  -> {
1045
1644
  location = load_location
1046
- PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
1645
+ PinnedVariableNode.new(
1646
+ source, load_node, load_location, location)
1047
1647
  },
1048
1648
  -> {
1049
1649
  location = load_location
1050
- PinnedVariableNode.new(load_node, load_location, location)
1650
+ PostExecutionNode.new(
1651
+ source, load_optional_node, load_location, load_location, load_location, location)
1051
1652
  },
1052
1653
  -> {
1053
1654
  location = load_location
1054
- PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
1655
+ PreExecutionNode.new(
1656
+ source, load_optional_node, load_location, load_location, load_location, location)
1055
1657
  },
1056
1658
  -> {
1057
1659
  location = load_location
1058
- PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
1660
+ ProgramNode.new(
1661
+ source, Array.new(load_varuint) { load_required_constant }, load_node, location)
1059
1662
  },
1060
1663
  -> {
1061
1664
  location = load_location
1062
- ProgramNode.new(Array.new(load_varuint) { load_required_constant }, load_node, location)
1665
+ RangeNode.new(
1666
+ source, load_varuint, load_optional_node, load_optional_node, load_location, location)
1063
1667
  },
1064
1668
  -> {
1065
1669
  location = load_location
1066
- RangeNode.new(load_varuint, load_optional_node, load_optional_node, load_location, location)
1670
+ RationalNode.new(
1671
+ source, load_node, location)
1067
1672
  },
1068
1673
  -> {
1069
1674
  location = load_location
1070
- RationalNode.new(load_node, location)
1675
+ RedoNode.new(
1676
+ source, location)
1071
1677
  },
1072
1678
  -> {
1073
1679
  location = load_location
1074
- RedoNode.new(location)
1680
+ RegularExpressionNode.new(
1681
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
1075
1682
  },
1076
1683
  -> {
1077
1684
  location = load_location
1078
- RegularExpressionNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1685
+ RequiredKeywordParameterNode.new(
1686
+ source, load_varuint, load_required_constant, load_location, location)
1079
1687
  },
1080
1688
  -> {
1081
1689
  location = load_location
1082
- RequiredKeywordParameterNode.new(load_varuint, load_required_constant, load_location, location)
1690
+ RequiredParameterNode.new(
1691
+ source, load_varuint, load_required_constant, location)
1083
1692
  },
1084
1693
  -> {
1085
1694
  location = load_location
1086
- RequiredParameterNode.new(load_varuint, load_required_constant, location)
1695
+ RescueModifierNode.new(
1696
+ source, load_node, load_location, load_node, location)
1087
1697
  },
1088
1698
  -> {
1089
1699
  location = load_location
1090
- RescueModifierNode.new(load_node, load_location, load_node, location)
1700
+ RescueNode.new(
1701
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1091
1702
  },
1092
1703
  -> {
1093
1704
  location = load_location
1094
- RescueNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1705
+ RestParameterNode.new(
1706
+ source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
1095
1707
  },
1096
1708
  -> {
1097
1709
  location = load_location
1098
- RestParameterNode.new(load_varuint, load_optional_constant, load_optional_location, load_location, location)
1710
+ RetryNode.new(
1711
+ source, location)
1099
1712
  },
1100
1713
  -> {
1101
1714
  location = load_location
1102
- RetryNode.new(location)
1715
+ ReturnNode.new(
1716
+ source, load_location, load_optional_node, location)
1103
1717
  },
1104
1718
  -> {
1105
1719
  location = load_location
1106
- ReturnNode.new(load_location, load_optional_node, location)
1720
+ SelfNode.new(
1721
+ source, location)
1107
1722
  },
1108
1723
  -> {
1109
1724
  location = load_location
1110
- SelfNode.new(location)
1725
+ ShareableConstantNode.new(
1726
+ source, load_varuint, load_node, location)
1111
1727
  },
1112
1728
  -> {
1113
1729
  location = load_location
1114
- SingletonClassNode.new(Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1730
+ SingletonClassNode.new(
1731
+ source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1115
1732
  },
1116
1733
  -> {
1117
1734
  location = load_location
1118
- SourceEncodingNode.new(location)
1735
+ SourceEncodingNode.new(
1736
+ source, location)
1119
1737
  },
1120
1738
  -> {
1121
1739
  location = load_location
1122
- SourceFileNode.new(load_string, location)
1740
+ SourceFileNode.new(
1741
+ source, load_varuint, load_string, location)
1123
1742
  },
1124
1743
  -> {
1125
1744
  location = load_location
1126
- SourceLineNode.new(location)
1745
+ SourceLineNode.new(
1746
+ source, location)
1127
1747
  },
1128
1748
  -> {
1129
1749
  location = load_location
1130
- SplatNode.new(load_location, load_optional_node, location)
1750
+ SplatNode.new(
1751
+ source, load_location, load_optional_node, location)
1131
1752
  },
1132
1753
  -> {
1133
1754
  location = load_location
1134
- StatementsNode.new(Array.new(load_varuint) { load_node }, location)
1755
+ StatementsNode.new(
1756
+ source, Array.new(load_varuint) { load_node }, location)
1135
1757
  },
1136
1758
  -> {
1137
1759
  location = load_location
1138
- StringNode.new(load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1760
+ StringNode.new(
1761
+ source, load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1139
1762
  },
1140
1763
  -> {
1141
1764
  location = load_location
1142
- SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1765
+ SuperNode.new(
1766
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1143
1767
  },
1144
1768
  -> {
1145
1769
  location = load_location
1146
- SymbolNode.new(load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1770
+ SymbolNode.new(
1771
+ source, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1147
1772
  },
1148
1773
  -> {
1149
1774
  location = load_location
1150
- TrueNode.new(location)
1775
+ TrueNode.new(
1776
+ source, location)
1151
1777
  },
1152
1778
  -> {
1153
1779
  location = load_location
1154
- UndefNode.new(Array.new(load_varuint) { load_node }, load_location, location)
1780
+ UndefNode.new(
1781
+ source, Array.new(load_varuint) { load_node }, load_location, location)
1155
1782
  },
1156
1783
  -> {
1157
1784
  location = load_location
1158
- UnlessNode.new(load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1785
+ UnlessNode.new(
1786
+ source, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1159
1787
  },
1160
1788
  -> {
1161
1789
  location = load_location
1162
- UntilNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1790
+ UntilNode.new(
1791
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1163
1792
  },
1164
1793
  -> {
1165
1794
  location = load_location
1166
- WhenNode.new(load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1795
+ WhenNode.new(
1796
+ source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, location)
1167
1797
  },
1168
1798
  -> {
1169
1799
  location = load_location
1170
- WhileNode.new(load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1800
+ WhileNode.new(
1801
+ source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1171
1802
  },
1172
1803
  -> {
1173
1804
  location = load_location
1174
- XStringNode.new(load_varuint, load_location, load_location, load_location, load_string, location)
1805
+ XStringNode.new(
1806
+ source, load_varuint, load_location, load_location, load_location, load_string, location)
1175
1807
  },
1176
1808
  -> {
1177
1809
  location = load_location
1178
- YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
1810
+ YieldNode.new(
1811
+ source, load_location, load_optional_location, load_optional_node, load_optional_location, location)
1179
1812
  },
1180
1813
  ]
1181
1814
  end