prism 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -1
  3. data/Makefile +2 -1
  4. data/README.md +1 -0
  5. data/config.yml +273 -37
  6. data/docs/parser_translation.md +8 -23
  7. data/docs/releasing.md +1 -1
  8. data/docs/ripper_translation.md +1 -1
  9. data/docs/ruby_api.md +1 -1
  10. data/ext/prism/api_node.c +1816 -1303
  11. data/ext/prism/extension.c +244 -110
  12. data/ext/prism/extension.h +4 -4
  13. data/include/prism/ast.h +291 -49
  14. data/include/prism/defines.h +4 -1
  15. data/include/prism/diagnostic.h +4 -0
  16. data/include/prism/options.h +89 -3
  17. data/include/prism/regexp.h +2 -2
  18. data/include/prism/util/pm_buffer.h +18 -0
  19. data/include/prism/util/pm_integer.h +4 -0
  20. data/include/prism/util/pm_list.h +6 -0
  21. data/include/prism/util/pm_string.h +12 -2
  22. data/include/prism/version.h +2 -2
  23. data/include/prism.h +41 -16
  24. data/lib/prism/compiler.rb +456 -151
  25. data/lib/prism/desugar_compiler.rb +1 -0
  26. data/lib/prism/dispatcher.rb +16 -0
  27. data/lib/prism/dot_visitor.rb +21 -1
  28. data/lib/prism/dsl.rb +13 -2
  29. data/lib/prism/ffi.rb +62 -34
  30. data/lib/prism/inspect_visitor.rb +5 -1
  31. data/lib/prism/lex_compat.rb +1 -0
  32. data/lib/prism/mutation_compiler.rb +3 -0
  33. data/lib/prism/node.rb +554 -345
  34. data/lib/prism/node_ext.rb +4 -1
  35. data/lib/prism/pack.rb +2 -0
  36. data/lib/prism/parse_result/comments.rb +1 -0
  37. data/lib/prism/parse_result/errors.rb +1 -0
  38. data/lib/prism/parse_result/newlines.rb +2 -1
  39. data/lib/prism/parse_result.rb +53 -0
  40. data/lib/prism/pattern.rb +1 -0
  41. data/lib/prism/polyfill/append_as_bytes.rb +15 -0
  42. data/lib/prism/polyfill/scan_byte.rb +14 -0
  43. data/lib/prism/polyfill/warn.rb +42 -0
  44. data/lib/prism/reflection.rb +5 -2
  45. data/lib/prism/relocation.rb +1 -0
  46. data/lib/prism/serialize.rb +1275 -783
  47. data/lib/prism/string_query.rb +1 -0
  48. data/lib/prism/translation/parser/builder.rb +62 -0
  49. data/lib/prism/translation/parser/compiler.rb +230 -152
  50. data/lib/prism/translation/parser/lexer.rb +446 -64
  51. data/lib/prism/translation/parser.rb +64 -4
  52. data/lib/prism/translation/parser33.rb +1 -0
  53. data/lib/prism/translation/parser34.rb +1 -0
  54. data/lib/prism/translation/parser35.rb +13 -0
  55. data/lib/prism/translation/parser_current.rb +24 -0
  56. data/lib/prism/translation/ripper/sexp.rb +1 -0
  57. data/lib/prism/translation/ripper.rb +30 -4
  58. data/lib/prism/translation/ruby_parser.rb +291 -7
  59. data/lib/prism/translation.rb +3 -0
  60. data/lib/prism/visitor.rb +457 -152
  61. data/lib/prism.rb +5 -3
  62. data/prism.gemspec +9 -1
  63. data/rbi/prism/dsl.rbi +9 -6
  64. data/rbi/prism/node.rbi +43 -16
  65. data/rbi/prism/parse_result.rbi +17 -0
  66. data/rbi/prism/translation/parser35.rbi +6 -0
  67. data/rbi/prism.rbi +39 -36
  68. data/sig/prism/dispatcher.rbs +3 -0
  69. data/sig/prism/dsl.rbs +7 -5
  70. data/sig/prism/node.rbs +461 -37
  71. data/sig/prism/node_ext.rbs +84 -17
  72. data/sig/prism/parse_result/comments.rbs +38 -0
  73. data/sig/prism/parse_result.rbs +14 -0
  74. data/sig/prism/reflection.rbs +1 -1
  75. data/sig/prism/serialize.rbs +4 -2
  76. data/sig/prism.rbs +22 -1
  77. data/src/diagnostic.c +9 -3
  78. data/src/node.c +23 -0
  79. data/src/options.c +33 -2
  80. data/src/prettyprint.c +32 -0
  81. data/src/prism.c +620 -242
  82. data/src/serialize.c +8 -0
  83. data/src/token_type.c +36 -34
  84. data/src/util/pm_buffer.c +40 -0
  85. data/src/util/pm_constant_pool.c +6 -2
  86. data/src/util/pm_strncasecmp.c +13 -1
  87. metadata +11 -7
data/lib/prism/visitor.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
+ # :markup: markdown
2
3
 
3
4
  =begin
5
+ --
4
6
  This file is generated by the templates/template.rb script and should not be
5
7
  modified manually. See templates/lib/prism/visitor.rb.erb
6
8
  if you are looking to modify the template
9
+ ++
7
10
  =end
8
11
 
9
12
  module Prism
@@ -42,7 +45,7 @@ module Prism
42
45
  #
43
46
  # class FooCalls < Prism::Visitor
44
47
  # def visit_call_node(node)
45
- # if node.name == "foo"
48
+ # if node.name == :foo
46
49
  # # Do something with the node
47
50
  # end
48
51
  #
@@ -53,456 +56,758 @@ module Prism
53
56
  #
54
57
  class Visitor < BasicVisitor
55
58
  # Visit a AliasGlobalVariableNode node
56
- alias visit_alias_global_variable_node visit_child_nodes
59
+ def visit_alias_global_variable_node(node)
60
+ node.compact_child_nodes.each { |node| node.accept(self) }
61
+ end
57
62
 
58
63
  # Visit a AliasMethodNode node
59
- alias visit_alias_method_node visit_child_nodes
64
+ def visit_alias_method_node(node)
65
+ node.compact_child_nodes.each { |node| node.accept(self) }
66
+ end
60
67
 
61
68
  # Visit a AlternationPatternNode node
62
- alias visit_alternation_pattern_node visit_child_nodes
69
+ def visit_alternation_pattern_node(node)
70
+ node.compact_child_nodes.each { |node| node.accept(self) }
71
+ end
63
72
 
64
73
  # Visit a AndNode node
65
- alias visit_and_node visit_child_nodes
74
+ def visit_and_node(node)
75
+ node.compact_child_nodes.each { |node| node.accept(self) }
76
+ end
66
77
 
67
78
  # Visit a ArgumentsNode node
68
- alias visit_arguments_node visit_child_nodes
79
+ def visit_arguments_node(node)
80
+ node.compact_child_nodes.each { |node| node.accept(self) }
81
+ end
69
82
 
70
83
  # Visit a ArrayNode node
71
- alias visit_array_node visit_child_nodes
84
+ def visit_array_node(node)
85
+ node.compact_child_nodes.each { |node| node.accept(self) }
86
+ end
72
87
 
73
88
  # Visit a ArrayPatternNode node
74
- alias visit_array_pattern_node visit_child_nodes
89
+ def visit_array_pattern_node(node)
90
+ node.compact_child_nodes.each { |node| node.accept(self) }
91
+ end
75
92
 
76
93
  # Visit a AssocNode node
77
- alias visit_assoc_node visit_child_nodes
94
+ def visit_assoc_node(node)
95
+ node.compact_child_nodes.each { |node| node.accept(self) }
96
+ end
78
97
 
79
98
  # Visit a AssocSplatNode node
80
- alias visit_assoc_splat_node visit_child_nodes
99
+ def visit_assoc_splat_node(node)
100
+ node.compact_child_nodes.each { |node| node.accept(self) }
101
+ end
81
102
 
82
103
  # Visit a BackReferenceReadNode node
83
- alias visit_back_reference_read_node visit_child_nodes
104
+ def visit_back_reference_read_node(node)
105
+ node.compact_child_nodes.each { |node| node.accept(self) }
106
+ end
84
107
 
85
108
  # Visit a BeginNode node
86
- alias visit_begin_node visit_child_nodes
109
+ def visit_begin_node(node)
110
+ node.compact_child_nodes.each { |node| node.accept(self) }
111
+ end
87
112
 
88
113
  # Visit a BlockArgumentNode node
89
- alias visit_block_argument_node visit_child_nodes
114
+ def visit_block_argument_node(node)
115
+ node.compact_child_nodes.each { |node| node.accept(self) }
116
+ end
90
117
 
91
118
  # Visit a BlockLocalVariableNode node
92
- alias visit_block_local_variable_node visit_child_nodes
119
+ def visit_block_local_variable_node(node)
120
+ node.compact_child_nodes.each { |node| node.accept(self) }
121
+ end
93
122
 
94
123
  # Visit a BlockNode node
95
- alias visit_block_node visit_child_nodes
124
+ def visit_block_node(node)
125
+ node.compact_child_nodes.each { |node| node.accept(self) }
126
+ end
96
127
 
97
128
  # Visit a BlockParameterNode node
98
- alias visit_block_parameter_node visit_child_nodes
129
+ def visit_block_parameter_node(node)
130
+ node.compact_child_nodes.each { |node| node.accept(self) }
131
+ end
99
132
 
100
133
  # Visit a BlockParametersNode node
101
- alias visit_block_parameters_node visit_child_nodes
134
+ def visit_block_parameters_node(node)
135
+ node.compact_child_nodes.each { |node| node.accept(self) }
136
+ end
102
137
 
103
138
  # Visit a BreakNode node
104
- alias visit_break_node visit_child_nodes
139
+ def visit_break_node(node)
140
+ node.compact_child_nodes.each { |node| node.accept(self) }
141
+ end
105
142
 
106
143
  # Visit a CallAndWriteNode node
107
- alias visit_call_and_write_node visit_child_nodes
144
+ def visit_call_and_write_node(node)
145
+ node.compact_child_nodes.each { |node| node.accept(self) }
146
+ end
108
147
 
109
148
  # Visit a CallNode node
110
- alias visit_call_node visit_child_nodes
149
+ def visit_call_node(node)
150
+ node.compact_child_nodes.each { |node| node.accept(self) }
151
+ end
111
152
 
112
153
  # Visit a CallOperatorWriteNode node
113
- alias visit_call_operator_write_node visit_child_nodes
154
+ def visit_call_operator_write_node(node)
155
+ node.compact_child_nodes.each { |node| node.accept(self) }
156
+ end
114
157
 
115
158
  # Visit a CallOrWriteNode node
116
- alias visit_call_or_write_node visit_child_nodes
159
+ def visit_call_or_write_node(node)
160
+ node.compact_child_nodes.each { |node| node.accept(self) }
161
+ end
117
162
 
118
163
  # Visit a CallTargetNode node
119
- alias visit_call_target_node visit_child_nodes
164
+ def visit_call_target_node(node)
165
+ node.compact_child_nodes.each { |node| node.accept(self) }
166
+ end
120
167
 
121
168
  # Visit a CapturePatternNode node
122
- alias visit_capture_pattern_node visit_child_nodes
169
+ def visit_capture_pattern_node(node)
170
+ node.compact_child_nodes.each { |node| node.accept(self) }
171
+ end
123
172
 
124
173
  # Visit a CaseMatchNode node
125
- alias visit_case_match_node visit_child_nodes
174
+ def visit_case_match_node(node)
175
+ node.compact_child_nodes.each { |node| node.accept(self) }
176
+ end
126
177
 
127
178
  # Visit a CaseNode node
128
- alias visit_case_node visit_child_nodes
179
+ def visit_case_node(node)
180
+ node.compact_child_nodes.each { |node| node.accept(self) }
181
+ end
129
182
 
130
183
  # Visit a ClassNode node
131
- alias visit_class_node visit_child_nodes
184
+ def visit_class_node(node)
185
+ node.compact_child_nodes.each { |node| node.accept(self) }
186
+ end
132
187
 
133
188
  # Visit a ClassVariableAndWriteNode node
134
- alias visit_class_variable_and_write_node visit_child_nodes
189
+ def visit_class_variable_and_write_node(node)
190
+ node.compact_child_nodes.each { |node| node.accept(self) }
191
+ end
135
192
 
136
193
  # Visit a ClassVariableOperatorWriteNode node
137
- alias visit_class_variable_operator_write_node visit_child_nodes
194
+ def visit_class_variable_operator_write_node(node)
195
+ node.compact_child_nodes.each { |node| node.accept(self) }
196
+ end
138
197
 
139
198
  # Visit a ClassVariableOrWriteNode node
140
- alias visit_class_variable_or_write_node visit_child_nodes
199
+ def visit_class_variable_or_write_node(node)
200
+ node.compact_child_nodes.each { |node| node.accept(self) }
201
+ end
141
202
 
142
203
  # Visit a ClassVariableReadNode node
143
- alias visit_class_variable_read_node visit_child_nodes
204
+ def visit_class_variable_read_node(node)
205
+ node.compact_child_nodes.each { |node| node.accept(self) }
206
+ end
144
207
 
145
208
  # Visit a ClassVariableTargetNode node
146
- alias visit_class_variable_target_node visit_child_nodes
209
+ def visit_class_variable_target_node(node)
210
+ node.compact_child_nodes.each { |node| node.accept(self) }
211
+ end
147
212
 
148
213
  # Visit a ClassVariableWriteNode node
149
- alias visit_class_variable_write_node visit_child_nodes
214
+ def visit_class_variable_write_node(node)
215
+ node.compact_child_nodes.each { |node| node.accept(self) }
216
+ end
150
217
 
151
218
  # Visit a ConstantAndWriteNode node
152
- alias visit_constant_and_write_node visit_child_nodes
219
+ def visit_constant_and_write_node(node)
220
+ node.compact_child_nodes.each { |node| node.accept(self) }
221
+ end
153
222
 
154
223
  # Visit a ConstantOperatorWriteNode node
155
- alias visit_constant_operator_write_node visit_child_nodes
224
+ def visit_constant_operator_write_node(node)
225
+ node.compact_child_nodes.each { |node| node.accept(self) }
226
+ end
156
227
 
157
228
  # Visit a ConstantOrWriteNode node
158
- alias visit_constant_or_write_node visit_child_nodes
229
+ def visit_constant_or_write_node(node)
230
+ node.compact_child_nodes.each { |node| node.accept(self) }
231
+ end
159
232
 
160
233
  # Visit a ConstantPathAndWriteNode node
161
- alias visit_constant_path_and_write_node visit_child_nodes
234
+ def visit_constant_path_and_write_node(node)
235
+ node.compact_child_nodes.each { |node| node.accept(self) }
236
+ end
162
237
 
163
238
  # Visit a ConstantPathNode node
164
- alias visit_constant_path_node visit_child_nodes
239
+ def visit_constant_path_node(node)
240
+ node.compact_child_nodes.each { |node| node.accept(self) }
241
+ end
165
242
 
166
243
  # Visit a ConstantPathOperatorWriteNode node
167
- alias visit_constant_path_operator_write_node visit_child_nodes
244
+ def visit_constant_path_operator_write_node(node)
245
+ node.compact_child_nodes.each { |node| node.accept(self) }
246
+ end
168
247
 
169
248
  # Visit a ConstantPathOrWriteNode node
170
- alias visit_constant_path_or_write_node visit_child_nodes
249
+ def visit_constant_path_or_write_node(node)
250
+ node.compact_child_nodes.each { |node| node.accept(self) }
251
+ end
171
252
 
172
253
  # Visit a ConstantPathTargetNode node
173
- alias visit_constant_path_target_node visit_child_nodes
254
+ def visit_constant_path_target_node(node)
255
+ node.compact_child_nodes.each { |node| node.accept(self) }
256
+ end
174
257
 
175
258
  # Visit a ConstantPathWriteNode node
176
- alias visit_constant_path_write_node visit_child_nodes
259
+ def visit_constant_path_write_node(node)
260
+ node.compact_child_nodes.each { |node| node.accept(self) }
261
+ end
177
262
 
178
263
  # Visit a ConstantReadNode node
179
- alias visit_constant_read_node visit_child_nodes
264
+ def visit_constant_read_node(node)
265
+ node.compact_child_nodes.each { |node| node.accept(self) }
266
+ end
180
267
 
181
268
  # Visit a ConstantTargetNode node
182
- alias visit_constant_target_node visit_child_nodes
269
+ def visit_constant_target_node(node)
270
+ node.compact_child_nodes.each { |node| node.accept(self) }
271
+ end
183
272
 
184
273
  # Visit a ConstantWriteNode node
185
- alias visit_constant_write_node visit_child_nodes
274
+ def visit_constant_write_node(node)
275
+ node.compact_child_nodes.each { |node| node.accept(self) }
276
+ end
186
277
 
187
278
  # Visit a DefNode node
188
- alias visit_def_node visit_child_nodes
279
+ def visit_def_node(node)
280
+ node.compact_child_nodes.each { |node| node.accept(self) }
281
+ end
189
282
 
190
283
  # Visit a DefinedNode node
191
- alias visit_defined_node visit_child_nodes
284
+ def visit_defined_node(node)
285
+ node.compact_child_nodes.each { |node| node.accept(self) }
286
+ end
192
287
 
193
288
  # Visit a ElseNode node
194
- alias visit_else_node visit_child_nodes
289
+ def visit_else_node(node)
290
+ node.compact_child_nodes.each { |node| node.accept(self) }
291
+ end
195
292
 
196
293
  # Visit a EmbeddedStatementsNode node
197
- alias visit_embedded_statements_node visit_child_nodes
294
+ def visit_embedded_statements_node(node)
295
+ node.compact_child_nodes.each { |node| node.accept(self) }
296
+ end
198
297
 
199
298
  # Visit a EmbeddedVariableNode node
200
- alias visit_embedded_variable_node visit_child_nodes
299
+ def visit_embedded_variable_node(node)
300
+ node.compact_child_nodes.each { |node| node.accept(self) }
301
+ end
201
302
 
202
303
  # Visit a EnsureNode node
203
- alias visit_ensure_node visit_child_nodes
304
+ def visit_ensure_node(node)
305
+ node.compact_child_nodes.each { |node| node.accept(self) }
306
+ end
204
307
 
205
308
  # Visit a FalseNode node
206
- alias visit_false_node visit_child_nodes
309
+ def visit_false_node(node)
310
+ node.compact_child_nodes.each { |node| node.accept(self) }
311
+ end
207
312
 
208
313
  # Visit a FindPatternNode node
209
- alias visit_find_pattern_node visit_child_nodes
314
+ def visit_find_pattern_node(node)
315
+ node.compact_child_nodes.each { |node| node.accept(self) }
316
+ end
210
317
 
211
318
  # Visit a FlipFlopNode node
212
- alias visit_flip_flop_node visit_child_nodes
319
+ def visit_flip_flop_node(node)
320
+ node.compact_child_nodes.each { |node| node.accept(self) }
321
+ end
213
322
 
214
323
  # Visit a FloatNode node
215
- alias visit_float_node visit_child_nodes
324
+ def visit_float_node(node)
325
+ node.compact_child_nodes.each { |node| node.accept(self) }
326
+ end
216
327
 
217
328
  # Visit a ForNode node
218
- alias visit_for_node visit_child_nodes
329
+ def visit_for_node(node)
330
+ node.compact_child_nodes.each { |node| node.accept(self) }
331
+ end
219
332
 
220
333
  # Visit a ForwardingArgumentsNode node
221
- alias visit_forwarding_arguments_node visit_child_nodes
334
+ def visit_forwarding_arguments_node(node)
335
+ node.compact_child_nodes.each { |node| node.accept(self) }
336
+ end
222
337
 
223
338
  # Visit a ForwardingParameterNode node
224
- alias visit_forwarding_parameter_node visit_child_nodes
339
+ def visit_forwarding_parameter_node(node)
340
+ node.compact_child_nodes.each { |node| node.accept(self) }
341
+ end
225
342
 
226
343
  # Visit a ForwardingSuperNode node
227
- alias visit_forwarding_super_node visit_child_nodes
344
+ def visit_forwarding_super_node(node)
345
+ node.compact_child_nodes.each { |node| node.accept(self) }
346
+ end
228
347
 
229
348
  # Visit a GlobalVariableAndWriteNode node
230
- alias visit_global_variable_and_write_node visit_child_nodes
349
+ def visit_global_variable_and_write_node(node)
350
+ node.compact_child_nodes.each { |node| node.accept(self) }
351
+ end
231
352
 
232
353
  # Visit a GlobalVariableOperatorWriteNode node
233
- alias visit_global_variable_operator_write_node visit_child_nodes
354
+ def visit_global_variable_operator_write_node(node)
355
+ node.compact_child_nodes.each { |node| node.accept(self) }
356
+ end
234
357
 
235
358
  # Visit a GlobalVariableOrWriteNode node
236
- alias visit_global_variable_or_write_node visit_child_nodes
359
+ def visit_global_variable_or_write_node(node)
360
+ node.compact_child_nodes.each { |node| node.accept(self) }
361
+ end
237
362
 
238
363
  # Visit a GlobalVariableReadNode node
239
- alias visit_global_variable_read_node visit_child_nodes
364
+ def visit_global_variable_read_node(node)
365
+ node.compact_child_nodes.each { |node| node.accept(self) }
366
+ end
240
367
 
241
368
  # Visit a GlobalVariableTargetNode node
242
- alias visit_global_variable_target_node visit_child_nodes
369
+ def visit_global_variable_target_node(node)
370
+ node.compact_child_nodes.each { |node| node.accept(self) }
371
+ end
243
372
 
244
373
  # Visit a GlobalVariableWriteNode node
245
- alias visit_global_variable_write_node visit_child_nodes
374
+ def visit_global_variable_write_node(node)
375
+ node.compact_child_nodes.each { |node| node.accept(self) }
376
+ end
246
377
 
247
378
  # Visit a HashNode node
248
- alias visit_hash_node visit_child_nodes
379
+ def visit_hash_node(node)
380
+ node.compact_child_nodes.each { |node| node.accept(self) }
381
+ end
249
382
 
250
383
  # Visit a HashPatternNode node
251
- alias visit_hash_pattern_node visit_child_nodes
384
+ def visit_hash_pattern_node(node)
385
+ node.compact_child_nodes.each { |node| node.accept(self) }
386
+ end
252
387
 
253
388
  # Visit a IfNode node
254
- alias visit_if_node visit_child_nodes
389
+ def visit_if_node(node)
390
+ node.compact_child_nodes.each { |node| node.accept(self) }
391
+ end
255
392
 
256
393
  # Visit a ImaginaryNode node
257
- alias visit_imaginary_node visit_child_nodes
394
+ def visit_imaginary_node(node)
395
+ node.compact_child_nodes.each { |node| node.accept(self) }
396
+ end
258
397
 
259
398
  # Visit a ImplicitNode node
260
- alias visit_implicit_node visit_child_nodes
399
+ def visit_implicit_node(node)
400
+ node.compact_child_nodes.each { |node| node.accept(self) }
401
+ end
261
402
 
262
403
  # Visit a ImplicitRestNode node
263
- alias visit_implicit_rest_node visit_child_nodes
404
+ def visit_implicit_rest_node(node)
405
+ node.compact_child_nodes.each { |node| node.accept(self) }
406
+ end
264
407
 
265
408
  # Visit a InNode node
266
- alias visit_in_node visit_child_nodes
409
+ def visit_in_node(node)
410
+ node.compact_child_nodes.each { |node| node.accept(self) }
411
+ end
267
412
 
268
413
  # Visit a IndexAndWriteNode node
269
- alias visit_index_and_write_node visit_child_nodes
414
+ def visit_index_and_write_node(node)
415
+ node.compact_child_nodes.each { |node| node.accept(self) }
416
+ end
270
417
 
271
418
  # Visit a IndexOperatorWriteNode node
272
- alias visit_index_operator_write_node visit_child_nodes
419
+ def visit_index_operator_write_node(node)
420
+ node.compact_child_nodes.each { |node| node.accept(self) }
421
+ end
273
422
 
274
423
  # Visit a IndexOrWriteNode node
275
- alias visit_index_or_write_node visit_child_nodes
424
+ def visit_index_or_write_node(node)
425
+ node.compact_child_nodes.each { |node| node.accept(self) }
426
+ end
276
427
 
277
428
  # Visit a IndexTargetNode node
278
- alias visit_index_target_node visit_child_nodes
429
+ def visit_index_target_node(node)
430
+ node.compact_child_nodes.each { |node| node.accept(self) }
431
+ end
279
432
 
280
433
  # Visit a InstanceVariableAndWriteNode node
281
- alias visit_instance_variable_and_write_node visit_child_nodes
434
+ def visit_instance_variable_and_write_node(node)
435
+ node.compact_child_nodes.each { |node| node.accept(self) }
436
+ end
282
437
 
283
438
  # Visit a InstanceVariableOperatorWriteNode node
284
- alias visit_instance_variable_operator_write_node visit_child_nodes
439
+ def visit_instance_variable_operator_write_node(node)
440
+ node.compact_child_nodes.each { |node| node.accept(self) }
441
+ end
285
442
 
286
443
  # Visit a InstanceVariableOrWriteNode node
287
- alias visit_instance_variable_or_write_node visit_child_nodes
444
+ def visit_instance_variable_or_write_node(node)
445
+ node.compact_child_nodes.each { |node| node.accept(self) }
446
+ end
288
447
 
289
448
  # Visit a InstanceVariableReadNode node
290
- alias visit_instance_variable_read_node visit_child_nodes
449
+ def visit_instance_variable_read_node(node)
450
+ node.compact_child_nodes.each { |node| node.accept(self) }
451
+ end
291
452
 
292
453
  # Visit a InstanceVariableTargetNode node
293
- alias visit_instance_variable_target_node visit_child_nodes
454
+ def visit_instance_variable_target_node(node)
455
+ node.compact_child_nodes.each { |node| node.accept(self) }
456
+ end
294
457
 
295
458
  # Visit a InstanceVariableWriteNode node
296
- alias visit_instance_variable_write_node visit_child_nodes
459
+ def visit_instance_variable_write_node(node)
460
+ node.compact_child_nodes.each { |node| node.accept(self) }
461
+ end
297
462
 
298
463
  # Visit a IntegerNode node
299
- alias visit_integer_node visit_child_nodes
464
+ def visit_integer_node(node)
465
+ node.compact_child_nodes.each { |node| node.accept(self) }
466
+ end
300
467
 
301
468
  # Visit a InterpolatedMatchLastLineNode node
302
- alias visit_interpolated_match_last_line_node visit_child_nodes
469
+ def visit_interpolated_match_last_line_node(node)
470
+ node.compact_child_nodes.each { |node| node.accept(self) }
471
+ end
303
472
 
304
473
  # Visit a InterpolatedRegularExpressionNode node
305
- alias visit_interpolated_regular_expression_node visit_child_nodes
474
+ def visit_interpolated_regular_expression_node(node)
475
+ node.compact_child_nodes.each { |node| node.accept(self) }
476
+ end
306
477
 
307
478
  # Visit a InterpolatedStringNode node
308
- alias visit_interpolated_string_node visit_child_nodes
479
+ def visit_interpolated_string_node(node)
480
+ node.compact_child_nodes.each { |node| node.accept(self) }
481
+ end
309
482
 
310
483
  # Visit a InterpolatedSymbolNode node
311
- alias visit_interpolated_symbol_node visit_child_nodes
484
+ def visit_interpolated_symbol_node(node)
485
+ node.compact_child_nodes.each { |node| node.accept(self) }
486
+ end
312
487
 
313
488
  # Visit a InterpolatedXStringNode node
314
- alias visit_interpolated_x_string_node visit_child_nodes
489
+ def visit_interpolated_x_string_node(node)
490
+ node.compact_child_nodes.each { |node| node.accept(self) }
491
+ end
315
492
 
316
493
  # Visit a ItLocalVariableReadNode node
317
- alias visit_it_local_variable_read_node visit_child_nodes
494
+ def visit_it_local_variable_read_node(node)
495
+ node.compact_child_nodes.each { |node| node.accept(self) }
496
+ end
318
497
 
319
498
  # Visit a ItParametersNode node
320
- alias visit_it_parameters_node visit_child_nodes
499
+ def visit_it_parameters_node(node)
500
+ node.compact_child_nodes.each { |node| node.accept(self) }
501
+ end
321
502
 
322
503
  # Visit a KeywordHashNode node
323
- alias visit_keyword_hash_node visit_child_nodes
504
+ def visit_keyword_hash_node(node)
505
+ node.compact_child_nodes.each { |node| node.accept(self) }
506
+ end
324
507
 
325
508
  # Visit a KeywordRestParameterNode node
326
- alias visit_keyword_rest_parameter_node visit_child_nodes
509
+ def visit_keyword_rest_parameter_node(node)
510
+ node.compact_child_nodes.each { |node| node.accept(self) }
511
+ end
327
512
 
328
513
  # Visit a LambdaNode node
329
- alias visit_lambda_node visit_child_nodes
514
+ def visit_lambda_node(node)
515
+ node.compact_child_nodes.each { |node| node.accept(self) }
516
+ end
330
517
 
331
518
  # Visit a LocalVariableAndWriteNode node
332
- alias visit_local_variable_and_write_node visit_child_nodes
519
+ def visit_local_variable_and_write_node(node)
520
+ node.compact_child_nodes.each { |node| node.accept(self) }
521
+ end
333
522
 
334
523
  # Visit a LocalVariableOperatorWriteNode node
335
- alias visit_local_variable_operator_write_node visit_child_nodes
524
+ def visit_local_variable_operator_write_node(node)
525
+ node.compact_child_nodes.each { |node| node.accept(self) }
526
+ end
336
527
 
337
528
  # Visit a LocalVariableOrWriteNode node
338
- alias visit_local_variable_or_write_node visit_child_nodes
529
+ def visit_local_variable_or_write_node(node)
530
+ node.compact_child_nodes.each { |node| node.accept(self) }
531
+ end
339
532
 
340
533
  # Visit a LocalVariableReadNode node
341
- alias visit_local_variable_read_node visit_child_nodes
534
+ def visit_local_variable_read_node(node)
535
+ node.compact_child_nodes.each { |node| node.accept(self) }
536
+ end
342
537
 
343
538
  # Visit a LocalVariableTargetNode node
344
- alias visit_local_variable_target_node visit_child_nodes
539
+ def visit_local_variable_target_node(node)
540
+ node.compact_child_nodes.each { |node| node.accept(self) }
541
+ end
345
542
 
346
543
  # Visit a LocalVariableWriteNode node
347
- alias visit_local_variable_write_node visit_child_nodes
544
+ def visit_local_variable_write_node(node)
545
+ node.compact_child_nodes.each { |node| node.accept(self) }
546
+ end
348
547
 
349
548
  # Visit a MatchLastLineNode node
350
- alias visit_match_last_line_node visit_child_nodes
549
+ def visit_match_last_line_node(node)
550
+ node.compact_child_nodes.each { |node| node.accept(self) }
551
+ end
351
552
 
352
553
  # Visit a MatchPredicateNode node
353
- alias visit_match_predicate_node visit_child_nodes
554
+ def visit_match_predicate_node(node)
555
+ node.compact_child_nodes.each { |node| node.accept(self) }
556
+ end
354
557
 
355
558
  # Visit a MatchRequiredNode node
356
- alias visit_match_required_node visit_child_nodes
559
+ def visit_match_required_node(node)
560
+ node.compact_child_nodes.each { |node| node.accept(self) }
561
+ end
357
562
 
358
563
  # Visit a MatchWriteNode node
359
- alias visit_match_write_node visit_child_nodes
564
+ def visit_match_write_node(node)
565
+ node.compact_child_nodes.each { |node| node.accept(self) }
566
+ end
360
567
 
361
568
  # Visit a MissingNode node
362
- alias visit_missing_node visit_child_nodes
569
+ def visit_missing_node(node)
570
+ node.compact_child_nodes.each { |node| node.accept(self) }
571
+ end
363
572
 
364
573
  # Visit a ModuleNode node
365
- alias visit_module_node visit_child_nodes
574
+ def visit_module_node(node)
575
+ node.compact_child_nodes.each { |node| node.accept(self) }
576
+ end
366
577
 
367
578
  # Visit a MultiTargetNode node
368
- alias visit_multi_target_node visit_child_nodes
579
+ def visit_multi_target_node(node)
580
+ node.compact_child_nodes.each { |node| node.accept(self) }
581
+ end
369
582
 
370
583
  # Visit a MultiWriteNode node
371
- alias visit_multi_write_node visit_child_nodes
584
+ def visit_multi_write_node(node)
585
+ node.compact_child_nodes.each { |node| node.accept(self) }
586
+ end
372
587
 
373
588
  # Visit a NextNode node
374
- alias visit_next_node visit_child_nodes
589
+ def visit_next_node(node)
590
+ node.compact_child_nodes.each { |node| node.accept(self) }
591
+ end
375
592
 
376
593
  # Visit a NilNode node
377
- alias visit_nil_node visit_child_nodes
594
+ def visit_nil_node(node)
595
+ node.compact_child_nodes.each { |node| node.accept(self) }
596
+ end
378
597
 
379
598
  # Visit a NoKeywordsParameterNode node
380
- alias visit_no_keywords_parameter_node visit_child_nodes
599
+ def visit_no_keywords_parameter_node(node)
600
+ node.compact_child_nodes.each { |node| node.accept(self) }
601
+ end
381
602
 
382
603
  # Visit a NumberedParametersNode node
383
- alias visit_numbered_parameters_node visit_child_nodes
604
+ def visit_numbered_parameters_node(node)
605
+ node.compact_child_nodes.each { |node| node.accept(self) }
606
+ end
384
607
 
385
608
  # Visit a NumberedReferenceReadNode node
386
- alias visit_numbered_reference_read_node visit_child_nodes
609
+ def visit_numbered_reference_read_node(node)
610
+ node.compact_child_nodes.each { |node| node.accept(self) }
611
+ end
387
612
 
388
613
  # Visit a OptionalKeywordParameterNode node
389
- alias visit_optional_keyword_parameter_node visit_child_nodes
614
+ def visit_optional_keyword_parameter_node(node)
615
+ node.compact_child_nodes.each { |node| node.accept(self) }
616
+ end
390
617
 
391
618
  # Visit a OptionalParameterNode node
392
- alias visit_optional_parameter_node visit_child_nodes
619
+ def visit_optional_parameter_node(node)
620
+ node.compact_child_nodes.each { |node| node.accept(self) }
621
+ end
393
622
 
394
623
  # Visit a OrNode node
395
- alias visit_or_node visit_child_nodes
624
+ def visit_or_node(node)
625
+ node.compact_child_nodes.each { |node| node.accept(self) }
626
+ end
396
627
 
397
628
  # Visit a ParametersNode node
398
- alias visit_parameters_node visit_child_nodes
629
+ def visit_parameters_node(node)
630
+ node.compact_child_nodes.each { |node| node.accept(self) }
631
+ end
399
632
 
400
633
  # Visit a ParenthesesNode node
401
- alias visit_parentheses_node visit_child_nodes
634
+ def visit_parentheses_node(node)
635
+ node.compact_child_nodes.each { |node| node.accept(self) }
636
+ end
402
637
 
403
638
  # Visit a PinnedExpressionNode node
404
- alias visit_pinned_expression_node visit_child_nodes
639
+ def visit_pinned_expression_node(node)
640
+ node.compact_child_nodes.each { |node| node.accept(self) }
641
+ end
405
642
 
406
643
  # Visit a PinnedVariableNode node
407
- alias visit_pinned_variable_node visit_child_nodes
644
+ def visit_pinned_variable_node(node)
645
+ node.compact_child_nodes.each { |node| node.accept(self) }
646
+ end
408
647
 
409
648
  # Visit a PostExecutionNode node
410
- alias visit_post_execution_node visit_child_nodes
649
+ def visit_post_execution_node(node)
650
+ node.compact_child_nodes.each { |node| node.accept(self) }
651
+ end
411
652
 
412
653
  # Visit a PreExecutionNode node
413
- alias visit_pre_execution_node visit_child_nodes
654
+ def visit_pre_execution_node(node)
655
+ node.compact_child_nodes.each { |node| node.accept(self) }
656
+ end
414
657
 
415
658
  # Visit a ProgramNode node
416
- alias visit_program_node visit_child_nodes
659
+ def visit_program_node(node)
660
+ node.compact_child_nodes.each { |node| node.accept(self) }
661
+ end
417
662
 
418
663
  # Visit a RangeNode node
419
- alias visit_range_node visit_child_nodes
664
+ def visit_range_node(node)
665
+ node.compact_child_nodes.each { |node| node.accept(self) }
666
+ end
420
667
 
421
668
  # Visit a RationalNode node
422
- alias visit_rational_node visit_child_nodes
669
+ def visit_rational_node(node)
670
+ node.compact_child_nodes.each { |node| node.accept(self) }
671
+ end
423
672
 
424
673
  # Visit a RedoNode node
425
- alias visit_redo_node visit_child_nodes
674
+ def visit_redo_node(node)
675
+ node.compact_child_nodes.each { |node| node.accept(self) }
676
+ end
426
677
 
427
678
  # Visit a RegularExpressionNode node
428
- alias visit_regular_expression_node visit_child_nodes
679
+ def visit_regular_expression_node(node)
680
+ node.compact_child_nodes.each { |node| node.accept(self) }
681
+ end
429
682
 
430
683
  # Visit a RequiredKeywordParameterNode node
431
- alias visit_required_keyword_parameter_node visit_child_nodes
684
+ def visit_required_keyword_parameter_node(node)
685
+ node.compact_child_nodes.each { |node| node.accept(self) }
686
+ end
432
687
 
433
688
  # Visit a RequiredParameterNode node
434
- alias visit_required_parameter_node visit_child_nodes
689
+ def visit_required_parameter_node(node)
690
+ node.compact_child_nodes.each { |node| node.accept(self) }
691
+ end
435
692
 
436
693
  # Visit a RescueModifierNode node
437
- alias visit_rescue_modifier_node visit_child_nodes
694
+ def visit_rescue_modifier_node(node)
695
+ node.compact_child_nodes.each { |node| node.accept(self) }
696
+ end
438
697
 
439
698
  # Visit a RescueNode node
440
- alias visit_rescue_node visit_child_nodes
699
+ def visit_rescue_node(node)
700
+ node.compact_child_nodes.each { |node| node.accept(self) }
701
+ end
441
702
 
442
703
  # Visit a RestParameterNode node
443
- alias visit_rest_parameter_node visit_child_nodes
704
+ def visit_rest_parameter_node(node)
705
+ node.compact_child_nodes.each { |node| node.accept(self) }
706
+ end
444
707
 
445
708
  # Visit a RetryNode node
446
- alias visit_retry_node visit_child_nodes
709
+ def visit_retry_node(node)
710
+ node.compact_child_nodes.each { |node| node.accept(self) }
711
+ end
447
712
 
448
713
  # Visit a ReturnNode node
449
- alias visit_return_node visit_child_nodes
714
+ def visit_return_node(node)
715
+ node.compact_child_nodes.each { |node| node.accept(self) }
716
+ end
450
717
 
451
718
  # Visit a SelfNode node
452
- alias visit_self_node visit_child_nodes
719
+ def visit_self_node(node)
720
+ node.compact_child_nodes.each { |node| node.accept(self) }
721
+ end
453
722
 
454
723
  # Visit a ShareableConstantNode node
455
- alias visit_shareable_constant_node visit_child_nodes
724
+ def visit_shareable_constant_node(node)
725
+ node.compact_child_nodes.each { |node| node.accept(self) }
726
+ end
456
727
 
457
728
  # Visit a SingletonClassNode node
458
- alias visit_singleton_class_node visit_child_nodes
729
+ def visit_singleton_class_node(node)
730
+ node.compact_child_nodes.each { |node| node.accept(self) }
731
+ end
459
732
 
460
733
  # Visit a SourceEncodingNode node
461
- alias visit_source_encoding_node visit_child_nodes
734
+ def visit_source_encoding_node(node)
735
+ node.compact_child_nodes.each { |node| node.accept(self) }
736
+ end
462
737
 
463
738
  # Visit a SourceFileNode node
464
- alias visit_source_file_node visit_child_nodes
739
+ def visit_source_file_node(node)
740
+ node.compact_child_nodes.each { |node| node.accept(self) }
741
+ end
465
742
 
466
743
  # Visit a SourceLineNode node
467
- alias visit_source_line_node visit_child_nodes
744
+ def visit_source_line_node(node)
745
+ node.compact_child_nodes.each { |node| node.accept(self) }
746
+ end
468
747
 
469
748
  # Visit a SplatNode node
470
- alias visit_splat_node visit_child_nodes
749
+ def visit_splat_node(node)
750
+ node.compact_child_nodes.each { |node| node.accept(self) }
751
+ end
471
752
 
472
753
  # Visit a StatementsNode node
473
- alias visit_statements_node visit_child_nodes
754
+ def visit_statements_node(node)
755
+ node.compact_child_nodes.each { |node| node.accept(self) }
756
+ end
474
757
 
475
758
  # Visit a StringNode node
476
- alias visit_string_node visit_child_nodes
759
+ def visit_string_node(node)
760
+ node.compact_child_nodes.each { |node| node.accept(self) }
761
+ end
477
762
 
478
763
  # Visit a SuperNode node
479
- alias visit_super_node visit_child_nodes
764
+ def visit_super_node(node)
765
+ node.compact_child_nodes.each { |node| node.accept(self) }
766
+ end
480
767
 
481
768
  # Visit a SymbolNode node
482
- alias visit_symbol_node visit_child_nodes
769
+ def visit_symbol_node(node)
770
+ node.compact_child_nodes.each { |node| node.accept(self) }
771
+ end
483
772
 
484
773
  # Visit a TrueNode node
485
- alias visit_true_node visit_child_nodes
774
+ def visit_true_node(node)
775
+ node.compact_child_nodes.each { |node| node.accept(self) }
776
+ end
486
777
 
487
778
  # Visit a UndefNode node
488
- alias visit_undef_node visit_child_nodes
779
+ def visit_undef_node(node)
780
+ node.compact_child_nodes.each { |node| node.accept(self) }
781
+ end
489
782
 
490
783
  # Visit a UnlessNode node
491
- alias visit_unless_node visit_child_nodes
784
+ def visit_unless_node(node)
785
+ node.compact_child_nodes.each { |node| node.accept(self) }
786
+ end
492
787
 
493
788
  # Visit a UntilNode node
494
- alias visit_until_node visit_child_nodes
789
+ def visit_until_node(node)
790
+ node.compact_child_nodes.each { |node| node.accept(self) }
791
+ end
495
792
 
496
793
  # Visit a WhenNode node
497
- alias visit_when_node visit_child_nodes
794
+ def visit_when_node(node)
795
+ node.compact_child_nodes.each { |node| node.accept(self) }
796
+ end
498
797
 
499
798
  # Visit a WhileNode node
500
- alias visit_while_node visit_child_nodes
799
+ def visit_while_node(node)
800
+ node.compact_child_nodes.each { |node| node.accept(self) }
801
+ end
501
802
 
502
803
  # Visit a XStringNode node
503
- alias visit_x_string_node visit_child_nodes
804
+ def visit_x_string_node(node)
805
+ node.compact_child_nodes.each { |node| node.accept(self) }
806
+ end
504
807
 
505
808
  # Visit a YieldNode node
506
- alias visit_yield_node visit_child_nodes
809
+ def visit_yield_node(node)
810
+ node.compact_child_nodes.each { |node| node.accept(self) }
811
+ end
507
812
  end
508
813
  end