jruby-prism-parser 0.24.0-java → 1.4.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/BSDmakefile +58 -0
  3. data/CHANGELOG.md +269 -1
  4. data/CONTRIBUTING.md +0 -4
  5. data/Makefile +25 -18
  6. data/README.md +57 -6
  7. data/config.yml +1724 -140
  8. data/docs/build_system.md +39 -11
  9. data/docs/configuration.md +4 -0
  10. data/docs/cruby_compilation.md +1 -1
  11. data/docs/fuzzing.md +1 -1
  12. data/docs/parser_translation.md +14 -9
  13. data/docs/parsing_rules.md +4 -1
  14. data/docs/releasing.md +8 -10
  15. data/docs/relocation.md +34 -0
  16. data/docs/ripper_translation.md +72 -0
  17. data/docs/ruby_api.md +2 -1
  18. data/docs/serialization.md +29 -5
  19. data/ext/prism/api_node.c +3395 -1999
  20. data/ext/prism/api_pack.c +9 -0
  21. data/ext/prism/extconf.rb +55 -34
  22. data/ext/prism/extension.c +597 -346
  23. data/ext/prism/extension.h +6 -5
  24. data/include/prism/ast.h +2612 -455
  25. data/include/prism/defines.h +160 -2
  26. data/include/prism/diagnostic.h +188 -76
  27. data/include/prism/encoding.h +22 -4
  28. data/include/prism/node.h +89 -17
  29. data/include/prism/options.h +224 -12
  30. data/include/prism/pack.h +11 -0
  31. data/include/prism/parser.h +267 -66
  32. data/include/prism/prettyprint.h +8 -0
  33. data/include/prism/regexp.h +18 -8
  34. data/include/prism/static_literals.h +121 -0
  35. data/include/prism/util/pm_buffer.h +75 -2
  36. data/include/prism/util/pm_char.h +1 -2
  37. data/include/prism/util/pm_constant_pool.h +18 -9
  38. data/include/prism/util/pm_integer.h +126 -0
  39. data/include/prism/util/pm_list.h +1 -1
  40. data/include/prism/util/pm_newline_list.h +19 -0
  41. data/include/prism/util/pm_string.h +48 -8
  42. data/include/prism/version.h +3 -3
  43. data/include/prism.h +99 -5
  44. data/jruby-prism.jar +0 -0
  45. data/lib/prism/compiler.rb +11 -1
  46. data/lib/prism/desugar_compiler.rb +113 -74
  47. data/lib/prism/dispatcher.rb +45 -1
  48. data/lib/prism/dot_visitor.rb +201 -77
  49. data/lib/prism/dsl.rb +673 -461
  50. data/lib/prism/ffi.rb +233 -45
  51. data/lib/prism/inspect_visitor.rb +2389 -0
  52. data/lib/prism/lex_compat.rb +35 -16
  53. data/lib/prism/mutation_compiler.rb +24 -8
  54. data/lib/prism/node.rb +7731 -8460
  55. data/lib/prism/node_ext.rb +328 -32
  56. data/lib/prism/pack.rb +4 -0
  57. data/lib/prism/parse_result/comments.rb +34 -24
  58. data/lib/prism/parse_result/errors.rb +65 -0
  59. data/lib/prism/parse_result/newlines.rb +102 -12
  60. data/lib/prism/parse_result.rb +448 -44
  61. data/lib/prism/pattern.rb +28 -10
  62. data/lib/prism/polyfill/append_as_bytes.rb +15 -0
  63. data/lib/prism/polyfill/byteindex.rb +13 -0
  64. data/lib/prism/polyfill/unpack1.rb +14 -0
  65. data/lib/prism/reflection.rb +413 -0
  66. data/lib/prism/relocation.rb +504 -0
  67. data/lib/prism/serialize.rb +1940 -1198
  68. data/lib/prism/string_query.rb +30 -0
  69. data/lib/prism/translation/parser/builder.rb +61 -0
  70. data/lib/prism/translation/parser/compiler.rb +569 -195
  71. data/lib/prism/translation/parser/lexer.rb +516 -39
  72. data/lib/prism/translation/parser.rb +177 -12
  73. data/lib/prism/translation/parser33.rb +1 -1
  74. data/lib/prism/translation/parser34.rb +1 -1
  75. data/lib/prism/translation/parser35.rb +12 -0
  76. data/lib/prism/translation/ripper/sexp.rb +125 -0
  77. data/lib/prism/translation/ripper/shim.rb +5 -0
  78. data/lib/prism/translation/ripper.rb +3224 -462
  79. data/lib/prism/translation/ruby_parser.rb +194 -69
  80. data/lib/prism/translation.rb +4 -1
  81. data/lib/prism/version.rb +1 -1
  82. data/lib/prism/visitor.rb +13 -0
  83. data/lib/prism.rb +17 -27
  84. data/prism.gemspec +57 -17
  85. data/rbi/prism/compiler.rbi +12 -0
  86. data/rbi/prism/dsl.rbi +524 -0
  87. data/rbi/prism/inspect_visitor.rbi +12 -0
  88. data/rbi/prism/node.rbi +8722 -0
  89. data/rbi/prism/node_ext.rbi +107 -0
  90. data/rbi/prism/parse_result.rbi +404 -0
  91. data/rbi/prism/reflection.rbi +58 -0
  92. data/rbi/prism/string_query.rbi +12 -0
  93. data/rbi/prism/translation/parser.rbi +11 -0
  94. data/rbi/prism/translation/parser33.rbi +6 -0
  95. data/rbi/prism/translation/parser34.rbi +6 -0
  96. data/rbi/prism/translation/parser35.rbi +6 -0
  97. data/rbi/prism/translation/ripper.rbi +15 -0
  98. data/rbi/prism/visitor.rbi +473 -0
  99. data/rbi/prism.rbi +44 -7745
  100. data/sig/prism/compiler.rbs +9 -0
  101. data/sig/prism/dispatcher.rbs +16 -0
  102. data/sig/prism/dot_visitor.rbs +6 -0
  103. data/sig/prism/dsl.rbs +351 -0
  104. data/sig/prism/inspect_visitor.rbs +22 -0
  105. data/sig/prism/lex_compat.rbs +10 -0
  106. data/sig/prism/mutation_compiler.rbs +159 -0
  107. data/sig/prism/node.rbs +3614 -0
  108. data/sig/prism/node_ext.rbs +82 -0
  109. data/sig/prism/pack.rbs +43 -0
  110. data/sig/prism/parse_result.rbs +192 -0
  111. data/sig/prism/pattern.rbs +13 -0
  112. data/sig/prism/reflection.rbs +50 -0
  113. data/sig/prism/relocation.rbs +185 -0
  114. data/sig/prism/serialize.rbs +8 -0
  115. data/sig/prism/string_query.rbs +11 -0
  116. data/sig/prism/visitor.rbs +169 -0
  117. data/sig/prism.rbs +248 -4767
  118. data/src/diagnostic.c +672 -230
  119. data/src/encoding.c +211 -108
  120. data/src/node.c +7541 -1653
  121. data/src/options.c +135 -20
  122. data/src/pack.c +33 -17
  123. data/src/prettyprint.c +1543 -1485
  124. data/src/prism.c +7813 -3050
  125. data/src/regexp.c +225 -73
  126. data/src/serialize.c +101 -77
  127. data/src/static_literals.c +617 -0
  128. data/src/token_type.c +14 -13
  129. data/src/util/pm_buffer.c +187 -20
  130. data/src/util/pm_char.c +5 -5
  131. data/src/util/pm_constant_pool.c +39 -19
  132. data/src/util/pm_integer.c +670 -0
  133. data/src/util/pm_list.c +1 -1
  134. data/src/util/pm_newline_list.c +43 -5
  135. data/src/util/pm_string.c +213 -33
  136. data/src/util/pm_strncasecmp.c +13 -1
  137. data/src/util/pm_strpbrk.c +32 -6
  138. metadata +55 -19
  139. data/docs/ripper.md +0 -36
  140. data/include/prism/util/pm_state_stack.h +0 -42
  141. data/include/prism/util/pm_string_list.h +0 -44
  142. data/lib/prism/debug.rb +0 -206
  143. data/lib/prism/node_inspector.rb +0 -68
  144. data/lib/prism/translation/parser/rubocop.rb +0 -45
  145. data/rbi/prism_static.rbi +0 -207
  146. data/sig/prism_static.rbs +0 -201
  147. data/src/util/pm_state_stack.c +0 -25
  148. data/src/util/pm_string_list.c +0 -28
@@ -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,158 +7,738 @@ 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/unpack1"
20
11
 
21
12
  module Prism
22
13
  # A module responsible for deserializing parse results.
23
14
  module Serialize
24
15
  # The major version of prism that we are expecting to find in the serialized
25
16
  # strings.
26
- MAJOR_VERSION = 0
17
+ MAJOR_VERSION = 1
27
18
 
28
19
  # The minor version of prism that we are expecting to find in the serialized
29
20
  # strings.
30
- MINOR_VERSION = 24
21
+ MINOR_VERSION = 4
31
22
 
32
23
  # The patch version of prism that we are expecting to find in the serialized
33
24
  # strings.
34
25
  PATCH_VERSION = 0
35
26
 
36
- # Deserialize the AST represented by the given string into a parse result.
37
- def self.load(input, serialized)
27
+ # Deserialize the dumped output from a request to parse or parse_file.
28
+ #
29
+ # The formatting of the source of this method is purposeful to illustrate
30
+ # the structure of the serialized data.
31
+ def self.load_parse(input, serialized, freeze)
38
32
  input = input.dup
39
- source = Source.new(input)
33
+ source = Source.for(input)
40
34
  loader = Loader.new(source, serialized)
41
- result = loader.load_result
42
35
 
43
- input.force_encoding(loader.encoding)
36
+ loader.load_header
37
+ encoding = loader.load_encoding
38
+ start_line = loader.load_varsint
39
+ offsets = loader.load_line_offsets(freeze)
40
+
41
+ source.replace_start_line(start_line)
42
+ source.replace_offsets(offsets)
43
+
44
+ comments = loader.load_comments(freeze)
45
+ magic_comments = loader.load_magic_comments(freeze)
46
+ data_loc = loader.load_optional_location_object(freeze)
47
+ errors = loader.load_errors(encoding, freeze)
48
+ warnings = loader.load_warnings(encoding, freeze)
49
+ cpool_base = loader.load_uint32
50
+ cpool_size = loader.load_varuint
51
+
52
+ constant_pool = ConstantPool.new(input, serialized, cpool_base, cpool_size)
53
+
54
+ node = loader.load_node(constant_pool, encoding, freeze)
55
+ loader.load_constant_pool(constant_pool)
56
+ raise unless loader.eof?
57
+
58
+ result = ParseResult.new(node, comments, magic_comments, data_loc, errors, warnings, source)
59
+ result.freeze if freeze
60
+
61
+ input.force_encoding(encoding)
62
+
63
+ # This is an extremely niche use-case where the file was marked as binary
64
+ # but it contained UTF-8-encoded characters. In that case we will actually
65
+ # put it back to UTF-8 to give the location APIs the best chance of being
66
+ # correct.
67
+ if !input.ascii_only? && input.encoding == Encoding::BINARY
68
+ input.force_encoding(Encoding::UTF_8)
69
+ input.force_encoding(Encoding::BINARY) unless input.valid_encoding?
70
+ end
71
+
72
+ if freeze
73
+ input.freeze
74
+ source.deep_freeze
75
+ end
76
+
77
+ result
78
+ end
79
+
80
+ # Deserialize the dumped output from a request to lex or lex_file.
81
+ #
82
+ # The formatting of the source of this method is purposeful to illustrate
83
+ # the structure of the serialized data.
84
+ def self.load_lex(input, serialized, freeze)
85
+ source = Source.for(input)
86
+ loader = Loader.new(source, serialized)
87
+
88
+ tokens = loader.load_tokens
89
+ encoding = loader.load_encoding
90
+ start_line = loader.load_varsint
91
+ offsets = loader.load_line_offsets(freeze)
92
+
93
+ source.replace_start_line(start_line)
94
+ source.replace_offsets(offsets)
95
+
96
+ comments = loader.load_comments(freeze)
97
+ magic_comments = loader.load_magic_comments(freeze)
98
+ data_loc = loader.load_optional_location_object(freeze)
99
+ errors = loader.load_errors(encoding, freeze)
100
+ warnings = loader.load_warnings(encoding, freeze)
101
+ raise unless loader.eof?
102
+
103
+ result = LexResult.new(tokens, comments, magic_comments, data_loc, errors, warnings, source)
104
+
105
+ tokens.each do |token|
106
+ token[0].value.force_encoding(encoding)
107
+
108
+ if freeze
109
+ token[0].deep_freeze
110
+ token.freeze
111
+ end
112
+ end
113
+
114
+ if freeze
115
+ source.deep_freeze
116
+ tokens.freeze
117
+ result.freeze
118
+ end
119
+
44
120
  result
45
121
  end
46
122
 
47
- # Deserialize the tokens represented by the given string into a parse
48
- # result.
49
- def self.load_tokens(source, serialized)
50
- Loader.new(source, serialized).load_tokens_result
123
+ # Deserialize the dumped output from a request to parse_comments or
124
+ # parse_file_comments.
125
+ #
126
+ # The formatting of the source of this method is purposeful to illustrate
127
+ # the structure of the serialized data.
128
+ def self.load_parse_comments(input, serialized, freeze)
129
+ source = Source.for(input)
130
+ loader = Loader.new(source, serialized)
131
+
132
+ loader.load_header
133
+ loader.load_encoding
134
+ start_line = loader.load_varsint
135
+
136
+ source.replace_start_line(start_line)
137
+
138
+ result = loader.load_comments(freeze)
139
+ raise unless loader.eof?
140
+
141
+ source.deep_freeze if freeze
142
+ result
51
143
  end
52
144
 
53
- class Loader # :nodoc:
54
- attr_reader :encoding, :input, :serialized, :io
55
- attr_reader :constant_pool_offset, :constant_pool, :source
56
- attr_reader :start_line
145
+ # Deserialize the dumped output from a request to parse_lex or
146
+ # parse_lex_file.
147
+ #
148
+ # The formatting of the source of this method is purposeful to illustrate
149
+ # the structure of the serialized data.
150
+ def self.load_parse_lex(input, serialized, freeze)
151
+ source = Source.for(input)
152
+ loader = Loader.new(source, serialized)
57
153
 
58
- def initialize(source, serialized)
59
- @encoding = Encoding::UTF_8
154
+ tokens = loader.load_tokens
155
+ loader.load_header
156
+ encoding = loader.load_encoding
157
+ start_line = loader.load_varsint
158
+ offsets = loader.load_line_offsets(freeze)
60
159
 
61
- @input = source.source.dup
160
+ source.replace_start_line(start_line)
161
+ source.replace_offsets(offsets)
162
+
163
+ comments = loader.load_comments(freeze)
164
+ magic_comments = loader.load_magic_comments(freeze)
165
+ data_loc = loader.load_optional_location_object(freeze)
166
+ errors = loader.load_errors(encoding, freeze)
167
+ warnings = loader.load_warnings(encoding, freeze)
168
+ cpool_base = loader.load_uint32
169
+ cpool_size = loader.load_varuint
170
+
171
+ constant_pool = ConstantPool.new(input, serialized, cpool_base, cpool_size)
172
+
173
+ node = loader.load_node(constant_pool, encoding, freeze)
174
+ loader.load_constant_pool(constant_pool)
175
+ raise unless loader.eof?
176
+
177
+ value = [node, tokens]
178
+ result = ParseLexResult.new(value, comments, magic_comments, data_loc, errors, warnings, source)
179
+
180
+ tokens.each do |token|
181
+ token[0].value.force_encoding(encoding)
182
+
183
+ if freeze
184
+ token[0].deep_freeze
185
+ token.freeze
186
+ end
187
+ end
188
+
189
+ if freeze
190
+ source.deep_freeze
191
+ tokens.freeze
192
+ value.freeze
193
+ result.freeze
194
+ end
195
+
196
+ result
197
+ end
198
+
199
+ class ConstantPool # :nodoc:
200
+ attr_reader :size
201
+
202
+ def initialize(input, serialized, base, size)
203
+ @input = input
62
204
  @serialized = serialized
63
- @io = StringIO.new(serialized)
64
- @io.set_encoding(Encoding::BINARY)
205
+ @base = base
206
+ @size = size
207
+ @pool = Array.new(size, nil)
208
+ end
65
209
 
66
- @constant_pool_offset = nil
67
- @constant_pool = nil
210
+ def get(index, encoding)
211
+ @pool[index] ||=
212
+ begin
213
+ offset = @base + index * 8
214
+ start = @serialized.unpack1("L", offset: offset)
215
+ length = @serialized.unpack1("L", offset: offset + 4)
68
216
 
217
+ if start.nobits?(1 << 31)
218
+ @input.byteslice(start, length).force_encoding(encoding).to_sym
219
+ else
220
+ @serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(encoding).to_sym
221
+ end
222
+ end
223
+ end
224
+ end
225
+
226
+ if RUBY_ENGINE == "truffleruby"
227
+ # StringIO is synchronized and that adds a high overhead on TruffleRuby.
228
+ class FastStringIO # :nodoc:
229
+ attr_accessor :pos
230
+
231
+ def initialize(string)
232
+ @string = string
233
+ @pos = 0
234
+ end
235
+
236
+ def getbyte
237
+ byte = @string.getbyte(@pos)
238
+ @pos += 1
239
+ byte
240
+ end
241
+
242
+ def read(n)
243
+ slice = @string.byteslice(@pos, n)
244
+ @pos += n
245
+ slice
246
+ end
247
+
248
+ def eof?
249
+ @pos >= @string.bytesize
250
+ end
251
+ end
252
+ else
253
+ FastStringIO = ::StringIO # :nodoc:
254
+ end
255
+
256
+ class Loader # :nodoc:
257
+ attr_reader :input, :io, :source
258
+
259
+ def initialize(source, serialized)
260
+ @input = source.source.dup
261
+ raise unless serialized.encoding == Encoding::BINARY
262
+ @io = FastStringIO.new(serialized)
69
263
  @source = source
70
- define_load_node_lambdas unless RUBY_ENGINE == "ruby"
264
+ define_load_node_lambdas if RUBY_ENGINE != "ruby"
265
+ end
266
+
267
+ def eof?
268
+ io.getbyte
269
+ io.eof?
270
+ end
271
+
272
+ def load_constant_pool(constant_pool)
273
+ trailer = 0
274
+
275
+ constant_pool.size.times do |index|
276
+ start, length = io.read(8).unpack("L2")
277
+ trailer += length if start.anybits?(1 << 31)
278
+ end
279
+
280
+ io.read(trailer)
71
281
  end
72
282
 
73
283
  def load_header
74
284
  raise "Invalid serialization" if io.read(5) != "PRISM"
75
285
  raise "Invalid serialization" if io.read(3).unpack("C3") != [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION]
76
- only_semantic_fields = io.read(1).unpack1("C")
77
- unless only_semantic_fields == 0
78
- raise "Invalid serialization (location fields must be included but are not)"
79
- end
286
+ raise "Invalid serialization (location fields must be included but are not)" if io.getbyte != 0
80
287
  end
81
288
 
82
289
  def load_encoding
83
- @encoding = Encoding.find(io.read(load_varuint))
84
- @input = input.force_encoding(@encoding).freeze
85
- @encoding
290
+ encoding = Encoding.find(io.read(load_varuint))
291
+ @input = input.force_encoding(encoding).freeze
292
+ encoding
86
293
  end
87
294
 
88
- def load_start_line
89
- source.instance_variable_set :@start_line, load_varsint
295
+ def load_line_offsets(freeze)
296
+ offsets = Array.new(load_varuint) { load_varuint }
297
+ offsets.freeze if freeze
298
+ offsets
90
299
  end
91
300
 
92
- def load_line_offsets
93
- source.instance_variable_set :@offsets, Array.new(load_varuint) { load_varuint }
301
+ def load_comments(freeze)
302
+ comments =
303
+ Array.new(load_varuint) do
304
+ comment =
305
+ case load_varuint
306
+ when 0 then InlineComment.new(load_location_object(freeze))
307
+ when 1 then EmbDocComment.new(load_location_object(freeze))
308
+ end
309
+
310
+ comment.freeze if freeze
311
+ comment
312
+ end
313
+
314
+ comments.freeze if freeze
315
+ comments
94
316
  end
95
317
 
96
- def load_comments
97
- Array.new(load_varuint) do
98
- 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)
318
+ def load_magic_comments(freeze)
319
+ magic_comments =
320
+ Array.new(load_varuint) do
321
+ magic_comment =
322
+ MagicComment.new(
323
+ load_location_object(freeze),
324
+ load_location_object(freeze)
325
+ )
326
+
327
+ magic_comment.freeze if freeze
328
+ magic_comment
102
329
  end
330
+
331
+ magic_comments.freeze if freeze
332
+ magic_comments
333
+ end
334
+
335
+ DIAGNOSTIC_TYPES = [
336
+ :alias_argument,
337
+ :alias_argument_numbered_reference,
338
+ :ampampeq_multi_assign,
339
+ :argument_after_block,
340
+ :argument_after_forwarding_ellipses,
341
+ :argument_bare_hash,
342
+ :argument_block_forwarding,
343
+ :argument_block_multi,
344
+ :argument_conflict_ampersand,
345
+ :argument_conflict_star,
346
+ :argument_conflict_star_star,
347
+ :argument_formal_class,
348
+ :argument_formal_constant,
349
+ :argument_formal_global,
350
+ :argument_formal_ivar,
351
+ :argument_forwarding_unbound,
352
+ :argument_no_forwarding_ampersand,
353
+ :argument_no_forwarding_ellipses,
354
+ :argument_no_forwarding_star,
355
+ :argument_no_forwarding_star_star,
356
+ :argument_splat_after_assoc_splat,
357
+ :argument_splat_after_splat,
358
+ :argument_term_paren,
359
+ :argument_unexpected_block,
360
+ :array_element,
361
+ :array_expression,
362
+ :array_expression_after_star,
363
+ :array_separator,
364
+ :array_term,
365
+ :begin_lonely_else,
366
+ :begin_term,
367
+ :begin_upcase_brace,
368
+ :begin_upcase_term,
369
+ :begin_upcase_toplevel,
370
+ :block_param_local_variable,
371
+ :block_param_pipe_term,
372
+ :block_term_brace,
373
+ :block_term_end,
374
+ :cannot_parse_expression,
375
+ :cannot_parse_string_part,
376
+ :case_expression_after_case,
377
+ :case_expression_after_when,
378
+ :case_match_missing_predicate,
379
+ :case_missing_conditions,
380
+ :case_term,
381
+ :class_in_method,
382
+ :class_name,
383
+ :class_superclass,
384
+ :class_term,
385
+ :class_unexpected_end,
386
+ :class_variable_bare,
387
+ :conditional_elsif_predicate,
388
+ :conditional_if_predicate,
389
+ :conditional_predicate_term,
390
+ :conditional_term,
391
+ :conditional_term_else,
392
+ :conditional_unless_predicate,
393
+ :conditional_until_predicate,
394
+ :conditional_while_predicate,
395
+ :constant_path_colon_colon_constant,
396
+ :def_endless,
397
+ :def_endless_setter,
398
+ :def_name,
399
+ :def_params_term,
400
+ :def_params_term_paren,
401
+ :def_receiver,
402
+ :def_receiver_term,
403
+ :def_term,
404
+ :defined_expression,
405
+ :embdoc_term,
406
+ :embexpr_end,
407
+ :embvar_invalid,
408
+ :end_upcase_brace,
409
+ :end_upcase_term,
410
+ :escape_invalid_control,
411
+ :escape_invalid_control_repeat,
412
+ :escape_invalid_hexadecimal,
413
+ :escape_invalid_meta,
414
+ :escape_invalid_meta_repeat,
415
+ :escape_invalid_unicode,
416
+ :escape_invalid_unicode_cm_flags,
417
+ :escape_invalid_unicode_list,
418
+ :escape_invalid_unicode_literal,
419
+ :escape_invalid_unicode_long,
420
+ :escape_invalid_unicode_short,
421
+ :escape_invalid_unicode_term,
422
+ :expect_argument,
423
+ :expect_eol_after_statement,
424
+ :expect_expression_after_ampampeq,
425
+ :expect_expression_after_comma,
426
+ :expect_expression_after_equal,
427
+ :expect_expression_after_less_less,
428
+ :expect_expression_after_lparen,
429
+ :expect_expression_after_operator,
430
+ :expect_expression_after_pipepipeeq,
431
+ :expect_expression_after_question,
432
+ :expect_expression_after_splat,
433
+ :expect_expression_after_splat_hash,
434
+ :expect_expression_after_star,
435
+ :expect_for_delimiter,
436
+ :expect_ident_req_parameter,
437
+ :expect_in_delimiter,
438
+ :expect_lparen_req_parameter,
439
+ :expect_message,
440
+ :expect_rbracket,
441
+ :expect_rparen,
442
+ :expect_rparen_after_multi,
443
+ :expect_rparen_req_parameter,
444
+ :expect_singleton_class_delimiter,
445
+ :expect_string_content,
446
+ :expect_when_delimiter,
447
+ :expression_bare_hash,
448
+ :expression_not_writable,
449
+ :expression_not_writable_encoding,
450
+ :expression_not_writable_false,
451
+ :expression_not_writable_file,
452
+ :expression_not_writable_line,
453
+ :expression_not_writable_nil,
454
+ :expression_not_writable_numbered,
455
+ :expression_not_writable_self,
456
+ :expression_not_writable_true,
457
+ :float_parse,
458
+ :for_collection,
459
+ :for_in,
460
+ :for_index,
461
+ :for_term,
462
+ :global_variable_bare,
463
+ :hash_expression_after_label,
464
+ :hash_key,
465
+ :hash_rocket,
466
+ :hash_term,
467
+ :hash_value,
468
+ :heredoc_identifier,
469
+ :heredoc_term,
470
+ :incomplete_question_mark,
471
+ :incomplete_variable_class,
472
+ :incomplete_variable_class_3_3,
473
+ :incomplete_variable_instance,
474
+ :incomplete_variable_instance_3_3,
475
+ :instance_variable_bare,
476
+ :invalid_block_exit,
477
+ :invalid_character,
478
+ :invalid_comma,
479
+ :invalid_encoding_magic_comment,
480
+ :invalid_escape_character,
481
+ :invalid_float_exponent,
482
+ :invalid_local_variable_read,
483
+ :invalid_local_variable_write,
484
+ :invalid_multibyte_char,
485
+ :invalid_multibyte_character,
486
+ :invalid_multibyte_escape,
487
+ :invalid_number_binary,
488
+ :invalid_number_decimal,
489
+ :invalid_number_fraction,
490
+ :invalid_number_hexadecimal,
491
+ :invalid_number_octal,
492
+ :invalid_number_underscore_inner,
493
+ :invalid_number_underscore_trailing,
494
+ :invalid_percent,
495
+ :invalid_percent_eof,
496
+ :invalid_printable_character,
497
+ :invalid_retry_after_else,
498
+ :invalid_retry_after_ensure,
499
+ :invalid_retry_without_rescue,
500
+ :invalid_symbol,
501
+ :invalid_variable_global,
502
+ :invalid_variable_global_3_3,
503
+ :invalid_yield,
504
+ :it_not_allowed_numbered,
505
+ :it_not_allowed_ordinary,
506
+ :lambda_open,
507
+ :lambda_term_brace,
508
+ :lambda_term_end,
509
+ :list_i_lower_element,
510
+ :list_i_lower_term,
511
+ :list_i_upper_element,
512
+ :list_i_upper_term,
513
+ :list_w_lower_element,
514
+ :list_w_lower_term,
515
+ :list_w_upper_element,
516
+ :list_w_upper_term,
517
+ :malloc_failed,
518
+ :mixed_encoding,
519
+ :module_in_method,
520
+ :module_name,
521
+ :module_term,
522
+ :multi_assign_multi_splats,
523
+ :multi_assign_unexpected_rest,
524
+ :nesting_too_deep,
525
+ :no_local_variable,
526
+ :non_associative_operator,
527
+ :not_expression,
528
+ :number_literal_underscore,
529
+ :numbered_parameter_inner_block,
530
+ :numbered_parameter_it,
531
+ :numbered_parameter_ordinary,
532
+ :numbered_parameter_outer_block,
533
+ :operator_multi_assign,
534
+ :operator_write_arguments,
535
+ :operator_write_block,
536
+ :parameter_assoc_splat_multi,
537
+ :parameter_block_multi,
538
+ :parameter_circular,
539
+ :parameter_forwarding_after_rest,
540
+ :parameter_method_name,
541
+ :parameter_name_duplicated,
542
+ :parameter_no_default,
543
+ :parameter_no_default_kw,
544
+ :parameter_numbered_reserved,
545
+ :parameter_order,
546
+ :parameter_splat_multi,
547
+ :parameter_star,
548
+ :parameter_unexpected_fwd,
549
+ :parameter_unexpected_no_kw,
550
+ :parameter_wild_loose_comma,
551
+ :pattern_array_multiple_rests,
552
+ :pattern_capture_duplicate,
553
+ :pattern_expression_after_bracket,
554
+ :pattern_expression_after_comma,
555
+ :pattern_expression_after_hrocket,
556
+ :pattern_expression_after_in,
557
+ :pattern_expression_after_key,
558
+ :pattern_expression_after_paren,
559
+ :pattern_expression_after_pin,
560
+ :pattern_expression_after_pipe,
561
+ :pattern_expression_after_range,
562
+ :pattern_expression_after_rest,
563
+ :pattern_find_missing_inner,
564
+ :pattern_hash_implicit,
565
+ :pattern_hash_key,
566
+ :pattern_hash_key_duplicate,
567
+ :pattern_hash_key_interpolated,
568
+ :pattern_hash_key_label,
569
+ :pattern_hash_key_locals,
570
+ :pattern_ident_after_hrocket,
571
+ :pattern_label_after_comma,
572
+ :pattern_rest,
573
+ :pattern_term_brace,
574
+ :pattern_term_bracket,
575
+ :pattern_term_paren,
576
+ :pipepipeeq_multi_assign,
577
+ :regexp_encoding_option_mismatch,
578
+ :regexp_incompat_char_encoding,
579
+ :regexp_invalid_unicode_range,
580
+ :regexp_non_escaped_mbc,
581
+ :regexp_parse_error,
582
+ :regexp_term,
583
+ :regexp_unknown_options,
584
+ :regexp_utf8_char_non_utf8_regexp,
585
+ :rescue_expression,
586
+ :rescue_modifier_value,
587
+ :rescue_term,
588
+ :rescue_variable,
589
+ :return_invalid,
590
+ :script_not_found,
591
+ :singleton_for_literals,
592
+ :statement_alias,
593
+ :statement_postexe_end,
594
+ :statement_preexe_begin,
595
+ :statement_undef,
596
+ :string_concatenation,
597
+ :string_interpolated_term,
598
+ :string_literal_eof,
599
+ :string_literal_term,
600
+ :symbol_invalid,
601
+ :symbol_term_dynamic,
602
+ :symbol_term_interpolated,
603
+ :ternary_colon,
604
+ :ternary_expression_false,
605
+ :ternary_expression_true,
606
+ :unary_disallowed,
607
+ :unary_receiver,
608
+ :undef_argument,
609
+ :unexpected_block_argument,
610
+ :unexpected_index_block,
611
+ :unexpected_index_keywords,
612
+ :unexpected_label,
613
+ :unexpected_multi_write,
614
+ :unexpected_range_operator,
615
+ :unexpected_safe_navigation,
616
+ :unexpected_token_close_context,
617
+ :unexpected_token_ignore,
618
+ :until_term,
619
+ :void_expression,
620
+ :while_term,
621
+ :write_target_in_method,
622
+ :write_target_readonly,
623
+ :write_target_unexpected,
624
+ :xstring_term,
625
+ :ambiguous_binary_operator,
626
+ :ambiguous_first_argument_minus,
627
+ :ambiguous_first_argument_plus,
628
+ :ambiguous_prefix_ampersand,
629
+ :ambiguous_prefix_star,
630
+ :ambiguous_prefix_star_star,
631
+ :ambiguous_slash,
632
+ :comparison_after_comparison,
633
+ :dot_dot_dot_eol,
634
+ :equal_in_conditional,
635
+ :equal_in_conditional_3_3,
636
+ :end_in_method,
637
+ :duplicated_hash_key,
638
+ :duplicated_when_clause,
639
+ :float_out_of_range,
640
+ :ignored_frozen_string_literal,
641
+ :indentation_mismatch,
642
+ :integer_in_flip_flop,
643
+ :invalid_character,
644
+ :invalid_magic_comment_value,
645
+ :invalid_numbered_reference,
646
+ :keyword_eol,
647
+ :literal_in_condition_default,
648
+ :literal_in_condition_verbose,
649
+ :shareable_constant_value_line,
650
+ :shebang_carriage_return,
651
+ :unexpected_carriage_return,
652
+ :unreachable_statement,
653
+ :unused_local_variable,
654
+ :void_statement,
655
+ ].freeze
656
+
657
+ private_constant :DIAGNOSTIC_TYPES
658
+
659
+ def load_error_level
660
+ level = io.getbyte
661
+
662
+ case level
663
+ when 0
664
+ :syntax
665
+ when 1
666
+ :argument
667
+ when 2
668
+ :load
669
+ else
670
+ raise "Unknown level: #{level}"
103
671
  end
104
672
  end
105
673
 
106
- def load_metadata
107
- 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) }
112
- [comments, magic_comments, data_loc, errors, warnings]
674
+ def load_errors(encoding, freeze)
675
+ errors =
676
+ Array.new(load_varuint) do
677
+ error =
678
+ ParseError.new(
679
+ DIAGNOSTIC_TYPES.fetch(load_varuint),
680
+ load_embedded_string(encoding),
681
+ load_location_object(freeze),
682
+ load_error_level
683
+ )
684
+
685
+ error.freeze if freeze
686
+ error
687
+ end
688
+
689
+ errors.freeze if freeze
690
+ errors
113
691
  end
114
692
 
115
- def load_tokens
116
- tokens = []
117
- while type = TOKEN_TYPES.fetch(load_varuint)
118
- start = load_varuint
119
- length = load_varuint
120
- lex_state = load_varuint
121
- location = Location.new(@source, start, length)
122
- tokens << [Prism::Token.new(source, type, location.slice, location), lex_state]
123
- end
693
+ def load_warning_level
694
+ level = io.getbyte
124
695
 
125
- tokens
696
+ case level
697
+ when 0
698
+ :default
699
+ when 1
700
+ :verbose
701
+ else
702
+ raise "Unknown level: #{level}"
703
+ end
126
704
  end
127
705
 
128
- def load_tokens_result
129
- tokens = load_tokens
130
- encoding = load_encoding
131
- load_start_line
132
- load_line_offsets
133
- comments, magic_comments, data_loc, errors, warnings = load_metadata
134
- tokens.each { |token,| token.value.force_encoding(encoding) }
706
+ def load_warnings(encoding, freeze)
707
+ warnings =
708
+ Array.new(load_varuint) do
709
+ warning =
710
+ ParseWarning.new(
711
+ DIAGNOSTIC_TYPES.fetch(load_varuint),
712
+ load_embedded_string(encoding),
713
+ load_location_object(freeze),
714
+ load_warning_level
715
+ )
716
+
717
+ warning.freeze if freeze
718
+ warning
719
+ end
135
720
 
136
- raise "Expected to consume all bytes while deserializing" unless @io.eof?
137
- Prism::ParseResult.new(tokens, comments, magic_comments, data_loc, errors, warnings, @source)
721
+ warnings.freeze if freeze
722
+ warnings
138
723
  end
139
724
 
140
- def load_nodes
141
- load_header
142
- load_encoding
143
- load_start_line
144
- load_line_offsets
725
+ def load_tokens
726
+ tokens = []
145
727
 
146
- comments, magic_comments, data_loc, errors, warnings = load_metadata
728
+ while (type = TOKEN_TYPES.fetch(load_varuint))
729
+ start = load_varuint
730
+ length = load_varuint
731
+ lex_state = load_varuint
147
732
 
148
- @constant_pool_offset = io.read(4).unpack1("L")
149
- @constant_pool = Array.new(load_varuint, nil)
733
+ location = Location.new(@source, start, length)
734
+ token = Token.new(@source, type, location.slice, location)
150
735
 
151
- [load_node, comments, magic_comments, data_loc, errors, warnings]
152
- end
736
+ tokens << [token, lex_state]
737
+ end
153
738
 
154
- def load_result
155
- node, comments, magic_comments, data_loc, errors, warnings = load_nodes
156
- Prism::ParseResult.new(node, comments, magic_comments, data_loc, errors, warnings, @source)
739
+ tokens
157
740
  end
158
741
 
159
- private
160
-
161
742
  # variable-length integer using https://en.wikipedia.org/wiki/LEB128
162
743
  # This is also what protobuf uses: https://protobuf.dev/programming-guides/encoding/#varints
163
744
  def load_varuint
@@ -179,1299 +760,1455 @@ module Prism
179
760
  (n >> 1) ^ (-(n & 1))
180
761
  end
181
762
 
182
- def load_serialized_length
763
+ def load_integer
764
+ negative = io.getbyte != 0
765
+ length = load_varuint
766
+
767
+ value = 0
768
+ length.times { |index| value |= (load_varuint << (index * 32)) }
769
+
770
+ value = -value if negative
771
+ value
772
+ end
773
+
774
+ def load_double
775
+ io.read(8).unpack1("D")
776
+ end
777
+
778
+ def load_uint32
183
779
  io.read(4).unpack1("L")
184
780
  end
185
781
 
186
- def load_optional_node
782
+ def load_optional_node(constant_pool, encoding, freeze)
187
783
  if io.getbyte != 0
188
784
  io.pos -= 1
189
- load_node
785
+ load_node(constant_pool, encoding, freeze)
190
786
  end
191
787
  end
192
788
 
193
- def load_embedded_string
194
- io.read(load_varuint).force_encoding(encoding)
789
+ def load_embedded_string(encoding)
790
+ io.read(load_varuint).force_encoding(encoding).freeze
195
791
  end
196
792
 
197
- def load_string
198
- type = io.getbyte
199
- case type
793
+ def load_string(encoding)
794
+ case (type = io.getbyte)
200
795
  when 1
201
- input.byteslice(load_varuint, load_varuint).force_encoding(encoding)
796
+ input.byteslice(load_varuint, load_varuint).force_encoding(encoding).freeze
202
797
  when 2
203
- load_embedded_string
798
+ load_embedded_string(encoding)
204
799
  else
205
800
  raise "Unknown serialized string type: #{type}"
206
801
  end
207
802
  end
208
803
 
209
- def load_location
210
- Location.new(source, load_varuint, load_varuint)
804
+ def load_location_object(freeze)
805
+ location = Location.new(source, load_varuint, load_varuint)
806
+ location.freeze if freeze
807
+ location
211
808
  end
212
809
 
213
- def load_optional_location
214
- load_location if io.getbyte != 0
810
+ def load_location(freeze)
811
+ return load_location_object(freeze) if freeze
812
+ (load_varuint << 32) | load_varuint
215
813
  end
216
814
 
217
- def load_constant(index)
218
- constant = constant_pool[index]
219
-
220
- unless constant
221
- offset = constant_pool_offset + index * 8
222
- start = serialized.unpack1("L", offset: offset)
223
- length = serialized.unpack1("L", offset: offset + 4)
224
-
225
- constant =
226
- if start.nobits?(1 << 31)
227
- input.byteslice(start, length).force_encoding(@encoding).to_sym
228
- else
229
- serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(@encoding).to_sym
230
- end
231
-
232
- constant_pool[index] = constant
233
- end
234
-
235
- constant
815
+ def load_optional_location(freeze)
816
+ load_location(freeze) if io.getbyte != 0
236
817
  end
237
818
 
238
- def load_required_constant
239
- load_constant(load_varuint - 1)
819
+ def load_optional_location_object(freeze)
820
+ load_location_object(freeze) if io.getbyte != 0
240
821
  end
241
822
 
242
- def load_optional_constant
823
+ def load_constant(constant_pool, encoding)
243
824
  index = load_varuint
244
- load_constant(index - 1) if index != 0
825
+ constant_pool.get(index - 1, encoding)
245
826
  end
246
827
 
247
- def load_error_level
248
- level = io.getbyte
249
-
250
- case level
251
- when 0
252
- :fatal
253
- when 1
254
- :argument
255
- else
256
- raise "Unknown level: #{level}"
257
- end
258
- end
259
-
260
- def load_warning_level
261
- level = io.getbyte
262
-
263
- case level
264
- when 0
265
- :default
266
- when 1
267
- :verbose
268
- else
269
- raise "Unknown level: #{level}"
270
- end
828
+ def load_optional_constant(constant_pool, encoding)
829
+ index = load_varuint
830
+ constant_pool.get(index - 1, encoding) if index != 0
271
831
  end
272
832
 
273
- if RUBY_ENGINE == 'ruby'
274
- def load_node
833
+ if RUBY_ENGINE == "ruby"
834
+ def load_node(constant_pool, encoding, freeze)
275
835
  type = io.getbyte
276
- location = load_location
277
-
278
- case type
836
+ node_id = load_varuint
837
+ location = load_location(freeze)
838
+ value = case type
279
839
  when 1 then
280
- AliasGlobalVariableNode.new(
281
- source, load_node, load_node, load_location, location)
840
+ AliasGlobalVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
282
841
  when 2 then
283
- AliasMethodNode.new(
284
- source, load_node, load_node, load_location, location)
842
+ AliasMethodNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
285
843
  when 3 then
286
- AlternationPatternNode.new(
287
- source, load_node, load_node, load_location, location)
844
+ AlternationPatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
288
845
  when 4 then
289
- AndNode.new(
290
- source, load_node, load_node, load_location, location)
846
+ AndNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
291
847
  when 5 then
292
- ArgumentsNode.new(
293
- source, load_varuint, Array.new(load_varuint) { load_node }, location)
848
+ ArgumentsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
294
849
  when 6 then
295
- ArrayNode.new(
296
- source, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
850
+ ArrayNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
297
851
  when 7 then
298
- ArrayPatternNode.new(
299
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
852
+ ArrayPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
300
853
  when 8 then
301
- AssocNode.new(
302
- source, load_node, load_node, load_optional_location, location)
854
+ AssocNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze))
303
855
  when 9 then
304
- AssocSplatNode.new(
305
- source, load_optional_node, load_location, location)
856
+ AssocSplatNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
306
857
  when 10 then
307
- BackReferenceReadNode.new(
308
- source, load_required_constant, location)
858
+ BackReferenceReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
309
859
  when 11 then
310
- BeginNode.new(
311
- source, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
860
+ BeginNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
312
861
  when 12 then
313
- BlockArgumentNode.new(
314
- source, load_optional_node, load_location, location)
862
+ BlockArgumentNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
315
863
  when 13 then
316
- BlockLocalVariableNode.new(
317
- source, load_varuint, load_required_constant, location)
864
+ BlockLocalVariableNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
318
865
  when 14 then
319
- BlockNode.new(
320
- source, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
866
+ BlockNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
321
867
  when 15 then
322
- BlockParameterNode.new(
323
- source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
868
+ BlockParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
324
869
  when 16 then
325
- BlockParametersNode.new(
326
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
870
+ BlockParametersNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
327
871
  when 17 then
328
- BreakNode.new(
329
- source, load_optional_node, load_location, location)
872
+ BreakNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
330
873
  when 18 then
331
- CallAndWriteNode.new(
332
- source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
874
+ CallAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
333
875
  when 19 then
334
- CallNode.new(
335
- source, load_varuint, load_optional_node, load_optional_location, load_required_constant, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
876
+ CallNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_optional_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
336
877
  when 20 then
337
- CallOperatorWriteNode.new(
338
- source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_required_constant, load_location, load_node, location)
878
+ CallOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
339
879
  when 21 then
340
- CallOrWriteNode.new(
341
- source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
880
+ CallOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
342
881
  when 22 then
343
- CallTargetNode.new(
344
- source, load_varuint, load_node, load_location, load_required_constant, load_location, location)
882
+ CallTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding), load_location(freeze))
345
883
  when 23 then
346
- CapturePatternNode.new(
347
- source, load_node, load_node, load_location, location)
884
+ CapturePatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
348
885
  when 24 then
349
- CaseMatchNode.new(
350
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
886
+ CaseMatchNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
351
887
  when 25 then
352
- CaseNode.new(
353
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
888
+ CaseNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
354
889
  when 26 then
355
- ClassNode.new(
356
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant, location)
890
+ ClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
357
891
  when 27 then
358
- ClassVariableAndWriteNode.new(
359
- source, load_required_constant, load_location, load_location, load_node, location)
892
+ ClassVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
360
893
  when 28 then
361
- ClassVariableOperatorWriteNode.new(
362
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
894
+ ClassVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
363
895
  when 29 then
364
- ClassVariableOrWriteNode.new(
365
- source, load_required_constant, load_location, load_location, load_node, location)
896
+ ClassVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
366
897
  when 30 then
367
- ClassVariableReadNode.new(
368
- source, load_required_constant, location)
898
+ ClassVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
369
899
  when 31 then
370
- ClassVariableTargetNode.new(
371
- source, load_required_constant, location)
900
+ ClassVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
372
901
  when 32 then
373
- ClassVariableWriteNode.new(
374
- source, load_required_constant, load_location, load_node, load_optional_location, location)
902
+ ClassVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
375
903
  when 33 then
376
- ConstantAndWriteNode.new(
377
- source, load_required_constant, load_location, load_location, load_node, location)
904
+ ConstantAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
378
905
  when 34 then
379
- ConstantOperatorWriteNode.new(
380
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
906
+ ConstantOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
381
907
  when 35 then
382
- ConstantOrWriteNode.new(
383
- source, load_required_constant, load_location, load_location, load_node, location)
908
+ ConstantOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
384
909
  when 36 then
385
- ConstantPathAndWriteNode.new(
386
- source, load_node, load_location, load_node, location)
910
+ ConstantPathAndWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
387
911
  when 37 then
388
- ConstantPathNode.new(
389
- source, load_optional_node, load_node, load_location, location)
912
+ ConstantPathNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
390
913
  when 38 then
391
- ConstantPathOperatorWriteNode.new(
392
- source, load_node, load_location, load_node, load_required_constant, location)
914
+ ConstantPathOperatorWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
393
915
  when 39 then
394
- ConstantPathOrWriteNode.new(
395
- source, load_node, load_location, load_node, location)
916
+ ConstantPathOrWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
396
917
  when 40 then
397
- ConstantPathTargetNode.new(
398
- source, load_optional_node, load_node, load_location, location)
918
+ ConstantPathTargetNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
399
919
  when 41 then
400
- ConstantPathWriteNode.new(
401
- source, load_node, load_location, load_node, location)
920
+ ConstantPathWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
402
921
  when 42 then
403
- ConstantReadNode.new(
404
- source, load_required_constant, location)
922
+ ConstantReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
405
923
  when 43 then
406
- ConstantTargetNode.new(
407
- source, load_required_constant, location)
924
+ ConstantTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
408
925
  when 44 then
409
- ConstantWriteNode.new(
410
- source, load_required_constant, load_location, load_node, load_location, location)
926
+ ConstantWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
411
927
  when 45 then
412
- load_serialized_length
413
- DefNode.new(
414
- source, load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
928
+ load_uint32
929
+ DefNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze))
415
930
  when 46 then
416
- DefinedNode.new(
417
- source, load_optional_location, load_node, load_optional_location, load_location, location)
931
+ DefinedNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze))
418
932
  when 47 then
419
- ElseNode.new(
420
- source, load_location, load_optional_node, load_optional_location, location)
933
+ ElseNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
421
934
  when 48 then
422
- EmbeddedStatementsNode.new(
423
- source, load_location, load_optional_node, load_location, location)
935
+ EmbeddedStatementsNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
424
936
  when 49 then
425
- EmbeddedVariableNode.new(
426
- source, load_location, load_node, location)
937
+ EmbeddedVariableNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze))
427
938
  when 50 then
428
- EnsureNode.new(
429
- source, load_location, load_optional_node, load_location, location)
939
+ EnsureNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
430
940
  when 51 then
431
- FalseNode.new(
432
- source, location)
941
+ FalseNode.new(source, node_id, location, load_varuint)
433
942
  when 52 then
434
- FindPatternNode.new(
435
- source, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
943
+ FindPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
436
944
  when 53 then
437
- FlipFlopNode.new(
438
- source, load_varuint, load_optional_node, load_optional_node, load_location, location)
945
+ FlipFlopNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
439
946
  when 54 then
440
- FloatNode.new(
441
- source, location)
947
+ FloatNode.new(source, node_id, location, load_varuint, load_double)
442
948
  when 55 then
443
- ForNode.new(
444
- source, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
949
+ ForNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_optional_location(freeze), load_location(freeze))
445
950
  when 56 then
446
- ForwardingArgumentsNode.new(
447
- source, location)
951
+ ForwardingArgumentsNode.new(source, node_id, location, load_varuint)
448
952
  when 57 then
449
- ForwardingParameterNode.new(
450
- source, location)
953
+ ForwardingParameterNode.new(source, node_id, location, load_varuint)
451
954
  when 58 then
452
- ForwardingSuperNode.new(
453
- source, load_optional_node, location)
955
+ ForwardingSuperNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze))
454
956
  when 59 then
455
- GlobalVariableAndWriteNode.new(
456
- source, load_required_constant, load_location, load_location, load_node, location)
957
+ GlobalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
457
958
  when 60 then
458
- GlobalVariableOperatorWriteNode.new(
459
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
959
+ GlobalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
460
960
  when 61 then
461
- GlobalVariableOrWriteNode.new(
462
- source, load_required_constant, load_location, load_location, load_node, location)
961
+ GlobalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
463
962
  when 62 then
464
- GlobalVariableReadNode.new(
465
- source, load_required_constant, location)
963
+ GlobalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
466
964
  when 63 then
467
- GlobalVariableTargetNode.new(
468
- source, load_required_constant, location)
965
+ GlobalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
469
966
  when 64 then
470
- GlobalVariableWriteNode.new(
471
- source, load_required_constant, load_location, load_node, load_location, location)
967
+ GlobalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
472
968
  when 65 then
473
- HashNode.new(
474
- source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
969
+ HashNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
475
970
  when 66 then
476
- HashPatternNode.new(
477
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
971
+ HashPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
478
972
  when 67 then
479
- IfNode.new(
480
- source, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
973
+ IfNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
481
974
  when 68 then
482
- ImaginaryNode.new(
483
- source, load_node, location)
975
+ ImaginaryNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
484
976
  when 69 then
485
- ImplicitNode.new(
486
- source, load_node, location)
977
+ ImplicitNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
487
978
  when 70 then
488
- ImplicitRestNode.new(
489
- source, location)
979
+ ImplicitRestNode.new(source, node_id, location, load_varuint)
490
980
  when 71 then
491
- InNode.new(
492
- source, load_node, load_optional_node, load_location, load_optional_location, location)
981
+ InNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_location(freeze))
493
982
  when 72 then
494
- IndexAndWriteNode.new(
495
- source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
983
+ IndexAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
496
984
  when 73 then
497
- IndexOperatorWriteNode.new(
498
- source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_required_constant, load_location, load_node, location)
985
+ IndexOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
499
986
  when 74 then
500
- IndexOrWriteNode.new(
501
- source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
987
+ IndexOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
502
988
  when 75 then
503
- IndexTargetNode.new(
504
- source, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
989
+ IndexTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
505
990
  when 76 then
506
- InstanceVariableAndWriteNode.new(
507
- source, load_required_constant, load_location, load_location, load_node, location)
991
+ InstanceVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
508
992
  when 77 then
509
- InstanceVariableOperatorWriteNode.new(
510
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
993
+ InstanceVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
511
994
  when 78 then
512
- InstanceVariableOrWriteNode.new(
513
- source, load_required_constant, load_location, load_location, load_node, location)
995
+ InstanceVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
514
996
  when 79 then
515
- InstanceVariableReadNode.new(
516
- source, load_required_constant, location)
997
+ InstanceVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
517
998
  when 80 then
518
- InstanceVariableTargetNode.new(
519
- source, load_required_constant, location)
999
+ InstanceVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
520
1000
  when 81 then
521
- InstanceVariableWriteNode.new(
522
- source, load_required_constant, load_location, load_node, load_location, location)
1001
+ InstanceVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
523
1002
  when 82 then
524
- IntegerNode.new(
525
- source, load_varuint, location)
1003
+ IntegerNode.new(source, node_id, location, load_varuint, load_integer)
526
1004
  when 83 then
527
- InterpolatedMatchLastLineNode.new(
528
- source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1005
+ InterpolatedMatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
529
1006
  when 84 then
530
- InterpolatedRegularExpressionNode.new(
531
- source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1007
+ InterpolatedRegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
532
1008
  when 85 then
533
- InterpolatedStringNode.new(
534
- source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1009
+ InterpolatedStringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze))
535
1010
  when 86 then
536
- InterpolatedSymbolNode.new(
537
- source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1011
+ InterpolatedSymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze))
538
1012
  when 87 then
539
- InterpolatedXStringNode.new(
540
- source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1013
+ InterpolatedXStringNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
541
1014
  when 88 then
542
- KeywordHashNode.new(
543
- source, load_varuint, Array.new(load_varuint) { load_node }, location)
1015
+ ItLocalVariableReadNode.new(source, node_id, location, load_varuint)
544
1016
  when 89 then
545
- KeywordRestParameterNode.new(
546
- source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
1017
+ ItParametersNode.new(source, node_id, location, load_varuint)
547
1018
  when 90 then
548
- LambdaNode.new(
549
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
1019
+ KeywordHashNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
550
1020
  when 91 then
551
- LocalVariableAndWriteNode.new(
552
- source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
1021
+ KeywordRestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
553
1022
  when 92 then
554
- LocalVariableOperatorWriteNode.new(
555
- source, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
1023
+ LambdaNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
556
1024
  when 93 then
557
- LocalVariableOrWriteNode.new(
558
- source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
1025
+ LocalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
559
1026
  when 94 then
560
- LocalVariableReadNode.new(
561
- source, load_required_constant, load_varuint, location)
1027
+ LocalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_varuint)
562
1028
  when 95 then
563
- LocalVariableTargetNode.new(
564
- source, load_required_constant, load_varuint, location)
1029
+ LocalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
565
1030
  when 96 then
566
- LocalVariableWriteNode.new(
567
- source, load_required_constant, load_varuint, load_location, load_node, load_location, location)
1031
+ LocalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
568
1032
  when 97 then
569
- MatchLastLineNode.new(
570
- source, load_varuint, load_location, load_location, load_location, load_string, location)
1033
+ LocalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
571
1034
  when 98 then
572
- MatchPredicateNode.new(
573
- source, load_node, load_node, load_location, location)
1035
+ LocalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
574
1036
  when 99 then
575
- MatchRequiredNode.new(
576
- source, load_node, load_node, load_location, location)
1037
+ MatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
577
1038
  when 100 then
578
- MatchWriteNode.new(
579
- source, load_node, Array.new(load_varuint) { load_node }, location)
1039
+ MatchPredicateNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
580
1040
  when 101 then
581
- MissingNode.new(
582
- source, location)
1041
+ MatchRequiredNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
583
1042
  when 102 then
584
- ModuleNode.new(
585
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
1043
+ MatchWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
586
1044
  when 103 then
587
- MultiTargetNode.new(
588
- source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
1045
+ MissingNode.new(source, node_id, location, load_varuint)
589
1046
  when 104 then
590
- MultiWriteNode.new(
591
- source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
1047
+ ModuleNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
592
1048
  when 105 then
593
- NextNode.new(
594
- source, load_optional_node, load_location, location)
1049
+ MultiTargetNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
595
1050
  when 106 then
596
- NilNode.new(
597
- source, location)
1051
+ MultiWriteNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
598
1052
  when 107 then
599
- NoKeywordsParameterNode.new(
600
- source, load_location, load_location, location)
1053
+ NextNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
601
1054
  when 108 then
602
- NumberedParametersNode.new(
603
- source, io.getbyte, location)
1055
+ NilNode.new(source, node_id, location, load_varuint)
604
1056
  when 109 then
605
- NumberedReferenceReadNode.new(
606
- source, load_varuint, location)
1057
+ NoKeywordsParameterNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze))
607
1058
  when 110 then
608
- OptionalKeywordParameterNode.new(
609
- source, load_varuint, load_required_constant, load_location, load_node, location)
1059
+ NumberedParametersNode.new(source, node_id, location, load_varuint, io.getbyte)
610
1060
  when 111 then
611
- OptionalParameterNode.new(
612
- source, load_varuint, load_required_constant, load_location, load_location, load_node, location)
1061
+ NumberedReferenceReadNode.new(source, node_id, location, load_varuint, load_varuint)
613
1062
  when 112 then
614
- OrNode.new(
615
- source, load_node, load_node, load_location, location)
1063
+ OptionalKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
616
1064
  when 113 then
617
- ParametersNode.new(
618
- source, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_node, location)
1065
+ OptionalParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
619
1066
  when 114 then
620
- ParenthesesNode.new(
621
- source, load_optional_node, load_location, load_location, location)
1067
+ OrNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
622
1068
  when 115 then
623
- PinnedExpressionNode.new(
624
- source, load_node, load_location, load_location, load_location, location)
1069
+ ParametersNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
625
1070
  when 116 then
626
- PinnedVariableNode.new(
627
- source, load_node, load_location, location)
1071
+ ParenthesesNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
628
1072
  when 117 then
629
- PostExecutionNode.new(
630
- source, load_optional_node, load_location, load_location, load_location, location)
1073
+ PinnedExpressionNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
631
1074
  when 118 then
632
- PreExecutionNode.new(
633
- source, load_optional_node, load_location, load_location, load_location, location)
1075
+ PinnedVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze))
634
1076
  when 119 then
635
- ProgramNode.new(
636
- source, Array.new(load_varuint) { load_required_constant }, load_node, location)
1077
+ PostExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
637
1078
  when 120 then
638
- RangeNode.new(
639
- source, load_varuint, load_optional_node, load_optional_node, load_location, location)
1079
+ PreExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
640
1080
  when 121 then
641
- RationalNode.new(
642
- source, load_node, location)
1081
+ ProgramNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_node(constant_pool, encoding, freeze))
643
1082
  when 122 then
644
- RedoNode.new(
645
- source, location)
1083
+ RangeNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
646
1084
  when 123 then
647
- RegularExpressionNode.new(
648
- source, load_varuint, load_location, load_location, load_location, load_string, location)
1085
+ RationalNode.new(source, node_id, location, load_varuint, load_integer, load_integer)
649
1086
  when 124 then
650
- RequiredKeywordParameterNode.new(
651
- source, load_varuint, load_required_constant, load_location, location)
1087
+ RedoNode.new(source, node_id, location, load_varuint)
652
1088
  when 125 then
653
- RequiredParameterNode.new(
654
- source, load_varuint, load_required_constant, location)
1089
+ RegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
655
1090
  when 126 then
656
- RescueModifierNode.new(
657
- source, load_node, load_location, load_node, location)
1091
+ RequiredKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze))
658
1092
  when 127 then
659
- RescueNode.new(
660
- source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1093
+ RequiredParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
661
1094
  when 128 then
662
- RestParameterNode.new(
663
- source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
1095
+ RescueModifierNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
664
1096
  when 129 then
665
- RetryNode.new(
666
- source, location)
1097
+ RescueNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
667
1098
  when 130 then
668
- ReturnNode.new(
669
- source, load_location, load_optional_node, location)
1099
+ RestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
670
1100
  when 131 then
671
- SelfNode.new(
672
- source, location)
1101
+ RetryNode.new(source, node_id, location, load_varuint)
673
1102
  when 132 then
674
- SingletonClassNode.new(
675
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1103
+ ReturnNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
676
1104
  when 133 then
677
- SourceEncodingNode.new(
678
- source, location)
1105
+ SelfNode.new(source, node_id, location, load_varuint)
679
1106
  when 134 then
680
- SourceFileNode.new(
681
- source, load_string, location)
1107
+ ShareableConstantNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
682
1108
  when 135 then
683
- SourceLineNode.new(
684
- source, location)
1109
+ SingletonClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
685
1110
  when 136 then
686
- SplatNode.new(
687
- source, load_location, load_optional_node, location)
1111
+ SourceEncodingNode.new(source, node_id, location, load_varuint)
688
1112
  when 137 then
689
- StatementsNode.new(
690
- source, Array.new(load_varuint) { load_node }, location)
1113
+ SourceFileNode.new(source, node_id, location, load_varuint, load_string(encoding))
691
1114
  when 138 then
692
- StringNode.new(
693
- source, load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1115
+ SourceLineNode.new(source, node_id, location, load_varuint)
694
1116
  when 139 then
695
- SuperNode.new(
696
- source, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1117
+ SplatNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
697
1118
  when 140 then
698
- SymbolNode.new(
699
- source, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1119
+ StatementsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
700
1120
  when 141 then
701
- TrueNode.new(
702
- source, location)
1121
+ StringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_location(freeze), load_optional_location(freeze), load_string(encoding))
703
1122
  when 142 then
704
- UndefNode.new(
705
- source, Array.new(load_varuint) { load_node }, load_location, location)
1123
+ SuperNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
706
1124
  when 143 then
707
- UnlessNode.new(
708
- source, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1125
+ SymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_string(encoding))
709
1126
  when 144 then
710
- UntilNode.new(
711
- source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1127
+ TrueNode.new(source, node_id, location, load_varuint)
712
1128
  when 145 then
713
- WhenNode.new(
714
- source, load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1129
+ UndefNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
715
1130
  when 146 then
716
- WhileNode.new(
717
- source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1131
+ UnlessNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
718
1132
  when 147 then
719
- XStringNode.new(
720
- source, load_varuint, load_location, load_location, load_location, load_string, location)
1133
+ UntilNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
721
1134
  when 148 then
722
- YieldNode.new(
723
- source, load_location, load_optional_location, load_optional_node, load_optional_location, location)
1135
+ WhenNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
1136
+ when 149 then
1137
+ WhileNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
1138
+ when 150 then
1139
+ XStringNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
1140
+ when 151 then
1141
+ YieldNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
724
1142
  end
1143
+
1144
+ value.freeze if freeze
1145
+ value
725
1146
  end
726
1147
  else
727
- def load_node
728
- type = io.getbyte
729
- @load_node_lambdas[type].call
1148
+ def load_node(constant_pool, encoding, freeze)
1149
+ @load_node_lambdas[io.getbyte].call(constant_pool, encoding, freeze)
730
1150
  end
731
1151
 
732
1152
  def define_load_node_lambdas
733
1153
  @load_node_lambdas = [
734
1154
  nil,
735
- -> {
736
- location = load_location
737
- AliasGlobalVariableNode.new(
738
- source, load_node, load_node, load_location, location)
739
- },
740
- -> {
741
- location = load_location
742
- AliasMethodNode.new(
743
- source, load_node, load_node, load_location, location)
744
- },
745
- -> {
746
- location = load_location
747
- AlternationPatternNode.new(
748
- source, load_node, load_node, load_location, location)
749
- },
750
- -> {
751
- location = load_location
752
- AndNode.new(
753
- source, load_node, load_node, load_location, location)
754
- },
755
- -> {
756
- location = load_location
757
- ArgumentsNode.new(
758
- source, load_varuint, Array.new(load_varuint) { load_node }, location)
759
- },
760
- -> {
761
- location = load_location
762
- ArrayNode.new(
763
- source, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
764
- },
765
- -> {
766
- location = load_location
767
- ArrayPatternNode.new(
768
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
769
- },
770
- -> {
771
- location = load_location
772
- AssocNode.new(
773
- source, load_node, load_node, load_optional_location, location)
774
- },
775
- -> {
776
- location = load_location
777
- AssocSplatNode.new(
778
- source, load_optional_node, load_location, location)
779
- },
780
- -> {
781
- location = load_location
782
- BackReferenceReadNode.new(
783
- source, load_required_constant, location)
784
- },
785
- -> {
786
- location = load_location
787
- BeginNode.new(
788
- source, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
789
- },
790
- -> {
791
- location = load_location
792
- BlockArgumentNode.new(
793
- source, load_optional_node, load_location, location)
794
- },
795
- -> {
796
- location = load_location
797
- BlockLocalVariableNode.new(
798
- source, load_varuint, load_required_constant, location)
799
- },
800
- -> {
801
- location = load_location
802
- BlockNode.new(
803
- source, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
804
- },
805
- -> {
806
- location = load_location
807
- BlockParameterNode.new(
808
- source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
809
- },
810
- -> {
811
- location = load_location
812
- BlockParametersNode.new(
813
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
814
- },
815
- -> {
816
- location = load_location
817
- BreakNode.new(
818
- source, load_optional_node, load_location, location)
819
- },
820
- -> {
821
- location = load_location
822
- CallAndWriteNode.new(
823
- source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
824
- },
825
- -> {
826
- location = load_location
827
- CallNode.new(
828
- source, load_varuint, load_optional_node, load_optional_location, load_required_constant, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
829
- },
830
- -> {
831
- location = load_location
832
- CallOperatorWriteNode.new(
833
- source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_required_constant, load_location, load_node, location)
834
- },
835
- -> {
836
- location = load_location
837
- CallOrWriteNode.new(
838
- source, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node, location)
839
- },
840
- -> {
841
- location = load_location
842
- CallTargetNode.new(
843
- source, load_varuint, load_node, load_location, load_required_constant, load_location, location)
844
- },
845
- -> {
846
- location = load_location
847
- CapturePatternNode.new(
848
- source, load_node, load_node, load_location, location)
849
- },
850
- -> {
851
- location = load_location
852
- CaseMatchNode.new(
853
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
854
- },
855
- -> {
856
- location = load_location
857
- CaseNode.new(
858
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location, location)
859
- },
860
- -> {
861
- location = load_location
862
- ClassNode.new(
863
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant, location)
864
- },
865
- -> {
866
- location = load_location
867
- ClassVariableAndWriteNode.new(
868
- source, load_required_constant, load_location, load_location, load_node, location)
869
- },
870
- -> {
871
- location = load_location
872
- ClassVariableOperatorWriteNode.new(
873
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
874
- },
875
- -> {
876
- location = load_location
877
- ClassVariableOrWriteNode.new(
878
- source, load_required_constant, load_location, load_location, load_node, location)
879
- },
880
- -> {
881
- location = load_location
882
- ClassVariableReadNode.new(
883
- source, load_required_constant, location)
884
- },
885
- -> {
886
- location = load_location
887
- ClassVariableTargetNode.new(
888
- source, load_required_constant, location)
889
- },
890
- -> {
891
- location = load_location
892
- ClassVariableWriteNode.new(
893
- source, load_required_constant, load_location, load_node, load_optional_location, location)
894
- },
895
- -> {
896
- location = load_location
897
- ConstantAndWriteNode.new(
898
- source, load_required_constant, load_location, load_location, load_node, location)
899
- },
900
- -> {
901
- location = load_location
902
- ConstantOperatorWriteNode.new(
903
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
904
- },
905
- -> {
906
- location = load_location
907
- ConstantOrWriteNode.new(
908
- source, load_required_constant, load_location, load_location, load_node, location)
909
- },
910
- -> {
911
- location = load_location
912
- ConstantPathAndWriteNode.new(
913
- source, load_node, load_location, load_node, location)
914
- },
915
- -> {
916
- location = load_location
917
- ConstantPathNode.new(
918
- source, load_optional_node, load_node, load_location, location)
919
- },
920
- -> {
921
- location = load_location
922
- ConstantPathOperatorWriteNode.new(
923
- source, load_node, load_location, load_node, load_required_constant, location)
924
- },
925
- -> {
926
- location = load_location
927
- ConstantPathOrWriteNode.new(
928
- source, load_node, load_location, load_node, location)
929
- },
930
- -> {
931
- location = load_location
932
- ConstantPathTargetNode.new(
933
- source, load_optional_node, load_node, load_location, location)
934
- },
935
- -> {
936
- location = load_location
937
- ConstantPathWriteNode.new(
938
- source, load_node, load_location, load_node, location)
939
- },
940
- -> {
941
- location = load_location
942
- ConstantReadNode.new(
943
- source, load_required_constant, location)
944
- },
945
- -> {
946
- location = load_location
947
- ConstantTargetNode.new(
948
- source, load_required_constant, location)
949
- },
950
- -> {
951
- location = load_location
952
- ConstantWriteNode.new(
953
- source, load_required_constant, load_location, load_node, load_location, location)
954
- },
955
- -> {
956
- location = load_location
957
- load_serialized_length
958
- DefNode.new(
959
- source, load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
960
- },
961
- -> {
962
- location = load_location
963
- DefinedNode.new(
964
- source, load_optional_location, load_node, load_optional_location, load_location, location)
965
- },
966
- -> {
967
- location = load_location
968
- ElseNode.new(
969
- source, load_location, load_optional_node, load_optional_location, location)
970
- },
971
- -> {
972
- location = load_location
973
- EmbeddedStatementsNode.new(
974
- source, load_location, load_optional_node, load_location, location)
975
- },
976
- -> {
977
- location = load_location
978
- EmbeddedVariableNode.new(
979
- source, load_location, load_node, location)
980
- },
981
- -> {
982
- location = load_location
983
- EnsureNode.new(
984
- source, load_location, load_optional_node, load_location, location)
985
- },
986
- -> {
987
- location = load_location
988
- FalseNode.new(
989
- source, location)
990
- },
991
- -> {
992
- location = load_location
993
- FindPatternNode.new(
994
- source, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location, location)
995
- },
996
- -> {
997
- location = load_location
998
- FlipFlopNode.new(
999
- source, load_varuint, load_optional_node, load_optional_node, load_location, location)
1000
- },
1001
- -> {
1002
- location = load_location
1003
- FloatNode.new(
1004
- source, location)
1005
- },
1006
- -> {
1007
- location = load_location
1008
- ForNode.new(
1009
- source, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
1010
- },
1011
- -> {
1012
- location = load_location
1013
- ForwardingArgumentsNode.new(
1014
- source, location)
1015
- },
1016
- -> {
1017
- location = load_location
1018
- ForwardingParameterNode.new(
1019
- source, location)
1020
- },
1021
- -> {
1022
- location = load_location
1023
- ForwardingSuperNode.new(
1024
- source, load_optional_node, location)
1025
- },
1026
- -> {
1027
- location = load_location
1028
- GlobalVariableAndWriteNode.new(
1029
- source, load_required_constant, load_location, load_location, load_node, location)
1030
- },
1031
- -> {
1032
- location = load_location
1033
- GlobalVariableOperatorWriteNode.new(
1034
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1035
- },
1036
- -> {
1037
- location = load_location
1038
- GlobalVariableOrWriteNode.new(
1039
- source, load_required_constant, load_location, load_location, load_node, location)
1040
- },
1041
- -> {
1042
- location = load_location
1043
- GlobalVariableReadNode.new(
1044
- source, load_required_constant, location)
1045
- },
1046
- -> {
1047
- location = load_location
1048
- GlobalVariableTargetNode.new(
1049
- source, load_required_constant, location)
1050
- },
1051
- -> {
1052
- location = load_location
1053
- GlobalVariableWriteNode.new(
1054
- source, load_required_constant, load_location, load_node, load_location, location)
1055
- },
1056
- -> {
1057
- location = load_location
1058
- HashNode.new(
1059
- source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1060
- },
1061
- -> {
1062
- location = load_location
1063
- HashPatternNode.new(
1064
- source, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
1065
- },
1066
- -> {
1067
- location = load_location
1068
- IfNode.new(
1069
- source, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1070
- },
1071
- -> {
1072
- location = load_location
1073
- ImaginaryNode.new(
1074
- source, load_node, location)
1075
- },
1076
- -> {
1077
- location = load_location
1078
- ImplicitNode.new(
1079
- source, load_node, location)
1080
- },
1081
- -> {
1082
- location = load_location
1083
- ImplicitRestNode.new(
1084
- source, location)
1085
- },
1086
- -> {
1087
- location = load_location
1088
- InNode.new(
1089
- source, load_node, load_optional_node, load_location, load_optional_location, location)
1090
- },
1091
- -> {
1092
- location = load_location
1093
- IndexAndWriteNode.new(
1094
- source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
1095
- },
1096
- -> {
1097
- location = load_location
1098
- IndexOperatorWriteNode.new(
1099
- source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_required_constant, load_location, load_node, location)
1100
- },
1101
- -> {
1102
- location = load_location
1103
- IndexOrWriteNode.new(
1104
- source, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node, location)
1105
- },
1106
- -> {
1107
- location = load_location
1108
- IndexTargetNode.new(
1109
- source, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node, location)
1110
- },
1111
- -> {
1112
- location = load_location
1113
- InstanceVariableAndWriteNode.new(
1114
- source, load_required_constant, load_location, load_location, load_node, location)
1115
- },
1116
- -> {
1117
- location = load_location
1118
- InstanceVariableOperatorWriteNode.new(
1119
- source, load_required_constant, load_location, load_location, load_node, load_required_constant, location)
1120
- },
1121
- -> {
1122
- location = load_location
1123
- InstanceVariableOrWriteNode.new(
1124
- source, load_required_constant, load_location, load_location, load_node, location)
1125
- },
1126
- -> {
1127
- location = load_location
1128
- InstanceVariableReadNode.new(
1129
- source, load_required_constant, location)
1130
- },
1131
- -> {
1132
- location = load_location
1133
- InstanceVariableTargetNode.new(
1134
- source, load_required_constant, location)
1135
- },
1136
- -> {
1137
- location = load_location
1138
- InstanceVariableWriteNode.new(
1139
- source, load_required_constant, load_location, load_node, load_location, location)
1140
- },
1141
- -> {
1142
- location = load_location
1143
- IntegerNode.new(
1144
- source, load_varuint, location)
1145
- },
1146
- -> {
1147
- location = load_location
1148
- InterpolatedMatchLastLineNode.new(
1149
- source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1150
- },
1151
- -> {
1152
- location = load_location
1153
- InterpolatedRegularExpressionNode.new(
1154
- source, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1155
- },
1156
- -> {
1157
- location = load_location
1158
- InterpolatedStringNode.new(
1159
- source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1160
- },
1161
- -> {
1162
- location = load_location
1163
- InterpolatedSymbolNode.new(
1164
- source, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location, location)
1165
- },
1166
- -> {
1167
- location = load_location
1168
- InterpolatedXStringNode.new(
1169
- source, load_location, Array.new(load_varuint) { load_node }, load_location, location)
1170
- },
1171
- -> {
1172
- location = load_location
1173
- KeywordHashNode.new(
1174
- source, load_varuint, Array.new(load_varuint) { load_node }, location)
1175
- },
1176
- -> {
1177
- location = load_location
1178
- KeywordRestParameterNode.new(
1179
- source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
1180
- },
1181
- -> {
1182
- location = load_location
1183
- LambdaNode.new(
1184
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node, location)
1185
- },
1186
- -> {
1187
- location = load_location
1188
- LocalVariableAndWriteNode.new(
1189
- source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
1190
- },
1191
- -> {
1192
- location = load_location
1193
- LocalVariableOperatorWriteNode.new(
1194
- source, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint, location)
1195
- },
1196
- -> {
1197
- location = load_location
1198
- LocalVariableOrWriteNode.new(
1199
- source, load_location, load_location, load_node, load_required_constant, load_varuint, location)
1200
- },
1201
- -> {
1202
- location = load_location
1203
- LocalVariableReadNode.new(
1204
- source, load_required_constant, load_varuint, location)
1205
- },
1206
- -> {
1207
- location = load_location
1208
- LocalVariableTargetNode.new(
1209
- source, load_required_constant, load_varuint, location)
1210
- },
1211
- -> {
1212
- location = load_location
1213
- LocalVariableWriteNode.new(
1214
- source, load_required_constant, load_varuint, load_location, load_node, load_location, location)
1215
- },
1216
- -> {
1217
- location = load_location
1218
- MatchLastLineNode.new(
1219
- source, load_varuint, load_location, load_location, load_location, load_string, location)
1220
- },
1221
- -> {
1222
- location = load_location
1223
- MatchPredicateNode.new(
1224
- source, load_node, load_node, load_location, location)
1225
- },
1226
- -> {
1227
- location = load_location
1228
- MatchRequiredNode.new(
1229
- source, load_node, load_node, load_location, location)
1230
- },
1231
- -> {
1232
- location = load_location
1233
- MatchWriteNode.new(
1234
- source, load_node, Array.new(load_varuint) { load_node }, location)
1235
- },
1236
- -> {
1237
- location = load_location
1238
- MissingNode.new(
1239
- source, location)
1240
- },
1241
- -> {
1242
- location = load_location
1243
- ModuleNode.new(
1244
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant, location)
1245
- },
1246
- -> {
1247
- location = load_location
1248
- MultiTargetNode.new(
1249
- source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, location)
1250
- },
1251
- -> {
1252
- location = load_location
1253
- MultiWriteNode.new(
1254
- source, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, load_location, load_node, location)
1255
- },
1256
- -> {
1257
- location = load_location
1258
- NextNode.new(
1259
- source, load_optional_node, load_location, location)
1260
- },
1261
- -> {
1262
- location = load_location
1263
- NilNode.new(
1264
- source, location)
1265
- },
1266
- -> {
1267
- location = load_location
1268
- NoKeywordsParameterNode.new(
1269
- source, load_location, load_location, location)
1270
- },
1271
- -> {
1272
- location = load_location
1273
- NumberedParametersNode.new(
1274
- source, io.getbyte, location)
1275
- },
1276
- -> {
1277
- location = load_location
1278
- NumberedReferenceReadNode.new(
1279
- source, load_varuint, location)
1280
- },
1281
- -> {
1282
- location = load_location
1283
- OptionalKeywordParameterNode.new(
1284
- source, load_varuint, load_required_constant, load_location, load_node, location)
1285
- },
1286
- -> {
1287
- location = load_location
1288
- OptionalParameterNode.new(
1289
- source, load_varuint, load_required_constant, load_location, load_location, load_node, location)
1290
- },
1291
- -> {
1292
- location = load_location
1293
- OrNode.new(
1294
- source, load_node, load_node, load_location, location)
1295
- },
1296
- -> {
1297
- location = load_location
1298
- ParametersNode.new(
1299
- source, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_node, location)
1300
- },
1301
- -> {
1302
- location = load_location
1303
- ParenthesesNode.new(
1304
- source, load_optional_node, load_location, load_location, location)
1305
- },
1306
- -> {
1307
- location = load_location
1308
- PinnedExpressionNode.new(
1309
- source, load_node, load_location, load_location, load_location, location)
1310
- },
1311
- -> {
1312
- location = load_location
1313
- PinnedVariableNode.new(
1314
- source, load_node, load_location, location)
1315
- },
1316
- -> {
1317
- location = load_location
1318
- PostExecutionNode.new(
1319
- source, load_optional_node, load_location, load_location, load_location, location)
1320
- },
1321
- -> {
1322
- location = load_location
1323
- PreExecutionNode.new(
1324
- source, load_optional_node, load_location, load_location, load_location, location)
1325
- },
1326
- -> {
1327
- location = load_location
1328
- ProgramNode.new(
1329
- source, Array.new(load_varuint) { load_required_constant }, load_node, location)
1330
- },
1331
- -> {
1332
- location = load_location
1333
- RangeNode.new(
1334
- source, load_varuint, load_optional_node, load_optional_node, load_location, location)
1335
- },
1336
- -> {
1337
- location = load_location
1338
- RationalNode.new(
1339
- source, load_node, location)
1340
- },
1341
- -> {
1342
- location = load_location
1343
- RedoNode.new(
1344
- source, location)
1345
- },
1346
- -> {
1347
- location = load_location
1348
- RegularExpressionNode.new(
1349
- source, load_varuint, load_location, load_location, load_location, load_string, location)
1350
- },
1351
- -> {
1352
- location = load_location
1353
- RequiredKeywordParameterNode.new(
1354
- source, load_varuint, load_required_constant, load_location, location)
1355
- },
1356
- -> {
1357
- location = load_location
1358
- RequiredParameterNode.new(
1359
- source, load_varuint, load_required_constant, location)
1360
- },
1361
- -> {
1362
- location = load_location
1363
- RescueModifierNode.new(
1364
- source, load_node, load_location, load_node, location)
1365
- },
1366
- -> {
1367
- location = load_location
1368
- RescueNode.new(
1369
- source, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
1370
- },
1371
- -> {
1372
- location = load_location
1373
- RestParameterNode.new(
1374
- source, load_varuint, load_optional_constant, load_optional_location, load_location, location)
1375
- },
1376
- -> {
1377
- location = load_location
1378
- RetryNode.new(
1379
- source, location)
1380
- },
1381
- -> {
1382
- location = load_location
1383
- ReturnNode.new(
1384
- source, load_location, load_optional_node, location)
1385
- },
1386
- -> {
1387
- location = load_location
1388
- SelfNode.new(
1389
- source, location)
1390
- },
1391
- -> {
1392
- location = load_location
1393
- SingletonClassNode.new(
1394
- source, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
1395
- },
1396
- -> {
1397
- location = load_location
1398
- SourceEncodingNode.new(
1399
- source, location)
1400
- },
1401
- -> {
1402
- location = load_location
1403
- SourceFileNode.new(
1404
- source, load_string, location)
1405
- },
1406
- -> {
1407
- location = load_location
1408
- SourceLineNode.new(
1409
- source, location)
1410
- },
1411
- -> {
1412
- location = load_location
1413
- SplatNode.new(
1414
- source, load_location, load_optional_node, location)
1415
- },
1416
- -> {
1417
- location = load_location
1418
- StatementsNode.new(
1419
- source, Array.new(load_varuint) { load_node }, location)
1420
- },
1421
- -> {
1422
- location = load_location
1423
- StringNode.new(
1424
- source, load_varuint, load_optional_location, load_location, load_optional_location, load_string, location)
1425
- },
1426
- -> {
1427
- location = load_location
1428
- SuperNode.new(
1429
- source, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
1430
- },
1431
- -> {
1432
- location = load_location
1433
- SymbolNode.new(
1434
- source, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string, location)
1435
- },
1436
- -> {
1437
- location = load_location
1438
- TrueNode.new(
1439
- source, location)
1440
- },
1441
- -> {
1442
- location = load_location
1443
- UndefNode.new(
1444
- source, Array.new(load_varuint) { load_node }, load_location, location)
1445
- },
1446
- -> {
1447
- location = load_location
1448
- UnlessNode.new(
1449
- source, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location, location)
1450
- },
1451
- -> {
1452
- location = load_location
1453
- UntilNode.new(
1454
- source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1455
- },
1456
- -> {
1457
- location = load_location
1458
- WhenNode.new(
1459
- source, load_location, Array.new(load_varuint) { load_node }, load_optional_node, location)
1460
- },
1461
- -> {
1462
- location = load_location
1463
- WhileNode.new(
1464
- source, load_varuint, load_location, load_optional_location, load_node, load_optional_node, location)
1465
- },
1466
- -> {
1467
- location = load_location
1468
- XStringNode.new(
1469
- source, load_varuint, load_location, load_location, load_location, load_string, location)
1470
- },
1471
- -> {
1472
- location = load_location
1473
- YieldNode.new(
1474
- source, load_location, load_optional_location, load_optional_node, load_optional_location, location)
1155
+ -> (constant_pool, encoding, freeze) {
1156
+ node_id = load_varuint
1157
+ location = load_location(freeze)
1158
+ value = AliasGlobalVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1159
+ value.freeze if freeze
1160
+ value
1161
+ },
1162
+ -> (constant_pool, encoding, freeze) {
1163
+ node_id = load_varuint
1164
+ location = load_location(freeze)
1165
+ value = AliasMethodNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1166
+ value.freeze if freeze
1167
+ value
1168
+ },
1169
+ -> (constant_pool, encoding, freeze) {
1170
+ node_id = load_varuint
1171
+ location = load_location(freeze)
1172
+ value = AlternationPatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1173
+ value.freeze if freeze
1174
+ value
1175
+ },
1176
+ -> (constant_pool, encoding, freeze) {
1177
+ node_id = load_varuint
1178
+ location = load_location(freeze)
1179
+ value = AndNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1180
+ value.freeze if freeze
1181
+ value
1182
+ },
1183
+ -> (constant_pool, encoding, freeze) {
1184
+ node_id = load_varuint
1185
+ location = load_location(freeze)
1186
+ value = ArgumentsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
1187
+ value.freeze if freeze
1188
+ value
1189
+ },
1190
+ -> (constant_pool, encoding, freeze) {
1191
+ node_id = load_varuint
1192
+ location = load_location(freeze)
1193
+ value = ArrayNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1194
+ value.freeze if freeze
1195
+ value
1196
+ },
1197
+ -> (constant_pool, encoding, freeze) {
1198
+ node_id = load_varuint
1199
+ location = load_location(freeze)
1200
+ value = ArrayPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1201
+ value.freeze if freeze
1202
+ value
1203
+ },
1204
+ -> (constant_pool, encoding, freeze) {
1205
+ node_id = load_varuint
1206
+ location = load_location(freeze)
1207
+ value = AssocNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1208
+ value.freeze if freeze
1209
+ value
1210
+ },
1211
+ -> (constant_pool, encoding, freeze) {
1212
+ node_id = load_varuint
1213
+ location = load_location(freeze)
1214
+ value = AssocSplatNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1215
+ value.freeze if freeze
1216
+ value
1217
+ },
1218
+ -> (constant_pool, encoding, freeze) {
1219
+ node_id = load_varuint
1220
+ location = load_location(freeze)
1221
+ value = BackReferenceReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1222
+ value.freeze if freeze
1223
+ value
1224
+ },
1225
+ -> (constant_pool, encoding, freeze) {
1226
+ node_id = load_varuint
1227
+ location = load_location(freeze)
1228
+ value = BeginNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1229
+ value.freeze if freeze
1230
+ value
1231
+ },
1232
+ -> (constant_pool, encoding, freeze) {
1233
+ node_id = load_varuint
1234
+ location = load_location(freeze)
1235
+ value = BlockArgumentNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1236
+ value.freeze if freeze
1237
+ value
1238
+ },
1239
+ -> (constant_pool, encoding, freeze) {
1240
+ node_id = load_varuint
1241
+ location = load_location(freeze)
1242
+ value = BlockLocalVariableNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1243
+ value.freeze if freeze
1244
+ value
1245
+ },
1246
+ -> (constant_pool, encoding, freeze) {
1247
+ node_id = load_varuint
1248
+ location = load_location(freeze)
1249
+ value = BlockNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1250
+ value.freeze if freeze
1251
+ value
1252
+ },
1253
+ -> (constant_pool, encoding, freeze) {
1254
+ node_id = load_varuint
1255
+ location = load_location(freeze)
1256
+ value = BlockParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
1257
+ value.freeze if freeze
1258
+ value
1259
+ },
1260
+ -> (constant_pool, encoding, freeze) {
1261
+ node_id = load_varuint
1262
+ location = load_location(freeze)
1263
+ value = BlockParametersNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1264
+ value.freeze if freeze
1265
+ value
1266
+ },
1267
+ -> (constant_pool, encoding, freeze) {
1268
+ node_id = load_varuint
1269
+ location = load_location(freeze)
1270
+ value = BreakNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1271
+ value.freeze if freeze
1272
+ value
1273
+ },
1274
+ -> (constant_pool, encoding, freeze) {
1275
+ node_id = load_varuint
1276
+ location = load_location(freeze)
1277
+ value = CallAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1278
+ value.freeze if freeze
1279
+ value
1280
+ },
1281
+ -> (constant_pool, encoding, freeze) {
1282
+ node_id = load_varuint
1283
+ location = load_location(freeze)
1284
+ value = CallNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_optional_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
1285
+ value.freeze if freeze
1286
+ value
1287
+ },
1288
+ -> (constant_pool, encoding, freeze) {
1289
+ node_id = load_varuint
1290
+ location = load_location(freeze)
1291
+ value = CallOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1292
+ value.freeze if freeze
1293
+ value
1294
+ },
1295
+ -> (constant_pool, encoding, freeze) {
1296
+ node_id = load_varuint
1297
+ location = load_location(freeze)
1298
+ value = CallOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1299
+ value.freeze if freeze
1300
+ value
1301
+ },
1302
+ -> (constant_pool, encoding, freeze) {
1303
+ node_id = load_varuint
1304
+ location = load_location(freeze)
1305
+ value = CallTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding), load_location(freeze))
1306
+ value.freeze if freeze
1307
+ value
1308
+ },
1309
+ -> (constant_pool, encoding, freeze) {
1310
+ node_id = load_varuint
1311
+ location = load_location(freeze)
1312
+ value = CapturePatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1313
+ value.freeze if freeze
1314
+ value
1315
+ },
1316
+ -> (constant_pool, encoding, freeze) {
1317
+ node_id = load_varuint
1318
+ location = load_location(freeze)
1319
+ value = CaseMatchNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1320
+ value.freeze if freeze
1321
+ value
1322
+ },
1323
+ -> (constant_pool, encoding, freeze) {
1324
+ node_id = load_varuint
1325
+ location = load_location(freeze)
1326
+ value = CaseNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1327
+ value.freeze if freeze
1328
+ value
1329
+ },
1330
+ -> (constant_pool, encoding, freeze) {
1331
+ node_id = load_varuint
1332
+ location = load_location(freeze)
1333
+ value = ClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
1334
+ value.freeze if freeze
1335
+ value
1336
+ },
1337
+ -> (constant_pool, encoding, freeze) {
1338
+ node_id = load_varuint
1339
+ location = load_location(freeze)
1340
+ value = ClassVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1341
+ value.freeze if freeze
1342
+ value
1343
+ },
1344
+ -> (constant_pool, encoding, freeze) {
1345
+ node_id = load_varuint
1346
+ location = load_location(freeze)
1347
+ value = ClassVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1348
+ value.freeze if freeze
1349
+ value
1350
+ },
1351
+ -> (constant_pool, encoding, freeze) {
1352
+ node_id = load_varuint
1353
+ location = load_location(freeze)
1354
+ value = ClassVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1355
+ value.freeze if freeze
1356
+ value
1357
+ },
1358
+ -> (constant_pool, encoding, freeze) {
1359
+ node_id = load_varuint
1360
+ location = load_location(freeze)
1361
+ value = ClassVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1362
+ value.freeze if freeze
1363
+ value
1364
+ },
1365
+ -> (constant_pool, encoding, freeze) {
1366
+ node_id = load_varuint
1367
+ location = load_location(freeze)
1368
+ value = ClassVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1369
+ value.freeze if freeze
1370
+ value
1371
+ },
1372
+ -> (constant_pool, encoding, freeze) {
1373
+ node_id = load_varuint
1374
+ location = load_location(freeze)
1375
+ value = ClassVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1376
+ value.freeze if freeze
1377
+ value
1378
+ },
1379
+ -> (constant_pool, encoding, freeze) {
1380
+ node_id = load_varuint
1381
+ location = load_location(freeze)
1382
+ value = ConstantAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1383
+ value.freeze if freeze
1384
+ value
1385
+ },
1386
+ -> (constant_pool, encoding, freeze) {
1387
+ node_id = load_varuint
1388
+ location = load_location(freeze)
1389
+ value = ConstantOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1390
+ value.freeze if freeze
1391
+ value
1392
+ },
1393
+ -> (constant_pool, encoding, freeze) {
1394
+ node_id = load_varuint
1395
+ location = load_location(freeze)
1396
+ value = ConstantOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1397
+ value.freeze if freeze
1398
+ value
1399
+ },
1400
+ -> (constant_pool, encoding, freeze) {
1401
+ node_id = load_varuint
1402
+ location = load_location(freeze)
1403
+ value = ConstantPathAndWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1404
+ value.freeze if freeze
1405
+ value
1406
+ },
1407
+ -> (constant_pool, encoding, freeze) {
1408
+ node_id = load_varuint
1409
+ location = load_location(freeze)
1410
+ value = ConstantPathNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
1411
+ value.freeze if freeze
1412
+ value
1413
+ },
1414
+ -> (constant_pool, encoding, freeze) {
1415
+ node_id = load_varuint
1416
+ location = load_location(freeze)
1417
+ value = ConstantPathOperatorWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1418
+ value.freeze if freeze
1419
+ value
1420
+ },
1421
+ -> (constant_pool, encoding, freeze) {
1422
+ node_id = load_varuint
1423
+ location = load_location(freeze)
1424
+ value = ConstantPathOrWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1425
+ value.freeze if freeze
1426
+ value
1427
+ },
1428
+ -> (constant_pool, encoding, freeze) {
1429
+ node_id = load_varuint
1430
+ location = load_location(freeze)
1431
+ value = ConstantPathTargetNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
1432
+ value.freeze if freeze
1433
+ value
1434
+ },
1435
+ -> (constant_pool, encoding, freeze) {
1436
+ node_id = load_varuint
1437
+ location = load_location(freeze)
1438
+ value = ConstantPathWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1439
+ value.freeze if freeze
1440
+ value
1441
+ },
1442
+ -> (constant_pool, encoding, freeze) {
1443
+ node_id = load_varuint
1444
+ location = load_location(freeze)
1445
+ value = ConstantReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1446
+ value.freeze if freeze
1447
+ value
1448
+ },
1449
+ -> (constant_pool, encoding, freeze) {
1450
+ node_id = load_varuint
1451
+ location = load_location(freeze)
1452
+ value = ConstantTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1453
+ value.freeze if freeze
1454
+ value
1455
+ },
1456
+ -> (constant_pool, encoding, freeze) {
1457
+ node_id = load_varuint
1458
+ location = load_location(freeze)
1459
+ value = ConstantWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1460
+ value.freeze if freeze
1461
+ value
1462
+ },
1463
+ -> (constant_pool, encoding, freeze) {
1464
+ node_id = load_varuint
1465
+ location = load_location(freeze)
1466
+ load_uint32
1467
+ value = DefNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze))
1468
+ value.freeze if freeze
1469
+ value
1470
+ },
1471
+ -> (constant_pool, encoding, freeze) {
1472
+ node_id = load_varuint
1473
+ location = load_location(freeze)
1474
+ value = DefinedNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze))
1475
+ value.freeze if freeze
1476
+ value
1477
+ },
1478
+ -> (constant_pool, encoding, freeze) {
1479
+ node_id = load_varuint
1480
+ location = load_location(freeze)
1481
+ value = ElseNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1482
+ value.freeze if freeze
1483
+ value
1484
+ },
1485
+ -> (constant_pool, encoding, freeze) {
1486
+ node_id = load_varuint
1487
+ location = load_location(freeze)
1488
+ value = EmbeddedStatementsNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1489
+ value.freeze if freeze
1490
+ value
1491
+ },
1492
+ -> (constant_pool, encoding, freeze) {
1493
+ node_id = load_varuint
1494
+ location = load_location(freeze)
1495
+ value = EmbeddedVariableNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze))
1496
+ value.freeze if freeze
1497
+ value
1498
+ },
1499
+ -> (constant_pool, encoding, freeze) {
1500
+ node_id = load_varuint
1501
+ location = load_location(freeze)
1502
+ value = EnsureNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1503
+ value.freeze if freeze
1504
+ value
1505
+ },
1506
+ -> (constant_pool, encoding, freeze) {
1507
+ node_id = load_varuint
1508
+ location = load_location(freeze)
1509
+ value = FalseNode.new(source, node_id, location, load_varuint)
1510
+ value.freeze if freeze
1511
+ value
1512
+ },
1513
+ -> (constant_pool, encoding, freeze) {
1514
+ node_id = load_varuint
1515
+ location = load_location(freeze)
1516
+ value = FindPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
1517
+ value.freeze if freeze
1518
+ value
1519
+ },
1520
+ -> (constant_pool, encoding, freeze) {
1521
+ node_id = load_varuint
1522
+ location = load_location(freeze)
1523
+ value = FlipFlopNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1524
+ value.freeze if freeze
1525
+ value
1526
+ },
1527
+ -> (constant_pool, encoding, freeze) {
1528
+ node_id = load_varuint
1529
+ location = load_location(freeze)
1530
+ value = FloatNode.new(source, node_id, location, load_varuint, load_double)
1531
+ value.freeze if freeze
1532
+ value
1533
+ },
1534
+ -> (constant_pool, encoding, freeze) {
1535
+ node_id = load_varuint
1536
+ location = load_location(freeze)
1537
+ value = ForNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_optional_location(freeze), load_location(freeze))
1538
+ value.freeze if freeze
1539
+ value
1540
+ },
1541
+ -> (constant_pool, encoding, freeze) {
1542
+ node_id = load_varuint
1543
+ location = load_location(freeze)
1544
+ value = ForwardingArgumentsNode.new(source, node_id, location, load_varuint)
1545
+ value.freeze if freeze
1546
+ value
1547
+ },
1548
+ -> (constant_pool, encoding, freeze) {
1549
+ node_id = load_varuint
1550
+ location = load_location(freeze)
1551
+ value = ForwardingParameterNode.new(source, node_id, location, load_varuint)
1552
+ value.freeze if freeze
1553
+ value
1554
+ },
1555
+ -> (constant_pool, encoding, freeze) {
1556
+ node_id = load_varuint
1557
+ location = load_location(freeze)
1558
+ value = ForwardingSuperNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze))
1559
+ value.freeze if freeze
1560
+ value
1561
+ },
1562
+ -> (constant_pool, encoding, freeze) {
1563
+ node_id = load_varuint
1564
+ location = load_location(freeze)
1565
+ value = GlobalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1566
+ value.freeze if freeze
1567
+ value
1568
+ },
1569
+ -> (constant_pool, encoding, freeze) {
1570
+ node_id = load_varuint
1571
+ location = load_location(freeze)
1572
+ value = GlobalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1573
+ value.freeze if freeze
1574
+ value
1575
+ },
1576
+ -> (constant_pool, encoding, freeze) {
1577
+ node_id = load_varuint
1578
+ location = load_location(freeze)
1579
+ value = GlobalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1580
+ value.freeze if freeze
1581
+ value
1582
+ },
1583
+ -> (constant_pool, encoding, freeze) {
1584
+ node_id = load_varuint
1585
+ location = load_location(freeze)
1586
+ value = GlobalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1587
+ value.freeze if freeze
1588
+ value
1589
+ },
1590
+ -> (constant_pool, encoding, freeze) {
1591
+ node_id = load_varuint
1592
+ location = load_location(freeze)
1593
+ value = GlobalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1594
+ value.freeze if freeze
1595
+ value
1596
+ },
1597
+ -> (constant_pool, encoding, freeze) {
1598
+ node_id = load_varuint
1599
+ location = load_location(freeze)
1600
+ value = GlobalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1601
+ value.freeze if freeze
1602
+ value
1603
+ },
1604
+ -> (constant_pool, encoding, freeze) {
1605
+ node_id = load_varuint
1606
+ location = load_location(freeze)
1607
+ value = HashNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1608
+ value.freeze if freeze
1609
+ value
1610
+ },
1611
+ -> (constant_pool, encoding, freeze) {
1612
+ node_id = load_varuint
1613
+ location = load_location(freeze)
1614
+ value = HashPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
1615
+ value.freeze if freeze
1616
+ value
1617
+ },
1618
+ -> (constant_pool, encoding, freeze) {
1619
+ node_id = load_varuint
1620
+ location = load_location(freeze)
1621
+ value = IfNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1622
+ value.freeze if freeze
1623
+ value
1624
+ },
1625
+ -> (constant_pool, encoding, freeze) {
1626
+ node_id = load_varuint
1627
+ location = load_location(freeze)
1628
+ value = ImaginaryNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
1629
+ value.freeze if freeze
1630
+ value
1631
+ },
1632
+ -> (constant_pool, encoding, freeze) {
1633
+ node_id = load_varuint
1634
+ location = load_location(freeze)
1635
+ value = ImplicitNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
1636
+ value.freeze if freeze
1637
+ value
1638
+ },
1639
+ -> (constant_pool, encoding, freeze) {
1640
+ node_id = load_varuint
1641
+ location = load_location(freeze)
1642
+ value = ImplicitRestNode.new(source, node_id, location, load_varuint)
1643
+ value.freeze if freeze
1644
+ value
1645
+ },
1646
+ -> (constant_pool, encoding, freeze) {
1647
+ node_id = load_varuint
1648
+ location = load_location(freeze)
1649
+ value = InNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_location(freeze))
1650
+ value.freeze if freeze
1651
+ value
1652
+ },
1653
+ -> (constant_pool, encoding, freeze) {
1654
+ node_id = load_varuint
1655
+ location = load_location(freeze)
1656
+ value = IndexAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1657
+ value.freeze if freeze
1658
+ value
1659
+ },
1660
+ -> (constant_pool, encoding, freeze) {
1661
+ node_id = load_varuint
1662
+ location = load_location(freeze)
1663
+ value = IndexOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1664
+ value.freeze if freeze
1665
+ value
1666
+ },
1667
+ -> (constant_pool, encoding, freeze) {
1668
+ node_id = load_varuint
1669
+ location = load_location(freeze)
1670
+ value = IndexOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1671
+ value.freeze if freeze
1672
+ value
1673
+ },
1674
+ -> (constant_pool, encoding, freeze) {
1675
+ node_id = load_varuint
1676
+ location = load_location(freeze)
1677
+ value = IndexTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
1678
+ value.freeze if freeze
1679
+ value
1680
+ },
1681
+ -> (constant_pool, encoding, freeze) {
1682
+ node_id = load_varuint
1683
+ location = load_location(freeze)
1684
+ value = InstanceVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1685
+ value.freeze if freeze
1686
+ value
1687
+ },
1688
+ -> (constant_pool, encoding, freeze) {
1689
+ node_id = load_varuint
1690
+ location = load_location(freeze)
1691
+ value = InstanceVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1692
+ value.freeze if freeze
1693
+ value
1694
+ },
1695
+ -> (constant_pool, encoding, freeze) {
1696
+ node_id = load_varuint
1697
+ location = load_location(freeze)
1698
+ value = InstanceVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1699
+ value.freeze if freeze
1700
+ value
1701
+ },
1702
+ -> (constant_pool, encoding, freeze) {
1703
+ node_id = load_varuint
1704
+ location = load_location(freeze)
1705
+ value = InstanceVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1706
+ value.freeze if freeze
1707
+ value
1708
+ },
1709
+ -> (constant_pool, encoding, freeze) {
1710
+ node_id = load_varuint
1711
+ location = load_location(freeze)
1712
+ value = InstanceVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1713
+ value.freeze if freeze
1714
+ value
1715
+ },
1716
+ -> (constant_pool, encoding, freeze) {
1717
+ node_id = load_varuint
1718
+ location = load_location(freeze)
1719
+ value = InstanceVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1720
+ value.freeze if freeze
1721
+ value
1722
+ },
1723
+ -> (constant_pool, encoding, freeze) {
1724
+ node_id = load_varuint
1725
+ location = load_location(freeze)
1726
+ value = IntegerNode.new(source, node_id, location, load_varuint, load_integer)
1727
+ value.freeze if freeze
1728
+ value
1729
+ },
1730
+ -> (constant_pool, encoding, freeze) {
1731
+ node_id = load_varuint
1732
+ location = load_location(freeze)
1733
+ value = InterpolatedMatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1734
+ value.freeze if freeze
1735
+ value
1736
+ },
1737
+ -> (constant_pool, encoding, freeze) {
1738
+ node_id = load_varuint
1739
+ location = load_location(freeze)
1740
+ value = InterpolatedRegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1741
+ value.freeze if freeze
1742
+ value
1743
+ },
1744
+ -> (constant_pool, encoding, freeze) {
1745
+ node_id = load_varuint
1746
+ location = load_location(freeze)
1747
+ value = InterpolatedStringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze))
1748
+ value.freeze if freeze
1749
+ value
1750
+ },
1751
+ -> (constant_pool, encoding, freeze) {
1752
+ node_id = load_varuint
1753
+ location = load_location(freeze)
1754
+ value = InterpolatedSymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze))
1755
+ value.freeze if freeze
1756
+ value
1757
+ },
1758
+ -> (constant_pool, encoding, freeze) {
1759
+ node_id = load_varuint
1760
+ location = load_location(freeze)
1761
+ value = InterpolatedXStringNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1762
+ value.freeze if freeze
1763
+ value
1764
+ },
1765
+ -> (constant_pool, encoding, freeze) {
1766
+ node_id = load_varuint
1767
+ location = load_location(freeze)
1768
+ value = ItLocalVariableReadNode.new(source, node_id, location, load_varuint)
1769
+ value.freeze if freeze
1770
+ value
1771
+ },
1772
+ -> (constant_pool, encoding, freeze) {
1773
+ node_id = load_varuint
1774
+ location = load_location(freeze)
1775
+ value = ItParametersNode.new(source, node_id, location, load_varuint)
1776
+ value.freeze if freeze
1777
+ value
1778
+ },
1779
+ -> (constant_pool, encoding, freeze) {
1780
+ node_id = load_varuint
1781
+ location = load_location(freeze)
1782
+ value = KeywordHashNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
1783
+ value.freeze if freeze
1784
+ value
1785
+ },
1786
+ -> (constant_pool, encoding, freeze) {
1787
+ node_id = load_varuint
1788
+ location = load_location(freeze)
1789
+ value = KeywordRestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
1790
+ value.freeze if freeze
1791
+ value
1792
+ },
1793
+ -> (constant_pool, encoding, freeze) {
1794
+ node_id = load_varuint
1795
+ location = load_location(freeze)
1796
+ value = LambdaNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
1797
+ value.freeze if freeze
1798
+ value
1799
+ },
1800
+ -> (constant_pool, encoding, freeze) {
1801
+ node_id = load_varuint
1802
+ location = load_location(freeze)
1803
+ value = LocalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
1804
+ value.freeze if freeze
1805
+ value
1806
+ },
1807
+ -> (constant_pool, encoding, freeze) {
1808
+ node_id = load_varuint
1809
+ location = load_location(freeze)
1810
+ value = LocalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_varuint)
1811
+ value.freeze if freeze
1812
+ value
1813
+ },
1814
+ -> (constant_pool, encoding, freeze) {
1815
+ node_id = load_varuint
1816
+ location = load_location(freeze)
1817
+ value = LocalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
1818
+ value.freeze if freeze
1819
+ value
1820
+ },
1821
+ -> (constant_pool, encoding, freeze) {
1822
+ node_id = load_varuint
1823
+ location = load_location(freeze)
1824
+ value = LocalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
1825
+ value.freeze if freeze
1826
+ value
1827
+ },
1828
+ -> (constant_pool, encoding, freeze) {
1829
+ node_id = load_varuint
1830
+ location = load_location(freeze)
1831
+ value = LocalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
1832
+ value.freeze if freeze
1833
+ value
1834
+ },
1835
+ -> (constant_pool, encoding, freeze) {
1836
+ node_id = load_varuint
1837
+ location = load_location(freeze)
1838
+ value = LocalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1839
+ value.freeze if freeze
1840
+ value
1841
+ },
1842
+ -> (constant_pool, encoding, freeze) {
1843
+ node_id = load_varuint
1844
+ location = load_location(freeze)
1845
+ value = MatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
1846
+ value.freeze if freeze
1847
+ value
1848
+ },
1849
+ -> (constant_pool, encoding, freeze) {
1850
+ node_id = load_varuint
1851
+ location = load_location(freeze)
1852
+ value = MatchPredicateNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1853
+ value.freeze if freeze
1854
+ value
1855
+ },
1856
+ -> (constant_pool, encoding, freeze) {
1857
+ node_id = load_varuint
1858
+ location = load_location(freeze)
1859
+ value = MatchRequiredNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1860
+ value.freeze if freeze
1861
+ value
1862
+ },
1863
+ -> (constant_pool, encoding, freeze) {
1864
+ node_id = load_varuint
1865
+ location = load_location(freeze)
1866
+ value = MatchWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
1867
+ value.freeze if freeze
1868
+ value
1869
+ },
1870
+ -> (constant_pool, encoding, freeze) {
1871
+ node_id = load_varuint
1872
+ location = load_location(freeze)
1873
+ value = MissingNode.new(source, node_id, location, load_varuint)
1874
+ value.freeze if freeze
1875
+ value
1876
+ },
1877
+ -> (constant_pool, encoding, freeze) {
1878
+ node_id = load_varuint
1879
+ location = load_location(freeze)
1880
+ value = ModuleNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
1881
+ value.freeze if freeze
1882
+ value
1883
+ },
1884
+ -> (constant_pool, encoding, freeze) {
1885
+ node_id = load_varuint
1886
+ location = load_location(freeze)
1887
+ value = MultiTargetNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1888
+ value.freeze if freeze
1889
+ value
1890
+ },
1891
+ -> (constant_pool, encoding, freeze) {
1892
+ node_id = load_varuint
1893
+ location = load_location(freeze)
1894
+ value = MultiWriteNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1895
+ value.freeze if freeze
1896
+ value
1897
+ },
1898
+ -> (constant_pool, encoding, freeze) {
1899
+ node_id = load_varuint
1900
+ location = load_location(freeze)
1901
+ value = NextNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1902
+ value.freeze if freeze
1903
+ value
1904
+ },
1905
+ -> (constant_pool, encoding, freeze) {
1906
+ node_id = load_varuint
1907
+ location = load_location(freeze)
1908
+ value = NilNode.new(source, node_id, location, load_varuint)
1909
+ value.freeze if freeze
1910
+ value
1911
+ },
1912
+ -> (constant_pool, encoding, freeze) {
1913
+ node_id = load_varuint
1914
+ location = load_location(freeze)
1915
+ value = NoKeywordsParameterNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze))
1916
+ value.freeze if freeze
1917
+ value
1918
+ },
1919
+ -> (constant_pool, encoding, freeze) {
1920
+ node_id = load_varuint
1921
+ location = load_location(freeze)
1922
+ value = NumberedParametersNode.new(source, node_id, location, load_varuint, io.getbyte)
1923
+ value.freeze if freeze
1924
+ value
1925
+ },
1926
+ -> (constant_pool, encoding, freeze) {
1927
+ node_id = load_varuint
1928
+ location = load_location(freeze)
1929
+ value = NumberedReferenceReadNode.new(source, node_id, location, load_varuint, load_varuint)
1930
+ value.freeze if freeze
1931
+ value
1932
+ },
1933
+ -> (constant_pool, encoding, freeze) {
1934
+ node_id = load_varuint
1935
+ location = load_location(freeze)
1936
+ value = OptionalKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1937
+ value.freeze if freeze
1938
+ value
1939
+ },
1940
+ -> (constant_pool, encoding, freeze) {
1941
+ node_id = load_varuint
1942
+ location = load_location(freeze)
1943
+ value = OptionalParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1944
+ value.freeze if freeze
1945
+ value
1946
+ },
1947
+ -> (constant_pool, encoding, freeze) {
1948
+ node_id = load_varuint
1949
+ location = load_location(freeze)
1950
+ value = OrNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1951
+ value.freeze if freeze
1952
+ value
1953
+ },
1954
+ -> (constant_pool, encoding, freeze) {
1955
+ node_id = load_varuint
1956
+ location = load_location(freeze)
1957
+ value = ParametersNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
1958
+ value.freeze if freeze
1959
+ value
1960
+ },
1961
+ -> (constant_pool, encoding, freeze) {
1962
+ node_id = load_varuint
1963
+ location = load_location(freeze)
1964
+ value = ParenthesesNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1965
+ value.freeze if freeze
1966
+ value
1967
+ },
1968
+ -> (constant_pool, encoding, freeze) {
1969
+ node_id = load_varuint
1970
+ location = load_location(freeze)
1971
+ value = PinnedExpressionNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
1972
+ value.freeze if freeze
1973
+ value
1974
+ },
1975
+ -> (constant_pool, encoding, freeze) {
1976
+ node_id = load_varuint
1977
+ location = load_location(freeze)
1978
+ value = PinnedVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze))
1979
+ value.freeze if freeze
1980
+ value
1981
+ },
1982
+ -> (constant_pool, encoding, freeze) {
1983
+ node_id = load_varuint
1984
+ location = load_location(freeze)
1985
+ value = PostExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
1986
+ value.freeze if freeze
1987
+ value
1988
+ },
1989
+ -> (constant_pool, encoding, freeze) {
1990
+ node_id = load_varuint
1991
+ location = load_location(freeze)
1992
+ value = PreExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
1993
+ value.freeze if freeze
1994
+ value
1995
+ },
1996
+ -> (constant_pool, encoding, freeze) {
1997
+ node_id = load_varuint
1998
+ location = load_location(freeze)
1999
+ value = ProgramNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_node(constant_pool, encoding, freeze))
2000
+ value.freeze if freeze
2001
+ value
2002
+ },
2003
+ -> (constant_pool, encoding, freeze) {
2004
+ node_id = load_varuint
2005
+ location = load_location(freeze)
2006
+ value = RangeNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
2007
+ value.freeze if freeze
2008
+ value
2009
+ },
2010
+ -> (constant_pool, encoding, freeze) {
2011
+ node_id = load_varuint
2012
+ location = load_location(freeze)
2013
+ value = RationalNode.new(source, node_id, location, load_varuint, load_integer, load_integer)
2014
+ value.freeze if freeze
2015
+ value
2016
+ },
2017
+ -> (constant_pool, encoding, freeze) {
2018
+ node_id = load_varuint
2019
+ location = load_location(freeze)
2020
+ value = RedoNode.new(source, node_id, location, load_varuint)
2021
+ value.freeze if freeze
2022
+ value
2023
+ },
2024
+ -> (constant_pool, encoding, freeze) {
2025
+ node_id = load_varuint
2026
+ location = load_location(freeze)
2027
+ value = RegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
2028
+ value.freeze if freeze
2029
+ value
2030
+ },
2031
+ -> (constant_pool, encoding, freeze) {
2032
+ node_id = load_varuint
2033
+ location = load_location(freeze)
2034
+ value = RequiredKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze))
2035
+ value.freeze if freeze
2036
+ value
2037
+ },
2038
+ -> (constant_pool, encoding, freeze) {
2039
+ node_id = load_varuint
2040
+ location = load_location(freeze)
2041
+ value = RequiredParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
2042
+ value.freeze if freeze
2043
+ value
2044
+ },
2045
+ -> (constant_pool, encoding, freeze) {
2046
+ node_id = load_varuint
2047
+ location = load_location(freeze)
2048
+ value = RescueModifierNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
2049
+ value.freeze if freeze
2050
+ value
2051
+ },
2052
+ -> (constant_pool, encoding, freeze) {
2053
+ node_id = load_varuint
2054
+ location = load_location(freeze)
2055
+ value = RescueNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
2056
+ value.freeze if freeze
2057
+ value
2058
+ },
2059
+ -> (constant_pool, encoding, freeze) {
2060
+ node_id = load_varuint
2061
+ location = load_location(freeze)
2062
+ value = RestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
2063
+ value.freeze if freeze
2064
+ value
2065
+ },
2066
+ -> (constant_pool, encoding, freeze) {
2067
+ node_id = load_varuint
2068
+ location = load_location(freeze)
2069
+ value = RetryNode.new(source, node_id, location, load_varuint)
2070
+ value.freeze if freeze
2071
+ value
2072
+ },
2073
+ -> (constant_pool, encoding, freeze) {
2074
+ node_id = load_varuint
2075
+ location = load_location(freeze)
2076
+ value = ReturnNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2077
+ value.freeze if freeze
2078
+ value
2079
+ },
2080
+ -> (constant_pool, encoding, freeze) {
2081
+ node_id = load_varuint
2082
+ location = load_location(freeze)
2083
+ value = SelfNode.new(source, node_id, location, load_varuint)
2084
+ value.freeze if freeze
2085
+ value
2086
+ },
2087
+ -> (constant_pool, encoding, freeze) {
2088
+ node_id = load_varuint
2089
+ location = load_location(freeze)
2090
+ value = ShareableConstantNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
2091
+ value.freeze if freeze
2092
+ value
2093
+ },
2094
+ -> (constant_pool, encoding, freeze) {
2095
+ node_id = load_varuint
2096
+ location = load_location(freeze)
2097
+ value = SingletonClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
2098
+ value.freeze if freeze
2099
+ value
2100
+ },
2101
+ -> (constant_pool, encoding, freeze) {
2102
+ node_id = load_varuint
2103
+ location = load_location(freeze)
2104
+ value = SourceEncodingNode.new(source, node_id, location, load_varuint)
2105
+ value.freeze if freeze
2106
+ value
2107
+ },
2108
+ -> (constant_pool, encoding, freeze) {
2109
+ node_id = load_varuint
2110
+ location = load_location(freeze)
2111
+ value = SourceFileNode.new(source, node_id, location, load_varuint, load_string(encoding))
2112
+ value.freeze if freeze
2113
+ value
2114
+ },
2115
+ -> (constant_pool, encoding, freeze) {
2116
+ node_id = load_varuint
2117
+ location = load_location(freeze)
2118
+ value = SourceLineNode.new(source, node_id, location, load_varuint)
2119
+ value.freeze if freeze
2120
+ value
2121
+ },
2122
+ -> (constant_pool, encoding, freeze) {
2123
+ node_id = load_varuint
2124
+ location = load_location(freeze)
2125
+ value = SplatNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2126
+ value.freeze if freeze
2127
+ value
2128
+ },
2129
+ -> (constant_pool, encoding, freeze) {
2130
+ node_id = load_varuint
2131
+ location = load_location(freeze)
2132
+ value = StatementsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
2133
+ value.freeze if freeze
2134
+ value
2135
+ },
2136
+ -> (constant_pool, encoding, freeze) {
2137
+ node_id = load_varuint
2138
+ location = load_location(freeze)
2139
+ value = StringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_location(freeze), load_optional_location(freeze), load_string(encoding))
2140
+ value.freeze if freeze
2141
+ value
2142
+ },
2143
+ -> (constant_pool, encoding, freeze) {
2144
+ node_id = load_varuint
2145
+ location = load_location(freeze)
2146
+ value = SuperNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2147
+ value.freeze if freeze
2148
+ value
2149
+ },
2150
+ -> (constant_pool, encoding, freeze) {
2151
+ node_id = load_varuint
2152
+ location = load_location(freeze)
2153
+ value = SymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_string(encoding))
2154
+ value.freeze if freeze
2155
+ value
2156
+ },
2157
+ -> (constant_pool, encoding, freeze) {
2158
+ node_id = load_varuint
2159
+ location = load_location(freeze)
2160
+ value = TrueNode.new(source, node_id, location, load_varuint)
2161
+ value.freeze if freeze
2162
+ value
2163
+ },
2164
+ -> (constant_pool, encoding, freeze) {
2165
+ node_id = load_varuint
2166
+ location = load_location(freeze)
2167
+ value = UndefNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
2168
+ value.freeze if freeze
2169
+ value
2170
+ },
2171
+ -> (constant_pool, encoding, freeze) {
2172
+ node_id = load_varuint
2173
+ location = load_location(freeze)
2174
+ value = UnlessNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
2175
+ value.freeze if freeze
2176
+ value
2177
+ },
2178
+ -> (constant_pool, encoding, freeze) {
2179
+ node_id = load_varuint
2180
+ location = load_location(freeze)
2181
+ value = UntilNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
2182
+ value.freeze if freeze
2183
+ value
2184
+ },
2185
+ -> (constant_pool, encoding, freeze) {
2186
+ node_id = load_varuint
2187
+ location = load_location(freeze)
2188
+ value = WhenNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2189
+ value.freeze if freeze
2190
+ value
2191
+ },
2192
+ -> (constant_pool, encoding, freeze) {
2193
+ node_id = load_varuint
2194
+ location = load_location(freeze)
2195
+ value = WhileNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
2196
+ value.freeze if freeze
2197
+ value
2198
+ },
2199
+ -> (constant_pool, encoding, freeze) {
2200
+ node_id = load_varuint
2201
+ location = load_location(freeze)
2202
+ value = XStringNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
2203
+ value.freeze if freeze
2204
+ value
2205
+ },
2206
+ -> (constant_pool, encoding, freeze) {
2207
+ node_id = load_varuint
2208
+ location = load_location(freeze)
2209
+ value = YieldNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
2210
+ value.freeze if freeze
2211
+ value
1475
2212
  },
1476
2213
  ]
1477
2214
  end
@@ -1646,5 +2383,10 @@ module Prism
1646
2383
  :WORDS_SEP,
1647
2384
  :__END__,
1648
2385
  ]
2386
+
2387
+ private_constant :MAJOR_VERSION, :MINOR_VERSION, :PATCH_VERSION
2388
+ private_constant :ConstantPool, :FastStringIO, :Loader, :TOKEN_TYPES
1649
2389
  end
2390
+
2391
+ private_constant :Serialize
1650
2392
  end