prism 0.13.0 → 0.15.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.
data/src/node.c CHANGED
@@ -201,11 +201,6 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
201
201
  if (cast->receiver != NULL) {
202
202
  pm_node_destroy(parser, (pm_node_t *)cast->receiver);
203
203
  }
204
- if (cast->arguments != NULL) {
205
- pm_node_destroy(parser, (pm_node_t *)cast->arguments);
206
- }
207
- pm_string_free(&cast->read_name);
208
- pm_string_free(&cast->write_name);
209
204
  pm_node_destroy(parser, (pm_node_t *)cast->value);
210
205
  break;
211
206
  }
@@ -221,7 +216,6 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
221
216
  if (cast->block != NULL) {
222
217
  pm_node_destroy(parser, (pm_node_t *)cast->block);
223
218
  }
224
- pm_string_free(&cast->name);
225
219
  break;
226
220
  }
227
221
  #line 57 "node.c.erb"
@@ -230,11 +224,6 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
230
224
  if (cast->receiver != NULL) {
231
225
  pm_node_destroy(parser, (pm_node_t *)cast->receiver);
232
226
  }
233
- if (cast->arguments != NULL) {
234
- pm_node_destroy(parser, (pm_node_t *)cast->arguments);
235
- }
236
- pm_string_free(&cast->read_name);
237
- pm_string_free(&cast->write_name);
238
227
  pm_node_destroy(parser, (pm_node_t *)cast->value);
239
228
  break;
240
229
  }
@@ -244,11 +233,6 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
244
233
  if (cast->receiver != NULL) {
245
234
  pm_node_destroy(parser, (pm_node_t *)cast->receiver);
246
235
  }
247
- if (cast->arguments != NULL) {
248
- pm_node_destroy(parser, (pm_node_t *)cast->arguments);
249
- }
250
- pm_string_free(&cast->read_name);
251
- pm_string_free(&cast->write_name);
252
236
  pm_node_destroy(parser, (pm_node_t *)cast->value);
253
237
  break;
254
238
  }
@@ -584,6 +568,51 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
584
568
  }
585
569
  break;
586
570
  }
571
+ #line 57 "node.c.erb"
572
+ case PM_INDEX_AND_WRITE_NODE: {
573
+ pm_index_and_write_node_t *cast = (pm_index_and_write_node_t *) node;
574
+ if (cast->receiver != NULL) {
575
+ pm_node_destroy(parser, (pm_node_t *)cast->receiver);
576
+ }
577
+ if (cast->arguments != NULL) {
578
+ pm_node_destroy(parser, (pm_node_t *)cast->arguments);
579
+ }
580
+ if (cast->block != NULL) {
581
+ pm_node_destroy(parser, (pm_node_t *)cast->block);
582
+ }
583
+ pm_node_destroy(parser, (pm_node_t *)cast->value);
584
+ break;
585
+ }
586
+ #line 57 "node.c.erb"
587
+ case PM_INDEX_OPERATOR_WRITE_NODE: {
588
+ pm_index_operator_write_node_t *cast = (pm_index_operator_write_node_t *) node;
589
+ if (cast->receiver != NULL) {
590
+ pm_node_destroy(parser, (pm_node_t *)cast->receiver);
591
+ }
592
+ if (cast->arguments != NULL) {
593
+ pm_node_destroy(parser, (pm_node_t *)cast->arguments);
594
+ }
595
+ if (cast->block != NULL) {
596
+ pm_node_destroy(parser, (pm_node_t *)cast->block);
597
+ }
598
+ pm_node_destroy(parser, (pm_node_t *)cast->value);
599
+ break;
600
+ }
601
+ #line 57 "node.c.erb"
602
+ case PM_INDEX_OR_WRITE_NODE: {
603
+ pm_index_or_write_node_t *cast = (pm_index_or_write_node_t *) node;
604
+ if (cast->receiver != NULL) {
605
+ pm_node_destroy(parser, (pm_node_t *)cast->receiver);
606
+ }
607
+ if (cast->arguments != NULL) {
608
+ pm_node_destroy(parser, (pm_node_t *)cast->arguments);
609
+ }
610
+ if (cast->block != NULL) {
611
+ pm_node_destroy(parser, (pm_node_t *)cast->block);
612
+ }
613
+ pm_node_destroy(parser, (pm_node_t *)cast->value);
614
+ break;
615
+ }
587
616
  #line 57 "node.c.erb"
588
617
  case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
589
618
  pm_instance_variable_and_write_node_t *cast = (pm_instance_variable_and_write_node_t *) node;
@@ -1260,11 +1289,6 @@ pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
1260
1289
  if (cast->receiver != NULL) {
1261
1290
  pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
1262
1291
  }
1263
- if (cast->arguments != NULL) {
1264
- pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
1265
- }
1266
- memsize->memsize += pm_string_memsize(&cast->read_name);
1267
- memsize->memsize += pm_string_memsize(&cast->write_name);
1268
1292
  pm_node_memsize_node((pm_node_t *)cast->value, memsize);
1269
1293
  break;
1270
1294
  }
@@ -1281,7 +1305,6 @@ pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
1281
1305
  if (cast->block != NULL) {
1282
1306
  pm_node_memsize_node((pm_node_t *)cast->block, memsize);
1283
1307
  }
1284
- memsize->memsize += pm_string_memsize(&cast->name);
1285
1308
  break;
1286
1309
  }
1287
1310
  #line 102 "node.c.erb"
@@ -1291,11 +1314,6 @@ pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
1291
1314
  if (cast->receiver != NULL) {
1292
1315
  pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
1293
1316
  }
1294
- if (cast->arguments != NULL) {
1295
- pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
1296
- }
1297
- memsize->memsize += pm_string_memsize(&cast->read_name);
1298
- memsize->memsize += pm_string_memsize(&cast->write_name);
1299
1317
  pm_node_memsize_node((pm_node_t *)cast->value, memsize);
1300
1318
  break;
1301
1319
  }
@@ -1306,11 +1324,6 @@ pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
1306
1324
  if (cast->receiver != NULL) {
1307
1325
  pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
1308
1326
  }
1309
- if (cast->arguments != NULL) {
1310
- pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
1311
- }
1312
- memsize->memsize += pm_string_memsize(&cast->read_name);
1313
- memsize->memsize += pm_string_memsize(&cast->write_name);
1314
1327
  pm_node_memsize_node((pm_node_t *)cast->value, memsize);
1315
1328
  break;
1316
1329
  }
@@ -1715,6 +1728,54 @@ pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
1715
1728
  }
1716
1729
  break;
1717
1730
  }
1731
+ #line 102 "node.c.erb"
1732
+ case PM_INDEX_AND_WRITE_NODE: {
1733
+ pm_index_and_write_node_t *cast = (pm_index_and_write_node_t *) node;
1734
+ memsize->memsize += sizeof(*cast);
1735
+ if (cast->receiver != NULL) {
1736
+ pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
1737
+ }
1738
+ if (cast->arguments != NULL) {
1739
+ pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
1740
+ }
1741
+ if (cast->block != NULL) {
1742
+ pm_node_memsize_node((pm_node_t *)cast->block, memsize);
1743
+ }
1744
+ pm_node_memsize_node((pm_node_t *)cast->value, memsize);
1745
+ break;
1746
+ }
1747
+ #line 102 "node.c.erb"
1748
+ case PM_INDEX_OPERATOR_WRITE_NODE: {
1749
+ pm_index_operator_write_node_t *cast = (pm_index_operator_write_node_t *) node;
1750
+ memsize->memsize += sizeof(*cast);
1751
+ if (cast->receiver != NULL) {
1752
+ pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
1753
+ }
1754
+ if (cast->arguments != NULL) {
1755
+ pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
1756
+ }
1757
+ if (cast->block != NULL) {
1758
+ pm_node_memsize_node((pm_node_t *)cast->block, memsize);
1759
+ }
1760
+ pm_node_memsize_node((pm_node_t *)cast->value, memsize);
1761
+ break;
1762
+ }
1763
+ #line 102 "node.c.erb"
1764
+ case PM_INDEX_OR_WRITE_NODE: {
1765
+ pm_index_or_write_node_t *cast = (pm_index_or_write_node_t *) node;
1766
+ memsize->memsize += sizeof(*cast);
1767
+ if (cast->receiver != NULL) {
1768
+ pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
1769
+ }
1770
+ if (cast->arguments != NULL) {
1771
+ pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
1772
+ }
1773
+ if (cast->block != NULL) {
1774
+ pm_node_memsize_node((pm_node_t *)cast->block, memsize);
1775
+ }
1776
+ pm_node_memsize_node((pm_node_t *)cast->value, memsize);
1777
+ break;
1778
+ }
1718
1779
  #line 102 "node.c.erb"
1719
1780
  case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
1720
1781
  pm_instance_variable_and_write_node_t *cast = (pm_instance_variable_and_write_node_t *) node;
@@ -2482,6 +2543,12 @@ pm_node_type_to_str(pm_node_type_t node_type)
2482
2543
  return "PM_IMPLICIT_NODE";
2483
2544
  case PM_IN_NODE:
2484
2545
  return "PM_IN_NODE";
2546
+ case PM_INDEX_AND_WRITE_NODE:
2547
+ return "PM_INDEX_AND_WRITE_NODE";
2548
+ case PM_INDEX_OPERATOR_WRITE_NODE:
2549
+ return "PM_INDEX_OPERATOR_WRITE_NODE";
2550
+ case PM_INDEX_OR_WRITE_NODE:
2551
+ return "PM_INDEX_OR_WRITE_NODE";
2485
2552
  case PM_INSTANCE_VARIABLE_AND_WRITE_NODE:
2486
2553
  return "PM_INSTANCE_VARIABLE_AND_WRITE_NODE";
2487
2554
  case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE:
data/src/prettyprint.c CHANGED
@@ -157,6 +157,9 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
157
157
  }
158
158
  case PM_BACK_REFERENCE_READ_NODE: {
159
159
  pm_buffer_append_str(buffer, "BackReferenceReadNode(", 22);
160
+ char name_buffer[12];
161
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((pm_back_reference_read_node_t *)node)->name);
162
+ pm_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
160
163
  pm_buffer_append_str(buffer, ")", 1);
161
164
  break;
162
165
  }
@@ -311,30 +314,15 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
311
314
  } else {
312
315
  prettyprint_location(buffer, parser, &((pm_call_and_write_node_t *)node)->message_loc);
313
316
  }
314
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_and_write_node_t *)node)->opening_loc.start == NULL) {
315
- pm_buffer_append_str(buffer, "nil", 3);
316
- } else {
317
- prettyprint_location(buffer, parser, &((pm_call_and_write_node_t *)node)->opening_loc);
318
- }
319
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_and_write_node_t *)node)->arguments == NULL) {
320
- pm_buffer_append_str(buffer, "nil", 3);
321
- } else {
322
- prettyprint_node(buffer, parser, (pm_node_t *)((pm_call_and_write_node_t *)node)->arguments);
323
- }
324
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_and_write_node_t *)node)->closing_loc.start == NULL) {
325
- pm_buffer_append_str(buffer, "nil", 3);
326
- } else {
327
- prettyprint_location(buffer, parser, &((pm_call_and_write_node_t *)node)->closing_loc);
328
- }
329
317
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
330
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
318
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
331
319
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
332
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
333
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_and_write_node_t *)node)->read_name), pm_string_length(&((pm_call_and_write_node_t *)node)->read_name));
334
- pm_buffer_append_str(buffer, "\"", 1);
335
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
336
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_and_write_node_t *)node)->write_name), pm_string_length(&((pm_call_and_write_node_t *)node)->write_name));
337
- pm_buffer_append_str(buffer, "\"", 1);
320
+ pm_buffer_append_str(buffer, ", ", 2); char read_name_buffer[12];
321
+ snprintf(read_name_buffer, sizeof(read_name_buffer), "%u", ((pm_call_and_write_node_t *)node)->read_name);
322
+ pm_buffer_append_str(buffer, read_name_buffer, strlen(read_name_buffer));
323
+ pm_buffer_append_str(buffer, ", ", 2); char write_name_buffer[12];
324
+ snprintf(write_name_buffer, sizeof(write_name_buffer), "%u", ((pm_call_and_write_node_t *)node)->write_name);
325
+ pm_buffer_append_str(buffer, write_name_buffer, strlen(write_name_buffer));
338
326
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_call_and_write_node_t *)node)->operator_loc);
339
327
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (pm_node_t *)((pm_call_and_write_node_t *)node)->value);
340
328
  pm_buffer_append_str(buffer, ")", 1);
@@ -378,11 +366,11 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
378
366
  prettyprint_node(buffer, parser, (pm_node_t *)((pm_call_node_t *)node)->block);
379
367
  }
380
368
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
381
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
369
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
382
370
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
383
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
384
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_node_t *)node)->name), pm_string_length(&((pm_call_node_t *)node)->name));
385
- pm_buffer_append_str(buffer, "\"", 1);
371
+ pm_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
372
+ snprintf(name_buffer, sizeof(name_buffer), "%u", ((pm_call_node_t *)node)->name);
373
+ pm_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
386
374
  pm_buffer_append_str(buffer, ")", 1);
387
375
  break;
388
376
  }
@@ -403,30 +391,15 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
403
391
  } else {
404
392
  prettyprint_location(buffer, parser, &((pm_call_operator_write_node_t *)node)->message_loc);
405
393
  }
406
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_operator_write_node_t *)node)->opening_loc.start == NULL) {
407
- pm_buffer_append_str(buffer, "nil", 3);
408
- } else {
409
- prettyprint_location(buffer, parser, &((pm_call_operator_write_node_t *)node)->opening_loc);
410
- }
411
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_operator_write_node_t *)node)->arguments == NULL) {
412
- pm_buffer_append_str(buffer, "nil", 3);
413
- } else {
414
- prettyprint_node(buffer, parser, (pm_node_t *)((pm_call_operator_write_node_t *)node)->arguments);
415
- }
416
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_operator_write_node_t *)node)->closing_loc.start == NULL) {
417
- pm_buffer_append_str(buffer, "nil", 3);
418
- } else {
419
- prettyprint_location(buffer, parser, &((pm_call_operator_write_node_t *)node)->closing_loc);
420
- }
421
394
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
422
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
395
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
423
396
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
424
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
425
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_operator_write_node_t *)node)->read_name), pm_string_length(&((pm_call_operator_write_node_t *)node)->read_name));
426
- pm_buffer_append_str(buffer, "\"", 1);
427
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
428
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_operator_write_node_t *)node)->write_name), pm_string_length(&((pm_call_operator_write_node_t *)node)->write_name));
429
- pm_buffer_append_str(buffer, "\"", 1);
397
+ pm_buffer_append_str(buffer, ", ", 2); char read_name_buffer[12];
398
+ snprintf(read_name_buffer, sizeof(read_name_buffer), "%u", ((pm_call_operator_write_node_t *)node)->read_name);
399
+ pm_buffer_append_str(buffer, read_name_buffer, strlen(read_name_buffer));
400
+ pm_buffer_append_str(buffer, ", ", 2); char write_name_buffer[12];
401
+ snprintf(write_name_buffer, sizeof(write_name_buffer), "%u", ((pm_call_operator_write_node_t *)node)->write_name);
402
+ pm_buffer_append_str(buffer, write_name_buffer, strlen(write_name_buffer));
430
403
  pm_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
431
404
  snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((pm_call_operator_write_node_t *)node)->operator);
432
405
  pm_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
@@ -452,30 +425,15 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
452
425
  } else {
453
426
  prettyprint_location(buffer, parser, &((pm_call_or_write_node_t *)node)->message_loc);
454
427
  }
455
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_or_write_node_t *)node)->opening_loc.start == NULL) {
456
- pm_buffer_append_str(buffer, "nil", 3);
457
- } else {
458
- prettyprint_location(buffer, parser, &((pm_call_or_write_node_t *)node)->opening_loc);
459
- }
460
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_or_write_node_t *)node)->arguments == NULL) {
461
- pm_buffer_append_str(buffer, "nil", 3);
462
- } else {
463
- prettyprint_node(buffer, parser, (pm_node_t *)((pm_call_or_write_node_t *)node)->arguments);
464
- }
465
- pm_buffer_append_str(buffer, ", ", 2); if (((pm_call_or_write_node_t *)node)->closing_loc.start == NULL) {
466
- pm_buffer_append_str(buffer, "nil", 3);
467
- } else {
468
- prettyprint_location(buffer, parser, &((pm_call_or_write_node_t *)node)->closing_loc);
469
- }
470
428
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
471
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
429
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
472
430
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
473
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
474
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_or_write_node_t *)node)->read_name), pm_string_length(&((pm_call_or_write_node_t *)node)->read_name));
475
- pm_buffer_append_str(buffer, "\"", 1);
476
- pm_buffer_append_str(buffer, ", ", 2); pm_buffer_append_str(buffer, "\"", 1);
477
- pm_buffer_append_bytes(buffer, pm_string_source(&((pm_call_or_write_node_t *)node)->write_name), pm_string_length(&((pm_call_or_write_node_t *)node)->write_name));
478
- pm_buffer_append_str(buffer, "\"", 1);
431
+ pm_buffer_append_str(buffer, ", ", 2); char read_name_buffer[12];
432
+ snprintf(read_name_buffer, sizeof(read_name_buffer), "%u", ((pm_call_or_write_node_t *)node)->read_name);
433
+ pm_buffer_append_str(buffer, read_name_buffer, strlen(read_name_buffer));
434
+ pm_buffer_append_str(buffer, ", ", 2); char write_name_buffer[12];
435
+ snprintf(write_name_buffer, sizeof(write_name_buffer), "%u", ((pm_call_or_write_node_t *)node)->write_name);
436
+ pm_buffer_append_str(buffer, write_name_buffer, strlen(write_name_buffer));
479
437
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_call_or_write_node_t *)node)->operator_loc);
480
438
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (pm_node_t *)((pm_call_or_write_node_t *)node)->value);
481
439
  pm_buffer_append_str(buffer, ")", 1);
@@ -904,7 +862,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
904
862
  }
905
863
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_flip_flop_node_t *)node)->operator_loc);
906
864
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
907
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
865
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
908
866
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
909
867
  pm_buffer_append_str(buffer, ")", 1);
910
868
  break;
@@ -1116,6 +1074,105 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1116
1074
  pm_buffer_append_str(buffer, ")", 1);
1117
1075
  break;
1118
1076
  }
1077
+ case PM_INDEX_AND_WRITE_NODE: {
1078
+ pm_buffer_append_str(buffer, "IndexAndWriteNode(", 18);
1079
+ if (((pm_index_and_write_node_t *)node)->receiver == NULL) {
1080
+ pm_buffer_append_str(buffer, "nil", 3);
1081
+ } else {
1082
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->receiver);
1083
+ }
1084
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_and_write_node_t *)node)->call_operator_loc.start == NULL) {
1085
+ pm_buffer_append_str(buffer, "nil", 3);
1086
+ } else {
1087
+ prettyprint_location(buffer, parser, &((pm_index_and_write_node_t *)node)->call_operator_loc);
1088
+ }
1089
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_and_write_node_t *)node)->opening_loc);
1090
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_and_write_node_t *)node)->arguments == NULL) {
1091
+ pm_buffer_append_str(buffer, "nil", 3);
1092
+ } else {
1093
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->arguments);
1094
+ }
1095
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_and_write_node_t *)node)->closing_loc);
1096
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_and_write_node_t *)node)->block == NULL) {
1097
+ pm_buffer_append_str(buffer, "nil", 3);
1098
+ } else {
1099
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->block);
1100
+ }
1101
+ pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1102
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1103
+ pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1104
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_and_write_node_t *)node)->operator_loc);
1105
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->value);
1106
+ pm_buffer_append_str(buffer, ")", 1);
1107
+ break;
1108
+ }
1109
+ case PM_INDEX_OPERATOR_WRITE_NODE: {
1110
+ pm_buffer_append_str(buffer, "IndexOperatorWriteNode(", 23);
1111
+ if (((pm_index_operator_write_node_t *)node)->receiver == NULL) {
1112
+ pm_buffer_append_str(buffer, "nil", 3);
1113
+ } else {
1114
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->receiver);
1115
+ }
1116
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_operator_write_node_t *)node)->call_operator_loc.start == NULL) {
1117
+ pm_buffer_append_str(buffer, "nil", 3);
1118
+ } else {
1119
+ prettyprint_location(buffer, parser, &((pm_index_operator_write_node_t *)node)->call_operator_loc);
1120
+ }
1121
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_operator_write_node_t *)node)->opening_loc);
1122
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_operator_write_node_t *)node)->arguments == NULL) {
1123
+ pm_buffer_append_str(buffer, "nil", 3);
1124
+ } else {
1125
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->arguments);
1126
+ }
1127
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_operator_write_node_t *)node)->closing_loc);
1128
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_operator_write_node_t *)node)->block == NULL) {
1129
+ pm_buffer_append_str(buffer, "nil", 3);
1130
+ } else {
1131
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->block);
1132
+ }
1133
+ pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1134
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1135
+ pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1136
+ pm_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
1137
+ snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((pm_index_operator_write_node_t *)node)->operator);
1138
+ pm_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
1139
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_operator_write_node_t *)node)->operator_loc);
1140
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->value);
1141
+ pm_buffer_append_str(buffer, ")", 1);
1142
+ break;
1143
+ }
1144
+ case PM_INDEX_OR_WRITE_NODE: {
1145
+ pm_buffer_append_str(buffer, "IndexOrWriteNode(", 17);
1146
+ if (((pm_index_or_write_node_t *)node)->receiver == NULL) {
1147
+ pm_buffer_append_str(buffer, "nil", 3);
1148
+ } else {
1149
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->receiver);
1150
+ }
1151
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_or_write_node_t *)node)->call_operator_loc.start == NULL) {
1152
+ pm_buffer_append_str(buffer, "nil", 3);
1153
+ } else {
1154
+ prettyprint_location(buffer, parser, &((pm_index_or_write_node_t *)node)->call_operator_loc);
1155
+ }
1156
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_or_write_node_t *)node)->opening_loc);
1157
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_or_write_node_t *)node)->arguments == NULL) {
1158
+ pm_buffer_append_str(buffer, "nil", 3);
1159
+ } else {
1160
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->arguments);
1161
+ }
1162
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_or_write_node_t *)node)->closing_loc);
1163
+ pm_buffer_append_str(buffer, ", ", 2); if (((pm_index_or_write_node_t *)node)->block == NULL) {
1164
+ pm_buffer_append_str(buffer, "nil", 3);
1165
+ } else {
1166
+ prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->block);
1167
+ }
1168
+ pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1169
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1170
+ pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1171
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_index_or_write_node_t *)node)->operator_loc);
1172
+ pm_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->value);
1173
+ pm_buffer_append_str(buffer, ")", 1);
1174
+ break;
1175
+ }
1119
1176
  case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
1120
1177
  pm_buffer_append_str(buffer, "InstanceVariableAndWriteNode(", 29);
1121
1178
  char name_buffer[12];
@@ -1182,7 +1239,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1182
1239
  case PM_INTEGER_NODE: {
1183
1240
  pm_buffer_append_str(buffer, "IntegerNode(", 12);
1184
1241
  char flags_buffer[12];
1185
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1242
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1186
1243
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1187
1244
  pm_buffer_append_str(buffer, ")", 1);
1188
1245
  break;
@@ -1198,7 +1255,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1198
1255
  pm_buffer_append_str(buffer, "]", 1);
1199
1256
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_interpolated_match_last_line_node_t *)node)->closing_loc);
1200
1257
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1201
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1258
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1202
1259
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1203
1260
  pm_buffer_append_str(buffer, ")", 1);
1204
1261
  break;
@@ -1214,7 +1271,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1214
1271
  pm_buffer_append_str(buffer, "]", 1);
1215
1272
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_interpolated_regular_expression_node_t *)node)->closing_loc);
1216
1273
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1217
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1274
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1218
1275
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1219
1276
  pm_buffer_append_str(buffer, ")", 1);
1220
1277
  break;
@@ -1433,7 +1490,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1433
1490
  pm_buffer_append_bytes(buffer, pm_string_source(&((pm_match_last_line_node_t *)node)->unescaped), pm_string_length(&((pm_match_last_line_node_t *)node)->unescaped));
1434
1491
  pm_buffer_append_str(buffer, "\"", 1);
1435
1492
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1436
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1493
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1437
1494
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1438
1495
  pm_buffer_append_str(buffer, ")", 1);
1439
1496
  break;
@@ -1717,7 +1774,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1717
1774
  }
1718
1775
  pm_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((pm_range_node_t *)node)->operator_loc);
1719
1776
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1720
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1777
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1721
1778
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1722
1779
  pm_buffer_append_str(buffer, ")", 1);
1723
1780
  break;
@@ -1742,7 +1799,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1742
1799
  pm_buffer_append_bytes(buffer, pm_string_source(&((pm_regular_expression_node_t *)node)->unescaped), pm_string_length(&((pm_regular_expression_node_t *)node)->unescaped));
1743
1800
  pm_buffer_append_str(buffer, "\"", 1);
1744
1801
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
1745
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1802
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1746
1803
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1747
1804
  pm_buffer_append_str(buffer, ")", 1);
1748
1805
  break;
@@ -1919,7 +1976,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
1919
1976
  case PM_STRING_NODE: {
1920
1977
  pm_buffer_append_str(buffer, "StringNode(", 11);
1921
1978
  char flags_buffer[12];
1922
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
1979
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
1923
1980
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
1924
1981
  pm_buffer_append_str(buffer, ", ", 2); if (((pm_string_node_t *)node)->opening_loc.start == NULL) {
1925
1982
  pm_buffer_append_str(buffer, "nil", 3);
@@ -2041,7 +2098,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
2041
2098
  prettyprint_node(buffer, parser, (pm_node_t *)((pm_until_node_t *)node)->statements);
2042
2099
  }
2043
2100
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
2044
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
2101
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
2045
2102
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
2046
2103
  pm_buffer_append_str(buffer, ")", 1);
2047
2104
  break;
@@ -2078,7 +2135,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) {
2078
2135
  prettyprint_node(buffer, parser, (pm_node_t *)((pm_while_node_t *)node)->statements);
2079
2136
  }
2080
2137
  pm_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
2081
- snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 2);
2138
+ snprintf(flags_buffer, sizeof(flags_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK));
2082
2139
  pm_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
2083
2140
  pm_buffer_append_str(buffer, ")", 1);
2084
2141
  break;