prism 0.30.0 → 1.0.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -1
  3. data/README.md +3 -1
  4. data/config.yml +185 -126
  5. data/docs/serialization.md +3 -0
  6. data/ext/prism/api_node.c +2843 -2085
  7. data/ext/prism/extconf.rb +1 -1
  8. data/ext/prism/extension.c +35 -25
  9. data/ext/prism/extension.h +2 -2
  10. data/include/prism/ast.h +1048 -69
  11. data/include/prism/defines.h +9 -0
  12. data/include/prism/diagnostic.h +11 -3
  13. data/include/prism/options.h +55 -1
  14. data/include/prism/parser.h +27 -3
  15. data/include/prism/regexp.h +2 -1
  16. data/include/prism/util/pm_integer.h +6 -6
  17. data/include/prism/util/pm_newline_list.h +11 -0
  18. data/include/prism/util/pm_string.h +1 -0
  19. data/include/prism/version.h +3 -3
  20. data/lib/prism/desugar_compiler.rb +111 -74
  21. data/lib/prism/dispatcher.rb +2 -1
  22. data/lib/prism/dot_visitor.rb +21 -31
  23. data/lib/prism/dsl.rb +656 -471
  24. data/lib/prism/ffi.rb +3 -0
  25. data/lib/prism/inspect_visitor.rb +285 -57
  26. data/lib/prism/mutation_compiler.rb +5 -5
  27. data/lib/prism/node.rb +2282 -4754
  28. data/lib/prism/node_ext.rb +72 -11
  29. data/lib/prism/parse_result/errors.rb +65 -0
  30. data/lib/prism/parse_result/newlines.rb +28 -28
  31. data/lib/prism/parse_result.rb +25 -2
  32. data/lib/prism/reflection.rb +7 -7
  33. data/lib/prism/serialize.rb +468 -610
  34. data/lib/prism/translation/parser/compiler.rb +18 -18
  35. data/lib/prism/translation/parser/lexer.rb +1 -1
  36. data/lib/prism/translation/parser.rb +3 -3
  37. data/lib/prism/translation/ripper.rb +14 -14
  38. data/lib/prism/translation/ruby_parser.rb +43 -7
  39. data/prism.gemspec +3 -1
  40. data/rbi/prism/dsl.rbi +521 -0
  41. data/rbi/prism/node.rbi +1456 -5616
  42. data/rbi/prism.rbi +16 -16
  43. data/sig/prism/dsl.rbs +189 -305
  44. data/sig/prism/node.rbs +702 -603
  45. data/sig/prism/parse_result.rbs +2 -0
  46. data/src/diagnostic.c +22 -6
  47. data/src/node.c +277 -284
  48. data/src/options.c +18 -0
  49. data/src/prettyprint.c +99 -108
  50. data/src/prism.c +1282 -760
  51. data/src/regexp.c +72 -4
  52. data/src/serialize.c +165 -50
  53. data/src/token_type.c +2 -2
  54. data/src/util/pm_integer.c +14 -14
  55. data/src/util/pm_newline_list.c +29 -0
  56. data/src/util/pm_string.c +9 -5
  57. metadata +4 -2
data/src/node.c CHANGED
@@ -1,12 +1,12 @@
1
- /******************************************************************************/
1
+ /*----------------------------------------------------------------------------*/
2
2
  /* This file is generated by the templates/template.rb script and should not */
3
3
  /* be modified manually. See */
4
4
  /* templates/src/node.c.erb */
5
5
  /* if you are looking to modify the */
6
6
  /* template */
7
- /******************************************************************************/
7
+ /*----------------------------------------------------------------------------*/
8
8
 
9
- #line 2 "node.c.erb"
9
+ #line 2 "prism/templates/src/node.c.erb"
10
10
  #include "prism/node.h"
11
11
 
12
12
  /**
@@ -113,47 +113,47 @@ pm_node_list_destroy(pm_parser_t *parser, pm_node_list_t *list) {
113
113
  PRISM_EXPORTED_FUNCTION void
114
114
  pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
115
115
  switch (PM_NODE_TYPE(node)) {
116
- #line 110 "node.c.erb"
116
+ #line 110 "prism/templates/src/node.c.erb"
117
117
  case PM_ALIAS_GLOBAL_VARIABLE_NODE: {
118
118
  pm_alias_global_variable_node_t *cast = (pm_alias_global_variable_node_t *) node;
119
119
  pm_node_destroy(parser, (pm_node_t *)cast->new_name);
120
120
  pm_node_destroy(parser, (pm_node_t *)cast->old_name);
121
121
  break;
122
122
  }
123
- #line 110 "node.c.erb"
123
+ #line 110 "prism/templates/src/node.c.erb"
124
124
  case PM_ALIAS_METHOD_NODE: {
125
125
  pm_alias_method_node_t *cast = (pm_alias_method_node_t *) node;
126
126
  pm_node_destroy(parser, (pm_node_t *)cast->new_name);
127
127
  pm_node_destroy(parser, (pm_node_t *)cast->old_name);
128
128
  break;
129
129
  }
130
- #line 110 "node.c.erb"
130
+ #line 110 "prism/templates/src/node.c.erb"
131
131
  case PM_ALTERNATION_PATTERN_NODE: {
132
132
  pm_alternation_pattern_node_t *cast = (pm_alternation_pattern_node_t *) node;
133
133
  pm_node_destroy(parser, (pm_node_t *)cast->left);
134
134
  pm_node_destroy(parser, (pm_node_t *)cast->right);
135
135
  break;
136
136
  }
137
- #line 110 "node.c.erb"
137
+ #line 110 "prism/templates/src/node.c.erb"
138
138
  case PM_AND_NODE: {
139
139
  pm_and_node_t *cast = (pm_and_node_t *) node;
140
140
  pm_node_destroy(parser, (pm_node_t *)cast->left);
141
141
  pm_node_destroy(parser, (pm_node_t *)cast->right);
142
142
  break;
143
143
  }
144
- #line 110 "node.c.erb"
144
+ #line 110 "prism/templates/src/node.c.erb"
145
145
  case PM_ARGUMENTS_NODE: {
146
146
  pm_arguments_node_t *cast = (pm_arguments_node_t *) node;
147
147
  pm_node_list_destroy(parser, &cast->arguments);
148
148
  break;
149
149
  }
150
- #line 110 "node.c.erb"
150
+ #line 110 "prism/templates/src/node.c.erb"
151
151
  case PM_ARRAY_NODE: {
152
152
  pm_array_node_t *cast = (pm_array_node_t *) node;
153
153
  pm_node_list_destroy(parser, &cast->elements);
154
154
  break;
155
155
  }
156
- #line 110 "node.c.erb"
156
+ #line 110 "prism/templates/src/node.c.erb"
157
157
  case PM_ARRAY_PATTERN_NODE: {
158
158
  pm_array_pattern_node_t *cast = (pm_array_pattern_node_t *) node;
159
159
  if (cast->constant != NULL) {
@@ -166,14 +166,14 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
166
166
  pm_node_list_destroy(parser, &cast->posts);
167
167
  break;
168
168
  }
169
- #line 110 "node.c.erb"
169
+ #line 110 "prism/templates/src/node.c.erb"
170
170
  case PM_ASSOC_NODE: {
171
171
  pm_assoc_node_t *cast = (pm_assoc_node_t *) node;
172
172
  pm_node_destroy(parser, (pm_node_t *)cast->key);
173
173
  pm_node_destroy(parser, (pm_node_t *)cast->value);
174
174
  break;
175
175
  }
176
- #line 110 "node.c.erb"
176
+ #line 110 "prism/templates/src/node.c.erb"
177
177
  case PM_ASSOC_SPLAT_NODE: {
178
178
  pm_assoc_splat_node_t *cast = (pm_assoc_splat_node_t *) node;
179
179
  if (cast->value != NULL) {
@@ -181,11 +181,11 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
181
181
  }
182
182
  break;
183
183
  }
184
- #line 110 "node.c.erb"
184
+ #line 110 "prism/templates/src/node.c.erb"
185
185
  case PM_BACK_REFERENCE_READ_NODE: {
186
186
  break;
187
187
  }
188
- #line 110 "node.c.erb"
188
+ #line 110 "prism/templates/src/node.c.erb"
189
189
  case PM_BEGIN_NODE: {
190
190
  pm_begin_node_t *cast = (pm_begin_node_t *) node;
191
191
  if (cast->statements != NULL) {
@@ -202,7 +202,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
202
202
  }
203
203
  break;
204
204
  }
205
- #line 110 "node.c.erb"
205
+ #line 110 "prism/templates/src/node.c.erb"
206
206
  case PM_BLOCK_ARGUMENT_NODE: {
207
207
  pm_block_argument_node_t *cast = (pm_block_argument_node_t *) node;
208
208
  if (cast->expression != NULL) {
@@ -210,11 +210,11 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
210
210
  }
211
211
  break;
212
212
  }
213
- #line 110 "node.c.erb"
213
+ #line 110 "prism/templates/src/node.c.erb"
214
214
  case PM_BLOCK_LOCAL_VARIABLE_NODE: {
215
215
  break;
216
216
  }
217
- #line 110 "node.c.erb"
217
+ #line 110 "prism/templates/src/node.c.erb"
218
218
  case PM_BLOCK_NODE: {
219
219
  pm_block_node_t *cast = (pm_block_node_t *) node;
220
220
  pm_constant_id_list_free(&cast->locals);
@@ -226,11 +226,11 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
226
226
  }
227
227
  break;
228
228
  }
229
- #line 110 "node.c.erb"
229
+ #line 110 "prism/templates/src/node.c.erb"
230
230
  case PM_BLOCK_PARAMETER_NODE: {
231
231
  break;
232
232
  }
233
- #line 110 "node.c.erb"
233
+ #line 110 "prism/templates/src/node.c.erb"
234
234
  case PM_BLOCK_PARAMETERS_NODE: {
235
235
  pm_block_parameters_node_t *cast = (pm_block_parameters_node_t *) node;
236
236
  if (cast->parameters != NULL) {
@@ -239,7 +239,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
239
239
  pm_node_list_destroy(parser, &cast->locals);
240
240
  break;
241
241
  }
242
- #line 110 "node.c.erb"
242
+ #line 110 "prism/templates/src/node.c.erb"
243
243
  case PM_BREAK_NODE: {
244
244
  pm_break_node_t *cast = (pm_break_node_t *) node;
245
245
  if (cast->arguments != NULL) {
@@ -247,7 +247,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
247
247
  }
248
248
  break;
249
249
  }
250
- #line 110 "node.c.erb"
250
+ #line 110 "prism/templates/src/node.c.erb"
251
251
  case PM_CALL_AND_WRITE_NODE: {
252
252
  pm_call_and_write_node_t *cast = (pm_call_and_write_node_t *) node;
253
253
  if (cast->receiver != NULL) {
@@ -256,7 +256,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
256
256
  pm_node_destroy(parser, (pm_node_t *)cast->value);
257
257
  break;
258
258
  }
259
- #line 110 "node.c.erb"
259
+ #line 110 "prism/templates/src/node.c.erb"
260
260
  case PM_CALL_NODE: {
261
261
  pm_call_node_t *cast = (pm_call_node_t *) node;
262
262
  if (cast->receiver != NULL) {
@@ -270,7 +270,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
270
270
  }
271
271
  break;
272
272
  }
273
- #line 110 "node.c.erb"
273
+ #line 110 "prism/templates/src/node.c.erb"
274
274
  case PM_CALL_OPERATOR_WRITE_NODE: {
275
275
  pm_call_operator_write_node_t *cast = (pm_call_operator_write_node_t *) node;
276
276
  if (cast->receiver != NULL) {
@@ -279,7 +279,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
279
279
  pm_node_destroy(parser, (pm_node_t *)cast->value);
280
280
  break;
281
281
  }
282
- #line 110 "node.c.erb"
282
+ #line 110 "prism/templates/src/node.c.erb"
283
283
  case PM_CALL_OR_WRITE_NODE: {
284
284
  pm_call_or_write_node_t *cast = (pm_call_or_write_node_t *) node;
285
285
  if (cast->receiver != NULL) {
@@ -288,44 +288,44 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
288
288
  pm_node_destroy(parser, (pm_node_t *)cast->value);
289
289
  break;
290
290
  }
291
- #line 110 "node.c.erb"
291
+ #line 110 "prism/templates/src/node.c.erb"
292
292
  case PM_CALL_TARGET_NODE: {
293
293
  pm_call_target_node_t *cast = (pm_call_target_node_t *) node;
294
294
  pm_node_destroy(parser, (pm_node_t *)cast->receiver);
295
295
  break;
296
296
  }
297
- #line 110 "node.c.erb"
297
+ #line 110 "prism/templates/src/node.c.erb"
298
298
  case PM_CAPTURE_PATTERN_NODE: {
299
299
  pm_capture_pattern_node_t *cast = (pm_capture_pattern_node_t *) node;
300
300
  pm_node_destroy(parser, (pm_node_t *)cast->value);
301
301
  pm_node_destroy(parser, (pm_node_t *)cast->target);
302
302
  break;
303
303
  }
304
- #line 110 "node.c.erb"
304
+ #line 110 "prism/templates/src/node.c.erb"
305
305
  case PM_CASE_MATCH_NODE: {
306
306
  pm_case_match_node_t *cast = (pm_case_match_node_t *) node;
307
307
  if (cast->predicate != NULL) {
308
308
  pm_node_destroy(parser, (pm_node_t *)cast->predicate);
309
309
  }
310
310
  pm_node_list_destroy(parser, &cast->conditions);
311
- if (cast->consequent != NULL) {
312
- pm_node_destroy(parser, (pm_node_t *)cast->consequent);
311
+ if (cast->else_clause != NULL) {
312
+ pm_node_destroy(parser, (pm_node_t *)cast->else_clause);
313
313
  }
314
314
  break;
315
315
  }
316
- #line 110 "node.c.erb"
316
+ #line 110 "prism/templates/src/node.c.erb"
317
317
  case PM_CASE_NODE: {
318
318
  pm_case_node_t *cast = (pm_case_node_t *) node;
319
319
  if (cast->predicate != NULL) {
320
320
  pm_node_destroy(parser, (pm_node_t *)cast->predicate);
321
321
  }
322
322
  pm_node_list_destroy(parser, &cast->conditions);
323
- if (cast->consequent != NULL) {
324
- pm_node_destroy(parser, (pm_node_t *)cast->consequent);
323
+ if (cast->else_clause != NULL) {
324
+ pm_node_destroy(parser, (pm_node_t *)cast->else_clause);
325
325
  }
326
326
  break;
327
327
  }
328
- #line 110 "node.c.erb"
328
+ #line 110 "prism/templates/src/node.c.erb"
329
329
  case PM_CLASS_NODE: {
330
330
  pm_class_node_t *cast = (pm_class_node_t *) node;
331
331
  pm_constant_id_list_free(&cast->locals);
@@ -338,64 +338,64 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
338
338
  }
339
339
  break;
340
340
  }
341
- #line 110 "node.c.erb"
341
+ #line 110 "prism/templates/src/node.c.erb"
342
342
  case PM_CLASS_VARIABLE_AND_WRITE_NODE: {
343
343
  pm_class_variable_and_write_node_t *cast = (pm_class_variable_and_write_node_t *) node;
344
344
  pm_node_destroy(parser, (pm_node_t *)cast->value);
345
345
  break;
346
346
  }
347
- #line 110 "node.c.erb"
347
+ #line 110 "prism/templates/src/node.c.erb"
348
348
  case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
349
349
  pm_class_variable_operator_write_node_t *cast = (pm_class_variable_operator_write_node_t *) node;
350
350
  pm_node_destroy(parser, (pm_node_t *)cast->value);
351
351
  break;
352
352
  }
353
- #line 110 "node.c.erb"
353
+ #line 110 "prism/templates/src/node.c.erb"
354
354
  case PM_CLASS_VARIABLE_OR_WRITE_NODE: {
355
355
  pm_class_variable_or_write_node_t *cast = (pm_class_variable_or_write_node_t *) node;
356
356
  pm_node_destroy(parser, (pm_node_t *)cast->value);
357
357
  break;
358
358
  }
359
- #line 110 "node.c.erb"
359
+ #line 110 "prism/templates/src/node.c.erb"
360
360
  case PM_CLASS_VARIABLE_READ_NODE: {
361
361
  break;
362
362
  }
363
- #line 110 "node.c.erb"
363
+ #line 110 "prism/templates/src/node.c.erb"
364
364
  case PM_CLASS_VARIABLE_TARGET_NODE: {
365
365
  break;
366
366
  }
367
- #line 110 "node.c.erb"
367
+ #line 110 "prism/templates/src/node.c.erb"
368
368
  case PM_CLASS_VARIABLE_WRITE_NODE: {
369
369
  pm_class_variable_write_node_t *cast = (pm_class_variable_write_node_t *) node;
370
370
  pm_node_destroy(parser, (pm_node_t *)cast->value);
371
371
  break;
372
372
  }
373
- #line 110 "node.c.erb"
373
+ #line 110 "prism/templates/src/node.c.erb"
374
374
  case PM_CONSTANT_AND_WRITE_NODE: {
375
375
  pm_constant_and_write_node_t *cast = (pm_constant_and_write_node_t *) node;
376
376
  pm_node_destroy(parser, (pm_node_t *)cast->value);
377
377
  break;
378
378
  }
379
- #line 110 "node.c.erb"
379
+ #line 110 "prism/templates/src/node.c.erb"
380
380
  case PM_CONSTANT_OPERATOR_WRITE_NODE: {
381
381
  pm_constant_operator_write_node_t *cast = (pm_constant_operator_write_node_t *) node;
382
382
  pm_node_destroy(parser, (pm_node_t *)cast->value);
383
383
  break;
384
384
  }
385
- #line 110 "node.c.erb"
385
+ #line 110 "prism/templates/src/node.c.erb"
386
386
  case PM_CONSTANT_OR_WRITE_NODE: {
387
387
  pm_constant_or_write_node_t *cast = (pm_constant_or_write_node_t *) node;
388
388
  pm_node_destroy(parser, (pm_node_t *)cast->value);
389
389
  break;
390
390
  }
391
- #line 110 "node.c.erb"
391
+ #line 110 "prism/templates/src/node.c.erb"
392
392
  case PM_CONSTANT_PATH_AND_WRITE_NODE: {
393
393
  pm_constant_path_and_write_node_t *cast = (pm_constant_path_and_write_node_t *) node;
394
394
  pm_node_destroy(parser, (pm_node_t *)cast->target);
395
395
  pm_node_destroy(parser, (pm_node_t *)cast->value);
396
396
  break;
397
397
  }
398
- #line 110 "node.c.erb"
398
+ #line 110 "prism/templates/src/node.c.erb"
399
399
  case PM_CONSTANT_PATH_NODE: {
400
400
  pm_constant_path_node_t *cast = (pm_constant_path_node_t *) node;
401
401
  if (cast->parent != NULL) {
@@ -403,21 +403,21 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
403
403
  }
404
404
  break;
405
405
  }
406
- #line 110 "node.c.erb"
406
+ #line 110 "prism/templates/src/node.c.erb"
407
407
  case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
408
408
  pm_constant_path_operator_write_node_t *cast = (pm_constant_path_operator_write_node_t *) node;
409
409
  pm_node_destroy(parser, (pm_node_t *)cast->target);
410
410
  pm_node_destroy(parser, (pm_node_t *)cast->value);
411
411
  break;
412
412
  }
413
- #line 110 "node.c.erb"
413
+ #line 110 "prism/templates/src/node.c.erb"
414
414
  case PM_CONSTANT_PATH_OR_WRITE_NODE: {
415
415
  pm_constant_path_or_write_node_t *cast = (pm_constant_path_or_write_node_t *) node;
416
416
  pm_node_destroy(parser, (pm_node_t *)cast->target);
417
417
  pm_node_destroy(parser, (pm_node_t *)cast->value);
418
418
  break;
419
419
  }
420
- #line 110 "node.c.erb"
420
+ #line 110 "prism/templates/src/node.c.erb"
421
421
  case PM_CONSTANT_PATH_TARGET_NODE: {
422
422
  pm_constant_path_target_node_t *cast = (pm_constant_path_target_node_t *) node;
423
423
  if (cast->parent != NULL) {
@@ -425,28 +425,28 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
425
425
  }
426
426
  break;
427
427
  }
428
- #line 110 "node.c.erb"
428
+ #line 110 "prism/templates/src/node.c.erb"
429
429
  case PM_CONSTANT_PATH_WRITE_NODE: {
430
430
  pm_constant_path_write_node_t *cast = (pm_constant_path_write_node_t *) node;
431
431
  pm_node_destroy(parser, (pm_node_t *)cast->target);
432
432
  pm_node_destroy(parser, (pm_node_t *)cast->value);
433
433
  break;
434
434
  }
435
- #line 110 "node.c.erb"
435
+ #line 110 "prism/templates/src/node.c.erb"
436
436
  case PM_CONSTANT_READ_NODE: {
437
437
  break;
438
438
  }
439
- #line 110 "node.c.erb"
439
+ #line 110 "prism/templates/src/node.c.erb"
440
440
  case PM_CONSTANT_TARGET_NODE: {
441
441
  break;
442
442
  }
443
- #line 110 "node.c.erb"
443
+ #line 110 "prism/templates/src/node.c.erb"
444
444
  case PM_CONSTANT_WRITE_NODE: {
445
445
  pm_constant_write_node_t *cast = (pm_constant_write_node_t *) node;
446
446
  pm_node_destroy(parser, (pm_node_t *)cast->value);
447
447
  break;
448
448
  }
449
- #line 110 "node.c.erb"
449
+ #line 110 "prism/templates/src/node.c.erb"
450
450
  case PM_DEF_NODE: {
451
451
  pm_def_node_t *cast = (pm_def_node_t *) node;
452
452
  if (cast->receiver != NULL) {
@@ -461,13 +461,13 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
461
461
  pm_constant_id_list_free(&cast->locals);
462
462
  break;
463
463
  }
464
- #line 110 "node.c.erb"
464
+ #line 110 "prism/templates/src/node.c.erb"
465
465
  case PM_DEFINED_NODE: {
466
466
  pm_defined_node_t *cast = (pm_defined_node_t *) node;
467
467
  pm_node_destroy(parser, (pm_node_t *)cast->value);
468
468
  break;
469
469
  }
470
- #line 110 "node.c.erb"
470
+ #line 110 "prism/templates/src/node.c.erb"
471
471
  case PM_ELSE_NODE: {
472
472
  pm_else_node_t *cast = (pm_else_node_t *) node;
473
473
  if (cast->statements != NULL) {
@@ -475,7 +475,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
475
475
  }
476
476
  break;
477
477
  }
478
- #line 110 "node.c.erb"
478
+ #line 110 "prism/templates/src/node.c.erb"
479
479
  case PM_EMBEDDED_STATEMENTS_NODE: {
480
480
  pm_embedded_statements_node_t *cast = (pm_embedded_statements_node_t *) node;
481
481
  if (cast->statements != NULL) {
@@ -483,13 +483,13 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
483
483
  }
484
484
  break;
485
485
  }
486
- #line 110 "node.c.erb"
486
+ #line 110 "prism/templates/src/node.c.erb"
487
487
  case PM_EMBEDDED_VARIABLE_NODE: {
488
488
  pm_embedded_variable_node_t *cast = (pm_embedded_variable_node_t *) node;
489
489
  pm_node_destroy(parser, (pm_node_t *)cast->variable);
490
490
  break;
491
491
  }
492
- #line 110 "node.c.erb"
492
+ #line 110 "prism/templates/src/node.c.erb"
493
493
  case PM_ENSURE_NODE: {
494
494
  pm_ensure_node_t *cast = (pm_ensure_node_t *) node;
495
495
  if (cast->statements != NULL) {
@@ -497,11 +497,11 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
497
497
  }
498
498
  break;
499
499
  }
500
- #line 110 "node.c.erb"
500
+ #line 110 "prism/templates/src/node.c.erb"
501
501
  case PM_FALSE_NODE: {
502
502
  break;
503
503
  }
504
- #line 110 "node.c.erb"
504
+ #line 110 "prism/templates/src/node.c.erb"
505
505
  case PM_FIND_PATTERN_NODE: {
506
506
  pm_find_pattern_node_t *cast = (pm_find_pattern_node_t *) node;
507
507
  if (cast->constant != NULL) {
@@ -512,7 +512,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
512
512
  pm_node_destroy(parser, (pm_node_t *)cast->right);
513
513
  break;
514
514
  }
515
- #line 110 "node.c.erb"
515
+ #line 110 "prism/templates/src/node.c.erb"
516
516
  case PM_FLIP_FLOP_NODE: {
517
517
  pm_flip_flop_node_t *cast = (pm_flip_flop_node_t *) node;
518
518
  if (cast->left != NULL) {
@@ -523,11 +523,11 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
523
523
  }
524
524
  break;
525
525
  }
526
- #line 110 "node.c.erb"
526
+ #line 110 "prism/templates/src/node.c.erb"
527
527
  case PM_FLOAT_NODE: {
528
528
  break;
529
529
  }
530
- #line 110 "node.c.erb"
530
+ #line 110 "prism/templates/src/node.c.erb"
531
531
  case PM_FOR_NODE: {
532
532
  pm_for_node_t *cast = (pm_for_node_t *) node;
533
533
  pm_node_destroy(parser, (pm_node_t *)cast->index);
@@ -537,15 +537,15 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
537
537
  }
538
538
  break;
539
539
  }
540
- #line 110 "node.c.erb"
540
+ #line 110 "prism/templates/src/node.c.erb"
541
541
  case PM_FORWARDING_ARGUMENTS_NODE: {
542
542
  break;
543
543
  }
544
- #line 110 "node.c.erb"
544
+ #line 110 "prism/templates/src/node.c.erb"
545
545
  case PM_FORWARDING_PARAMETER_NODE: {
546
546
  break;
547
547
  }
548
- #line 110 "node.c.erb"
548
+ #line 110 "prism/templates/src/node.c.erb"
549
549
  case PM_FORWARDING_SUPER_NODE: {
550
550
  pm_forwarding_super_node_t *cast = (pm_forwarding_super_node_t *) node;
551
551
  if (cast->block != NULL) {
@@ -553,45 +553,45 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
553
553
  }
554
554
  break;
555
555
  }
556
- #line 110 "node.c.erb"
556
+ #line 110 "prism/templates/src/node.c.erb"
557
557
  case PM_GLOBAL_VARIABLE_AND_WRITE_NODE: {
558
558
  pm_global_variable_and_write_node_t *cast = (pm_global_variable_and_write_node_t *) node;
559
559
  pm_node_destroy(parser, (pm_node_t *)cast->value);
560
560
  break;
561
561
  }
562
- #line 110 "node.c.erb"
562
+ #line 110 "prism/templates/src/node.c.erb"
563
563
  case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
564
564
  pm_global_variable_operator_write_node_t *cast = (pm_global_variable_operator_write_node_t *) node;
565
565
  pm_node_destroy(parser, (pm_node_t *)cast->value);
566
566
  break;
567
567
  }
568
- #line 110 "node.c.erb"
568
+ #line 110 "prism/templates/src/node.c.erb"
569
569
  case PM_GLOBAL_VARIABLE_OR_WRITE_NODE: {
570
570
  pm_global_variable_or_write_node_t *cast = (pm_global_variable_or_write_node_t *) node;
571
571
  pm_node_destroy(parser, (pm_node_t *)cast->value);
572
572
  break;
573
573
  }
574
- #line 110 "node.c.erb"
574
+ #line 110 "prism/templates/src/node.c.erb"
575
575
  case PM_GLOBAL_VARIABLE_READ_NODE: {
576
576
  break;
577
577
  }
578
- #line 110 "node.c.erb"
578
+ #line 110 "prism/templates/src/node.c.erb"
579
579
  case PM_GLOBAL_VARIABLE_TARGET_NODE: {
580
580
  break;
581
581
  }
582
- #line 110 "node.c.erb"
582
+ #line 110 "prism/templates/src/node.c.erb"
583
583
  case PM_GLOBAL_VARIABLE_WRITE_NODE: {
584
584
  pm_global_variable_write_node_t *cast = (pm_global_variable_write_node_t *) node;
585
585
  pm_node_destroy(parser, (pm_node_t *)cast->value);
586
586
  break;
587
587
  }
588
- #line 110 "node.c.erb"
588
+ #line 110 "prism/templates/src/node.c.erb"
589
589
  case PM_HASH_NODE: {
590
590
  pm_hash_node_t *cast = (pm_hash_node_t *) node;
591
591
  pm_node_list_destroy(parser, &cast->elements);
592
592
  break;
593
593
  }
594
- #line 110 "node.c.erb"
594
+ #line 110 "prism/templates/src/node.c.erb"
595
595
  case PM_HASH_PATTERN_NODE: {
596
596
  pm_hash_pattern_node_t *cast = (pm_hash_pattern_node_t *) node;
597
597
  if (cast->constant != NULL) {
@@ -603,35 +603,35 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
603
603
  }
604
604
  break;
605
605
  }
606
- #line 110 "node.c.erb"
606
+ #line 110 "prism/templates/src/node.c.erb"
607
607
  case PM_IF_NODE: {
608
608
  pm_if_node_t *cast = (pm_if_node_t *) node;
609
609
  pm_node_destroy(parser, (pm_node_t *)cast->predicate);
610
610
  if (cast->statements != NULL) {
611
611
  pm_node_destroy(parser, (pm_node_t *)cast->statements);
612
612
  }
613
- if (cast->consequent != NULL) {
614
- pm_node_destroy(parser, (pm_node_t *)cast->consequent);
613
+ if (cast->subsequent != NULL) {
614
+ pm_node_destroy(parser, (pm_node_t *)cast->subsequent);
615
615
  }
616
616
  break;
617
617
  }
618
- #line 110 "node.c.erb"
618
+ #line 110 "prism/templates/src/node.c.erb"
619
619
  case PM_IMAGINARY_NODE: {
620
620
  pm_imaginary_node_t *cast = (pm_imaginary_node_t *) node;
621
621
  pm_node_destroy(parser, (pm_node_t *)cast->numeric);
622
622
  break;
623
623
  }
624
- #line 110 "node.c.erb"
624
+ #line 110 "prism/templates/src/node.c.erb"
625
625
  case PM_IMPLICIT_NODE: {
626
626
  pm_implicit_node_t *cast = (pm_implicit_node_t *) node;
627
627
  pm_node_destroy(parser, (pm_node_t *)cast->value);
628
628
  break;
629
629
  }
630
- #line 110 "node.c.erb"
630
+ #line 110 "prism/templates/src/node.c.erb"
631
631
  case PM_IMPLICIT_REST_NODE: {
632
632
  break;
633
633
  }
634
- #line 110 "node.c.erb"
634
+ #line 110 "prism/templates/src/node.c.erb"
635
635
  case PM_IN_NODE: {
636
636
  pm_in_node_t *cast = (pm_in_node_t *) node;
637
637
  pm_node_destroy(parser, (pm_node_t *)cast->pattern);
@@ -640,7 +640,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
640
640
  }
641
641
  break;
642
642
  }
643
- #line 110 "node.c.erb"
643
+ #line 110 "prism/templates/src/node.c.erb"
644
644
  case PM_INDEX_AND_WRITE_NODE: {
645
645
  pm_index_and_write_node_t *cast = (pm_index_and_write_node_t *) node;
646
646
  if (cast->receiver != NULL) {
@@ -655,7 +655,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
655
655
  pm_node_destroy(parser, (pm_node_t *)cast->value);
656
656
  break;
657
657
  }
658
- #line 110 "node.c.erb"
658
+ #line 110 "prism/templates/src/node.c.erb"
659
659
  case PM_INDEX_OPERATOR_WRITE_NODE: {
660
660
  pm_index_operator_write_node_t *cast = (pm_index_operator_write_node_t *) node;
661
661
  if (cast->receiver != NULL) {
@@ -670,7 +670,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
670
670
  pm_node_destroy(parser, (pm_node_t *)cast->value);
671
671
  break;
672
672
  }
673
- #line 110 "node.c.erb"
673
+ #line 110 "prism/templates/src/node.c.erb"
674
674
  case PM_INDEX_OR_WRITE_NODE: {
675
675
  pm_index_or_write_node_t *cast = (pm_index_or_write_node_t *) node;
676
676
  if (cast->receiver != NULL) {
@@ -685,7 +685,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
685
685
  pm_node_destroy(parser, (pm_node_t *)cast->value);
686
686
  break;
687
687
  }
688
- #line 110 "node.c.erb"
688
+ #line 110 "prism/templates/src/node.c.erb"
689
689
  case PM_INDEX_TARGET_NODE: {
690
690
  pm_index_target_node_t *cast = (pm_index_target_node_t *) node;
691
691
  pm_node_destroy(parser, (pm_node_t *)cast->receiver);
@@ -697,93 +697,93 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
697
697
  }
698
698
  break;
699
699
  }
700
- #line 110 "node.c.erb"
700
+ #line 110 "prism/templates/src/node.c.erb"
701
701
  case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
702
702
  pm_instance_variable_and_write_node_t *cast = (pm_instance_variable_and_write_node_t *) node;
703
703
  pm_node_destroy(parser, (pm_node_t *)cast->value);
704
704
  break;
705
705
  }
706
- #line 110 "node.c.erb"
706
+ #line 110 "prism/templates/src/node.c.erb"
707
707
  case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
708
708
  pm_instance_variable_operator_write_node_t *cast = (pm_instance_variable_operator_write_node_t *) node;
709
709
  pm_node_destroy(parser, (pm_node_t *)cast->value);
710
710
  break;
711
711
  }
712
- #line 110 "node.c.erb"
712
+ #line 110 "prism/templates/src/node.c.erb"
713
713
  case PM_INSTANCE_VARIABLE_OR_WRITE_NODE: {
714
714
  pm_instance_variable_or_write_node_t *cast = (pm_instance_variable_or_write_node_t *) node;
715
715
  pm_node_destroy(parser, (pm_node_t *)cast->value);
716
716
  break;
717
717
  }
718
- #line 110 "node.c.erb"
718
+ #line 110 "prism/templates/src/node.c.erb"
719
719
  case PM_INSTANCE_VARIABLE_READ_NODE: {
720
720
  break;
721
721
  }
722
- #line 110 "node.c.erb"
722
+ #line 110 "prism/templates/src/node.c.erb"
723
723
  case PM_INSTANCE_VARIABLE_TARGET_NODE: {
724
724
  break;
725
725
  }
726
- #line 110 "node.c.erb"
726
+ #line 110 "prism/templates/src/node.c.erb"
727
727
  case PM_INSTANCE_VARIABLE_WRITE_NODE: {
728
728
  pm_instance_variable_write_node_t *cast = (pm_instance_variable_write_node_t *) node;
729
729
  pm_node_destroy(parser, (pm_node_t *)cast->value);
730
730
  break;
731
731
  }
732
- #line 110 "node.c.erb"
732
+ #line 110 "prism/templates/src/node.c.erb"
733
733
  case PM_INTEGER_NODE: {
734
734
  pm_integer_node_t *cast = (pm_integer_node_t *) node;
735
735
  pm_integer_free(&cast->value);
736
736
  break;
737
737
  }
738
- #line 110 "node.c.erb"
738
+ #line 110 "prism/templates/src/node.c.erb"
739
739
  case PM_INTERPOLATED_MATCH_LAST_LINE_NODE: {
740
740
  pm_interpolated_match_last_line_node_t *cast = (pm_interpolated_match_last_line_node_t *) node;
741
741
  pm_node_list_destroy(parser, &cast->parts);
742
742
  break;
743
743
  }
744
- #line 110 "node.c.erb"
744
+ #line 110 "prism/templates/src/node.c.erb"
745
745
  case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
746
746
  pm_interpolated_regular_expression_node_t *cast = (pm_interpolated_regular_expression_node_t *) node;
747
747
  pm_node_list_destroy(parser, &cast->parts);
748
748
  break;
749
749
  }
750
- #line 110 "node.c.erb"
750
+ #line 110 "prism/templates/src/node.c.erb"
751
751
  case PM_INTERPOLATED_STRING_NODE: {
752
752
  pm_interpolated_string_node_t *cast = (pm_interpolated_string_node_t *) node;
753
753
  pm_node_list_destroy(parser, &cast->parts);
754
754
  break;
755
755
  }
756
- #line 110 "node.c.erb"
756
+ #line 110 "prism/templates/src/node.c.erb"
757
757
  case PM_INTERPOLATED_SYMBOL_NODE: {
758
758
  pm_interpolated_symbol_node_t *cast = (pm_interpolated_symbol_node_t *) node;
759
759
  pm_node_list_destroy(parser, &cast->parts);
760
760
  break;
761
761
  }
762
- #line 110 "node.c.erb"
762
+ #line 110 "prism/templates/src/node.c.erb"
763
763
  case PM_INTERPOLATED_X_STRING_NODE: {
764
764
  pm_interpolated_x_string_node_t *cast = (pm_interpolated_x_string_node_t *) node;
765
765
  pm_node_list_destroy(parser, &cast->parts);
766
766
  break;
767
767
  }
768
- #line 110 "node.c.erb"
768
+ #line 110 "prism/templates/src/node.c.erb"
769
769
  case PM_IT_LOCAL_VARIABLE_READ_NODE: {
770
770
  break;
771
771
  }
772
- #line 110 "node.c.erb"
772
+ #line 110 "prism/templates/src/node.c.erb"
773
773
  case PM_IT_PARAMETERS_NODE: {
774
774
  break;
775
775
  }
776
- #line 110 "node.c.erb"
776
+ #line 110 "prism/templates/src/node.c.erb"
777
777
  case PM_KEYWORD_HASH_NODE: {
778
778
  pm_keyword_hash_node_t *cast = (pm_keyword_hash_node_t *) node;
779
779
  pm_node_list_destroy(parser, &cast->elements);
780
780
  break;
781
781
  }
782
- #line 110 "node.c.erb"
782
+ #line 110 "prism/templates/src/node.c.erb"
783
783
  case PM_KEYWORD_REST_PARAMETER_NODE: {
784
784
  break;
785
785
  }
786
- #line 110 "node.c.erb"
786
+ #line 110 "prism/templates/src/node.c.erb"
787
787
  case PM_LAMBDA_NODE: {
788
788
  pm_lambda_node_t *cast = (pm_lambda_node_t *) node;
789
789
  pm_constant_id_list_free(&cast->locals);
@@ -795,70 +795,70 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
795
795
  }
796
796
  break;
797
797
  }
798
- #line 110 "node.c.erb"
798
+ #line 110 "prism/templates/src/node.c.erb"
799
799
  case PM_LOCAL_VARIABLE_AND_WRITE_NODE: {
800
800
  pm_local_variable_and_write_node_t *cast = (pm_local_variable_and_write_node_t *) node;
801
801
  pm_node_destroy(parser, (pm_node_t *)cast->value);
802
802
  break;
803
803
  }
804
- #line 110 "node.c.erb"
804
+ #line 110 "prism/templates/src/node.c.erb"
805
805
  case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
806
806
  pm_local_variable_operator_write_node_t *cast = (pm_local_variable_operator_write_node_t *) node;
807
807
  pm_node_destroy(parser, (pm_node_t *)cast->value);
808
808
  break;
809
809
  }
810
- #line 110 "node.c.erb"
810
+ #line 110 "prism/templates/src/node.c.erb"
811
811
  case PM_LOCAL_VARIABLE_OR_WRITE_NODE: {
812
812
  pm_local_variable_or_write_node_t *cast = (pm_local_variable_or_write_node_t *) node;
813
813
  pm_node_destroy(parser, (pm_node_t *)cast->value);
814
814
  break;
815
815
  }
816
- #line 110 "node.c.erb"
816
+ #line 110 "prism/templates/src/node.c.erb"
817
817
  case PM_LOCAL_VARIABLE_READ_NODE: {
818
818
  break;
819
819
  }
820
- #line 110 "node.c.erb"
820
+ #line 110 "prism/templates/src/node.c.erb"
821
821
  case PM_LOCAL_VARIABLE_TARGET_NODE: {
822
822
  break;
823
823
  }
824
- #line 110 "node.c.erb"
824
+ #line 110 "prism/templates/src/node.c.erb"
825
825
  case PM_LOCAL_VARIABLE_WRITE_NODE: {
826
826
  pm_local_variable_write_node_t *cast = (pm_local_variable_write_node_t *) node;
827
827
  pm_node_destroy(parser, (pm_node_t *)cast->value);
828
828
  break;
829
829
  }
830
- #line 110 "node.c.erb"
830
+ #line 110 "prism/templates/src/node.c.erb"
831
831
  case PM_MATCH_LAST_LINE_NODE: {
832
832
  pm_match_last_line_node_t *cast = (pm_match_last_line_node_t *) node;
833
833
  pm_string_free(&cast->unescaped);
834
834
  break;
835
835
  }
836
- #line 110 "node.c.erb"
836
+ #line 110 "prism/templates/src/node.c.erb"
837
837
  case PM_MATCH_PREDICATE_NODE: {
838
838
  pm_match_predicate_node_t *cast = (pm_match_predicate_node_t *) node;
839
839
  pm_node_destroy(parser, (pm_node_t *)cast->value);
840
840
  pm_node_destroy(parser, (pm_node_t *)cast->pattern);
841
841
  break;
842
842
  }
843
- #line 110 "node.c.erb"
843
+ #line 110 "prism/templates/src/node.c.erb"
844
844
  case PM_MATCH_REQUIRED_NODE: {
845
845
  pm_match_required_node_t *cast = (pm_match_required_node_t *) node;
846
846
  pm_node_destroy(parser, (pm_node_t *)cast->value);
847
847
  pm_node_destroy(parser, (pm_node_t *)cast->pattern);
848
848
  break;
849
849
  }
850
- #line 110 "node.c.erb"
850
+ #line 110 "prism/templates/src/node.c.erb"
851
851
  case PM_MATCH_WRITE_NODE: {
852
852
  pm_match_write_node_t *cast = (pm_match_write_node_t *) node;
853
853
  pm_node_destroy(parser, (pm_node_t *)cast->call);
854
854
  pm_node_list_destroy(parser, &cast->targets);
855
855
  break;
856
856
  }
857
- #line 110 "node.c.erb"
857
+ #line 110 "prism/templates/src/node.c.erb"
858
858
  case PM_MISSING_NODE: {
859
859
  break;
860
860
  }
861
- #line 110 "node.c.erb"
861
+ #line 110 "prism/templates/src/node.c.erb"
862
862
  case PM_MODULE_NODE: {
863
863
  pm_module_node_t *cast = (pm_module_node_t *) node;
864
864
  pm_constant_id_list_free(&cast->locals);
@@ -868,7 +868,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
868
868
  }
869
869
  break;
870
870
  }
871
- #line 110 "node.c.erb"
871
+ #line 110 "prism/templates/src/node.c.erb"
872
872
  case PM_MULTI_TARGET_NODE: {
873
873
  pm_multi_target_node_t *cast = (pm_multi_target_node_t *) node;
874
874
  pm_node_list_destroy(parser, &cast->lefts);
@@ -878,7 +878,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
878
878
  pm_node_list_destroy(parser, &cast->rights);
879
879
  break;
880
880
  }
881
- #line 110 "node.c.erb"
881
+ #line 110 "prism/templates/src/node.c.erb"
882
882
  case PM_MULTI_WRITE_NODE: {
883
883
  pm_multi_write_node_t *cast = (pm_multi_write_node_t *) node;
884
884
  pm_node_list_destroy(parser, &cast->lefts);
@@ -889,7 +889,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
889
889
  pm_node_destroy(parser, (pm_node_t *)cast->value);
890
890
  break;
891
891
  }
892
- #line 110 "node.c.erb"
892
+ #line 110 "prism/templates/src/node.c.erb"
893
893
  case PM_NEXT_NODE: {
894
894
  pm_next_node_t *cast = (pm_next_node_t *) node;
895
895
  if (cast->arguments != NULL) {
@@ -897,42 +897,42 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
897
897
  }
898
898
  break;
899
899
  }
900
- #line 110 "node.c.erb"
900
+ #line 110 "prism/templates/src/node.c.erb"
901
901
  case PM_NIL_NODE: {
902
902
  break;
903
903
  }
904
- #line 110 "node.c.erb"
904
+ #line 110 "prism/templates/src/node.c.erb"
905
905
  case PM_NO_KEYWORDS_PARAMETER_NODE: {
906
906
  break;
907
907
  }
908
- #line 110 "node.c.erb"
908
+ #line 110 "prism/templates/src/node.c.erb"
909
909
  case PM_NUMBERED_PARAMETERS_NODE: {
910
910
  break;
911
911
  }
912
- #line 110 "node.c.erb"
912
+ #line 110 "prism/templates/src/node.c.erb"
913
913
  case PM_NUMBERED_REFERENCE_READ_NODE: {
914
914
  break;
915
915
  }
916
- #line 110 "node.c.erb"
916
+ #line 110 "prism/templates/src/node.c.erb"
917
917
  case PM_OPTIONAL_KEYWORD_PARAMETER_NODE: {
918
918
  pm_optional_keyword_parameter_node_t *cast = (pm_optional_keyword_parameter_node_t *) node;
919
919
  pm_node_destroy(parser, (pm_node_t *)cast->value);
920
920
  break;
921
921
  }
922
- #line 110 "node.c.erb"
922
+ #line 110 "prism/templates/src/node.c.erb"
923
923
  case PM_OPTIONAL_PARAMETER_NODE: {
924
924
  pm_optional_parameter_node_t *cast = (pm_optional_parameter_node_t *) node;
925
925
  pm_node_destroy(parser, (pm_node_t *)cast->value);
926
926
  break;
927
927
  }
928
- #line 110 "node.c.erb"
928
+ #line 110 "prism/templates/src/node.c.erb"
929
929
  case PM_OR_NODE: {
930
930
  pm_or_node_t *cast = (pm_or_node_t *) node;
931
931
  pm_node_destroy(parser, (pm_node_t *)cast->left);
932
932
  pm_node_destroy(parser, (pm_node_t *)cast->right);
933
933
  break;
934
934
  }
935
- #line 110 "node.c.erb"
935
+ #line 110 "prism/templates/src/node.c.erb"
936
936
  case PM_PARAMETERS_NODE: {
937
937
  pm_parameters_node_t *cast = (pm_parameters_node_t *) node;
938
938
  pm_node_list_destroy(parser, &cast->requireds);
@@ -950,7 +950,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
950
950
  }
951
951
  break;
952
952
  }
953
- #line 110 "node.c.erb"
953
+ #line 110 "prism/templates/src/node.c.erb"
954
954
  case PM_PARENTHESES_NODE: {
955
955
  pm_parentheses_node_t *cast = (pm_parentheses_node_t *) node;
956
956
  if (cast->body != NULL) {
@@ -958,19 +958,19 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
958
958
  }
959
959
  break;
960
960
  }
961
- #line 110 "node.c.erb"
961
+ #line 110 "prism/templates/src/node.c.erb"
962
962
  case PM_PINNED_EXPRESSION_NODE: {
963
963
  pm_pinned_expression_node_t *cast = (pm_pinned_expression_node_t *) node;
964
964
  pm_node_destroy(parser, (pm_node_t *)cast->expression);
965
965
  break;
966
966
  }
967
- #line 110 "node.c.erb"
967
+ #line 110 "prism/templates/src/node.c.erb"
968
968
  case PM_PINNED_VARIABLE_NODE: {
969
969
  pm_pinned_variable_node_t *cast = (pm_pinned_variable_node_t *) node;
970
970
  pm_node_destroy(parser, (pm_node_t *)cast->variable);
971
971
  break;
972
972
  }
973
- #line 110 "node.c.erb"
973
+ #line 110 "prism/templates/src/node.c.erb"
974
974
  case PM_POST_EXECUTION_NODE: {
975
975
  pm_post_execution_node_t *cast = (pm_post_execution_node_t *) node;
976
976
  if (cast->statements != NULL) {
@@ -978,7 +978,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
978
978
  }
979
979
  break;
980
980
  }
981
- #line 110 "node.c.erb"
981
+ #line 110 "prism/templates/src/node.c.erb"
982
982
  case PM_PRE_EXECUTION_NODE: {
983
983
  pm_pre_execution_node_t *cast = (pm_pre_execution_node_t *) node;
984
984
  if (cast->statements != NULL) {
@@ -986,14 +986,14 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
986
986
  }
987
987
  break;
988
988
  }
989
- #line 110 "node.c.erb"
989
+ #line 110 "prism/templates/src/node.c.erb"
990
990
  case PM_PROGRAM_NODE: {
991
991
  pm_program_node_t *cast = (pm_program_node_t *) node;
992
992
  pm_constant_id_list_free(&cast->locals);
993
993
  pm_node_destroy(parser, (pm_node_t *)cast->statements);
994
994
  break;
995
995
  }
996
- #line 110 "node.c.erb"
996
+ #line 110 "prism/templates/src/node.c.erb"
997
997
  case PM_RANGE_NODE: {
998
998
  pm_range_node_t *cast = (pm_range_node_t *) node;
999
999
  if (cast->left != NULL) {
@@ -1004,39 +1004,39 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1004
1004
  }
1005
1005
  break;
1006
1006
  }
1007
- #line 110 "node.c.erb"
1007
+ #line 110 "prism/templates/src/node.c.erb"
1008
1008
  case PM_RATIONAL_NODE: {
1009
1009
  pm_rational_node_t *cast = (pm_rational_node_t *) node;
1010
1010
  pm_integer_free(&cast->numerator);
1011
1011
  pm_integer_free(&cast->denominator);
1012
1012
  break;
1013
1013
  }
1014
- #line 110 "node.c.erb"
1014
+ #line 110 "prism/templates/src/node.c.erb"
1015
1015
  case PM_REDO_NODE: {
1016
1016
  break;
1017
1017
  }
1018
- #line 110 "node.c.erb"
1018
+ #line 110 "prism/templates/src/node.c.erb"
1019
1019
  case PM_REGULAR_EXPRESSION_NODE: {
1020
1020
  pm_regular_expression_node_t *cast = (pm_regular_expression_node_t *) node;
1021
1021
  pm_string_free(&cast->unescaped);
1022
1022
  break;
1023
1023
  }
1024
- #line 110 "node.c.erb"
1024
+ #line 110 "prism/templates/src/node.c.erb"
1025
1025
  case PM_REQUIRED_KEYWORD_PARAMETER_NODE: {
1026
1026
  break;
1027
1027
  }
1028
- #line 110 "node.c.erb"
1028
+ #line 110 "prism/templates/src/node.c.erb"
1029
1029
  case PM_REQUIRED_PARAMETER_NODE: {
1030
1030
  break;
1031
1031
  }
1032
- #line 110 "node.c.erb"
1032
+ #line 110 "prism/templates/src/node.c.erb"
1033
1033
  case PM_RESCUE_MODIFIER_NODE: {
1034
1034
  pm_rescue_modifier_node_t *cast = (pm_rescue_modifier_node_t *) node;
1035
1035
  pm_node_destroy(parser, (pm_node_t *)cast->expression);
1036
1036
  pm_node_destroy(parser, (pm_node_t *)cast->rescue_expression);
1037
1037
  break;
1038
1038
  }
1039
- #line 110 "node.c.erb"
1039
+ #line 110 "prism/templates/src/node.c.erb"
1040
1040
  case PM_RESCUE_NODE: {
1041
1041
  pm_rescue_node_t *cast = (pm_rescue_node_t *) node;
1042
1042
  pm_node_list_destroy(parser, &cast->exceptions);
@@ -1046,20 +1046,20 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1046
1046
  if (cast->statements != NULL) {
1047
1047
  pm_node_destroy(parser, (pm_node_t *)cast->statements);
1048
1048
  }
1049
- if (cast->consequent != NULL) {
1050
- pm_node_destroy(parser, (pm_node_t *)cast->consequent);
1049
+ if (cast->subsequent != NULL) {
1050
+ pm_node_destroy(parser, (pm_node_t *)cast->subsequent);
1051
1051
  }
1052
1052
  break;
1053
1053
  }
1054
- #line 110 "node.c.erb"
1054
+ #line 110 "prism/templates/src/node.c.erb"
1055
1055
  case PM_REST_PARAMETER_NODE: {
1056
1056
  break;
1057
1057
  }
1058
- #line 110 "node.c.erb"
1058
+ #line 110 "prism/templates/src/node.c.erb"
1059
1059
  case PM_RETRY_NODE: {
1060
1060
  break;
1061
1061
  }
1062
- #line 110 "node.c.erb"
1062
+ #line 110 "prism/templates/src/node.c.erb"
1063
1063
  case PM_RETURN_NODE: {
1064
1064
  pm_return_node_t *cast = (pm_return_node_t *) node;
1065
1065
  if (cast->arguments != NULL) {
@@ -1067,17 +1067,17 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1067
1067
  }
1068
1068
  break;
1069
1069
  }
1070
- #line 110 "node.c.erb"
1070
+ #line 110 "prism/templates/src/node.c.erb"
1071
1071
  case PM_SELF_NODE: {
1072
1072
  break;
1073
1073
  }
1074
- #line 110 "node.c.erb"
1074
+ #line 110 "prism/templates/src/node.c.erb"
1075
1075
  case PM_SHAREABLE_CONSTANT_NODE: {
1076
1076
  pm_shareable_constant_node_t *cast = (pm_shareable_constant_node_t *) node;
1077
1077
  pm_node_destroy(parser, (pm_node_t *)cast->write);
1078
1078
  break;
1079
1079
  }
1080
- #line 110 "node.c.erb"
1080
+ #line 110 "prism/templates/src/node.c.erb"
1081
1081
  case PM_SINGLETON_CLASS_NODE: {
1082
1082
  pm_singleton_class_node_t *cast = (pm_singleton_class_node_t *) node;
1083
1083
  pm_constant_id_list_free(&cast->locals);
@@ -1087,21 +1087,21 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1087
1087
  }
1088
1088
  break;
1089
1089
  }
1090
- #line 110 "node.c.erb"
1090
+ #line 110 "prism/templates/src/node.c.erb"
1091
1091
  case PM_SOURCE_ENCODING_NODE: {
1092
1092
  break;
1093
1093
  }
1094
- #line 110 "node.c.erb"
1094
+ #line 110 "prism/templates/src/node.c.erb"
1095
1095
  case PM_SOURCE_FILE_NODE: {
1096
1096
  pm_source_file_node_t *cast = (pm_source_file_node_t *) node;
1097
1097
  pm_string_free(&cast->filepath);
1098
1098
  break;
1099
1099
  }
1100
- #line 110 "node.c.erb"
1100
+ #line 110 "prism/templates/src/node.c.erb"
1101
1101
  case PM_SOURCE_LINE_NODE: {
1102
1102
  break;
1103
1103
  }
1104
- #line 110 "node.c.erb"
1104
+ #line 110 "prism/templates/src/node.c.erb"
1105
1105
  case PM_SPLAT_NODE: {
1106
1106
  pm_splat_node_t *cast = (pm_splat_node_t *) node;
1107
1107
  if (cast->expression != NULL) {
@@ -1109,19 +1109,19 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1109
1109
  }
1110
1110
  break;
1111
1111
  }
1112
- #line 110 "node.c.erb"
1112
+ #line 110 "prism/templates/src/node.c.erb"
1113
1113
  case PM_STATEMENTS_NODE: {
1114
1114
  pm_statements_node_t *cast = (pm_statements_node_t *) node;
1115
1115
  pm_node_list_destroy(parser, &cast->body);
1116
1116
  break;
1117
1117
  }
1118
- #line 110 "node.c.erb"
1118
+ #line 110 "prism/templates/src/node.c.erb"
1119
1119
  case PM_STRING_NODE: {
1120
1120
  pm_string_node_t *cast = (pm_string_node_t *) node;
1121
1121
  pm_string_free(&cast->unescaped);
1122
1122
  break;
1123
1123
  }
1124
- #line 110 "node.c.erb"
1124
+ #line 110 "prism/templates/src/node.c.erb"
1125
1125
  case PM_SUPER_NODE: {
1126
1126
  pm_super_node_t *cast = (pm_super_node_t *) node;
1127
1127
  if (cast->arguments != NULL) {
@@ -1132,35 +1132,35 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1132
1132
  }
1133
1133
  break;
1134
1134
  }
1135
- #line 110 "node.c.erb"
1135
+ #line 110 "prism/templates/src/node.c.erb"
1136
1136
  case PM_SYMBOL_NODE: {
1137
1137
  pm_symbol_node_t *cast = (pm_symbol_node_t *) node;
1138
1138
  pm_string_free(&cast->unescaped);
1139
1139
  break;
1140
1140
  }
1141
- #line 110 "node.c.erb"
1141
+ #line 110 "prism/templates/src/node.c.erb"
1142
1142
  case PM_TRUE_NODE: {
1143
1143
  break;
1144
1144
  }
1145
- #line 110 "node.c.erb"
1145
+ #line 110 "prism/templates/src/node.c.erb"
1146
1146
  case PM_UNDEF_NODE: {
1147
1147
  pm_undef_node_t *cast = (pm_undef_node_t *) node;
1148
1148
  pm_node_list_destroy(parser, &cast->names);
1149
1149
  break;
1150
1150
  }
1151
- #line 110 "node.c.erb"
1151
+ #line 110 "prism/templates/src/node.c.erb"
1152
1152
  case PM_UNLESS_NODE: {
1153
1153
  pm_unless_node_t *cast = (pm_unless_node_t *) node;
1154
1154
  pm_node_destroy(parser, (pm_node_t *)cast->predicate);
1155
1155
  if (cast->statements != NULL) {
1156
1156
  pm_node_destroy(parser, (pm_node_t *)cast->statements);
1157
1157
  }
1158
- if (cast->consequent != NULL) {
1159
- pm_node_destroy(parser, (pm_node_t *)cast->consequent);
1158
+ if (cast->else_clause != NULL) {
1159
+ pm_node_destroy(parser, (pm_node_t *)cast->else_clause);
1160
1160
  }
1161
1161
  break;
1162
1162
  }
1163
- #line 110 "node.c.erb"
1163
+ #line 110 "prism/templates/src/node.c.erb"
1164
1164
  case PM_UNTIL_NODE: {
1165
1165
  pm_until_node_t *cast = (pm_until_node_t *) node;
1166
1166
  pm_node_destroy(parser, (pm_node_t *)cast->predicate);
@@ -1169,7 +1169,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1169
1169
  }
1170
1170
  break;
1171
1171
  }
1172
- #line 110 "node.c.erb"
1172
+ #line 110 "prism/templates/src/node.c.erb"
1173
1173
  case PM_WHEN_NODE: {
1174
1174
  pm_when_node_t *cast = (pm_when_node_t *) node;
1175
1175
  pm_node_list_destroy(parser, &cast->conditions);
@@ -1178,7 +1178,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1178
1178
  }
1179
1179
  break;
1180
1180
  }
1181
- #line 110 "node.c.erb"
1181
+ #line 110 "prism/templates/src/node.c.erb"
1182
1182
  case PM_WHILE_NODE: {
1183
1183
  pm_while_node_t *cast = (pm_while_node_t *) node;
1184
1184
  pm_node_destroy(parser, (pm_node_t *)cast->predicate);
@@ -1187,13 +1187,13 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1187
1187
  }
1188
1188
  break;
1189
1189
  }
1190
- #line 110 "node.c.erb"
1190
+ #line 110 "prism/templates/src/node.c.erb"
1191
1191
  case PM_X_STRING_NODE: {
1192
1192
  pm_x_string_node_t *cast = (pm_x_string_node_t *) node;
1193
1193
  pm_string_free(&cast->unescaped);
1194
1194
  break;
1195
1195
  }
1196
- #line 110 "node.c.erb"
1196
+ #line 110 "prism/templates/src/node.c.erb"
1197
1197
  case PM_YIELD_NODE: {
1198
1198
  pm_yield_node_t *cast = (pm_yield_node_t *) node;
1199
1199
  if (cast->arguments != NULL) {
@@ -1201,7 +1201,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
1201
1201
  }
1202
1202
  break;
1203
1203
  }
1204
- #line 139 "node.c.erb"
1204
+ #line 139 "prism/templates/src/node.c.erb"
1205
1205
  default:
1206
1206
  assert(false && "unreachable");
1207
1207
  break;
@@ -1831,9 +1831,9 @@ pm_visit_child_nodes(const pm_node_t *node, bool (*visitor)(const pm_node_t *nod
1831
1831
  pm_visit_node(conditions->nodes[index], visitor, data);
1832
1832
  }
1833
1833
 
1834
- // Visit the consequent field
1835
- if (cast->consequent != NULL) {
1836
- pm_visit_node((const pm_node_t *) cast->consequent, visitor, data);
1834
+ // Visit the else_clause field
1835
+ if (cast->else_clause != NULL) {
1836
+ pm_visit_node((const pm_node_t *) cast->else_clause, visitor, data);
1837
1837
  }
1838
1838
 
1839
1839
  break;
@@ -1852,9 +1852,9 @@ pm_visit_child_nodes(const pm_node_t *node, bool (*visitor)(const pm_node_t *nod
1852
1852
  pm_visit_node(conditions->nodes[index], visitor, data);
1853
1853
  }
1854
1854
 
1855
- // Visit the consequent field
1856
- if (cast->consequent != NULL) {
1857
- pm_visit_node((const pm_node_t *) cast->consequent, visitor, data);
1855
+ // Visit the else_clause field
1856
+ if (cast->else_clause != NULL) {
1857
+ pm_visit_node((const pm_node_t *) cast->else_clause, visitor, data);
1858
1858
  }
1859
1859
 
1860
1860
  break;
@@ -2229,9 +2229,9 @@ pm_visit_child_nodes(const pm_node_t *node, bool (*visitor)(const pm_node_t *nod
2229
2229
  pm_visit_node((const pm_node_t *) cast->statements, visitor, data);
2230
2230
  }
2231
2231
 
2232
- // Visit the consequent field
2233
- if (cast->consequent != NULL) {
2234
- pm_visit_node((const pm_node_t *) cast->consequent, visitor, data);
2232
+ // Visit the subsequent field
2233
+ if (cast->subsequent != NULL) {
2234
+ pm_visit_node((const pm_node_t *) cast->subsequent, visitor, data);
2235
2235
  }
2236
2236
 
2237
2237
  break;
@@ -2813,9 +2813,9 @@ pm_visit_child_nodes(const pm_node_t *node, bool (*visitor)(const pm_node_t *nod
2813
2813
  pm_visit_node((const pm_node_t *) cast->statements, visitor, data);
2814
2814
  }
2815
2815
 
2816
- // Visit the consequent field
2817
- if (cast->consequent != NULL) {
2818
- pm_visit_node((const pm_node_t *) cast->consequent, visitor, data);
2816
+ // Visit the subsequent field
2817
+ if (cast->subsequent != NULL) {
2818
+ pm_visit_node((const pm_node_t *) cast->subsequent, visitor, data);
2819
2819
  }
2820
2820
 
2821
2821
  break;
@@ -2927,9 +2927,9 @@ pm_visit_child_nodes(const pm_node_t *node, bool (*visitor)(const pm_node_t *nod
2927
2927
  pm_visit_node((const pm_node_t *) cast->statements, visitor, data);
2928
2928
  }
2929
2929
 
2930
- // Visit the consequent field
2931
- if (cast->consequent != NULL) {
2932
- pm_visit_node((const pm_node_t *) cast->consequent, visitor, data);
2930
+ // Visit the else_clause field
2931
+ if (cast->else_clause != NULL) {
2932
+ pm_visit_node((const pm_node_t *) cast->else_clause, visitor, data);
2933
2933
  }
2934
2934
 
2935
2935
  break;
@@ -3120,9 +3120,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3120
3120
  const pm_arguments_node_t *cast = (const pm_arguments_node_t *) node;
3121
3121
  pm_dump_json_location(buffer, parser, &cast->base.location);
3122
3122
 
3123
- // Dump the flags field
3123
+ // Dump the ArgumentsNodeFlags field
3124
3124
  pm_buffer_append_byte(buffer, ',');
3125
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3125
+ pm_buffer_append_string(buffer, "\"ArgumentsNodeFlags\":", 21);
3126
3126
  size_t flags = 0;
3127
3127
  pm_buffer_append_byte(buffer, '[');
3128
3128
  if (PM_NODE_FLAG_P(cast, PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS)) {
@@ -3135,6 +3135,11 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3135
3135
  pm_buffer_append_string(buffer, "\"CONTAINS_KEYWORD_SPLAT\"", 24);
3136
3136
  flags++;
3137
3137
  }
3138
+ if (PM_NODE_FLAG_P(cast, PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT)) {
3139
+ if (flags != 0) pm_buffer_append_byte(buffer, ',');
3140
+ pm_buffer_append_string(buffer, "\"CONTAINS_SPLAT\"", 16);
3141
+ flags++;
3142
+ }
3138
3143
  pm_buffer_append_byte(buffer, ']');
3139
3144
 
3140
3145
  // Dump the arguments field
@@ -3158,9 +3163,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3158
3163
  const pm_array_node_t *cast = (const pm_array_node_t *) node;
3159
3164
  pm_dump_json_location(buffer, parser, &cast->base.location);
3160
3165
 
3161
- // Dump the flags field
3166
+ // Dump the ArrayNodeFlags field
3162
3167
  pm_buffer_append_byte(buffer, ',');
3163
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3168
+ pm_buffer_append_string(buffer, "\"ArrayNodeFlags\":", 17);
3164
3169
  size_t flags = 0;
3165
3170
  pm_buffer_append_byte(buffer, '[');
3166
3171
  if (PM_NODE_FLAG_P(cast, PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT)) {
@@ -3429,9 +3434,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3429
3434
  const pm_block_local_variable_node_t *cast = (const pm_block_local_variable_node_t *) node;
3430
3435
  pm_dump_json_location(buffer, parser, &cast->base.location);
3431
3436
 
3432
- // Dump the flags field
3437
+ // Dump the ParameterFlags field
3433
3438
  pm_buffer_append_byte(buffer, ',');
3434
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3439
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
3435
3440
  size_t flags = 0;
3436
3441
  pm_buffer_append_byte(buffer, '[');
3437
3442
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -3504,9 +3509,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3504
3509
  const pm_block_parameter_node_t *cast = (const pm_block_parameter_node_t *) node;
3505
3510
  pm_dump_json_location(buffer, parser, &cast->base.location);
3506
3511
 
3507
- // Dump the flags field
3512
+ // Dump the ParameterFlags field
3508
3513
  pm_buffer_append_byte(buffer, ',');
3509
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3514
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
3510
3515
  size_t flags = 0;
3511
3516
  pm_buffer_append_byte(buffer, '[');
3512
3517
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -3619,9 +3624,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3619
3624
  const pm_call_and_write_node_t *cast = (const pm_call_and_write_node_t *) node;
3620
3625
  pm_dump_json_location(buffer, parser, &cast->base.location);
3621
3626
 
3622
- // Dump the flags field
3627
+ // Dump the CallNodeFlags field
3623
3628
  pm_buffer_append_byte(buffer, ',');
3624
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3629
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
3625
3630
  size_t flags = 0;
3626
3631
  pm_buffer_append_byte(buffer, '[');
3627
3632
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -3702,9 +3707,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3702
3707
  const pm_call_node_t *cast = (const pm_call_node_t *) node;
3703
3708
  pm_dump_json_location(buffer, parser, &cast->base.location);
3704
3709
 
3705
- // Dump the flags field
3710
+ // Dump the CallNodeFlags field
3706
3711
  pm_buffer_append_byte(buffer, ',');
3707
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3712
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
3708
3713
  size_t flags = 0;
3709
3714
  pm_buffer_append_byte(buffer, '[');
3710
3715
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -3806,9 +3811,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3806
3811
  const pm_call_operator_write_node_t *cast = (const pm_call_operator_write_node_t *) node;
3807
3812
  pm_dump_json_location(buffer, parser, &cast->base.location);
3808
3813
 
3809
- // Dump the flags field
3814
+ // Dump the CallNodeFlags field
3810
3815
  pm_buffer_append_byte(buffer, ',');
3811
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3816
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
3812
3817
  size_t flags = 0;
3813
3818
  pm_buffer_append_byte(buffer, '[');
3814
3819
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -3894,9 +3899,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3894
3899
  const pm_call_or_write_node_t *cast = (const pm_call_or_write_node_t *) node;
3895
3900
  pm_dump_json_location(buffer, parser, &cast->base.location);
3896
3901
 
3897
- // Dump the flags field
3902
+ // Dump the CallNodeFlags field
3898
3903
  pm_buffer_append_byte(buffer, ',');
3899
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3904
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
3900
3905
  size_t flags = 0;
3901
3906
  pm_buffer_append_byte(buffer, '[');
3902
3907
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -3977,9 +3982,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
3977
3982
  const pm_call_target_node_t *cast = (const pm_call_target_node_t *) node;
3978
3983
  pm_dump_json_location(buffer, parser, &cast->base.location);
3979
3984
 
3980
- // Dump the flags field
3985
+ // Dump the CallNodeFlags field
3981
3986
  pm_buffer_append_byte(buffer, ',');
3982
- pm_buffer_append_string(buffer, "\"flags\":", 8);
3987
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
3983
3988
  size_t flags = 0;
3984
3989
  pm_buffer_append_byte(buffer, '[');
3985
3990
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -4078,11 +4083,11 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
4078
4083
  }
4079
4084
  pm_buffer_append_byte(buffer, ']');
4080
4085
 
4081
- // Dump the consequent field
4086
+ // Dump the else_clause field
4082
4087
  pm_buffer_append_byte(buffer, ',');
4083
- pm_buffer_append_string(buffer, "\"consequent\":", 13);
4084
- if (cast->consequent != NULL) {
4085
- pm_dump_json(buffer, parser, (const pm_node_t *) cast->consequent);
4088
+ pm_buffer_append_string(buffer, "\"else_clause\":", 14);
4089
+ if (cast->else_clause != NULL) {
4090
+ pm_dump_json(buffer, parser, (const pm_node_t *) cast->else_clause);
4086
4091
  } else {
4087
4092
  pm_buffer_append_string(buffer, "null", 4);
4088
4093
  }
@@ -4127,11 +4132,11 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
4127
4132
  }
4128
4133
  pm_buffer_append_byte(buffer, ']');
4129
4134
 
4130
- // Dump the consequent field
4135
+ // Dump the else_clause field
4131
4136
  pm_buffer_append_byte(buffer, ',');
4132
- pm_buffer_append_string(buffer, "\"consequent\":", 13);
4133
- if (cast->consequent != NULL) {
4134
- pm_dump_json(buffer, parser, (const pm_node_t *) cast->consequent);
4137
+ pm_buffer_append_string(buffer, "\"else_clause\":", 14);
4138
+ if (cast->else_clause != NULL) {
4139
+ pm_dump_json(buffer, parser, (const pm_node_t *) cast->else_clause);
4135
4140
  } else {
4136
4141
  pm_buffer_append_string(buffer, "null", 4);
4137
4142
  }
@@ -5015,9 +5020,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
5015
5020
  const pm_flip_flop_node_t *cast = (const pm_flip_flop_node_t *) node;
5016
5021
  pm_dump_json_location(buffer, parser, &cast->base.location);
5017
5022
 
5018
- // Dump the flags field
5023
+ // Dump the RangeFlags field
5019
5024
  pm_buffer_append_byte(buffer, ',');
5020
- pm_buffer_append_string(buffer, "\"flags\":", 8);
5025
+ pm_buffer_append_string(buffer, "\"RangeFlags\":", 13);
5021
5026
  size_t flags = 0;
5022
5027
  pm_buffer_append_byte(buffer, '[');
5023
5028
  if (PM_NODE_FLAG_P(cast, PM_RANGE_FLAGS_EXCLUDE_END)) {
@@ -5430,11 +5435,11 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
5430
5435
  pm_buffer_append_string(buffer, "null", 4);
5431
5436
  }
5432
5437
 
5433
- // Dump the consequent field
5438
+ // Dump the subsequent field
5434
5439
  pm_buffer_append_byte(buffer, ',');
5435
- pm_buffer_append_string(buffer, "\"consequent\":", 13);
5436
- if (cast->consequent != NULL) {
5437
- pm_dump_json(buffer, parser, (const pm_node_t *) cast->consequent);
5440
+ pm_buffer_append_string(buffer, "\"subsequent\":", 13);
5441
+ if (cast->subsequent != NULL) {
5442
+ pm_dump_json(buffer, parser, (const pm_node_t *) cast->subsequent);
5438
5443
  } else {
5439
5444
  pm_buffer_append_string(buffer, "null", 4);
5440
5445
  }
@@ -5531,9 +5536,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
5531
5536
  const pm_index_and_write_node_t *cast = (const pm_index_and_write_node_t *) node;
5532
5537
  pm_dump_json_location(buffer, parser, &cast->base.location);
5533
5538
 
5534
- // Dump the flags field
5539
+ // Dump the CallNodeFlags field
5535
5540
  pm_buffer_append_byte(buffer, ',');
5536
- pm_buffer_append_string(buffer, "\"flags\":", 8);
5541
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
5537
5542
  size_t flags = 0;
5538
5543
  pm_buffer_append_byte(buffer, '[');
5539
5544
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -5623,9 +5628,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
5623
5628
  const pm_index_operator_write_node_t *cast = (const pm_index_operator_write_node_t *) node;
5624
5629
  pm_dump_json_location(buffer, parser, &cast->base.location);
5625
5630
 
5626
- // Dump the flags field
5631
+ // Dump the CallNodeFlags field
5627
5632
  pm_buffer_append_byte(buffer, ',');
5628
- pm_buffer_append_string(buffer, "\"flags\":", 8);
5633
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
5629
5634
  size_t flags = 0;
5630
5635
  pm_buffer_append_byte(buffer, '[');
5631
5636
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -5720,9 +5725,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
5720
5725
  const pm_index_or_write_node_t *cast = (const pm_index_or_write_node_t *) node;
5721
5726
  pm_dump_json_location(buffer, parser, &cast->base.location);
5722
5727
 
5723
- // Dump the flags field
5728
+ // Dump the CallNodeFlags field
5724
5729
  pm_buffer_append_byte(buffer, ',');
5725
- pm_buffer_append_string(buffer, "\"flags\":", 8);
5730
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
5726
5731
  size_t flags = 0;
5727
5732
  pm_buffer_append_byte(buffer, '[');
5728
5733
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -5812,9 +5817,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
5812
5817
  const pm_index_target_node_t *cast = (const pm_index_target_node_t *) node;
5813
5818
  pm_dump_json_location(buffer, parser, &cast->base.location);
5814
5819
 
5815
- // Dump the flags field
5820
+ // Dump the CallNodeFlags field
5816
5821
  pm_buffer_append_byte(buffer, ',');
5817
- pm_buffer_append_string(buffer, "\"flags\":", 8);
5822
+ pm_buffer_append_string(buffer, "\"CallNodeFlags\":", 16);
5818
5823
  size_t flags = 0;
5819
5824
  pm_buffer_append_byte(buffer, '[');
5820
5825
  if (PM_NODE_FLAG_P(cast, PM_CALL_NODE_FLAGS_SAFE_NAVIGATION)) {
@@ -6030,9 +6035,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6030
6035
  const pm_integer_node_t *cast = (const pm_integer_node_t *) node;
6031
6036
  pm_dump_json_location(buffer, parser, &cast->base.location);
6032
6037
 
6033
- // Dump the flags field
6038
+ // Dump the IntegerBaseFlags field
6034
6039
  pm_buffer_append_byte(buffer, ',');
6035
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6040
+ pm_buffer_append_string(buffer, "\"IntegerBaseFlags\":", 19);
6036
6041
  size_t flags = 0;
6037
6042
  pm_buffer_append_byte(buffer, '[');
6038
6043
  if (PM_NODE_FLAG_P(cast, PM_INTEGER_BASE_FLAGS_BINARY)) {
@@ -6071,9 +6076,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6071
6076
  const pm_interpolated_match_last_line_node_t *cast = (const pm_interpolated_match_last_line_node_t *) node;
6072
6077
  pm_dump_json_location(buffer, parser, &cast->base.location);
6073
6078
 
6074
- // Dump the flags field
6079
+ // Dump the RegularExpressionFlags field
6075
6080
  pm_buffer_append_byte(buffer, ',');
6076
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6081
+ pm_buffer_append_string(buffer, "\"RegularExpressionFlags\":", 25);
6077
6082
  size_t flags = 0;
6078
6083
  pm_buffer_append_byte(buffer, '[');
6079
6084
  if (PM_NODE_FLAG_P(cast, PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE)) {
@@ -6164,9 +6169,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6164
6169
  const pm_interpolated_regular_expression_node_t *cast = (const pm_interpolated_regular_expression_node_t *) node;
6165
6170
  pm_dump_json_location(buffer, parser, &cast->base.location);
6166
6171
 
6167
- // Dump the flags field
6172
+ // Dump the RegularExpressionFlags field
6168
6173
  pm_buffer_append_byte(buffer, ',');
6169
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6174
+ pm_buffer_append_string(buffer, "\"RegularExpressionFlags\":", 25);
6170
6175
  size_t flags = 0;
6171
6176
  pm_buffer_append_byte(buffer, '[');
6172
6177
  if (PM_NODE_FLAG_P(cast, PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE)) {
@@ -6257,9 +6262,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6257
6262
  const pm_interpolated_string_node_t *cast = (const pm_interpolated_string_node_t *) node;
6258
6263
  pm_dump_json_location(buffer, parser, &cast->base.location);
6259
6264
 
6260
- // Dump the flags field
6265
+ // Dump the InterpolatedStringNodeFlags field
6261
6266
  pm_buffer_append_byte(buffer, ',');
6262
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6267
+ pm_buffer_append_string(buffer, "\"InterpolatedStringNodeFlags\":", 30);
6263
6268
  size_t flags = 0;
6264
6269
  pm_buffer_append_byte(buffer, '[');
6265
6270
  if (PM_NODE_FLAG_P(cast, PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN)) {
@@ -6401,9 +6406,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6401
6406
  const pm_keyword_hash_node_t *cast = (const pm_keyword_hash_node_t *) node;
6402
6407
  pm_dump_json_location(buffer, parser, &cast->base.location);
6403
6408
 
6404
- // Dump the flags field
6409
+ // Dump the KeywordHashNodeFlags field
6405
6410
  pm_buffer_append_byte(buffer, ',');
6406
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6411
+ pm_buffer_append_string(buffer, "\"KeywordHashNodeFlags\":", 23);
6407
6412
  size_t flags = 0;
6408
6413
  pm_buffer_append_byte(buffer, '[');
6409
6414
  if (PM_NODE_FLAG_P(cast, PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS)) {
@@ -6434,9 +6439,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6434
6439
  const pm_keyword_rest_parameter_node_t *cast = (const pm_keyword_rest_parameter_node_t *) node;
6435
6440
  pm_dump_json_location(buffer, parser, &cast->base.location);
6436
6441
 
6437
- // Dump the flags field
6442
+ // Dump the ParameterFlags field
6438
6443
  pm_buffer_append_byte(buffer, ',');
6439
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6444
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
6440
6445
  size_t flags = 0;
6441
6446
  pm_buffer_append_byte(buffer, '[');
6442
6447
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -6711,9 +6716,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
6711
6716
  const pm_match_last_line_node_t *cast = (const pm_match_last_line_node_t *) node;
6712
6717
  pm_dump_json_location(buffer, parser, &cast->base.location);
6713
6718
 
6714
- // Dump the flags field
6719
+ // Dump the RegularExpressionFlags field
6715
6720
  pm_buffer_append_byte(buffer, ',');
6716
- pm_buffer_append_string(buffer, "\"flags\":", 8);
6721
+ pm_buffer_append_string(buffer, "\"RegularExpressionFlags\":", 25);
6717
6722
  size_t flags = 0;
6718
6723
  pm_buffer_append_byte(buffer, '[');
6719
6724
  if (PM_NODE_FLAG_P(cast, PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE)) {
@@ -7147,9 +7152,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7147
7152
  const pm_optional_keyword_parameter_node_t *cast = (const pm_optional_keyword_parameter_node_t *) node;
7148
7153
  pm_dump_json_location(buffer, parser, &cast->base.location);
7149
7154
 
7150
- // Dump the flags field
7155
+ // Dump the ParameterFlags field
7151
7156
  pm_buffer_append_byte(buffer, ',');
7152
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7157
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
7153
7158
  size_t flags = 0;
7154
7159
  pm_buffer_append_byte(buffer, '[');
7155
7160
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -7183,9 +7188,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7183
7188
  const pm_optional_parameter_node_t *cast = (const pm_optional_parameter_node_t *) node;
7184
7189
  pm_dump_json_location(buffer, parser, &cast->base.location);
7185
7190
 
7186
- // Dump the flags field
7191
+ // Dump the ParameterFlags field
7187
7192
  pm_buffer_append_byte(buffer, ',');
7188
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7193
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
7189
7194
  size_t flags = 0;
7190
7195
  pm_buffer_append_byte(buffer, '[');
7191
7196
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -7500,9 +7505,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7500
7505
  const pm_range_node_t *cast = (const pm_range_node_t *) node;
7501
7506
  pm_dump_json_location(buffer, parser, &cast->base.location);
7502
7507
 
7503
- // Dump the flags field
7508
+ // Dump the RangeFlags field
7504
7509
  pm_buffer_append_byte(buffer, ',');
7505
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7510
+ pm_buffer_append_string(buffer, "\"RangeFlags\":", 13);
7506
7511
  size_t flags = 0;
7507
7512
  pm_buffer_append_byte(buffer, '[');
7508
7513
  if (PM_NODE_FLAG_P(cast, PM_RANGE_FLAGS_EXCLUDE_END)) {
@@ -7544,9 +7549,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7544
7549
  const pm_rational_node_t *cast = (const pm_rational_node_t *) node;
7545
7550
  pm_dump_json_location(buffer, parser, &cast->base.location);
7546
7551
 
7547
- // Dump the flags field
7552
+ // Dump the IntegerBaseFlags field
7548
7553
  pm_buffer_append_byte(buffer, ',');
7549
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7554
+ pm_buffer_append_string(buffer, "\"IntegerBaseFlags\":", 19);
7550
7555
  size_t flags = 0;
7551
7556
  pm_buffer_append_byte(buffer, '[');
7552
7557
  if (PM_NODE_FLAG_P(cast, PM_INTEGER_BASE_FLAGS_BINARY)) {
@@ -7599,9 +7604,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7599
7604
  const pm_regular_expression_node_t *cast = (const pm_regular_expression_node_t *) node;
7600
7605
  pm_dump_json_location(buffer, parser, &cast->base.location);
7601
7606
 
7602
- // Dump the flags field
7607
+ // Dump the RegularExpressionFlags field
7603
7608
  pm_buffer_append_byte(buffer, ',');
7604
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7609
+ pm_buffer_append_string(buffer, "\"RegularExpressionFlags\":", 25);
7605
7610
  size_t flags = 0;
7606
7611
  pm_buffer_append_byte(buffer, '[');
7607
7612
  if (PM_NODE_FLAG_P(cast, PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE)) {
@@ -7693,9 +7698,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7693
7698
  const pm_required_keyword_parameter_node_t *cast = (const pm_required_keyword_parameter_node_t *) node;
7694
7699
  pm_dump_json_location(buffer, parser, &cast->base.location);
7695
7700
 
7696
- // Dump the flags field
7701
+ // Dump the ParameterFlags field
7697
7702
  pm_buffer_append_byte(buffer, ',');
7698
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7703
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
7699
7704
  size_t flags = 0;
7700
7705
  pm_buffer_append_byte(buffer, '[');
7701
7706
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -7724,9 +7729,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7724
7729
  const pm_required_parameter_node_t *cast = (const pm_required_parameter_node_t *) node;
7725
7730
  pm_dump_json_location(buffer, parser, &cast->base.location);
7726
7731
 
7727
- // Dump the flags field
7732
+ // Dump the ParameterFlags field
7728
7733
  pm_buffer_append_byte(buffer, ',');
7729
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7734
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
7730
7735
  size_t flags = 0;
7731
7736
  pm_buffer_append_byte(buffer, '[');
7732
7737
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -7818,11 +7823,11 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7818
7823
  pm_buffer_append_string(buffer, "null", 4);
7819
7824
  }
7820
7825
 
7821
- // Dump the consequent field
7826
+ // Dump the subsequent field
7822
7827
  pm_buffer_append_byte(buffer, ',');
7823
- pm_buffer_append_string(buffer, "\"consequent\":", 13);
7824
- if (cast->consequent != NULL) {
7825
- pm_dump_json(buffer, parser, (const pm_node_t *) cast->consequent);
7828
+ pm_buffer_append_string(buffer, "\"subsequent\":", 13);
7829
+ if (cast->subsequent != NULL) {
7830
+ pm_dump_json(buffer, parser, (const pm_node_t *) cast->subsequent);
7826
7831
  } else {
7827
7832
  pm_buffer_append_string(buffer, "null", 4);
7828
7833
  }
@@ -7836,9 +7841,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7836
7841
  const pm_rest_parameter_node_t *cast = (const pm_rest_parameter_node_t *) node;
7837
7842
  pm_dump_json_location(buffer, parser, &cast->base.location);
7838
7843
 
7839
- // Dump the flags field
7844
+ // Dump the ParameterFlags field
7840
7845
  pm_buffer_append_byte(buffer, ',');
7841
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7846
+ pm_buffer_append_string(buffer, "\"ParameterFlags\":", 17);
7842
7847
  size_t flags = 0;
7843
7848
  pm_buffer_append_byte(buffer, '[');
7844
7849
  if (PM_NODE_FLAG_P(cast, PM_PARAMETER_FLAGS_REPEATED_PARAMETER)) {
@@ -7889,18 +7894,6 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7889
7894
  const pm_return_node_t *cast = (const pm_return_node_t *) node;
7890
7895
  pm_dump_json_location(buffer, parser, &cast->base.location);
7891
7896
 
7892
- // Dump the flags field
7893
- pm_buffer_append_byte(buffer, ',');
7894
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7895
- size_t flags = 0;
7896
- pm_buffer_append_byte(buffer, '[');
7897
- if (PM_NODE_FLAG_P(cast, PM_RETURN_NODE_FLAGS_REDUNDANT)) {
7898
- if (flags != 0) pm_buffer_append_byte(buffer, ',');
7899
- pm_buffer_append_string(buffer, "\"REDUNDANT\"", 11);
7900
- flags++;
7901
- }
7902
- pm_buffer_append_byte(buffer, ']');
7903
-
7904
7897
  // Dump the keyword_loc field
7905
7898
  pm_buffer_append_byte(buffer, ',');
7906
7899
  pm_buffer_append_string(buffer, "\"keyword_loc\":", 14);
@@ -7933,9 +7926,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
7933
7926
  const pm_shareable_constant_node_t *cast = (const pm_shareable_constant_node_t *) node;
7934
7927
  pm_dump_json_location(buffer, parser, &cast->base.location);
7935
7928
 
7936
- // Dump the flags field
7929
+ // Dump the ShareableConstantNodeFlags field
7937
7930
  pm_buffer_append_byte(buffer, ',');
7938
- pm_buffer_append_string(buffer, "\"flags\":", 8);
7931
+ pm_buffer_append_string(buffer, "\"ShareableConstantNodeFlags\":", 29);
7939
7932
  size_t flags = 0;
7940
7933
  pm_buffer_append_byte(buffer, '[');
7941
7934
  if (PM_NODE_FLAG_P(cast, PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL)) {
@@ -8028,9 +8021,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8028
8021
  const pm_source_file_node_t *cast = (const pm_source_file_node_t *) node;
8029
8022
  pm_dump_json_location(buffer, parser, &cast->base.location);
8030
8023
 
8031
- // Dump the flags field
8024
+ // Dump the StringFlags field
8032
8025
  pm_buffer_append_byte(buffer, ',');
8033
- pm_buffer_append_string(buffer, "\"flags\":", 8);
8026
+ pm_buffer_append_string(buffer, "\"StringFlags\":", 14);
8034
8027
  size_t flags = 0;
8035
8028
  pm_buffer_append_byte(buffer, '[');
8036
8029
  if (PM_NODE_FLAG_P(cast, PM_STRING_FLAGS_FORCED_UTF8_ENCODING)) {
@@ -8125,9 +8118,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8125
8118
  const pm_string_node_t *cast = (const pm_string_node_t *) node;
8126
8119
  pm_dump_json_location(buffer, parser, &cast->base.location);
8127
8120
 
8128
- // Dump the flags field
8121
+ // Dump the StringFlags field
8129
8122
  pm_buffer_append_byte(buffer, ',');
8130
- pm_buffer_append_string(buffer, "\"flags\":", 8);
8123
+ pm_buffer_append_string(buffer, "\"StringFlags\":", 14);
8131
8124
  size_t flags = 0;
8132
8125
  pm_buffer_append_byte(buffer, '[');
8133
8126
  if (PM_NODE_FLAG_P(cast, PM_STRING_FLAGS_FORCED_UTF8_ENCODING)) {
@@ -8242,9 +8235,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8242
8235
  const pm_symbol_node_t *cast = (const pm_symbol_node_t *) node;
8243
8236
  pm_dump_json_location(buffer, parser, &cast->base.location);
8244
8237
 
8245
- // Dump the flags field
8238
+ // Dump the SymbolFlags field
8246
8239
  pm_buffer_append_byte(buffer, ',');
8247
- pm_buffer_append_string(buffer, "\"flags\":", 8);
8240
+ pm_buffer_append_string(buffer, "\"SymbolFlags\":", 14);
8248
8241
  size_t flags = 0;
8249
8242
  pm_buffer_append_byte(buffer, '[');
8250
8243
  if (PM_NODE_FLAG_P(cast, PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING)) {
@@ -8371,11 +8364,11 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8371
8364
  pm_buffer_append_string(buffer, "null", 4);
8372
8365
  }
8373
8366
 
8374
- // Dump the consequent field
8367
+ // Dump the else_clause field
8375
8368
  pm_buffer_append_byte(buffer, ',');
8376
- pm_buffer_append_string(buffer, "\"consequent\":", 13);
8377
- if (cast->consequent != NULL) {
8378
- pm_dump_json(buffer, parser, (const pm_node_t *) cast->consequent);
8369
+ pm_buffer_append_string(buffer, "\"else_clause\":", 14);
8370
+ if (cast->else_clause != NULL) {
8371
+ pm_dump_json(buffer, parser, (const pm_node_t *) cast->else_clause);
8379
8372
  } else {
8380
8373
  pm_buffer_append_string(buffer, "null", 4);
8381
8374
  }
@@ -8398,9 +8391,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8398
8391
  const pm_until_node_t *cast = (const pm_until_node_t *) node;
8399
8392
  pm_dump_json_location(buffer, parser, &cast->base.location);
8400
8393
 
8401
- // Dump the flags field
8394
+ // Dump the LoopFlags field
8402
8395
  pm_buffer_append_byte(buffer, ',');
8403
- pm_buffer_append_string(buffer, "\"flags\":", 8);
8396
+ pm_buffer_append_string(buffer, "\"LoopFlags\":", 12);
8404
8397
  size_t flags = 0;
8405
8398
  pm_buffer_append_byte(buffer, '[');
8406
8399
  if (PM_NODE_FLAG_P(cast, PM_LOOP_FLAGS_BEGIN_MODIFIER)) {
@@ -8491,9 +8484,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8491
8484
  const pm_while_node_t *cast = (const pm_while_node_t *) node;
8492
8485
  pm_dump_json_location(buffer, parser, &cast->base.location);
8493
8486
 
8494
- // Dump the flags field
8487
+ // Dump the LoopFlags field
8495
8488
  pm_buffer_append_byte(buffer, ',');
8496
- pm_buffer_append_string(buffer, "\"flags\":", 8);
8489
+ pm_buffer_append_string(buffer, "\"LoopFlags\":", 12);
8497
8490
  size_t flags = 0;
8498
8491
  pm_buffer_append_byte(buffer, '[');
8499
8492
  if (PM_NODE_FLAG_P(cast, PM_LOOP_FLAGS_BEGIN_MODIFIER)) {
@@ -8540,9 +8533,9 @@ pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *no
8540
8533
  const pm_x_string_node_t *cast = (const pm_x_string_node_t *) node;
8541
8534
  pm_dump_json_location(buffer, parser, &cast->base.location);
8542
8535
 
8543
- // Dump the flags field
8536
+ // Dump the EncodingFlags field
8544
8537
  pm_buffer_append_byte(buffer, ',');
8545
- pm_buffer_append_string(buffer, "\"flags\":", 8);
8538
+ pm_buffer_append_string(buffer, "\"EncodingFlags\":", 16);
8546
8539
  size_t flags = 0;
8547
8540
  pm_buffer_append_byte(buffer, '[');
8548
8541
  if (PM_NODE_FLAG_P(cast, PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING)) {