yarp 0.9.0 → 0.11.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -1
  3. data/CONTRIBUTING.md +7 -0
  4. data/Makefile +5 -1
  5. data/config.yml +308 -166
  6. data/docs/configuration.md +0 -1
  7. data/docs/encoding.md +5 -5
  8. data/docs/mapping.md +91 -91
  9. data/docs/serialization.md +25 -22
  10. data/ext/yarp/api_node.c +1210 -483
  11. data/ext/yarp/extension.c +22 -8
  12. data/ext/yarp/extension.h +2 -2
  13. data/include/yarp/ast.h +692 -183
  14. data/include/yarp/defines.h +2 -1
  15. data/include/yarp/diagnostic.h +200 -3
  16. data/include/yarp/enc/yp_encoding.h +10 -10
  17. data/include/yarp/node.h +0 -4
  18. data/include/yarp/parser.h +19 -19
  19. data/include/yarp/regexp.h +1 -1
  20. data/include/yarp/unescape.h +4 -4
  21. data/include/yarp/util/yp_buffer.h +3 -0
  22. data/include/yarp/util/yp_char.h +16 -16
  23. data/include/yarp/util/yp_constant_pool.h +12 -5
  24. data/include/yarp/util/yp_newline_list.h +5 -5
  25. data/include/yarp/util/yp_string.h +4 -4
  26. data/include/yarp/util/yp_string_list.h +0 -3
  27. data/include/yarp/util/yp_strpbrk.h +1 -1
  28. data/include/yarp/version.h +2 -2
  29. data/include/yarp.h +5 -4
  30. data/lib/yarp/desugar_visitor.rb +59 -122
  31. data/lib/yarp/mutation_visitor.rb +22 -12
  32. data/lib/yarp/node.rb +3081 -501
  33. data/lib/yarp/parse_result/comments.rb +172 -0
  34. data/lib/yarp/parse_result/newlines.rb +60 -0
  35. data/lib/yarp/pattern.rb +239 -0
  36. data/lib/yarp/serialize.rb +152 -129
  37. data/lib/yarp.rb +109 -49
  38. data/src/diagnostic.c +254 -2
  39. data/src/enc/yp_big5.c +15 -42
  40. data/src/enc/yp_euc_jp.c +16 -43
  41. data/src/enc/yp_gbk.c +19 -46
  42. data/src/enc/yp_shift_jis.c +16 -43
  43. data/src/enc/yp_tables.c +36 -38
  44. data/src/enc/yp_unicode.c +20 -25
  45. data/src/enc/yp_windows_31j.c +16 -43
  46. data/src/node.c +1871 -1466
  47. data/src/prettyprint.c +463 -230
  48. data/src/regexp.c +21 -21
  49. data/src/serialize.c +352 -184
  50. data/src/unescape.c +152 -122
  51. data/src/util/yp_buffer.c +7 -2
  52. data/src/util/yp_char.c +35 -40
  53. data/src/util/yp_constant_pool.c +45 -12
  54. data/src/util/yp_memchr.c +1 -1
  55. data/src/util/yp_newline_list.c +10 -5
  56. data/src/util/yp_string.c +22 -20
  57. data/src/util/yp_string_list.c +4 -7
  58. data/src/util/yp_strncasecmp.c +3 -6
  59. data/src/util/yp_strpbrk.c +8 -8
  60. data/src/yarp.c +1288 -1021
  61. data/yarp.gemspec +4 -1
  62. metadata +6 -3
data/src/prettyprint.c CHANGED
@@ -25,9 +25,9 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
25
25
  switch (YP_NODE_TYPE(node)) {
26
26
  // We do not need to print a ScopeNode as it's not part
27
27
  // of the AST
28
- case YP_NODE_SCOPE_NODE:
28
+ case YP_SCOPE_NODE:
29
29
  return;
30
- case YP_NODE_ALIAS_NODE: {
30
+ case YP_ALIAS_NODE: {
31
31
  yp_buffer_append_str(buffer, "AliasNode(", 10);
32
32
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_alias_node_t *)node)->new_name);
33
33
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_alias_node_t *)node)->old_name);
@@ -35,7 +35,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
35
35
  yp_buffer_append_str(buffer, ")", 1);
36
36
  break;
37
37
  }
38
- case YP_NODE_ALTERNATION_PATTERN_NODE: {
38
+ case YP_ALTERNATION_PATTERN_NODE: {
39
39
  yp_buffer_append_str(buffer, "AlternationPatternNode(", 23);
40
40
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_alternation_pattern_node_t *)node)->left);
41
41
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_alternation_pattern_node_t *)node)->right);
@@ -43,7 +43,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
43
43
  yp_buffer_append_str(buffer, ")", 1);
44
44
  break;
45
45
  }
46
- case YP_NODE_AND_NODE: {
46
+ case YP_AND_NODE: {
47
47
  yp_buffer_append_str(buffer, "AndNode(", 8);
48
48
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_and_node_t *)node)->left);
49
49
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_and_node_t *)node)->right);
@@ -51,7 +51,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
51
51
  yp_buffer_append_str(buffer, ")", 1);
52
52
  break;
53
53
  }
54
- case YP_NODE_ARGUMENTS_NODE: {
54
+ case YP_ARGUMENTS_NODE: {
55
55
  yp_buffer_append_str(buffer, "ArgumentsNode(", 14);
56
56
  yp_buffer_append_str(buffer, "[", 1);
57
57
  for (uint32_t index = 0; index < ((yp_arguments_node_t *)node)->arguments.size; index++) {
@@ -62,7 +62,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
62
62
  yp_buffer_append_str(buffer, ")", 1);
63
63
  break;
64
64
  }
65
- case YP_NODE_ARRAY_NODE: {
65
+ case YP_ARRAY_NODE: {
66
66
  yp_buffer_append_str(buffer, "ArrayNode(", 10);
67
67
  yp_buffer_append_str(buffer, "[", 1);
68
68
  for (uint32_t index = 0; index < ((yp_array_node_t *)node)->elements.size; index++) {
@@ -83,7 +83,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
83
83
  yp_buffer_append_str(buffer, ")", 1);
84
84
  break;
85
85
  }
86
- case YP_NODE_ARRAY_PATTERN_NODE: {
86
+ case YP_ARRAY_PATTERN_NODE: {
87
87
  yp_buffer_append_str(buffer, "ArrayPatternNode(", 17);
88
88
  if (((yp_array_pattern_node_t *)node)->constant == NULL) {
89
89
  yp_buffer_append_str(buffer, "nil", 3);
@@ -120,7 +120,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
120
120
  yp_buffer_append_str(buffer, ")", 1);
121
121
  break;
122
122
  }
123
- case YP_NODE_ASSOC_NODE: {
123
+ case YP_ASSOC_NODE: {
124
124
  yp_buffer_append_str(buffer, "AssocNode(", 10);
125
125
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_assoc_node_t *)node)->key);
126
126
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_assoc_node_t *)node)->value == NULL) {
@@ -136,7 +136,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
136
136
  yp_buffer_append_str(buffer, ")", 1);
137
137
  break;
138
138
  }
139
- case YP_NODE_ASSOC_SPLAT_NODE: {
139
+ case YP_ASSOC_SPLAT_NODE: {
140
140
  yp_buffer_append_str(buffer, "AssocSplatNode(", 15);
141
141
  if (((yp_assoc_splat_node_t *)node)->value == NULL) {
142
142
  yp_buffer_append_str(buffer, "nil", 3);
@@ -147,12 +147,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
147
147
  yp_buffer_append_str(buffer, ")", 1);
148
148
  break;
149
149
  }
150
- case YP_NODE_BACK_REFERENCE_READ_NODE: {
150
+ case YP_BACK_REFERENCE_READ_NODE: {
151
151
  yp_buffer_append_str(buffer, "BackReferenceReadNode(", 22);
152
152
  yp_buffer_append_str(buffer, ")", 1);
153
153
  break;
154
154
  }
155
- case YP_NODE_BEGIN_NODE: {
155
+ case YP_BEGIN_NODE: {
156
156
  yp_buffer_append_str(buffer, "BeginNode(", 10);
157
157
  if (((yp_begin_node_t *)node)->begin_keyword_loc.start == NULL) {
158
158
  yp_buffer_append_str(buffer, "nil", 3);
@@ -187,7 +187,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
187
187
  yp_buffer_append_str(buffer, ")", 1);
188
188
  break;
189
189
  }
190
- case YP_NODE_BLOCK_ARGUMENT_NODE: {
190
+ case YP_BLOCK_ARGUMENT_NODE: {
191
191
  yp_buffer_append_str(buffer, "BlockArgumentNode(", 18);
192
192
  if (((yp_block_argument_node_t *)node)->expression == NULL) {
193
193
  yp_buffer_append_str(buffer, "nil", 3);
@@ -198,7 +198,15 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
198
198
  yp_buffer_append_str(buffer, ")", 1);
199
199
  break;
200
200
  }
201
- case YP_NODE_BLOCK_NODE: {
201
+ case YP_BLOCK_LOCAL_VARIABLE_NODE: {
202
+ yp_buffer_append_str(buffer, "BlockLocalVariableNode(", 23);
203
+ char name_buffer[12];
204
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_block_local_variable_node_t *)node)->name);
205
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
206
+ yp_buffer_append_str(buffer, ")", 1);
207
+ break;
208
+ }
209
+ case YP_BLOCK_NODE: {
202
210
  yp_buffer_append_str(buffer, "BlockNode(", 10);
203
211
  yp_buffer_append_str(buffer, "[", 1);
204
212
  for (uint32_t index = 0; index < ((yp_block_node_t *)node)->locals.size; index++) {
@@ -223,9 +231,16 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
223
231
  yp_buffer_append_str(buffer, ")", 1);
224
232
  break;
225
233
  }
226
- case YP_NODE_BLOCK_PARAMETER_NODE: {
234
+ case YP_BLOCK_PARAMETER_NODE: {
227
235
  yp_buffer_append_str(buffer, "BlockParameterNode(", 19);
228
- if (((yp_block_parameter_node_t *)node)->name_loc.start == NULL) {
236
+ if (((yp_block_parameter_node_t *)node)->name == 0) {
237
+ yp_buffer_append_str(buffer, "nil", 3);
238
+ } else {
239
+ char name_buffer[12];
240
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_block_parameter_node_t *)node)->name);
241
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
242
+ }
243
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_block_parameter_node_t *)node)->name_loc.start == NULL) {
229
244
  yp_buffer_append_str(buffer, "nil", 3);
230
245
  } else {
231
246
  prettyprint_location(buffer, parser, &((yp_block_parameter_node_t *)node)->name_loc);
@@ -234,7 +249,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
234
249
  yp_buffer_append_str(buffer, ")", 1);
235
250
  break;
236
251
  }
237
- case YP_NODE_BLOCK_PARAMETERS_NODE: {
252
+ case YP_BLOCK_PARAMETERS_NODE: {
238
253
  yp_buffer_append_str(buffer, "BlockParametersNode(", 20);
239
254
  if (((yp_block_parameters_node_t *)node)->parameters == NULL) {
240
255
  yp_buffer_append_str(buffer, "nil", 3);
@@ -244,7 +259,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
244
259
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
245
260
  for (uint32_t index = 0; index < ((yp_block_parameters_node_t *)node)->locals.size; index++) {
246
261
  if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
247
- prettyprint_location(buffer, parser, &((yp_block_parameters_node_t *)node)->locals.locations[index]);
262
+ prettyprint_node(buffer, parser, (yp_node_t *) ((yp_block_parameters_node_t *) node)->locals.nodes[index]);
248
263
  }
249
264
  yp_buffer_append_str(buffer, "]", 1);
250
265
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_block_parameters_node_t *)node)->opening_loc.start == NULL) {
@@ -260,7 +275,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
260
275
  yp_buffer_append_str(buffer, ")", 1);
261
276
  break;
262
277
  }
263
- case YP_NODE_BREAK_NODE: {
278
+ case YP_BREAK_NODE: {
264
279
  yp_buffer_append_str(buffer, "BreakNode(", 10);
265
280
  if (((yp_break_node_t *)node)->arguments == NULL) {
266
281
  yp_buffer_append_str(buffer, "nil", 3);
@@ -271,17 +286,63 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
271
286
  yp_buffer_append_str(buffer, ")", 1);
272
287
  break;
273
288
  }
274
- case YP_NODE_CALL_NODE: {
289
+ case YP_CALL_AND_WRITE_NODE: {
290
+ yp_buffer_append_str(buffer, "CallAndWriteNode(", 17);
291
+ if (((yp_call_and_write_node_t *)node)->receiver == NULL) {
292
+ yp_buffer_append_str(buffer, "nil", 3);
293
+ } else {
294
+ prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_and_write_node_t *)node)->receiver);
295
+ }
296
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_and_write_node_t *)node)->call_operator_loc.start == NULL) {
297
+ yp_buffer_append_str(buffer, "nil", 3);
298
+ } else {
299
+ prettyprint_location(buffer, parser, &((yp_call_and_write_node_t *)node)->call_operator_loc);
300
+ }
301
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_and_write_node_t *)node)->message_loc.start == NULL) {
302
+ yp_buffer_append_str(buffer, "nil", 3);
303
+ } else {
304
+ prettyprint_location(buffer, parser, &((yp_call_and_write_node_t *)node)->message_loc);
305
+ }
306
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_and_write_node_t *)node)->opening_loc.start == NULL) {
307
+ yp_buffer_append_str(buffer, "nil", 3);
308
+ } else {
309
+ prettyprint_location(buffer, parser, &((yp_call_and_write_node_t *)node)->opening_loc);
310
+ }
311
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_and_write_node_t *)node)->arguments == NULL) {
312
+ yp_buffer_append_str(buffer, "nil", 3);
313
+ } else {
314
+ prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_and_write_node_t *)node)->arguments);
315
+ }
316
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_and_write_node_t *)node)->closing_loc.start == NULL) {
317
+ yp_buffer_append_str(buffer, "nil", 3);
318
+ } else {
319
+ prettyprint_location(buffer, parser, &((yp_call_and_write_node_t *)node)->closing_loc);
320
+ }
321
+ yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
322
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
323
+ yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
324
+ yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
325
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_and_write_node_t *)node)->read_name), yp_string_length(&((yp_call_and_write_node_t *)node)->read_name));
326
+ yp_buffer_append_str(buffer, "\"", 1);
327
+ yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
328
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_and_write_node_t *)node)->write_name), yp_string_length(&((yp_call_and_write_node_t *)node)->write_name));
329
+ yp_buffer_append_str(buffer, "\"", 1);
330
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_and_write_node_t *)node)->operator_loc);
331
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_and_write_node_t *)node)->value);
332
+ yp_buffer_append_str(buffer, ")", 1);
333
+ break;
334
+ }
335
+ case YP_CALL_NODE: {
275
336
  yp_buffer_append_str(buffer, "CallNode(", 9);
276
337
  if (((yp_call_node_t *)node)->receiver == NULL) {
277
338
  yp_buffer_append_str(buffer, "nil", 3);
278
339
  } else {
279
340
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_node_t *)node)->receiver);
280
341
  }
281
- yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_node_t *)node)->operator_loc.start == NULL) {
342
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_node_t *)node)->call_operator_loc.start == NULL) {
282
343
  yp_buffer_append_str(buffer, "nil", 3);
283
344
  } else {
284
- prettyprint_location(buffer, parser, &((yp_call_node_t *)node)->operator_loc);
345
+ prettyprint_location(buffer, parser, &((yp_call_node_t *)node)->call_operator_loc);
285
346
  }
286
347
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_node_t *)node)->message_loc.start == NULL) {
287
348
  yp_buffer_append_str(buffer, "nil", 3);
@@ -312,39 +373,107 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
312
373
  snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
313
374
  yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
314
375
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
315
- yp_buffer_append_str(buffer, yp_string_source(&((yp_call_node_t *)node)->name), yp_string_length(&((yp_call_node_t *)node)->name));
376
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_node_t *)node)->name), yp_string_length(&((yp_call_node_t *)node)->name));
316
377
  yp_buffer_append_str(buffer, "\"", 1);
317
378
  yp_buffer_append_str(buffer, ")", 1);
318
379
  break;
319
380
  }
320
- case YP_NODE_CALL_OPERATOR_AND_WRITE_NODE: {
321
- yp_buffer_append_str(buffer, "CallOperatorAndWriteNode(", 25);
322
- prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_and_write_node_t *)node)->target);
323
- yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_operator_and_write_node_t *)node)->operator_loc);
324
- yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_and_write_node_t *)node)->value);
325
- yp_buffer_append_str(buffer, ")", 1);
326
- break;
327
- }
328
- case YP_NODE_CALL_OPERATOR_OR_WRITE_NODE: {
329
- yp_buffer_append_str(buffer, "CallOperatorOrWriteNode(", 24);
330
- prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_or_write_node_t *)node)->target);
331
- yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_or_write_node_t *)node)->value);
332
- yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_operator_or_write_node_t *)node)->operator_loc);
333
- yp_buffer_append_str(buffer, ")", 1);
334
- break;
335
- }
336
- case YP_NODE_CALL_OPERATOR_WRITE_NODE: {
381
+ case YP_CALL_OPERATOR_WRITE_NODE: {
337
382
  yp_buffer_append_str(buffer, "CallOperatorWriteNode(", 22);
338
- prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->target);
383
+ if (((yp_call_operator_write_node_t *)node)->receiver == NULL) {
384
+ yp_buffer_append_str(buffer, "nil", 3);
385
+ } else {
386
+ prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->receiver);
387
+ }
388
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_operator_write_node_t *)node)->call_operator_loc.start == NULL) {
389
+ yp_buffer_append_str(buffer, "nil", 3);
390
+ } else {
391
+ prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->call_operator_loc);
392
+ }
393
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_operator_write_node_t *)node)->message_loc.start == NULL) {
394
+ yp_buffer_append_str(buffer, "nil", 3);
395
+ } else {
396
+ prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->message_loc);
397
+ }
398
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_operator_write_node_t *)node)->opening_loc.start == NULL) {
399
+ yp_buffer_append_str(buffer, "nil", 3);
400
+ } else {
401
+ prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->opening_loc);
402
+ }
403
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_operator_write_node_t *)node)->arguments == NULL) {
404
+ yp_buffer_append_str(buffer, "nil", 3);
405
+ } else {
406
+ prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->arguments);
407
+ }
408
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_operator_write_node_t *)node)->closing_loc.start == NULL) {
409
+ yp_buffer_append_str(buffer, "nil", 3);
410
+ } else {
411
+ prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->closing_loc);
412
+ }
413
+ yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
414
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
415
+ yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
416
+ yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
417
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_operator_write_node_t *)node)->read_name), yp_string_length(&((yp_call_operator_write_node_t *)node)->read_name));
418
+ yp_buffer_append_str(buffer, "\"", 1);
419
+ yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
420
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_operator_write_node_t *)node)->write_name), yp_string_length(&((yp_call_operator_write_node_t *)node)->write_name));
421
+ yp_buffer_append_str(buffer, "\"", 1);
422
+ yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
423
+ snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_call_operator_write_node_t *)node)->operator);
424
+ yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
339
425
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->operator_loc);
340
426
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->value);
341
- yp_buffer_append_str(buffer, ", ", 2); char operator_id_buffer[12];
342
- snprintf(operator_id_buffer, sizeof(operator_id_buffer), "%u", ((yp_call_operator_write_node_t *)node)->operator_id);
343
- yp_buffer_append_str(buffer, operator_id_buffer, strlen(operator_id_buffer));
344
427
  yp_buffer_append_str(buffer, ")", 1);
345
428
  break;
346
429
  }
347
- case YP_NODE_CAPTURE_PATTERN_NODE: {
430
+ case YP_CALL_OR_WRITE_NODE: {
431
+ yp_buffer_append_str(buffer, "CallOrWriteNode(", 16);
432
+ if (((yp_call_or_write_node_t *)node)->receiver == NULL) {
433
+ yp_buffer_append_str(buffer, "nil", 3);
434
+ } else {
435
+ prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_or_write_node_t *)node)->receiver);
436
+ }
437
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_or_write_node_t *)node)->call_operator_loc.start == NULL) {
438
+ yp_buffer_append_str(buffer, "nil", 3);
439
+ } else {
440
+ prettyprint_location(buffer, parser, &((yp_call_or_write_node_t *)node)->call_operator_loc);
441
+ }
442
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_or_write_node_t *)node)->message_loc.start == NULL) {
443
+ yp_buffer_append_str(buffer, "nil", 3);
444
+ } else {
445
+ prettyprint_location(buffer, parser, &((yp_call_or_write_node_t *)node)->message_loc);
446
+ }
447
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_or_write_node_t *)node)->opening_loc.start == NULL) {
448
+ yp_buffer_append_str(buffer, "nil", 3);
449
+ } else {
450
+ prettyprint_location(buffer, parser, &((yp_call_or_write_node_t *)node)->opening_loc);
451
+ }
452
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_or_write_node_t *)node)->arguments == NULL) {
453
+ yp_buffer_append_str(buffer, "nil", 3);
454
+ } else {
455
+ prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_or_write_node_t *)node)->arguments);
456
+ }
457
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_call_or_write_node_t *)node)->closing_loc.start == NULL) {
458
+ yp_buffer_append_str(buffer, "nil", 3);
459
+ } else {
460
+ prettyprint_location(buffer, parser, &((yp_call_or_write_node_t *)node)->closing_loc);
461
+ }
462
+ yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
463
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
464
+ yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
465
+ yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
466
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_or_write_node_t *)node)->read_name), yp_string_length(&((yp_call_or_write_node_t *)node)->read_name));
467
+ yp_buffer_append_str(buffer, "\"", 1);
468
+ yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
469
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_or_write_node_t *)node)->write_name), yp_string_length(&((yp_call_or_write_node_t *)node)->write_name));
470
+ yp_buffer_append_str(buffer, "\"", 1);
471
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_or_write_node_t *)node)->operator_loc);
472
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_or_write_node_t *)node)->value);
473
+ yp_buffer_append_str(buffer, ")", 1);
474
+ break;
475
+ }
476
+ case YP_CAPTURE_PATTERN_NODE: {
348
477
  yp_buffer_append_str(buffer, "CapturePatternNode(", 19);
349
478
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_capture_pattern_node_t *)node)->value);
350
479
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_capture_pattern_node_t *)node)->target);
@@ -352,7 +481,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
352
481
  yp_buffer_append_str(buffer, ")", 1);
353
482
  break;
354
483
  }
355
- case YP_NODE_CASE_NODE: {
484
+ case YP_CASE_NODE: {
356
485
  yp_buffer_append_str(buffer, "CaseNode(", 9);
357
486
  if (((yp_case_node_t *)node)->predicate == NULL) {
358
487
  yp_buffer_append_str(buffer, "nil", 3);
@@ -375,7 +504,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
375
504
  yp_buffer_append_str(buffer, ")", 1);
376
505
  break;
377
506
  }
378
- case YP_NODE_CLASS_NODE: {
507
+ case YP_CLASS_NODE: {
379
508
  yp_buffer_append_str(buffer, "ClassNode(", 10);
380
509
  yp_buffer_append_str(buffer, "[", 1);
381
510
  for (uint32_t index = 0; index < ((yp_class_node_t *)node)->locals.size; index++) {
@@ -403,23 +532,29 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
403
532
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_node_t *)node)->body);
404
533
  }
405
534
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_node_t *)node)->end_keyword_loc);
406
- yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
407
- yp_buffer_append_str(buffer, yp_string_source(&((yp_class_node_t *)node)->name), yp_string_length(&((yp_class_node_t *)node)->name));
408
- yp_buffer_append_str(buffer, "\"", 1);
535
+ yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
536
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_node_t *)node)->name);
537
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
409
538
  yp_buffer_append_str(buffer, ")", 1);
410
539
  break;
411
540
  }
412
- case YP_NODE_CLASS_VARIABLE_AND_WRITE_NODE: {
541
+ case YP_CLASS_VARIABLE_AND_WRITE_NODE: {
413
542
  yp_buffer_append_str(buffer, "ClassVariableAndWriteNode(", 26);
414
- prettyprint_location(buffer, parser, &((yp_class_variable_and_write_node_t *)node)->name_loc);
543
+ char name_buffer[12];
544
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_and_write_node_t *)node)->name);
545
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
546
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_and_write_node_t *)node)->name_loc);
415
547
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_and_write_node_t *)node)->operator_loc);
416
548
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_and_write_node_t *)node)->value);
417
549
  yp_buffer_append_str(buffer, ")", 1);
418
550
  break;
419
551
  }
420
- case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
552
+ case YP_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
421
553
  yp_buffer_append_str(buffer, "ClassVariableOperatorWriteNode(", 31);
422
- prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->name_loc);
554
+ char name_buffer[12];
555
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_operator_write_node_t *)node)->name);
556
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
557
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->name_loc);
423
558
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->operator_loc);
424
559
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_operator_write_node_t *)node)->value);
425
560
  yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
@@ -428,32 +563,40 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
428
563
  yp_buffer_append_str(buffer, ")", 1);
429
564
  break;
430
565
  }
431
- case YP_NODE_CLASS_VARIABLE_OR_WRITE_NODE: {
566
+ case YP_CLASS_VARIABLE_OR_WRITE_NODE: {
432
567
  yp_buffer_append_str(buffer, "ClassVariableOrWriteNode(", 25);
433
- prettyprint_location(buffer, parser, &((yp_class_variable_or_write_node_t *)node)->name_loc);
568
+ char name_buffer[12];
569
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_or_write_node_t *)node)->name);
570
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
571
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_or_write_node_t *)node)->name_loc);
434
572
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_or_write_node_t *)node)->operator_loc);
435
573
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_or_write_node_t *)node)->value);
436
574
  yp_buffer_append_str(buffer, ")", 1);
437
575
  break;
438
576
  }
439
- case YP_NODE_CLASS_VARIABLE_READ_NODE: {
577
+ case YP_CLASS_VARIABLE_READ_NODE: {
440
578
  yp_buffer_append_str(buffer, "ClassVariableReadNode(", 22);
579
+ char name_buffer[12];
580
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_read_node_t *)node)->name);
581
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
441
582
  yp_buffer_append_str(buffer, ")", 1);
442
583
  break;
443
584
  }
444
- case YP_NODE_CLASS_VARIABLE_TARGET_NODE: {
585
+ case YP_CLASS_VARIABLE_TARGET_NODE: {
445
586
  yp_buffer_append_str(buffer, "ClassVariableTargetNode(", 24);
587
+ char name_buffer[12];
588
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_target_node_t *)node)->name);
589
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
446
590
  yp_buffer_append_str(buffer, ")", 1);
447
591
  break;
448
592
  }
449
- case YP_NODE_CLASS_VARIABLE_WRITE_NODE: {
593
+ case YP_CLASS_VARIABLE_WRITE_NODE: {
450
594
  yp_buffer_append_str(buffer, "ClassVariableWriteNode(", 23);
451
- prettyprint_location(buffer, parser, &((yp_class_variable_write_node_t *)node)->name_loc);
452
- yp_buffer_append_str(buffer, ", ", 2); if (((yp_class_variable_write_node_t *)node)->value == NULL) {
453
- yp_buffer_append_str(buffer, "nil", 3);
454
- } else {
455
- prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_write_node_t *)node)->value);
456
- }
595
+ char name_buffer[12];
596
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_write_node_t *)node)->name);
597
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
598
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_write_node_t *)node)->name_loc);
599
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_write_node_t *)node)->value);
457
600
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_class_variable_write_node_t *)node)->operator_loc.start == NULL) {
458
601
  yp_buffer_append_str(buffer, "nil", 3);
459
602
  } else {
@@ -462,17 +605,23 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
462
605
  yp_buffer_append_str(buffer, ")", 1);
463
606
  break;
464
607
  }
465
- case YP_NODE_CONSTANT_AND_WRITE_NODE: {
608
+ case YP_CONSTANT_AND_WRITE_NODE: {
466
609
  yp_buffer_append_str(buffer, "ConstantAndWriteNode(", 21);
467
- prettyprint_location(buffer, parser, &((yp_constant_and_write_node_t *)node)->name_loc);
610
+ char name_buffer[12];
611
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_constant_and_write_node_t *)node)->name);
612
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
613
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_and_write_node_t *)node)->name_loc);
468
614
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_and_write_node_t *)node)->operator_loc);
469
615
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_and_write_node_t *)node)->value);
470
616
  yp_buffer_append_str(buffer, ")", 1);
471
617
  break;
472
618
  }
473
- case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE: {
619
+ case YP_CONSTANT_OPERATOR_WRITE_NODE: {
474
620
  yp_buffer_append_str(buffer, "ConstantOperatorWriteNode(", 26);
475
- prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->name_loc);
621
+ char name_buffer[12];
622
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_constant_operator_write_node_t *)node)->name);
623
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
624
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->name_loc);
476
625
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->operator_loc);
477
626
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_operator_write_node_t *)node)->value);
478
627
  yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
@@ -481,15 +630,18 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
481
630
  yp_buffer_append_str(buffer, ")", 1);
482
631
  break;
483
632
  }
484
- case YP_NODE_CONSTANT_OR_WRITE_NODE: {
633
+ case YP_CONSTANT_OR_WRITE_NODE: {
485
634
  yp_buffer_append_str(buffer, "ConstantOrWriteNode(", 20);
486
- prettyprint_location(buffer, parser, &((yp_constant_or_write_node_t *)node)->name_loc);
635
+ char name_buffer[12];
636
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_constant_or_write_node_t *)node)->name);
637
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
638
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_or_write_node_t *)node)->name_loc);
487
639
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_or_write_node_t *)node)->operator_loc);
488
640
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_or_write_node_t *)node)->value);
489
641
  yp_buffer_append_str(buffer, ")", 1);
490
642
  break;
491
643
  }
492
- case YP_NODE_CONSTANT_PATH_AND_WRITE_NODE: {
644
+ case YP_CONSTANT_PATH_AND_WRITE_NODE: {
493
645
  yp_buffer_append_str(buffer, "ConstantPathAndWriteNode(", 25);
494
646
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_and_write_node_t *)node)->target);
495
647
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_and_write_node_t *)node)->operator_loc);
@@ -497,7 +649,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
497
649
  yp_buffer_append_str(buffer, ")", 1);
498
650
  break;
499
651
  }
500
- case YP_NODE_CONSTANT_PATH_NODE: {
652
+ case YP_CONSTANT_PATH_NODE: {
501
653
  yp_buffer_append_str(buffer, "ConstantPathNode(", 17);
502
654
  if (((yp_constant_path_node_t *)node)->parent == NULL) {
503
655
  yp_buffer_append_str(buffer, "nil", 3);
@@ -509,7 +661,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
509
661
  yp_buffer_append_str(buffer, ")", 1);
510
662
  break;
511
663
  }
512
- case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
664
+ case YP_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
513
665
  yp_buffer_append_str(buffer, "ConstantPathOperatorWriteNode(", 30);
514
666
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->target);
515
667
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_operator_write_node_t *)node)->operator_loc);
@@ -520,7 +672,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
520
672
  yp_buffer_append_str(buffer, ")", 1);
521
673
  break;
522
674
  }
523
- case YP_NODE_CONSTANT_PATH_OR_WRITE_NODE: {
675
+ case YP_CONSTANT_PATH_OR_WRITE_NODE: {
524
676
  yp_buffer_append_str(buffer, "ConstantPathOrWriteNode(", 24);
525
677
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_or_write_node_t *)node)->target);
526
678
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_or_write_node_t *)node)->operator_loc);
@@ -528,7 +680,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
528
680
  yp_buffer_append_str(buffer, ")", 1);
529
681
  break;
530
682
  }
531
- case YP_NODE_CONSTANT_PATH_TARGET_NODE: {
683
+ case YP_CONSTANT_PATH_TARGET_NODE: {
532
684
  yp_buffer_append_str(buffer, "ConstantPathTargetNode(", 23);
533
685
  if (((yp_constant_path_target_node_t *)node)->parent == NULL) {
534
686
  yp_buffer_append_str(buffer, "nil", 3);
@@ -540,7 +692,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
540
692
  yp_buffer_append_str(buffer, ")", 1);
541
693
  break;
542
694
  }
543
- case YP_NODE_CONSTANT_PATH_WRITE_NODE: {
695
+ case YP_CONSTANT_PATH_WRITE_NODE: {
544
696
  yp_buffer_append_str(buffer, "ConstantPathWriteNode(", 22);
545
697
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_write_node_t *)node)->target);
546
698
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_write_node_t *)node)->operator_loc);
@@ -548,27 +700,39 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
548
700
  yp_buffer_append_str(buffer, ")", 1);
549
701
  break;
550
702
  }
551
- case YP_NODE_CONSTANT_READ_NODE: {
703
+ case YP_CONSTANT_READ_NODE: {
552
704
  yp_buffer_append_str(buffer, "ConstantReadNode(", 17);
705
+ char name_buffer[12];
706
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_constant_read_node_t *)node)->name);
707
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
553
708
  yp_buffer_append_str(buffer, ")", 1);
554
709
  break;
555
710
  }
556
- case YP_NODE_CONSTANT_TARGET_NODE: {
711
+ case YP_CONSTANT_TARGET_NODE: {
557
712
  yp_buffer_append_str(buffer, "ConstantTargetNode(", 19);
713
+ char name_buffer[12];
714
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_constant_target_node_t *)node)->name);
715
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
558
716
  yp_buffer_append_str(buffer, ")", 1);
559
717
  break;
560
718
  }
561
- case YP_NODE_CONSTANT_WRITE_NODE: {
719
+ case YP_CONSTANT_WRITE_NODE: {
562
720
  yp_buffer_append_str(buffer, "ConstantWriteNode(", 18);
563
- prettyprint_location(buffer, parser, &((yp_constant_write_node_t *)node)->name_loc);
721
+ char name_buffer[12];
722
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_constant_write_node_t *)node)->name);
723
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
724
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_write_node_t *)node)->name_loc);
564
725
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_write_node_t *)node)->value);
565
726
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_write_node_t *)node)->operator_loc);
566
727
  yp_buffer_append_str(buffer, ")", 1);
567
728
  break;
568
729
  }
569
- case YP_NODE_DEF_NODE: {
730
+ case YP_DEF_NODE: {
570
731
  yp_buffer_append_str(buffer, "DefNode(", 8);
571
- prettyprint_location(buffer, parser, &((yp_def_node_t *)node)->name_loc);
732
+ char name_buffer[12];
733
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_def_node_t *)node)->name);
734
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
735
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_def_node_t *)node)->name_loc);
572
736
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_def_node_t *)node)->receiver == NULL) {
573
737
  yp_buffer_append_str(buffer, "nil", 3);
574
738
  } else {
@@ -621,7 +785,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
621
785
  yp_buffer_append_str(buffer, ")", 1);
622
786
  break;
623
787
  }
624
- case YP_NODE_DEFINED_NODE: {
788
+ case YP_DEFINED_NODE: {
625
789
  yp_buffer_append_str(buffer, "DefinedNode(", 12);
626
790
  if (((yp_defined_node_t *)node)->lparen_loc.start == NULL) {
627
791
  yp_buffer_append_str(buffer, "nil", 3);
@@ -638,7 +802,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
638
802
  yp_buffer_append_str(buffer, ")", 1);
639
803
  break;
640
804
  }
641
- case YP_NODE_ELSE_NODE: {
805
+ case YP_ELSE_NODE: {
642
806
  yp_buffer_append_str(buffer, "ElseNode(", 9);
643
807
  prettyprint_location(buffer, parser, &((yp_else_node_t *)node)->else_keyword_loc);
644
808
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_else_node_t *)node)->statements == NULL) {
@@ -654,7 +818,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
654
818
  yp_buffer_append_str(buffer, ")", 1);
655
819
  break;
656
820
  }
657
- case YP_NODE_EMBEDDED_STATEMENTS_NODE: {
821
+ case YP_EMBEDDED_STATEMENTS_NODE: {
658
822
  yp_buffer_append_str(buffer, "EmbeddedStatementsNode(", 23);
659
823
  prettyprint_location(buffer, parser, &((yp_embedded_statements_node_t *)node)->opening_loc);
660
824
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_embedded_statements_node_t *)node)->statements == NULL) {
@@ -666,14 +830,14 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
666
830
  yp_buffer_append_str(buffer, ")", 1);
667
831
  break;
668
832
  }
669
- case YP_NODE_EMBEDDED_VARIABLE_NODE: {
833
+ case YP_EMBEDDED_VARIABLE_NODE: {
670
834
  yp_buffer_append_str(buffer, "EmbeddedVariableNode(", 21);
671
835
  prettyprint_location(buffer, parser, &((yp_embedded_variable_node_t *)node)->operator_loc);
672
836
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_embedded_variable_node_t *)node)->variable);
673
837
  yp_buffer_append_str(buffer, ")", 1);
674
838
  break;
675
839
  }
676
- case YP_NODE_ENSURE_NODE: {
840
+ case YP_ENSURE_NODE: {
677
841
  yp_buffer_append_str(buffer, "EnsureNode(", 11);
678
842
  prettyprint_location(buffer, parser, &((yp_ensure_node_t *)node)->ensure_keyword_loc);
679
843
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_ensure_node_t *)node)->statements == NULL) {
@@ -685,12 +849,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
685
849
  yp_buffer_append_str(buffer, ")", 1);
686
850
  break;
687
851
  }
688
- case YP_NODE_FALSE_NODE: {
852
+ case YP_FALSE_NODE: {
689
853
  yp_buffer_append_str(buffer, "FalseNode(", 10);
690
854
  yp_buffer_append_str(buffer, ")", 1);
691
855
  break;
692
856
  }
693
- case YP_NODE_FIND_PATTERN_NODE: {
857
+ case YP_FIND_PATTERN_NODE: {
694
858
  yp_buffer_append_str(buffer, "FindPatternNode(", 16);
695
859
  if (((yp_find_pattern_node_t *)node)->constant == NULL) {
696
860
  yp_buffer_append_str(buffer, "nil", 3);
@@ -718,7 +882,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
718
882
  yp_buffer_append_str(buffer, ")", 1);
719
883
  break;
720
884
  }
721
- case YP_NODE_FLIP_FLOP_NODE: {
885
+ case YP_FLIP_FLOP_NODE: {
722
886
  yp_buffer_append_str(buffer, "FlipFlopNode(", 13);
723
887
  if (((yp_flip_flop_node_t *)node)->left == NULL) {
724
888
  yp_buffer_append_str(buffer, "nil", 3);
@@ -737,12 +901,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
737
901
  yp_buffer_append_str(buffer, ")", 1);
738
902
  break;
739
903
  }
740
- case YP_NODE_FLOAT_NODE: {
904
+ case YP_FLOAT_NODE: {
741
905
  yp_buffer_append_str(buffer, "FloatNode(", 10);
742
906
  yp_buffer_append_str(buffer, ")", 1);
743
907
  break;
744
908
  }
745
- case YP_NODE_FOR_NODE: {
909
+ case YP_FOR_NODE: {
746
910
  yp_buffer_append_str(buffer, "ForNode(", 8);
747
911
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_for_node_t *)node)->index);
748
912
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_for_node_t *)node)->collection);
@@ -762,17 +926,17 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
762
926
  yp_buffer_append_str(buffer, ")", 1);
763
927
  break;
764
928
  }
765
- case YP_NODE_FORWARDING_ARGUMENTS_NODE: {
929
+ case YP_FORWARDING_ARGUMENTS_NODE: {
766
930
  yp_buffer_append_str(buffer, "ForwardingArgumentsNode(", 24);
767
931
  yp_buffer_append_str(buffer, ")", 1);
768
932
  break;
769
933
  }
770
- case YP_NODE_FORWARDING_PARAMETER_NODE: {
934
+ case YP_FORWARDING_PARAMETER_NODE: {
771
935
  yp_buffer_append_str(buffer, "ForwardingParameterNode(", 24);
772
936
  yp_buffer_append_str(buffer, ")", 1);
773
937
  break;
774
938
  }
775
- case YP_NODE_FORWARDING_SUPER_NODE: {
939
+ case YP_FORWARDING_SUPER_NODE: {
776
940
  yp_buffer_append_str(buffer, "ForwardingSuperNode(", 20);
777
941
  if (((yp_forwarding_super_node_t *)node)->block == NULL) {
778
942
  yp_buffer_append_str(buffer, "nil", 3);
@@ -782,17 +946,23 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
782
946
  yp_buffer_append_str(buffer, ")", 1);
783
947
  break;
784
948
  }
785
- case YP_NODE_GLOBAL_VARIABLE_AND_WRITE_NODE: {
949
+ case YP_GLOBAL_VARIABLE_AND_WRITE_NODE: {
786
950
  yp_buffer_append_str(buffer, "GlobalVariableAndWriteNode(", 27);
787
- prettyprint_location(buffer, parser, &((yp_global_variable_and_write_node_t *)node)->name_loc);
951
+ char name_buffer[12];
952
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_global_variable_and_write_node_t *)node)->name);
953
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
954
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_and_write_node_t *)node)->name_loc);
788
955
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_and_write_node_t *)node)->operator_loc);
789
956
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_and_write_node_t *)node)->value);
790
957
  yp_buffer_append_str(buffer, ")", 1);
791
958
  break;
792
959
  }
793
- case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
960
+ case YP_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
794
961
  yp_buffer_append_str(buffer, "GlobalVariableOperatorWriteNode(", 32);
795
- prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->name_loc);
962
+ char name_buffer[12];
963
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_global_variable_operator_write_node_t *)node)->name);
964
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
965
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->name_loc);
796
966
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->operator_loc);
797
967
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_operator_write_node_t *)node)->value);
798
968
  yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
@@ -801,33 +971,45 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
801
971
  yp_buffer_append_str(buffer, ")", 1);
802
972
  break;
803
973
  }
804
- case YP_NODE_GLOBAL_VARIABLE_OR_WRITE_NODE: {
974
+ case YP_GLOBAL_VARIABLE_OR_WRITE_NODE: {
805
975
  yp_buffer_append_str(buffer, "GlobalVariableOrWriteNode(", 26);
806
- prettyprint_location(buffer, parser, &((yp_global_variable_or_write_node_t *)node)->name_loc);
976
+ char name_buffer[12];
977
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_global_variable_or_write_node_t *)node)->name);
978
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
979
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_or_write_node_t *)node)->name_loc);
807
980
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_or_write_node_t *)node)->operator_loc);
808
981
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_or_write_node_t *)node)->value);
809
982
  yp_buffer_append_str(buffer, ")", 1);
810
983
  break;
811
984
  }
812
- case YP_NODE_GLOBAL_VARIABLE_READ_NODE: {
985
+ case YP_GLOBAL_VARIABLE_READ_NODE: {
813
986
  yp_buffer_append_str(buffer, "GlobalVariableReadNode(", 23);
987
+ char name_buffer[12];
988
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_global_variable_read_node_t *)node)->name);
989
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
814
990
  yp_buffer_append_str(buffer, ")", 1);
815
991
  break;
816
992
  }
817
- case YP_NODE_GLOBAL_VARIABLE_TARGET_NODE: {
993
+ case YP_GLOBAL_VARIABLE_TARGET_NODE: {
818
994
  yp_buffer_append_str(buffer, "GlobalVariableTargetNode(", 25);
995
+ char name_buffer[12];
996
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_global_variable_target_node_t *)node)->name);
997
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
819
998
  yp_buffer_append_str(buffer, ")", 1);
820
999
  break;
821
1000
  }
822
- case YP_NODE_GLOBAL_VARIABLE_WRITE_NODE: {
1001
+ case YP_GLOBAL_VARIABLE_WRITE_NODE: {
823
1002
  yp_buffer_append_str(buffer, "GlobalVariableWriteNode(", 24);
824
- prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->name_loc);
825
- yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->operator_loc);
1003
+ char name_buffer[12];
1004
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_global_variable_write_node_t *)node)->name);
1005
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1006
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->name_loc);
826
1007
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_write_node_t *)node)->value);
1008
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->operator_loc);
827
1009
  yp_buffer_append_str(buffer, ")", 1);
828
1010
  break;
829
1011
  }
830
- case YP_NODE_HASH_NODE: {
1012
+ case YP_HASH_NODE: {
831
1013
  yp_buffer_append_str(buffer, "HashNode(", 9);
832
1014
  prettyprint_location(buffer, parser, &((yp_hash_node_t *)node)->opening_loc);
833
1015
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
@@ -840,7 +1022,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
840
1022
  yp_buffer_append_str(buffer, ")", 1);
841
1023
  break;
842
1024
  }
843
- case YP_NODE_HASH_PATTERN_NODE: {
1025
+ case YP_HASH_PATTERN_NODE: {
844
1026
  yp_buffer_append_str(buffer, "HashPatternNode(", 16);
845
1027
  if (((yp_hash_pattern_node_t *)node)->constant == NULL) {
846
1028
  yp_buffer_append_str(buffer, "nil", 3);
@@ -871,7 +1053,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
871
1053
  yp_buffer_append_str(buffer, ")", 1);
872
1054
  break;
873
1055
  }
874
- case YP_NODE_IF_NODE: {
1056
+ case YP_IF_NODE: {
875
1057
  yp_buffer_append_str(buffer, "IfNode(", 7);
876
1058
  if (((yp_if_node_t *)node)->if_keyword_loc.start == NULL) {
877
1059
  yp_buffer_append_str(buffer, "nil", 3);
@@ -897,13 +1079,13 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
897
1079
  yp_buffer_append_str(buffer, ")", 1);
898
1080
  break;
899
1081
  }
900
- case YP_NODE_IMAGINARY_NODE: {
1082
+ case YP_IMAGINARY_NODE: {
901
1083
  yp_buffer_append_str(buffer, "ImaginaryNode(", 14);
902
1084
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_imaginary_node_t *)node)->numeric);
903
1085
  yp_buffer_append_str(buffer, ")", 1);
904
1086
  break;
905
1087
  }
906
- case YP_NODE_IN_NODE: {
1088
+ case YP_IN_NODE: {
907
1089
  yp_buffer_append_str(buffer, "InNode(", 7);
908
1090
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_in_node_t *)node)->pattern);
909
1091
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_in_node_t *)node)->statements == NULL) {
@@ -920,17 +1102,23 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
920
1102
  yp_buffer_append_str(buffer, ")", 1);
921
1103
  break;
922
1104
  }
923
- case YP_NODE_INSTANCE_VARIABLE_AND_WRITE_NODE: {
1105
+ case YP_INSTANCE_VARIABLE_AND_WRITE_NODE: {
924
1106
  yp_buffer_append_str(buffer, "InstanceVariableAndWriteNode(", 29);
925
- prettyprint_location(buffer, parser, &((yp_instance_variable_and_write_node_t *)node)->name_loc);
1107
+ char name_buffer[12];
1108
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_and_write_node_t *)node)->name);
1109
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1110
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_and_write_node_t *)node)->name_loc);
926
1111
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_and_write_node_t *)node)->operator_loc);
927
1112
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_and_write_node_t *)node)->value);
928
1113
  yp_buffer_append_str(buffer, ")", 1);
929
1114
  break;
930
1115
  }
931
- case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
1116
+ case YP_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
932
1117
  yp_buffer_append_str(buffer, "InstanceVariableOperatorWriteNode(", 34);
933
- prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->name_loc);
1118
+ char name_buffer[12];
1119
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_operator_write_node_t *)node)->name);
1120
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1121
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->name_loc);
934
1122
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->operator_loc);
935
1123
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_operator_write_node_t *)node)->value);
936
1124
  yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
@@ -939,38 +1127,50 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
939
1127
  yp_buffer_append_str(buffer, ")", 1);
940
1128
  break;
941
1129
  }
942
- case YP_NODE_INSTANCE_VARIABLE_OR_WRITE_NODE: {
1130
+ case YP_INSTANCE_VARIABLE_OR_WRITE_NODE: {
943
1131
  yp_buffer_append_str(buffer, "InstanceVariableOrWriteNode(", 28);
944
- prettyprint_location(buffer, parser, &((yp_instance_variable_or_write_node_t *)node)->name_loc);
1132
+ char name_buffer[12];
1133
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_or_write_node_t *)node)->name);
1134
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1135
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_or_write_node_t *)node)->name_loc);
945
1136
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_or_write_node_t *)node)->operator_loc);
946
1137
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_or_write_node_t *)node)->value);
947
1138
  yp_buffer_append_str(buffer, ")", 1);
948
1139
  break;
949
1140
  }
950
- case YP_NODE_INSTANCE_VARIABLE_READ_NODE: {
1141
+ case YP_INSTANCE_VARIABLE_READ_NODE: {
951
1142
  yp_buffer_append_str(buffer, "InstanceVariableReadNode(", 25);
1143
+ char name_buffer[12];
1144
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_read_node_t *)node)->name);
1145
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
952
1146
  yp_buffer_append_str(buffer, ")", 1);
953
1147
  break;
954
1148
  }
955
- case YP_NODE_INSTANCE_VARIABLE_TARGET_NODE: {
1149
+ case YP_INSTANCE_VARIABLE_TARGET_NODE: {
956
1150
  yp_buffer_append_str(buffer, "InstanceVariableTargetNode(", 27);
1151
+ char name_buffer[12];
1152
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_target_node_t *)node)->name);
1153
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
957
1154
  yp_buffer_append_str(buffer, ")", 1);
958
1155
  break;
959
1156
  }
960
- case YP_NODE_INSTANCE_VARIABLE_WRITE_NODE: {
1157
+ case YP_INSTANCE_VARIABLE_WRITE_NODE: {
961
1158
  yp_buffer_append_str(buffer, "InstanceVariableWriteNode(", 26);
962
- prettyprint_location(buffer, parser, &((yp_instance_variable_write_node_t *)node)->name_loc);
1159
+ char name_buffer[12];
1160
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_write_node_t *)node)->name);
1161
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1162
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_write_node_t *)node)->name_loc);
963
1163
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_write_node_t *)node)->value);
964
1164
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_write_node_t *)node)->operator_loc);
965
1165
  yp_buffer_append_str(buffer, ")", 1);
966
1166
  break;
967
1167
  }
968
- case YP_NODE_INTEGER_NODE: {
1168
+ case YP_INTEGER_NODE: {
969
1169
  yp_buffer_append_str(buffer, "IntegerNode(", 12);
970
1170
  yp_buffer_append_str(buffer, ")", 1);
971
1171
  break;
972
1172
  }
973
- case YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
1173
+ case YP_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
974
1174
  yp_buffer_append_str(buffer, "InterpolatedRegularExpressionNode(", 34);
975
1175
  prettyprint_location(buffer, parser, &((yp_interpolated_regular_expression_node_t *)node)->opening_loc);
976
1176
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
@@ -986,7 +1186,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
986
1186
  yp_buffer_append_str(buffer, ")", 1);
987
1187
  break;
988
1188
  }
989
- case YP_NODE_INTERPOLATED_STRING_NODE: {
1189
+ case YP_INTERPOLATED_STRING_NODE: {
990
1190
  yp_buffer_append_str(buffer, "InterpolatedStringNode(", 23);
991
1191
  if (((yp_interpolated_string_node_t *)node)->opening_loc.start == NULL) {
992
1192
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1007,7 +1207,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1007
1207
  yp_buffer_append_str(buffer, ")", 1);
1008
1208
  break;
1009
1209
  }
1010
- case YP_NODE_INTERPOLATED_SYMBOL_NODE: {
1210
+ case YP_INTERPOLATED_SYMBOL_NODE: {
1011
1211
  yp_buffer_append_str(buffer, "InterpolatedSymbolNode(", 23);
1012
1212
  if (((yp_interpolated_symbol_node_t *)node)->opening_loc.start == NULL) {
1013
1213
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1028,7 +1228,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1028
1228
  yp_buffer_append_str(buffer, ")", 1);
1029
1229
  break;
1030
1230
  }
1031
- case YP_NODE_INTERPOLATED_X_STRING_NODE: {
1231
+ case YP_INTERPOLATED_X_STRING_NODE: {
1032
1232
  yp_buffer_append_str(buffer, "InterpolatedXStringNode(", 24);
1033
1233
  prettyprint_location(buffer, parser, &((yp_interpolated_x_string_node_t *)node)->opening_loc);
1034
1234
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
@@ -1041,7 +1241,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1041
1241
  yp_buffer_append_str(buffer, ")", 1);
1042
1242
  break;
1043
1243
  }
1044
- case YP_NODE_KEYWORD_HASH_NODE: {
1244
+ case YP_KEYWORD_HASH_NODE: {
1045
1245
  yp_buffer_append_str(buffer, "KeywordHashNode(", 16);
1046
1246
  yp_buffer_append_str(buffer, "[", 1);
1047
1247
  for (uint32_t index = 0; index < ((yp_keyword_hash_node_t *)node)->elements.size; index++) {
@@ -1052,9 +1252,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1052
1252
  yp_buffer_append_str(buffer, ")", 1);
1053
1253
  break;
1054
1254
  }
1055
- case YP_NODE_KEYWORD_PARAMETER_NODE: {
1255
+ case YP_KEYWORD_PARAMETER_NODE: {
1056
1256
  yp_buffer_append_str(buffer, "KeywordParameterNode(", 21);
1057
- prettyprint_location(buffer, parser, &((yp_keyword_parameter_node_t *)node)->name_loc);
1257
+ char name_buffer[12];
1258
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_keyword_parameter_node_t *)node)->name);
1259
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1260
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_keyword_parameter_node_t *)node)->name_loc);
1058
1261
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_keyword_parameter_node_t *)node)->value == NULL) {
1059
1262
  yp_buffer_append_str(buffer, "nil", 3);
1060
1263
  } else {
@@ -1063,18 +1266,25 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1063
1266
  yp_buffer_append_str(buffer, ")", 1);
1064
1267
  break;
1065
1268
  }
1066
- case YP_NODE_KEYWORD_REST_PARAMETER_NODE: {
1269
+ case YP_KEYWORD_REST_PARAMETER_NODE: {
1067
1270
  yp_buffer_append_str(buffer, "KeywordRestParameterNode(", 25);
1068
- prettyprint_location(buffer, parser, &((yp_keyword_rest_parameter_node_t *)node)->operator_loc);
1271
+ if (((yp_keyword_rest_parameter_node_t *)node)->name == 0) {
1272
+ yp_buffer_append_str(buffer, "nil", 3);
1273
+ } else {
1274
+ char name_buffer[12];
1275
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_keyword_rest_parameter_node_t *)node)->name);
1276
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1277
+ }
1069
1278
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_keyword_rest_parameter_node_t *)node)->name_loc.start == NULL) {
1070
1279
  yp_buffer_append_str(buffer, "nil", 3);
1071
1280
  } else {
1072
1281
  prettyprint_location(buffer, parser, &((yp_keyword_rest_parameter_node_t *)node)->name_loc);
1073
1282
  }
1283
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_keyword_rest_parameter_node_t *)node)->operator_loc);
1074
1284
  yp_buffer_append_str(buffer, ")", 1);
1075
1285
  break;
1076
1286
  }
1077
- case YP_NODE_LAMBDA_NODE: {
1287
+ case YP_LAMBDA_NODE: {
1078
1288
  yp_buffer_append_str(buffer, "LambdaNode(", 11);
1079
1289
  yp_buffer_append_str(buffer, "[", 1);
1080
1290
  for (uint32_t index = 0; index < ((yp_lambda_node_t *)node)->locals.size; index++) {
@@ -1100,88 +1310,88 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1100
1310
  yp_buffer_append_str(buffer, ")", 1);
1101
1311
  break;
1102
1312
  }
1103
- case YP_NODE_LOCAL_VARIABLE_AND_WRITE_NODE: {
1313
+ case YP_LOCAL_VARIABLE_AND_WRITE_NODE: {
1104
1314
  yp_buffer_append_str(buffer, "LocalVariableAndWriteNode(", 26);
1105
1315
  prettyprint_location(buffer, parser, &((yp_local_variable_and_write_node_t *)node)->name_loc);
1106
1316
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_and_write_node_t *)node)->operator_loc);
1107
1317
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_and_write_node_t *)node)->value);
1108
- yp_buffer_append_str(buffer, ", ", 2); char constant_id_buffer[12];
1109
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_and_write_node_t *)node)->constant_id);
1110
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1318
+ yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
1319
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_and_write_node_t *)node)->name);
1320
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1111
1321
  yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
1112
1322
  snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_and_write_node_t *)node)->depth);
1113
1323
  yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
1114
1324
  yp_buffer_append_str(buffer, ")", 1);
1115
1325
  break;
1116
1326
  }
1117
- case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
1327
+ case YP_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
1118
1328
  yp_buffer_append_str(buffer, "LocalVariableOperatorWriteNode(", 31);
1119
1329
  prettyprint_location(buffer, parser, &((yp_local_variable_operator_write_node_t *)node)->name_loc);
1120
1330
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_operator_write_node_t *)node)->operator_loc);
1121
1331
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_operator_write_node_t *)node)->value);
1122
- yp_buffer_append_str(buffer, ", ", 2); char constant_id_buffer[12];
1123
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->constant_id);
1124
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1125
- yp_buffer_append_str(buffer, ", ", 2); char operator_id_buffer[12];
1126
- snprintf(operator_id_buffer, sizeof(operator_id_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->operator_id);
1127
- yp_buffer_append_str(buffer, operator_id_buffer, strlen(operator_id_buffer));
1332
+ yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
1333
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->name);
1334
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1335
+ yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
1336
+ snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->operator);
1337
+ yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
1128
1338
  yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
1129
1339
  snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_operator_write_node_t *)node)->depth);
1130
1340
  yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
1131
1341
  yp_buffer_append_str(buffer, ")", 1);
1132
1342
  break;
1133
1343
  }
1134
- case YP_NODE_LOCAL_VARIABLE_OR_WRITE_NODE: {
1344
+ case YP_LOCAL_VARIABLE_OR_WRITE_NODE: {
1135
1345
  yp_buffer_append_str(buffer, "LocalVariableOrWriteNode(", 25);
1136
1346
  prettyprint_location(buffer, parser, &((yp_local_variable_or_write_node_t *)node)->name_loc);
1137
1347
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_or_write_node_t *)node)->operator_loc);
1138
1348
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_or_write_node_t *)node)->value);
1139
- yp_buffer_append_str(buffer, ", ", 2); char constant_id_buffer[12];
1140
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_or_write_node_t *)node)->constant_id);
1141
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1349
+ yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
1350
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_or_write_node_t *)node)->name);
1351
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1142
1352
  yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
1143
1353
  snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_or_write_node_t *)node)->depth);
1144
1354
  yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
1145
1355
  yp_buffer_append_str(buffer, ")", 1);
1146
1356
  break;
1147
1357
  }
1148
- case YP_NODE_LOCAL_VARIABLE_READ_NODE: {
1358
+ case YP_LOCAL_VARIABLE_READ_NODE: {
1149
1359
  yp_buffer_append_str(buffer, "LocalVariableReadNode(", 22);
1150
- char constant_id_buffer[12];
1151
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_read_node_t *)node)->constant_id);
1152
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1360
+ char name_buffer[12];
1361
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_read_node_t *)node)->name);
1362
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1153
1363
  yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
1154
1364
  snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_read_node_t *)node)->depth);
1155
1365
  yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
1156
1366
  yp_buffer_append_str(buffer, ")", 1);
1157
1367
  break;
1158
1368
  }
1159
- case YP_NODE_LOCAL_VARIABLE_TARGET_NODE: {
1369
+ case YP_LOCAL_VARIABLE_TARGET_NODE: {
1160
1370
  yp_buffer_append_str(buffer, "LocalVariableTargetNode(", 24);
1161
- char constant_id_buffer[12];
1162
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_target_node_t *)node)->constant_id);
1163
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1371
+ char name_buffer[12];
1372
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_target_node_t *)node)->name);
1373
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1164
1374
  yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
1165
1375
  snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_target_node_t *)node)->depth);
1166
1376
  yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
1167
1377
  yp_buffer_append_str(buffer, ")", 1);
1168
1378
  break;
1169
1379
  }
1170
- case YP_NODE_LOCAL_VARIABLE_WRITE_NODE: {
1380
+ case YP_LOCAL_VARIABLE_WRITE_NODE: {
1171
1381
  yp_buffer_append_str(buffer, "LocalVariableWriteNode(", 23);
1172
- char constant_id_buffer[12];
1173
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_write_node_t *)node)->constant_id);
1174
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1382
+ char name_buffer[12];
1383
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_write_node_t *)node)->name);
1384
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1175
1385
  yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
1176
1386
  snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_write_node_t *)node)->depth);
1177
1387
  yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
1178
- yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_write_node_t *)node)->value);
1179
1388
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_write_node_t *)node)->name_loc);
1389
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_write_node_t *)node)->value);
1180
1390
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_write_node_t *)node)->operator_loc);
1181
1391
  yp_buffer_append_str(buffer, ")", 1);
1182
1392
  break;
1183
1393
  }
1184
- case YP_NODE_MATCH_PREDICATE_NODE: {
1394
+ case YP_MATCH_PREDICATE_NODE: {
1185
1395
  yp_buffer_append_str(buffer, "MatchPredicateNode(", 19);
1186
1396
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_match_predicate_node_t *)node)->value);
1187
1397
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_match_predicate_node_t *)node)->pattern);
@@ -1189,7 +1399,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1189
1399
  yp_buffer_append_str(buffer, ")", 1);
1190
1400
  break;
1191
1401
  }
1192
- case YP_NODE_MATCH_REQUIRED_NODE: {
1402
+ case YP_MATCH_REQUIRED_NODE: {
1193
1403
  yp_buffer_append_str(buffer, "MatchRequiredNode(", 18);
1194
1404
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_match_required_node_t *)node)->value);
1195
1405
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_match_required_node_t *)node)->pattern);
@@ -1197,12 +1407,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1197
1407
  yp_buffer_append_str(buffer, ")", 1);
1198
1408
  break;
1199
1409
  }
1200
- case YP_NODE_MISSING_NODE: {
1410
+ case YP_MISSING_NODE: {
1201
1411
  yp_buffer_append_str(buffer, "MissingNode(", 12);
1202
1412
  yp_buffer_append_str(buffer, ")", 1);
1203
1413
  break;
1204
1414
  }
1205
- case YP_NODE_MODULE_NODE: {
1415
+ case YP_MODULE_NODE: {
1206
1416
  yp_buffer_append_str(buffer, "ModuleNode(", 11);
1207
1417
  yp_buffer_append_str(buffer, "[", 1);
1208
1418
  for (uint32_t index = 0; index < ((yp_module_node_t *)node)->locals.size; index++) {
@@ -1220,30 +1430,41 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1220
1430
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_module_node_t *)node)->body);
1221
1431
  }
1222
1432
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_module_node_t *)node)->end_keyword_loc);
1223
- yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
1224
- yp_buffer_append_str(buffer, yp_string_source(&((yp_module_node_t *)node)->name), yp_string_length(&((yp_module_node_t *)node)->name));
1225
- yp_buffer_append_str(buffer, "\"", 1);
1433
+ yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
1434
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_module_node_t *)node)->name);
1435
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1226
1436
  yp_buffer_append_str(buffer, ")", 1);
1227
1437
  break;
1228
1438
  }
1229
- case YP_NODE_MULTI_WRITE_NODE: {
1230
- yp_buffer_append_str(buffer, "MultiWriteNode(", 15);
1439
+ case YP_MULTI_TARGET_NODE: {
1440
+ yp_buffer_append_str(buffer, "MultiTargetNode(", 16);
1231
1441
  yp_buffer_append_str(buffer, "[", 1);
1232
- for (uint32_t index = 0; index < ((yp_multi_write_node_t *)node)->targets.size; index++) {
1442
+ for (uint32_t index = 0; index < ((yp_multi_target_node_t *)node)->targets.size; index++) {
1233
1443
  if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
1234
- prettyprint_node(buffer, parser, (yp_node_t *) ((yp_multi_write_node_t *) node)->targets.nodes[index]);
1444
+ prettyprint_node(buffer, parser, (yp_node_t *) ((yp_multi_target_node_t *) node)->targets.nodes[index]);
1235
1445
  }
1236
1446
  yp_buffer_append_str(buffer, "]", 1);
1237
- yp_buffer_append_str(buffer, ", ", 2); if (((yp_multi_write_node_t *)node)->operator_loc.start == NULL) {
1447
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_multi_target_node_t *)node)->lparen_loc.start == NULL) {
1238
1448
  yp_buffer_append_str(buffer, "nil", 3);
1239
1449
  } else {
1240
- prettyprint_location(buffer, parser, &((yp_multi_write_node_t *)node)->operator_loc);
1450
+ prettyprint_location(buffer, parser, &((yp_multi_target_node_t *)node)->lparen_loc);
1241
1451
  }
1242
- yp_buffer_append_str(buffer, ", ", 2); if (((yp_multi_write_node_t *)node)->value == NULL) {
1452
+ yp_buffer_append_str(buffer, ", ", 2); if (((yp_multi_target_node_t *)node)->rparen_loc.start == NULL) {
1243
1453
  yp_buffer_append_str(buffer, "nil", 3);
1244
1454
  } else {
1245
- prettyprint_node(buffer, parser, (yp_node_t *)((yp_multi_write_node_t *)node)->value);
1455
+ prettyprint_location(buffer, parser, &((yp_multi_target_node_t *)node)->rparen_loc);
1246
1456
  }
1457
+ yp_buffer_append_str(buffer, ")", 1);
1458
+ break;
1459
+ }
1460
+ case YP_MULTI_WRITE_NODE: {
1461
+ yp_buffer_append_str(buffer, "MultiWriteNode(", 15);
1462
+ yp_buffer_append_str(buffer, "[", 1);
1463
+ for (uint32_t index = 0; index < ((yp_multi_write_node_t *)node)->targets.size; index++) {
1464
+ if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
1465
+ prettyprint_node(buffer, parser, (yp_node_t *) ((yp_multi_write_node_t *) node)->targets.nodes[index]);
1466
+ }
1467
+ yp_buffer_append_str(buffer, "]", 1);
1247
1468
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_multi_write_node_t *)node)->lparen_loc.start == NULL) {
1248
1469
  yp_buffer_append_str(buffer, "nil", 3);
1249
1470
  } else {
@@ -1254,10 +1475,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1254
1475
  } else {
1255
1476
  prettyprint_location(buffer, parser, &((yp_multi_write_node_t *)node)->rparen_loc);
1256
1477
  }
1478
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_multi_write_node_t *)node)->operator_loc);
1479
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_multi_write_node_t *)node)->value);
1257
1480
  yp_buffer_append_str(buffer, ")", 1);
1258
1481
  break;
1259
1482
  }
1260
- case YP_NODE_NEXT_NODE: {
1483
+ case YP_NEXT_NODE: {
1261
1484
  yp_buffer_append_str(buffer, "NextNode(", 9);
1262
1485
  if (((yp_next_node_t *)node)->arguments == NULL) {
1263
1486
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1268,35 +1491,38 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1268
1491
  yp_buffer_append_str(buffer, ")", 1);
1269
1492
  break;
1270
1493
  }
1271
- case YP_NODE_NIL_NODE: {
1494
+ case YP_NIL_NODE: {
1272
1495
  yp_buffer_append_str(buffer, "NilNode(", 8);
1273
1496
  yp_buffer_append_str(buffer, ")", 1);
1274
1497
  break;
1275
1498
  }
1276
- case YP_NODE_NO_KEYWORDS_PARAMETER_NODE: {
1499
+ case YP_NO_KEYWORDS_PARAMETER_NODE: {
1277
1500
  yp_buffer_append_str(buffer, "NoKeywordsParameterNode(", 24);
1278
1501
  prettyprint_location(buffer, parser, &((yp_no_keywords_parameter_node_t *)node)->operator_loc);
1279
1502
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_no_keywords_parameter_node_t *)node)->keyword_loc);
1280
1503
  yp_buffer_append_str(buffer, ")", 1);
1281
1504
  break;
1282
1505
  }
1283
- case YP_NODE_NUMBERED_REFERENCE_READ_NODE: {
1506
+ case YP_NUMBERED_REFERENCE_READ_NODE: {
1284
1507
  yp_buffer_append_str(buffer, "NumberedReferenceReadNode(", 26);
1508
+ char number_buffer[12];
1509
+ snprintf(number_buffer, sizeof(number_buffer), "+%d", ((yp_numbered_reference_read_node_t *)node)->number);
1510
+ yp_buffer_append_str(buffer, number_buffer, strlen(number_buffer));
1285
1511
  yp_buffer_append_str(buffer, ")", 1);
1286
1512
  break;
1287
1513
  }
1288
- case YP_NODE_OPTIONAL_PARAMETER_NODE: {
1514
+ case YP_OPTIONAL_PARAMETER_NODE: {
1289
1515
  yp_buffer_append_str(buffer, "OptionalParameterNode(", 22);
1290
- char constant_id_buffer[12];
1291
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_optional_parameter_node_t *)node)->constant_id);
1292
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1516
+ char name_buffer[12];
1517
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_optional_parameter_node_t *)node)->name);
1518
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1293
1519
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_optional_parameter_node_t *)node)->name_loc);
1294
1520
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_optional_parameter_node_t *)node)->operator_loc);
1295
1521
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_optional_parameter_node_t *)node)->value);
1296
1522
  yp_buffer_append_str(buffer, ")", 1);
1297
1523
  break;
1298
1524
  }
1299
- case YP_NODE_OR_NODE: {
1525
+ case YP_OR_NODE: {
1300
1526
  yp_buffer_append_str(buffer, "OrNode(", 7);
1301
1527
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_or_node_t *)node)->left);
1302
1528
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_or_node_t *)node)->right);
@@ -1304,7 +1530,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1304
1530
  yp_buffer_append_str(buffer, ")", 1);
1305
1531
  break;
1306
1532
  }
1307
- case YP_NODE_PARAMETERS_NODE: {
1533
+ case YP_PARAMETERS_NODE: {
1308
1534
  yp_buffer_append_str(buffer, "ParametersNode(", 15);
1309
1535
  yp_buffer_append_str(buffer, "[", 1);
1310
1536
  for (uint32_t index = 0; index < ((yp_parameters_node_t *)node)->requireds.size; index++) {
@@ -1348,7 +1574,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1348
1574
  yp_buffer_append_str(buffer, ")", 1);
1349
1575
  break;
1350
1576
  }
1351
- case YP_NODE_PARENTHESES_NODE: {
1577
+ case YP_PARENTHESES_NODE: {
1352
1578
  yp_buffer_append_str(buffer, "ParenthesesNode(", 16);
1353
1579
  if (((yp_parentheses_node_t *)node)->body == NULL) {
1354
1580
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1360,7 +1586,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1360
1586
  yp_buffer_append_str(buffer, ")", 1);
1361
1587
  break;
1362
1588
  }
1363
- case YP_NODE_PINNED_EXPRESSION_NODE: {
1589
+ case YP_PINNED_EXPRESSION_NODE: {
1364
1590
  yp_buffer_append_str(buffer, "PinnedExpressionNode(", 21);
1365
1591
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_pinned_expression_node_t *)node)->expression);
1366
1592
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_pinned_expression_node_t *)node)->operator_loc);
@@ -1369,14 +1595,14 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1369
1595
  yp_buffer_append_str(buffer, ")", 1);
1370
1596
  break;
1371
1597
  }
1372
- case YP_NODE_PINNED_VARIABLE_NODE: {
1598
+ case YP_PINNED_VARIABLE_NODE: {
1373
1599
  yp_buffer_append_str(buffer, "PinnedVariableNode(", 19);
1374
1600
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_pinned_variable_node_t *)node)->variable);
1375
1601
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_pinned_variable_node_t *)node)->operator_loc);
1376
1602
  yp_buffer_append_str(buffer, ")", 1);
1377
1603
  break;
1378
1604
  }
1379
- case YP_NODE_POST_EXECUTION_NODE: {
1605
+ case YP_POST_EXECUTION_NODE: {
1380
1606
  yp_buffer_append_str(buffer, "PostExecutionNode(", 18);
1381
1607
  if (((yp_post_execution_node_t *)node)->statements == NULL) {
1382
1608
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1389,7 +1615,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1389
1615
  yp_buffer_append_str(buffer, ")", 1);
1390
1616
  break;
1391
1617
  }
1392
- case YP_NODE_PRE_EXECUTION_NODE: {
1618
+ case YP_PRE_EXECUTION_NODE: {
1393
1619
  yp_buffer_append_str(buffer, "PreExecutionNode(", 17);
1394
1620
  if (((yp_pre_execution_node_t *)node)->statements == NULL) {
1395
1621
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1402,7 +1628,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1402
1628
  yp_buffer_append_str(buffer, ")", 1);
1403
1629
  break;
1404
1630
  }
1405
- case YP_NODE_PROGRAM_NODE: {
1631
+ case YP_PROGRAM_NODE: {
1406
1632
  yp_buffer_append_str(buffer, "ProgramNode(", 12);
1407
1633
  yp_buffer_append_str(buffer, "[", 1);
1408
1634
  for (uint32_t index = 0; index < ((yp_program_node_t *)node)->locals.size; index++) {
@@ -1416,7 +1642,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1416
1642
  yp_buffer_append_str(buffer, ")", 1);
1417
1643
  break;
1418
1644
  }
1419
- case YP_NODE_RANGE_NODE: {
1645
+ case YP_RANGE_NODE: {
1420
1646
  yp_buffer_append_str(buffer, "RangeNode(", 10);
1421
1647
  if (((yp_range_node_t *)node)->left == NULL) {
1422
1648
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1435,24 +1661,24 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1435
1661
  yp_buffer_append_str(buffer, ")", 1);
1436
1662
  break;
1437
1663
  }
1438
- case YP_NODE_RATIONAL_NODE: {
1664
+ case YP_RATIONAL_NODE: {
1439
1665
  yp_buffer_append_str(buffer, "RationalNode(", 13);
1440
1666
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_rational_node_t *)node)->numeric);
1441
1667
  yp_buffer_append_str(buffer, ")", 1);
1442
1668
  break;
1443
1669
  }
1444
- case YP_NODE_REDO_NODE: {
1670
+ case YP_REDO_NODE: {
1445
1671
  yp_buffer_append_str(buffer, "RedoNode(", 9);
1446
1672
  yp_buffer_append_str(buffer, ")", 1);
1447
1673
  break;
1448
1674
  }
1449
- case YP_NODE_REGULAR_EXPRESSION_NODE: {
1675
+ case YP_REGULAR_EXPRESSION_NODE: {
1450
1676
  yp_buffer_append_str(buffer, "RegularExpressionNode(", 22);
1451
1677
  prettyprint_location(buffer, parser, &((yp_regular_expression_node_t *)node)->opening_loc);
1452
1678
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_regular_expression_node_t *)node)->content_loc);
1453
1679
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_regular_expression_node_t *)node)->closing_loc);
1454
1680
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
1455
- yp_buffer_append_str(buffer, yp_string_source(&((yp_regular_expression_node_t *)node)->unescaped), yp_string_length(&((yp_regular_expression_node_t *)node)->unescaped));
1681
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_regular_expression_node_t *)node)->unescaped), yp_string_length(&((yp_regular_expression_node_t *)node)->unescaped));
1456
1682
  yp_buffer_append_str(buffer, "\"", 1);
1457
1683
  yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1458
1684
  snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
@@ -1460,7 +1686,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1460
1686
  yp_buffer_append_str(buffer, ")", 1);
1461
1687
  break;
1462
1688
  }
1463
- case YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE: {
1689
+ case YP_REQUIRED_DESTRUCTURED_PARAMETER_NODE: {
1464
1690
  yp_buffer_append_str(buffer, "RequiredDestructuredParameterNode(", 34);
1465
1691
  yp_buffer_append_str(buffer, "[", 1);
1466
1692
  for (uint32_t index = 0; index < ((yp_required_destructured_parameter_node_t *)node)->parameters.size; index++) {
@@ -1473,15 +1699,15 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1473
1699
  yp_buffer_append_str(buffer, ")", 1);
1474
1700
  break;
1475
1701
  }
1476
- case YP_NODE_REQUIRED_PARAMETER_NODE: {
1702
+ case YP_REQUIRED_PARAMETER_NODE: {
1477
1703
  yp_buffer_append_str(buffer, "RequiredParameterNode(", 22);
1478
- char constant_id_buffer[12];
1479
- snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_required_parameter_node_t *)node)->constant_id);
1480
- yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
1704
+ char name_buffer[12];
1705
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_required_parameter_node_t *)node)->name);
1706
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1481
1707
  yp_buffer_append_str(buffer, ")", 1);
1482
1708
  break;
1483
1709
  }
1484
- case YP_NODE_RESCUE_MODIFIER_NODE: {
1710
+ case YP_RESCUE_MODIFIER_NODE: {
1485
1711
  yp_buffer_append_str(buffer, "RescueModifierNode(", 19);
1486
1712
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_rescue_modifier_node_t *)node)->expression);
1487
1713
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_rescue_modifier_node_t *)node)->keyword_loc);
@@ -1489,7 +1715,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1489
1715
  yp_buffer_append_str(buffer, ")", 1);
1490
1716
  break;
1491
1717
  }
1492
- case YP_NODE_RESCUE_NODE: {
1718
+ case YP_RESCUE_NODE: {
1493
1719
  yp_buffer_append_str(buffer, "RescueNode(", 11);
1494
1720
  prettyprint_location(buffer, parser, &((yp_rescue_node_t *)node)->keyword_loc);
1495
1721
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
@@ -1521,23 +1747,30 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1521
1747
  yp_buffer_append_str(buffer, ")", 1);
1522
1748
  break;
1523
1749
  }
1524
- case YP_NODE_REST_PARAMETER_NODE: {
1750
+ case YP_REST_PARAMETER_NODE: {
1525
1751
  yp_buffer_append_str(buffer, "RestParameterNode(", 18);
1526
- prettyprint_location(buffer, parser, &((yp_rest_parameter_node_t *)node)->operator_loc);
1752
+ if (((yp_rest_parameter_node_t *)node)->name == 0) {
1753
+ yp_buffer_append_str(buffer, "nil", 3);
1754
+ } else {
1755
+ char name_buffer[12];
1756
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_rest_parameter_node_t *)node)->name);
1757
+ yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
1758
+ }
1527
1759
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_rest_parameter_node_t *)node)->name_loc.start == NULL) {
1528
1760
  yp_buffer_append_str(buffer, "nil", 3);
1529
1761
  } else {
1530
1762
  prettyprint_location(buffer, parser, &((yp_rest_parameter_node_t *)node)->name_loc);
1531
1763
  }
1764
+ yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_rest_parameter_node_t *)node)->operator_loc);
1532
1765
  yp_buffer_append_str(buffer, ")", 1);
1533
1766
  break;
1534
1767
  }
1535
- case YP_NODE_RETRY_NODE: {
1768
+ case YP_RETRY_NODE: {
1536
1769
  yp_buffer_append_str(buffer, "RetryNode(", 10);
1537
1770
  yp_buffer_append_str(buffer, ")", 1);
1538
1771
  break;
1539
1772
  }
1540
- case YP_NODE_RETURN_NODE: {
1773
+ case YP_RETURN_NODE: {
1541
1774
  yp_buffer_append_str(buffer, "ReturnNode(", 11);
1542
1775
  prettyprint_location(buffer, parser, &((yp_return_node_t *)node)->keyword_loc);
1543
1776
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_return_node_t *)node)->arguments == NULL) {
@@ -1548,12 +1781,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1548
1781
  yp_buffer_append_str(buffer, ")", 1);
1549
1782
  break;
1550
1783
  }
1551
- case YP_NODE_SELF_NODE: {
1784
+ case YP_SELF_NODE: {
1552
1785
  yp_buffer_append_str(buffer, "SelfNode(", 9);
1553
1786
  yp_buffer_append_str(buffer, ")", 1);
1554
1787
  break;
1555
1788
  }
1556
- case YP_NODE_SINGLETON_CLASS_NODE: {
1789
+ case YP_SINGLETON_CLASS_NODE: {
1557
1790
  yp_buffer_append_str(buffer, "SingletonClassNode(", 19);
1558
1791
  yp_buffer_append_str(buffer, "[", 1);
1559
1792
  for (uint32_t index = 0; index < ((yp_singleton_class_node_t *)node)->locals.size; index++) {
@@ -1575,25 +1808,25 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1575
1808
  yp_buffer_append_str(buffer, ")", 1);
1576
1809
  break;
1577
1810
  }
1578
- case YP_NODE_SOURCE_ENCODING_NODE: {
1811
+ case YP_SOURCE_ENCODING_NODE: {
1579
1812
  yp_buffer_append_str(buffer, "SourceEncodingNode(", 19);
1580
1813
  yp_buffer_append_str(buffer, ")", 1);
1581
1814
  break;
1582
1815
  }
1583
- case YP_NODE_SOURCE_FILE_NODE: {
1816
+ case YP_SOURCE_FILE_NODE: {
1584
1817
  yp_buffer_append_str(buffer, "SourceFileNode(", 15);
1585
1818
  yp_buffer_append_str(buffer, "\"", 1);
1586
- yp_buffer_append_str(buffer, yp_string_source(&((yp_source_file_node_t *)node)->filepath), yp_string_length(&((yp_source_file_node_t *)node)->filepath));
1819
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_source_file_node_t *)node)->filepath), yp_string_length(&((yp_source_file_node_t *)node)->filepath));
1587
1820
  yp_buffer_append_str(buffer, "\"", 1);
1588
1821
  yp_buffer_append_str(buffer, ")", 1);
1589
1822
  break;
1590
1823
  }
1591
- case YP_NODE_SOURCE_LINE_NODE: {
1824
+ case YP_SOURCE_LINE_NODE: {
1592
1825
  yp_buffer_append_str(buffer, "SourceLineNode(", 15);
1593
1826
  yp_buffer_append_str(buffer, ")", 1);
1594
1827
  break;
1595
1828
  }
1596
- case YP_NODE_SPLAT_NODE: {
1829
+ case YP_SPLAT_NODE: {
1597
1830
  yp_buffer_append_str(buffer, "SplatNode(", 10);
1598
1831
  prettyprint_location(buffer, parser, &((yp_splat_node_t *)node)->operator_loc);
1599
1832
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_splat_node_t *)node)->expression == NULL) {
@@ -1604,7 +1837,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1604
1837
  yp_buffer_append_str(buffer, ")", 1);
1605
1838
  break;
1606
1839
  }
1607
- case YP_NODE_STATEMENTS_NODE: {
1840
+ case YP_STATEMENTS_NODE: {
1608
1841
  yp_buffer_append_str(buffer, "StatementsNode(", 15);
1609
1842
  yp_buffer_append_str(buffer, "[", 1);
1610
1843
  for (uint32_t index = 0; index < ((yp_statements_node_t *)node)->body.size; index++) {
@@ -1615,14 +1848,14 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1615
1848
  yp_buffer_append_str(buffer, ")", 1);
1616
1849
  break;
1617
1850
  }
1618
- case YP_NODE_STRING_CONCAT_NODE: {
1851
+ case YP_STRING_CONCAT_NODE: {
1619
1852
  yp_buffer_append_str(buffer, "StringConcatNode(", 17);
1620
1853
  prettyprint_node(buffer, parser, (yp_node_t *)((yp_string_concat_node_t *)node)->left);
1621
1854
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_string_concat_node_t *)node)->right);
1622
1855
  yp_buffer_append_str(buffer, ")", 1);
1623
1856
  break;
1624
1857
  }
1625
- case YP_NODE_STRING_NODE: {
1858
+ case YP_STRING_NODE: {
1626
1859
  yp_buffer_append_str(buffer, "StringNode(", 11);
1627
1860
  if (((yp_string_node_t *)node)->opening_loc.start == NULL) {
1628
1861
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1636,12 +1869,12 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1636
1869
  prettyprint_location(buffer, parser, &((yp_string_node_t *)node)->closing_loc);
1637
1870
  }
1638
1871
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
1639
- yp_buffer_append_str(buffer, yp_string_source(&((yp_string_node_t *)node)->unescaped), yp_string_length(&((yp_string_node_t *)node)->unescaped));
1872
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_string_node_t *)node)->unescaped), yp_string_length(&((yp_string_node_t *)node)->unescaped));
1640
1873
  yp_buffer_append_str(buffer, "\"", 1);
1641
1874
  yp_buffer_append_str(buffer, ")", 1);
1642
1875
  break;
1643
1876
  }
1644
- case YP_NODE_SUPER_NODE: {
1877
+ case YP_SUPER_NODE: {
1645
1878
  yp_buffer_append_str(buffer, "SuperNode(", 10);
1646
1879
  prettyprint_location(buffer, parser, &((yp_super_node_t *)node)->keyword_loc);
1647
1880
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_super_node_t *)node)->lparen_loc.start == NULL) {
@@ -1667,7 +1900,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1667
1900
  yp_buffer_append_str(buffer, ")", 1);
1668
1901
  break;
1669
1902
  }
1670
- case YP_NODE_SYMBOL_NODE: {
1903
+ case YP_SYMBOL_NODE: {
1671
1904
  yp_buffer_append_str(buffer, "SymbolNode(", 11);
1672
1905
  if (((yp_symbol_node_t *)node)->opening_loc.start == NULL) {
1673
1906
  yp_buffer_append_str(buffer, "nil", 3);
@@ -1685,17 +1918,17 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1685
1918
  prettyprint_location(buffer, parser, &((yp_symbol_node_t *)node)->closing_loc);
1686
1919
  }
1687
1920
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
1688
- yp_buffer_append_str(buffer, yp_string_source(&((yp_symbol_node_t *)node)->unescaped), yp_string_length(&((yp_symbol_node_t *)node)->unescaped));
1921
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_symbol_node_t *)node)->unescaped), yp_string_length(&((yp_symbol_node_t *)node)->unescaped));
1689
1922
  yp_buffer_append_str(buffer, "\"", 1);
1690
1923
  yp_buffer_append_str(buffer, ")", 1);
1691
1924
  break;
1692
1925
  }
1693
- case YP_NODE_TRUE_NODE: {
1926
+ case YP_TRUE_NODE: {
1694
1927
  yp_buffer_append_str(buffer, "TrueNode(", 9);
1695
1928
  yp_buffer_append_str(buffer, ")", 1);
1696
1929
  break;
1697
1930
  }
1698
- case YP_NODE_UNDEF_NODE: {
1931
+ case YP_UNDEF_NODE: {
1699
1932
  yp_buffer_append_str(buffer, "UndefNode(", 10);
1700
1933
  yp_buffer_append_str(buffer, "[", 1);
1701
1934
  for (uint32_t index = 0; index < ((yp_undef_node_t *)node)->names.size; index++) {
@@ -1707,7 +1940,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1707
1940
  yp_buffer_append_str(buffer, ")", 1);
1708
1941
  break;
1709
1942
  }
1710
- case YP_NODE_UNLESS_NODE: {
1943
+ case YP_UNLESS_NODE: {
1711
1944
  yp_buffer_append_str(buffer, "UnlessNode(", 11);
1712
1945
  prettyprint_location(buffer, parser, &((yp_unless_node_t *)node)->keyword_loc);
1713
1946
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_unless_node_t *)node)->predicate);
@@ -1729,7 +1962,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1729
1962
  yp_buffer_append_str(buffer, ")", 1);
1730
1963
  break;
1731
1964
  }
1732
- case YP_NODE_UNTIL_NODE: {
1965
+ case YP_UNTIL_NODE: {
1733
1966
  yp_buffer_append_str(buffer, "UntilNode(", 10);
1734
1967
  prettyprint_location(buffer, parser, &((yp_until_node_t *)node)->keyword_loc);
1735
1968
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_until_node_t *)node)->closing_loc.start == NULL) {
@@ -1749,7 +1982,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1749
1982
  yp_buffer_append_str(buffer, ")", 1);
1750
1983
  break;
1751
1984
  }
1752
- case YP_NODE_WHEN_NODE: {
1985
+ case YP_WHEN_NODE: {
1753
1986
  yp_buffer_append_str(buffer, "WhenNode(", 9);
1754
1987
  prettyprint_location(buffer, parser, &((yp_when_node_t *)node)->keyword_loc);
1755
1988
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
@@ -1766,7 +1999,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1766
1999
  yp_buffer_append_str(buffer, ")", 1);
1767
2000
  break;
1768
2001
  }
1769
- case YP_NODE_WHILE_NODE: {
2002
+ case YP_WHILE_NODE: {
1770
2003
  yp_buffer_append_str(buffer, "WhileNode(", 10);
1771
2004
  prettyprint_location(buffer, parser, &((yp_while_node_t *)node)->keyword_loc);
1772
2005
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_while_node_t *)node)->closing_loc.start == NULL) {
@@ -1786,18 +2019,18 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
1786
2019
  yp_buffer_append_str(buffer, ")", 1);
1787
2020
  break;
1788
2021
  }
1789
- case YP_NODE_X_STRING_NODE: {
2022
+ case YP_X_STRING_NODE: {
1790
2023
  yp_buffer_append_str(buffer, "XStringNode(", 12);
1791
2024
  prettyprint_location(buffer, parser, &((yp_x_string_node_t *)node)->opening_loc);
1792
2025
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_x_string_node_t *)node)->content_loc);
1793
2026
  yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_x_string_node_t *)node)->closing_loc);
1794
2027
  yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
1795
- yp_buffer_append_str(buffer, yp_string_source(&((yp_x_string_node_t *)node)->unescaped), yp_string_length(&((yp_x_string_node_t *)node)->unescaped));
2028
+ yp_buffer_append_bytes(buffer, yp_string_source(&((yp_x_string_node_t *)node)->unescaped), yp_string_length(&((yp_x_string_node_t *)node)->unescaped));
1796
2029
  yp_buffer_append_str(buffer, "\"", 1);
1797
2030
  yp_buffer_append_str(buffer, ")", 1);
1798
2031
  break;
1799
2032
  }
1800
- case YP_NODE_YIELD_NODE: {
2033
+ case YP_YIELD_NODE: {
1801
2034
  yp_buffer_append_str(buffer, "YieldNode(", 10);
1802
2035
  prettyprint_location(buffer, parser, &((yp_yield_node_t *)node)->keyword_loc);
1803
2036
  yp_buffer_append_str(buffer, ", ", 2); if (((yp_yield_node_t *)node)->lparen_loc.start == NULL) {