yarp 0.6.0 → 0.8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +55 -0
- data/CONTRIBUTING.md +4 -0
- data/{Makefile.in → Makefile} +5 -4
- data/README.md +6 -3
- data/config.yml +83 -274
- data/docs/build_system.md +4 -15
- data/docs/building.md +1 -5
- data/docs/encoding.md +1 -0
- data/docs/{extension.md → ruby_api.md} +6 -3
- data/docs/serialization.md +71 -24
- data/ext/yarp/api_node.c +173 -585
- data/ext/yarp/extconf.rb +15 -10
- data/ext/yarp/extension.c +4 -2
- data/ext/yarp/extension.h +1 -1
- data/include/yarp/ast.h +167 -306
- data/include/yarp/defines.h +5 -15
- data/include/yarp/enc/yp_encoding.h +1 -0
- data/include/yarp/unescape.h +1 -1
- data/include/yarp/util/yp_buffer.h +9 -0
- data/include/yarp/util/yp_constant_pool.h +3 -0
- data/include/yarp/util/yp_list.h +7 -7
- data/include/yarp/util/yp_newline_list.h +4 -0
- data/include/yarp/util/yp_state_stack.h +1 -1
- data/include/yarp/util/yp_string.h +5 -1
- data/include/yarp/version.h +2 -3
- data/include/yarp.h +4 -2
- data/lib/yarp/ffi.rb +226 -0
- data/lib/yarp/lex_compat.rb +16 -2
- data/lib/yarp/node.rb +594 -1437
- data/lib/yarp/ripper_compat.rb +3 -3
- data/lib/yarp/serialize.rb +312 -149
- data/lib/yarp.rb +167 -2
- data/src/enc/yp_unicode.c +9 -0
- data/src/node.c +92 -250
- data/src/prettyprint.c +81 -206
- data/src/serialize.c +124 -149
- data/src/unescape.c +29 -35
- data/src/util/yp_buffer.c +18 -0
- data/src/util/yp_list.c +7 -16
- data/src/util/yp_state_stack.c +0 -6
- data/src/util/yp_string.c +8 -17
- data/src/yarp.c +444 -717
- data/yarp.gemspec +5 -5
- metadata +6 -6
- data/config.h.in +0 -25
- data/configure +0 -4487
data/src/prettyprint.c
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
static void
|
17
17
|
prettyprint_location(yp_buffer_t *buffer, yp_parser_t *parser, yp_location_t *location) {
|
18
18
|
char printed[] = "[0000-0000]";
|
19
|
-
|
19
|
+
snprintf(printed, sizeof(printed), "[%04ld-%04ld]", (long int)(location->start - parser->start), (long int)(location->end - parser->start));
|
20
20
|
yp_buffer_append_str(buffer, printed, strlen(printed));
|
21
21
|
}
|
22
22
|
|
@@ -47,6 +47,14 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
47
47
|
yp_buffer_append_str(buffer, ")", 1);
|
48
48
|
break;
|
49
49
|
}
|
50
|
+
case YP_NODE_AND_WRITE_NODE: {
|
51
|
+
yp_buffer_append_str(buffer, "AndWriteNode(", 13);
|
52
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_and_write_node_t *)node)->target);
|
53
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_and_write_node_t *)node)->value);
|
54
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_and_write_node_t *)node)->operator_loc);
|
55
|
+
yp_buffer_append_str(buffer, ")", 1);
|
56
|
+
break;
|
57
|
+
}
|
50
58
|
case YP_NODE_ARGUMENTS_NODE: {
|
51
59
|
yp_buffer_append_str(buffer, "ArgumentsNode(", 14);
|
52
60
|
yp_buffer_append_str(buffer, "[", 1);
|
@@ -200,7 +208,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
200
208
|
for (uint32_t index = 0; index < ((yp_block_node_t *)node)->locals.size; index++) {
|
201
209
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
202
210
|
char locals_buffer[12];
|
203
|
-
|
211
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_block_node_t *)node)->locals.ids[index]);
|
204
212
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
205
213
|
}
|
206
214
|
yp_buffer_append_str(buffer, "]", 1);
|
@@ -209,10 +217,10 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
209
217
|
} else {
|
210
218
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_block_node_t *)node)->parameters);
|
211
219
|
}
|
212
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_block_node_t *)node)->
|
220
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_block_node_t *)node)->body == NULL) {
|
213
221
|
yp_buffer_append_str(buffer, "nil", 3);
|
214
222
|
} else {
|
215
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_block_node_t *)node)->
|
223
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_block_node_t *)node)->body);
|
216
224
|
}
|
217
225
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_block_node_t *)node)->opening_loc);
|
218
226
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_block_node_t *)node)->closing_loc);
|
@@ -305,7 +313,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
305
313
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_node_t *)node)->block);
|
306
314
|
}
|
307
315
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
308
|
-
|
316
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
309
317
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
310
318
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
311
319
|
yp_buffer_append_str(buffer, yp_string_source(&((yp_call_node_t *)node)->name), yp_string_length(&((yp_call_node_t *)node)->name));
|
@@ -335,7 +343,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
335
343
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->operator_loc);
|
336
344
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->value);
|
337
345
|
yp_buffer_append_str(buffer, ", ", 2); char operator_id_buffer[12];
|
338
|
-
|
346
|
+
snprintf(operator_id_buffer, sizeof(operator_id_buffer), "%u", ((yp_call_operator_write_node_t *)node)->operator_id);
|
339
347
|
yp_buffer_append_str(buffer, operator_id_buffer, strlen(operator_id_buffer));
|
340
348
|
yp_buffer_append_str(buffer, ")", 1);
|
341
349
|
break;
|
@@ -377,7 +385,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
377
385
|
for (uint32_t index = 0; index < ((yp_class_node_t *)node)->locals.size; index++) {
|
378
386
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
379
387
|
char locals_buffer[12];
|
380
|
-
|
388
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_class_node_t *)node)->locals.ids[index]);
|
381
389
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
382
390
|
}
|
383
391
|
yp_buffer_append_str(buffer, "]", 1);
|
@@ -393,42 +401,15 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
393
401
|
} else {
|
394
402
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_node_t *)node)->superclass);
|
395
403
|
}
|
396
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_class_node_t *)node)->
|
404
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_class_node_t *)node)->body == NULL) {
|
397
405
|
yp_buffer_append_str(buffer, "nil", 3);
|
398
406
|
} else {
|
399
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_node_t *)node)->
|
407
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_node_t *)node)->body);
|
400
408
|
}
|
401
409
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_node_t *)node)->end_keyword_loc);
|
402
410
|
yp_buffer_append_str(buffer, ")", 1);
|
403
411
|
break;
|
404
412
|
}
|
405
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
406
|
-
yp_buffer_append_str(buffer, "ClassVariableOperatorAndWriteNode(", 34);
|
407
|
-
prettyprint_location(buffer, parser, &((yp_class_variable_operator_and_write_node_t *)node)->name_loc);
|
408
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_and_write_node_t *)node)->operator_loc);
|
409
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_operator_and_write_node_t *)node)->value);
|
410
|
-
yp_buffer_append_str(buffer, ")", 1);
|
411
|
-
break;
|
412
|
-
}
|
413
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
414
|
-
yp_buffer_append_str(buffer, "ClassVariableOperatorOrWriteNode(", 33);
|
415
|
-
prettyprint_location(buffer, parser, &((yp_class_variable_operator_or_write_node_t *)node)->name_loc);
|
416
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_or_write_node_t *)node)->operator_loc);
|
417
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_operator_or_write_node_t *)node)->value);
|
418
|
-
yp_buffer_append_str(buffer, ")", 1);
|
419
|
-
break;
|
420
|
-
}
|
421
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
|
422
|
-
yp_buffer_append_str(buffer, "ClassVariableOperatorWriteNode(", 31);
|
423
|
-
prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->name_loc);
|
424
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->operator_loc);
|
425
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_operator_write_node_t *)node)->value);
|
426
|
-
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
427
|
-
yp_snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_class_variable_operator_write_node_t *)node)->operator);
|
428
|
-
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
429
|
-
yp_buffer_append_str(buffer, ")", 1);
|
430
|
-
break;
|
431
|
-
}
|
432
413
|
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
|
433
414
|
yp_buffer_append_str(buffer, "ClassVariableReadNode(", 22);
|
434
415
|
yp_buffer_append_str(buffer, ")", 1);
|
@@ -450,33 +431,6 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
450
431
|
yp_buffer_append_str(buffer, ")", 1);
|
451
432
|
break;
|
452
433
|
}
|
453
|
-
case YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE: {
|
454
|
-
yp_buffer_append_str(buffer, "ConstantOperatorAndWriteNode(", 29);
|
455
|
-
prettyprint_location(buffer, parser, &((yp_constant_operator_and_write_node_t *)node)->name_loc);
|
456
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_operator_and_write_node_t *)node)->operator_loc);
|
457
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_operator_and_write_node_t *)node)->value);
|
458
|
-
yp_buffer_append_str(buffer, ")", 1);
|
459
|
-
break;
|
460
|
-
}
|
461
|
-
case YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE: {
|
462
|
-
yp_buffer_append_str(buffer, "ConstantOperatorOrWriteNode(", 28);
|
463
|
-
prettyprint_location(buffer, parser, &((yp_constant_operator_or_write_node_t *)node)->name_loc);
|
464
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_operator_or_write_node_t *)node)->operator_loc);
|
465
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_operator_or_write_node_t *)node)->value);
|
466
|
-
yp_buffer_append_str(buffer, ")", 1);
|
467
|
-
break;
|
468
|
-
}
|
469
|
-
case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE: {
|
470
|
-
yp_buffer_append_str(buffer, "ConstantOperatorWriteNode(", 26);
|
471
|
-
prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->name_loc);
|
472
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->operator_loc);
|
473
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_operator_write_node_t *)node)->value);
|
474
|
-
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
475
|
-
yp_snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_constant_operator_write_node_t *)node)->operator);
|
476
|
-
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
477
|
-
yp_buffer_append_str(buffer, ")", 1);
|
478
|
-
break;
|
479
|
-
}
|
480
434
|
case YP_NODE_CONSTANT_PATH_NODE: {
|
481
435
|
yp_buffer_append_str(buffer, "ConstantPathNode(", 17);
|
482
436
|
if (((yp_constant_path_node_t *)node)->parent == NULL) {
|
@@ -489,33 +443,6 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
489
443
|
yp_buffer_append_str(buffer, ")", 1);
|
490
444
|
break;
|
491
445
|
}
|
492
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE: {
|
493
|
-
yp_buffer_append_str(buffer, "ConstantPathOperatorAndWriteNode(", 33);
|
494
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_and_write_node_t *)node)->target);
|
495
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_operator_and_write_node_t *)node)->operator_loc);
|
496
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_and_write_node_t *)node)->value);
|
497
|
-
yp_buffer_append_str(buffer, ")", 1);
|
498
|
-
break;
|
499
|
-
}
|
500
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE: {
|
501
|
-
yp_buffer_append_str(buffer, "ConstantPathOperatorOrWriteNode(", 32);
|
502
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_or_write_node_t *)node)->target);
|
503
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_operator_or_write_node_t *)node)->operator_loc);
|
504
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_or_write_node_t *)node)->value);
|
505
|
-
yp_buffer_append_str(buffer, ")", 1);
|
506
|
-
break;
|
507
|
-
}
|
508
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
|
509
|
-
yp_buffer_append_str(buffer, "ConstantPathOperatorWriteNode(", 30);
|
510
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->target);
|
511
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_operator_write_node_t *)node)->operator_loc);
|
512
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->value);
|
513
|
-
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
514
|
-
yp_snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_constant_path_operator_write_node_t *)node)->operator);
|
515
|
-
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
516
|
-
yp_buffer_append_str(buffer, ")", 1);
|
517
|
-
break;
|
518
|
-
}
|
519
446
|
case YP_NODE_CONSTANT_PATH_WRITE_NODE: {
|
520
447
|
yp_buffer_append_str(buffer, "ConstantPathWriteNode(", 22);
|
521
448
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_write_node_t *)node)->target);
|
@@ -566,16 +493,16 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
566
493
|
} else {
|
567
494
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_def_node_t *)node)->parameters);
|
568
495
|
}
|
569
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_def_node_t *)node)->
|
496
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_def_node_t *)node)->body == NULL) {
|
570
497
|
yp_buffer_append_str(buffer, "nil", 3);
|
571
498
|
} else {
|
572
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_def_node_t *)node)->
|
499
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_def_node_t *)node)->body);
|
573
500
|
}
|
574
501
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "[", 1);
|
575
502
|
for (uint32_t index = 0; index < ((yp_def_node_t *)node)->locals.size; index++) {
|
576
503
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
577
504
|
char locals_buffer[12];
|
578
|
-
|
505
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_def_node_t *)node)->locals.ids[index]);
|
579
506
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
580
507
|
}
|
581
508
|
yp_buffer_append_str(buffer, "]", 1);
|
@@ -705,6 +632,25 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
705
632
|
yp_buffer_append_str(buffer, ")", 1);
|
706
633
|
break;
|
707
634
|
}
|
635
|
+
case YP_NODE_FLIP_FLOP_NODE: {
|
636
|
+
yp_buffer_append_str(buffer, "FlipFlopNode(", 13);
|
637
|
+
if (((yp_flip_flop_node_t *)node)->left == NULL) {
|
638
|
+
yp_buffer_append_str(buffer, "nil", 3);
|
639
|
+
} else {
|
640
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_flip_flop_node_t *)node)->left);
|
641
|
+
}
|
642
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_flip_flop_node_t *)node)->right == NULL) {
|
643
|
+
yp_buffer_append_str(buffer, "nil", 3);
|
644
|
+
} else {
|
645
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_flip_flop_node_t *)node)->right);
|
646
|
+
}
|
647
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_flip_flop_node_t *)node)->operator_loc);
|
648
|
+
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
649
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
650
|
+
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
651
|
+
yp_buffer_append_str(buffer, ")", 1);
|
652
|
+
break;
|
653
|
+
}
|
708
654
|
case YP_NODE_FLOAT_NODE: {
|
709
655
|
yp_buffer_append_str(buffer, "FloatNode(", 10);
|
710
656
|
yp_buffer_append_str(buffer, ")", 1);
|
@@ -750,33 +696,6 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
750
696
|
yp_buffer_append_str(buffer, ")", 1);
|
751
697
|
break;
|
752
698
|
}
|
753
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
754
|
-
yp_buffer_append_str(buffer, "GlobalVariableOperatorAndWriteNode(", 35);
|
755
|
-
prettyprint_location(buffer, parser, &((yp_global_variable_operator_and_write_node_t *)node)->name_loc);
|
756
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_operator_and_write_node_t *)node)->operator_loc);
|
757
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_operator_and_write_node_t *)node)->value);
|
758
|
-
yp_buffer_append_str(buffer, ")", 1);
|
759
|
-
break;
|
760
|
-
}
|
761
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
762
|
-
yp_buffer_append_str(buffer, "GlobalVariableOperatorOrWriteNode(", 34);
|
763
|
-
prettyprint_location(buffer, parser, &((yp_global_variable_operator_or_write_node_t *)node)->name_loc);
|
764
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_operator_or_write_node_t *)node)->operator_loc);
|
765
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_operator_or_write_node_t *)node)->value);
|
766
|
-
yp_buffer_append_str(buffer, ")", 1);
|
767
|
-
break;
|
768
|
-
}
|
769
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
770
|
-
yp_buffer_append_str(buffer, "GlobalVariableOperatorWriteNode(", 32);
|
771
|
-
prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->name_loc);
|
772
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->operator_loc);
|
773
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_operator_write_node_t *)node)->value);
|
774
|
-
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
775
|
-
yp_snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_global_variable_operator_write_node_t *)node)->operator);
|
776
|
-
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
777
|
-
yp_buffer_append_str(buffer, ")", 1);
|
778
|
-
break;
|
779
|
-
}
|
780
699
|
case YP_NODE_GLOBAL_VARIABLE_READ_NODE: {
|
781
700
|
yp_buffer_append_str(buffer, "GlobalVariableReadNode(", 23);
|
782
701
|
yp_buffer_append_str(buffer, ")", 1);
|
@@ -891,33 +810,6 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
891
810
|
yp_buffer_append_str(buffer, ")", 1);
|
892
811
|
break;
|
893
812
|
}
|
894
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
895
|
-
yp_buffer_append_str(buffer, "InstanceVariableOperatorAndWriteNode(", 37);
|
896
|
-
prettyprint_location(buffer, parser, &((yp_instance_variable_operator_and_write_node_t *)node)->name_loc);
|
897
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_and_write_node_t *)node)->operator_loc);
|
898
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_operator_and_write_node_t *)node)->value);
|
899
|
-
yp_buffer_append_str(buffer, ")", 1);
|
900
|
-
break;
|
901
|
-
}
|
902
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
903
|
-
yp_buffer_append_str(buffer, "InstanceVariableOperatorOrWriteNode(", 36);
|
904
|
-
prettyprint_location(buffer, parser, &((yp_instance_variable_operator_or_write_node_t *)node)->name_loc);
|
905
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_or_write_node_t *)node)->operator_loc);
|
906
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_operator_or_write_node_t *)node)->value);
|
907
|
-
yp_buffer_append_str(buffer, ")", 1);
|
908
|
-
break;
|
909
|
-
}
|
910
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
|
911
|
-
yp_buffer_append_str(buffer, "InstanceVariableOperatorWriteNode(", 34);
|
912
|
-
prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->name_loc);
|
913
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->operator_loc);
|
914
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_operator_write_node_t *)node)->value);
|
915
|
-
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
916
|
-
yp_snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_instance_variable_operator_write_node_t *)node)->operator);
|
917
|
-
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
918
|
-
yp_buffer_append_str(buffer, ")", 1);
|
919
|
-
break;
|
920
|
-
}
|
921
813
|
case YP_NODE_INSTANCE_VARIABLE_READ_NODE: {
|
922
814
|
yp_buffer_append_str(buffer, "InstanceVariableReadNode(", 25);
|
923
815
|
yp_buffer_append_str(buffer, ")", 1);
|
@@ -955,7 +847,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
955
847
|
yp_buffer_append_str(buffer, "]", 1);
|
956
848
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_interpolated_regular_expression_node_t *)node)->closing_loc);
|
957
849
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
958
|
-
|
850
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
959
851
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
960
852
|
yp_buffer_append_str(buffer, ")", 1);
|
961
853
|
break;
|
@@ -1054,7 +946,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1054
946
|
for (uint32_t index = 0; index < ((yp_lambda_node_t *)node)->locals.size; index++) {
|
1055
947
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
1056
948
|
char locals_buffer[12];
|
1057
|
-
|
949
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_lambda_node_t *)node)->locals.ids[index]);
|
1058
950
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
1059
951
|
}
|
1060
952
|
yp_buffer_append_str(buffer, "]", 1);
|
@@ -1064,57 +956,21 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1064
956
|
} else {
|
1065
957
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_lambda_node_t *)node)->parameters);
|
1066
958
|
}
|
1067
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_lambda_node_t *)node)->
|
959
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_lambda_node_t *)node)->body == NULL) {
|
1068
960
|
yp_buffer_append_str(buffer, "nil", 3);
|
1069
961
|
} else {
|
1070
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_lambda_node_t *)node)->
|
962
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_lambda_node_t *)node)->body);
|
1071
963
|
}
|
1072
964
|
yp_buffer_append_str(buffer, ")", 1);
|
1073
965
|
break;
|
1074
966
|
}
|
1075
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
1076
|
-
yp_buffer_append_str(buffer, "LocalVariableOperatorAndWriteNode(", 34);
|
1077
|
-
prettyprint_location(buffer, parser, &((yp_local_variable_operator_and_write_node_t *)node)->name_loc);
|
1078
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_operator_and_write_node_t *)node)->operator_loc);
|
1079
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_operator_and_write_node_t *)node)->value);
|
1080
|
-
yp_buffer_append_str(buffer, ", ", 2); char constant_id_buffer[12];
|
1081
|
-
yp_snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_operator_and_write_node_t *)node)->constant_id);
|
1082
|
-
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1083
|
-
yp_buffer_append_str(buffer, ")", 1);
|
1084
|
-
break;
|
1085
|
-
}
|
1086
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
1087
|
-
yp_buffer_append_str(buffer, "LocalVariableOperatorOrWriteNode(", 33);
|
1088
|
-
prettyprint_location(buffer, parser, &((yp_local_variable_operator_or_write_node_t *)node)->name_loc);
|
1089
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_operator_or_write_node_t *)node)->operator_loc);
|
1090
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_operator_or_write_node_t *)node)->value);
|
1091
|
-
yp_buffer_append_str(buffer, ", ", 2); char constant_id_buffer[12];
|
1092
|
-
yp_snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_operator_or_write_node_t *)node)->constant_id);
|
1093
|
-
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1094
|
-
yp_buffer_append_str(buffer, ")", 1);
|
1095
|
-
break;
|
1096
|
-
}
|
1097
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
1098
|
-
yp_buffer_append_str(buffer, "LocalVariableOperatorWriteNode(", 31);
|
1099
|
-
prettyprint_location(buffer, parser, &((yp_local_variable_operator_write_node_t *)node)->name_loc);
|
1100
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_operator_write_node_t *)node)->operator_loc);
|
1101
|
-
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_operator_write_node_t *)node)->value);
|
1102
|
-
yp_buffer_append_str(buffer, ", ", 2); char constant_id_buffer[12];
|
1103
|
-
yp_snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->constant_id);
|
1104
|
-
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1105
|
-
yp_buffer_append_str(buffer, ", ", 2); char operator_id_buffer[12];
|
1106
|
-
yp_snprintf(operator_id_buffer, sizeof(operator_id_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->operator_id);
|
1107
|
-
yp_buffer_append_str(buffer, operator_id_buffer, strlen(operator_id_buffer));
|
1108
|
-
yp_buffer_append_str(buffer, ")", 1);
|
1109
|
-
break;
|
1110
|
-
}
|
1111
967
|
case YP_NODE_LOCAL_VARIABLE_READ_NODE: {
|
1112
968
|
yp_buffer_append_str(buffer, "LocalVariableReadNode(", 22);
|
1113
969
|
char constant_id_buffer[12];
|
1114
|
-
|
970
|
+
snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_read_node_t *)node)->constant_id);
|
1115
971
|
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1116
972
|
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
1117
|
-
|
973
|
+
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_read_node_t *)node)->depth);
|
1118
974
|
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
1119
975
|
yp_buffer_append_str(buffer, ")", 1);
|
1120
976
|
break;
|
@@ -1122,10 +978,10 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1122
978
|
case YP_NODE_LOCAL_VARIABLE_WRITE_NODE: {
|
1123
979
|
yp_buffer_append_str(buffer, "LocalVariableWriteNode(", 23);
|
1124
980
|
char constant_id_buffer[12];
|
1125
|
-
|
981
|
+
snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_local_variable_write_node_t *)node)->constant_id);
|
1126
982
|
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1127
983
|
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
1128
|
-
|
984
|
+
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_write_node_t *)node)->depth);
|
1129
985
|
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
1130
986
|
yp_buffer_append_str(buffer, ", ", 2); if (((yp_local_variable_write_node_t *)node)->value == NULL) {
|
1131
987
|
yp_buffer_append_str(buffer, "nil", 3);
|
@@ -1168,16 +1024,16 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1168
1024
|
for (uint32_t index = 0; index < ((yp_module_node_t *)node)->locals.size; index++) {
|
1169
1025
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
1170
1026
|
char locals_buffer[12];
|
1171
|
-
|
1027
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_module_node_t *)node)->locals.ids[index]);
|
1172
1028
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
1173
1029
|
}
|
1174
1030
|
yp_buffer_append_str(buffer, "]", 1);
|
1175
1031
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_module_node_t *)node)->module_keyword_loc);
|
1176
1032
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_module_node_t *)node)->constant_path);
|
1177
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_module_node_t *)node)->
|
1033
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_module_node_t *)node)->body == NULL) {
|
1178
1034
|
yp_buffer_append_str(buffer, "nil", 3);
|
1179
1035
|
} else {
|
1180
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_module_node_t *)node)->
|
1036
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_module_node_t *)node)->body);
|
1181
1037
|
}
|
1182
1038
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_module_node_t *)node)->end_keyword_loc);
|
1183
1039
|
yp_buffer_append_str(buffer, ")", 1);
|
@@ -1242,10 +1098,21 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1242
1098
|
yp_buffer_append_str(buffer, ")", 1);
|
1243
1099
|
break;
|
1244
1100
|
}
|
1101
|
+
case YP_NODE_OPERATOR_WRITE_NODE: {
|
1102
|
+
yp_buffer_append_str(buffer, "OperatorWriteNode(", 18);
|
1103
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_operator_write_node_t *)node)->target);
|
1104
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_operator_write_node_t *)node)->operator_loc);
|
1105
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
1106
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_operator_write_node_t *)node)->operator);
|
1107
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
1108
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_operator_write_node_t *)node)->value);
|
1109
|
+
yp_buffer_append_str(buffer, ")", 1);
|
1110
|
+
break;
|
1111
|
+
}
|
1245
1112
|
case YP_NODE_OPTIONAL_PARAMETER_NODE: {
|
1246
1113
|
yp_buffer_append_str(buffer, "OptionalParameterNode(", 22);
|
1247
1114
|
char constant_id_buffer[12];
|
1248
|
-
|
1115
|
+
snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_optional_parameter_node_t *)node)->constant_id);
|
1249
1116
|
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1250
1117
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_optional_parameter_node_t *)node)->name_loc);
|
1251
1118
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_optional_parameter_node_t *)node)->operator_loc);
|
@@ -1261,6 +1128,14 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1261
1128
|
yp_buffer_append_str(buffer, ")", 1);
|
1262
1129
|
break;
|
1263
1130
|
}
|
1131
|
+
case YP_NODE_OR_WRITE_NODE: {
|
1132
|
+
yp_buffer_append_str(buffer, "OrWriteNode(", 12);
|
1133
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_or_write_node_t *)node)->target);
|
1134
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_or_write_node_t *)node)->value);
|
1135
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_or_write_node_t *)node)->operator_loc);
|
1136
|
+
yp_buffer_append_str(buffer, ")", 1);
|
1137
|
+
break;
|
1138
|
+
}
|
1264
1139
|
case YP_NODE_PARAMETERS_NODE: {
|
1265
1140
|
yp_buffer_append_str(buffer, "ParametersNode(", 15);
|
1266
1141
|
yp_buffer_append_str(buffer, "[", 1);
|
@@ -1307,10 +1182,10 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1307
1182
|
}
|
1308
1183
|
case YP_NODE_PARENTHESES_NODE: {
|
1309
1184
|
yp_buffer_append_str(buffer, "ParenthesesNode(", 16);
|
1310
|
-
if (((yp_parentheses_node_t *)node)->
|
1185
|
+
if (((yp_parentheses_node_t *)node)->body == NULL) {
|
1311
1186
|
yp_buffer_append_str(buffer, "nil", 3);
|
1312
1187
|
} else {
|
1313
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_parentheses_node_t *)node)->
|
1188
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_parentheses_node_t *)node)->body);
|
1314
1189
|
}
|
1315
1190
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_parentheses_node_t *)node)->opening_loc);
|
1316
1191
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_parentheses_node_t *)node)->closing_loc);
|
@@ -1365,7 +1240,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1365
1240
|
for (uint32_t index = 0; index < ((yp_program_node_t *)node)->locals.size; index++) {
|
1366
1241
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
1367
1242
|
char locals_buffer[12];
|
1368
|
-
|
1243
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_program_node_t *)node)->locals.ids[index]);
|
1369
1244
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
1370
1245
|
}
|
1371
1246
|
yp_buffer_append_str(buffer, "]", 1);
|
@@ -1387,7 +1262,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1387
1262
|
}
|
1388
1263
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_range_node_t *)node)->operator_loc);
|
1389
1264
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
1390
|
-
|
1265
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
1391
1266
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
1392
1267
|
yp_buffer_append_str(buffer, ")", 1);
|
1393
1268
|
break;
|
@@ -1412,7 +1287,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1412
1287
|
yp_buffer_append_str(buffer, yp_string_source(&((yp_regular_expression_node_t *)node)->unescaped), yp_string_length(&((yp_regular_expression_node_t *)node)->unescaped));
|
1413
1288
|
yp_buffer_append_str(buffer, "\"", 1);
|
1414
1289
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
1415
|
-
|
1290
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
1416
1291
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
1417
1292
|
yp_buffer_append_str(buffer, ")", 1);
|
1418
1293
|
break;
|
@@ -1433,7 +1308,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1433
1308
|
case YP_NODE_REQUIRED_PARAMETER_NODE: {
|
1434
1309
|
yp_buffer_append_str(buffer, "RequiredParameterNode(", 22);
|
1435
1310
|
char constant_id_buffer[12];
|
1436
|
-
|
1311
|
+
snprintf(constant_id_buffer, sizeof(constant_id_buffer), "%u", ((yp_required_parameter_node_t *)node)->constant_id);
|
1437
1312
|
yp_buffer_append_str(buffer, constant_id_buffer, strlen(constant_id_buffer));
|
1438
1313
|
yp_buffer_append_str(buffer, ")", 1);
|
1439
1314
|
break;
|
@@ -1516,17 +1391,17 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1516
1391
|
for (uint32_t index = 0; index < ((yp_singleton_class_node_t *)node)->locals.size; index++) {
|
1517
1392
|
if (index != 0) yp_buffer_append_str(buffer, ", ", 2);
|
1518
1393
|
char locals_buffer[12];
|
1519
|
-
|
1394
|
+
snprintf(locals_buffer, sizeof(locals_buffer), "%u", ((yp_singleton_class_node_t *)node)->locals.ids[index]);
|
1520
1395
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
1521
1396
|
}
|
1522
1397
|
yp_buffer_append_str(buffer, "]", 1);
|
1523
1398
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_singleton_class_node_t *)node)->class_keyword_loc);
|
1524
1399
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_singleton_class_node_t *)node)->operator_loc);
|
1525
1400
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_singleton_class_node_t *)node)->expression);
|
1526
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_singleton_class_node_t *)node)->
|
1401
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_singleton_class_node_t *)node)->body == NULL) {
|
1527
1402
|
yp_buffer_append_str(buffer, "nil", 3);
|
1528
1403
|
} else {
|
1529
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_singleton_class_node_t *)node)->
|
1404
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_singleton_class_node_t *)node)->body);
|
1530
1405
|
}
|
1531
1406
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_singleton_class_node_t *)node)->end_keyword_loc);
|
1532
1407
|
yp_buffer_append_str(buffer, ")", 1);
|
@@ -1692,7 +1567,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1692
1567
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_until_node_t *)node)->statements);
|
1693
1568
|
}
|
1694
1569
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
1695
|
-
|
1570
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
1696
1571
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
1697
1572
|
yp_buffer_append_str(buffer, ")", 1);
|
1698
1573
|
break;
|
@@ -1724,7 +1599,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1724
1599
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_while_node_t *)node)->statements);
|
1725
1600
|
}
|
1726
1601
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
1727
|
-
|
1602
|
+
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
1728
1603
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
1729
1604
|
yp_buffer_append_str(buffer, ")", 1);
|
1730
1605
|
break;
|