yarp 0.8.0 → 0.10.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 +48 -1
- data/Makefile +5 -1
- data/README.md +4 -3
- data/config.yml +461 -150
- data/docs/configuration.md +1 -0
- data/docs/encoding.md +5 -5
- data/docs/ruby_api.md +2 -0
- data/docs/serialization.md +3 -3
- data/docs/testing.md +2 -2
- data/ext/yarp/api_node.c +810 -199
- data/ext/yarp/extension.c +94 -31
- data/ext/yarp/extension.h +2 -2
- data/include/yarp/ast.h +653 -150
- data/include/yarp/defines.h +2 -1
- data/include/yarp/diagnostic.h +3 -3
- data/include/yarp/enc/yp_encoding.h +10 -10
- data/include/yarp/node.h +10 -0
- data/include/yarp/parser.h +19 -19
- data/include/yarp/regexp.h +1 -1
- data/include/yarp/unescape.h +7 -5
- data/include/yarp/util/yp_buffer.h +3 -0
- data/include/yarp/util/yp_char.h +16 -16
- data/include/yarp/util/yp_constant_pool.h +2 -2
- data/include/yarp/util/yp_newline_list.h +7 -4
- data/include/yarp/util/yp_string.h +4 -4
- data/include/yarp/util/yp_string_list.h +0 -3
- data/include/yarp/util/yp_strpbrk.h +1 -1
- data/include/yarp/version.h +2 -2
- data/include/yarp.h +14 -3
- data/lib/yarp/desugar_visitor.rb +204 -0
- data/lib/yarp/ffi.rb +27 -1
- data/lib/yarp/lex_compat.rb +93 -25
- data/lib/yarp/mutation_visitor.rb +683 -0
- data/lib/yarp/node.rb +3121 -597
- data/lib/yarp/serialize.rb +198 -126
- data/lib/yarp.rb +53 -7
- data/src/diagnostic.c +1 -1
- data/src/enc/yp_big5.c +15 -42
- data/src/enc/yp_euc_jp.c +16 -43
- data/src/enc/yp_gbk.c +19 -46
- data/src/enc/yp_shift_jis.c +16 -43
- data/src/enc/yp_tables.c +36 -38
- data/src/enc/yp_unicode.c +20 -25
- data/src/enc/yp_windows_31j.c +16 -43
- data/src/node.c +1444 -836
- data/src/prettyprint.c +324 -103
- data/src/regexp.c +21 -21
- data/src/serialize.c +429 -276
- data/src/token_type.c +2 -2
- data/src/unescape.c +184 -136
- data/src/util/yp_buffer.c +7 -2
- data/src/util/yp_char.c +34 -34
- data/src/util/yp_constant_pool.c +4 -4
- data/src/util/yp_memchr.c +1 -1
- data/src/util/yp_newline_list.c +14 -3
- data/src/util/yp_string.c +22 -20
- data/src/util/yp_string_list.c +0 -6
- data/src/util/yp_strncasecmp.c +3 -6
- data/src/util/yp_strpbrk.c +8 -8
- data/src/yarp.c +1504 -615
- data/yarp.gemspec +3 -1
- metadata +4 -2
data/src/prettyprint.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/******************************************************************************/
|
2
|
-
/* This file is generated by the
|
3
|
-
/* modified manually. See
|
2
|
+
/* This file is generated by the templates/template.rb script and should not */
|
3
|
+
/* be modified manually. See */
|
4
4
|
/* templates/src/prettyprint.c.erb */
|
5
5
|
/* if you are looking to modify the */
|
6
6
|
/* template */
|
@@ -23,6 +23,10 @@ prettyprint_location(yp_buffer_t *buffer, yp_parser_t *parser, yp_location_t *lo
|
|
23
23
|
static void
|
24
24
|
prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
25
25
|
switch (YP_NODE_TYPE(node)) {
|
26
|
+
// We do not need to print a ScopeNode as it's not part
|
27
|
+
// of the AST
|
28
|
+
case YP_NODE_SCOPE_NODE:
|
29
|
+
return;
|
26
30
|
case YP_NODE_ALIAS_NODE: {
|
27
31
|
yp_buffer_append_str(buffer, "AliasNode(", 10);
|
28
32
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_alias_node_t *)node)->new_name);
|
@@ -47,14 +51,6 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
47
51
|
yp_buffer_append_str(buffer, ")", 1);
|
48
52
|
break;
|
49
53
|
}
|
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
|
-
}
|
58
54
|
case YP_NODE_ARGUMENTS_NODE: {
|
59
55
|
yp_buffer_append_str(buffer, "ArgumentsNode(", 14);
|
60
56
|
yp_buffer_append_str(buffer, "[", 1);
|
@@ -316,7 +312,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
316
312
|
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
317
313
|
yp_buffer_append_str(buffer, flags_buffer, strlen(flags_buffer));
|
318
314
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
319
|
-
|
315
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_call_node_t *)node)->name), yp_string_length(&((yp_call_node_t *)node)->name));
|
320
316
|
yp_buffer_append_str(buffer, "\"", 1);
|
321
317
|
yp_buffer_append_str(buffer, ")", 1);
|
322
318
|
break;
|
@@ -342,9 +338,9 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
342
338
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->target);
|
343
339
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_call_operator_write_node_t *)node)->operator_loc);
|
344
340
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_call_operator_write_node_t *)node)->value);
|
345
|
-
yp_buffer_append_str(buffer, ", ", 2); char
|
346
|
-
snprintf(
|
347
|
-
yp_buffer_append_str(buffer,
|
341
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
342
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_call_operator_write_node_t *)node)->operator);
|
343
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
348
344
|
yp_buffer_append_str(buffer, ")", 1);
|
349
345
|
break;
|
350
346
|
}
|
@@ -407,17 +403,70 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
407
403
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_node_t *)node)->body);
|
408
404
|
}
|
409
405
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_node_t *)node)->end_keyword_loc);
|
406
|
+
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
407
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_class_node_t *)node)->name), yp_string_length(&((yp_class_node_t *)node)->name));
|
408
|
+
yp_buffer_append_str(buffer, "\"", 1);
|
409
|
+
yp_buffer_append_str(buffer, ")", 1);
|
410
|
+
break;
|
411
|
+
}
|
412
|
+
case YP_NODE_CLASS_VARIABLE_AND_WRITE_NODE: {
|
413
|
+
yp_buffer_append_str(buffer, "ClassVariableAndWriteNode(", 26);
|
414
|
+
char name_buffer[12];
|
415
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_and_write_node_t *)node)->name);
|
416
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
417
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_and_write_node_t *)node)->name_loc);
|
418
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_and_write_node_t *)node)->operator_loc);
|
419
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_and_write_node_t *)node)->value);
|
420
|
+
yp_buffer_append_str(buffer, ")", 1);
|
421
|
+
break;
|
422
|
+
}
|
423
|
+
case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
|
424
|
+
yp_buffer_append_str(buffer, "ClassVariableOperatorWriteNode(", 31);
|
425
|
+
char name_buffer[12];
|
426
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_operator_write_node_t *)node)->name);
|
427
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
428
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->name_loc);
|
429
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_operator_write_node_t *)node)->operator_loc);
|
430
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_operator_write_node_t *)node)->value);
|
431
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
432
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_class_variable_operator_write_node_t *)node)->operator);
|
433
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
434
|
+
yp_buffer_append_str(buffer, ")", 1);
|
435
|
+
break;
|
436
|
+
}
|
437
|
+
case YP_NODE_CLASS_VARIABLE_OR_WRITE_NODE: {
|
438
|
+
yp_buffer_append_str(buffer, "ClassVariableOrWriteNode(", 25);
|
439
|
+
char name_buffer[12];
|
440
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_or_write_node_t *)node)->name);
|
441
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
442
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_or_write_node_t *)node)->name_loc);
|
443
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_or_write_node_t *)node)->operator_loc);
|
444
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_class_variable_or_write_node_t *)node)->value);
|
410
445
|
yp_buffer_append_str(buffer, ")", 1);
|
411
446
|
break;
|
412
447
|
}
|
413
448
|
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
|
414
449
|
yp_buffer_append_str(buffer, "ClassVariableReadNode(", 22);
|
450
|
+
char name_buffer[12];
|
451
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_read_node_t *)node)->name);
|
452
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
453
|
+
yp_buffer_append_str(buffer, ")", 1);
|
454
|
+
break;
|
455
|
+
}
|
456
|
+
case YP_NODE_CLASS_VARIABLE_TARGET_NODE: {
|
457
|
+
yp_buffer_append_str(buffer, "ClassVariableTargetNode(", 24);
|
458
|
+
char name_buffer[12];
|
459
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_target_node_t *)node)->name);
|
460
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
415
461
|
yp_buffer_append_str(buffer, ")", 1);
|
416
462
|
break;
|
417
463
|
}
|
418
464
|
case YP_NODE_CLASS_VARIABLE_WRITE_NODE: {
|
419
465
|
yp_buffer_append_str(buffer, "ClassVariableWriteNode(", 23);
|
420
|
-
|
466
|
+
char name_buffer[12];
|
467
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_class_variable_write_node_t *)node)->name);
|
468
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
469
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_class_variable_write_node_t *)node)->name_loc);
|
421
470
|
yp_buffer_append_str(buffer, ", ", 2); if (((yp_class_variable_write_node_t *)node)->value == NULL) {
|
422
471
|
yp_buffer_append_str(buffer, "nil", 3);
|
423
472
|
} else {
|
@@ -431,6 +480,41 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
431
480
|
yp_buffer_append_str(buffer, ")", 1);
|
432
481
|
break;
|
433
482
|
}
|
483
|
+
case YP_NODE_CONSTANT_AND_WRITE_NODE: {
|
484
|
+
yp_buffer_append_str(buffer, "ConstantAndWriteNode(", 21);
|
485
|
+
prettyprint_location(buffer, parser, &((yp_constant_and_write_node_t *)node)->name_loc);
|
486
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_and_write_node_t *)node)->operator_loc);
|
487
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_and_write_node_t *)node)->value);
|
488
|
+
yp_buffer_append_str(buffer, ")", 1);
|
489
|
+
break;
|
490
|
+
}
|
491
|
+
case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE: {
|
492
|
+
yp_buffer_append_str(buffer, "ConstantOperatorWriteNode(", 26);
|
493
|
+
prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->name_loc);
|
494
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_operator_write_node_t *)node)->operator_loc);
|
495
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_operator_write_node_t *)node)->value);
|
496
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
497
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_constant_operator_write_node_t *)node)->operator);
|
498
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
499
|
+
yp_buffer_append_str(buffer, ")", 1);
|
500
|
+
break;
|
501
|
+
}
|
502
|
+
case YP_NODE_CONSTANT_OR_WRITE_NODE: {
|
503
|
+
yp_buffer_append_str(buffer, "ConstantOrWriteNode(", 20);
|
504
|
+
prettyprint_location(buffer, parser, &((yp_constant_or_write_node_t *)node)->name_loc);
|
505
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_or_write_node_t *)node)->operator_loc);
|
506
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_or_write_node_t *)node)->value);
|
507
|
+
yp_buffer_append_str(buffer, ")", 1);
|
508
|
+
break;
|
509
|
+
}
|
510
|
+
case YP_NODE_CONSTANT_PATH_AND_WRITE_NODE: {
|
511
|
+
yp_buffer_append_str(buffer, "ConstantPathAndWriteNode(", 25);
|
512
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_and_write_node_t *)node)->target);
|
513
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_and_write_node_t *)node)->operator_loc);
|
514
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_and_write_node_t *)node)->value);
|
515
|
+
yp_buffer_append_str(buffer, ")", 1);
|
516
|
+
break;
|
517
|
+
}
|
434
518
|
case YP_NODE_CONSTANT_PATH_NODE: {
|
435
519
|
yp_buffer_append_str(buffer, "ConstantPathNode(", 17);
|
436
520
|
if (((yp_constant_path_node_t *)node)->parent == NULL) {
|
@@ -443,19 +527,42 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
443
527
|
yp_buffer_append_str(buffer, ")", 1);
|
444
528
|
break;
|
445
529
|
}
|
446
|
-
case
|
447
|
-
yp_buffer_append_str(buffer, "
|
448
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((
|
449
|
-
yp_buffer_append_str(buffer, ", ", 2);
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
yp_buffer_append_str(buffer, "
|
530
|
+
case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
|
531
|
+
yp_buffer_append_str(buffer, "ConstantPathOperatorWriteNode(", 30);
|
532
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->target);
|
533
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_operator_write_node_t *)node)->operator_loc);
|
534
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->value);
|
535
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
536
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_constant_path_operator_write_node_t *)node)->operator);
|
537
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
538
|
+
yp_buffer_append_str(buffer, ")", 1);
|
539
|
+
break;
|
540
|
+
}
|
541
|
+
case YP_NODE_CONSTANT_PATH_OR_WRITE_NODE: {
|
542
|
+
yp_buffer_append_str(buffer, "ConstantPathOrWriteNode(", 24);
|
543
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_or_write_node_t *)node)->target);
|
544
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_or_write_node_t *)node)->operator_loc);
|
545
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_or_write_node_t *)node)->value);
|
546
|
+
yp_buffer_append_str(buffer, ")", 1);
|
547
|
+
break;
|
548
|
+
}
|
549
|
+
case YP_NODE_CONSTANT_PATH_TARGET_NODE: {
|
550
|
+
yp_buffer_append_str(buffer, "ConstantPathTargetNode(", 23);
|
551
|
+
if (((yp_constant_path_target_node_t *)node)->parent == NULL) {
|
455
552
|
yp_buffer_append_str(buffer, "nil", 3);
|
456
553
|
} else {
|
457
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((
|
554
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_target_node_t *)node)->parent);
|
458
555
|
}
|
556
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_target_node_t *)node)->child);
|
557
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_target_node_t *)node)->delimiter_loc);
|
558
|
+
yp_buffer_append_str(buffer, ")", 1);
|
559
|
+
break;
|
560
|
+
}
|
561
|
+
case YP_NODE_CONSTANT_PATH_WRITE_NODE: {
|
562
|
+
yp_buffer_append_str(buffer, "ConstantPathWriteNode(", 22);
|
563
|
+
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_write_node_t *)node)->target);
|
564
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_path_write_node_t *)node)->operator_loc);
|
565
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_path_write_node_t *)node)->value);
|
459
566
|
yp_buffer_append_str(buffer, ")", 1);
|
460
567
|
break;
|
461
568
|
}
|
@@ -464,19 +571,16 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
464
571
|
yp_buffer_append_str(buffer, ")", 1);
|
465
572
|
break;
|
466
573
|
}
|
574
|
+
case YP_NODE_CONSTANT_TARGET_NODE: {
|
575
|
+
yp_buffer_append_str(buffer, "ConstantTargetNode(", 19);
|
576
|
+
yp_buffer_append_str(buffer, ")", 1);
|
577
|
+
break;
|
578
|
+
}
|
467
579
|
case YP_NODE_CONSTANT_WRITE_NODE: {
|
468
580
|
yp_buffer_append_str(buffer, "ConstantWriteNode(", 18);
|
469
581
|
prettyprint_location(buffer, parser, &((yp_constant_write_node_t *)node)->name_loc);
|
470
|
-
yp_buffer_append_str(buffer, ", ", 2);
|
471
|
-
|
472
|
-
} else {
|
473
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_write_node_t *)node)->value);
|
474
|
-
}
|
475
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_constant_write_node_t *)node)->operator_loc.start == NULL) {
|
476
|
-
yp_buffer_append_str(buffer, "nil", 3);
|
477
|
-
} else {
|
478
|
-
prettyprint_location(buffer, parser, &((yp_constant_write_node_t *)node)->operator_loc);
|
479
|
-
}
|
582
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_constant_write_node_t *)node)->value);
|
583
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_constant_write_node_t *)node)->operator_loc);
|
480
584
|
yp_buffer_append_str(buffer, ")", 1);
|
481
585
|
break;
|
482
586
|
}
|
@@ -696,24 +800,48 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
696
800
|
yp_buffer_append_str(buffer, ")", 1);
|
697
801
|
break;
|
698
802
|
}
|
803
|
+
case YP_NODE_GLOBAL_VARIABLE_AND_WRITE_NODE: {
|
804
|
+
yp_buffer_append_str(buffer, "GlobalVariableAndWriteNode(", 27);
|
805
|
+
prettyprint_location(buffer, parser, &((yp_global_variable_and_write_node_t *)node)->name_loc);
|
806
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_and_write_node_t *)node)->operator_loc);
|
807
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_and_write_node_t *)node)->value);
|
808
|
+
yp_buffer_append_str(buffer, ")", 1);
|
809
|
+
break;
|
810
|
+
}
|
811
|
+
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
812
|
+
yp_buffer_append_str(buffer, "GlobalVariableOperatorWriteNode(", 32);
|
813
|
+
prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->name_loc);
|
814
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_operator_write_node_t *)node)->operator_loc);
|
815
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_operator_write_node_t *)node)->value);
|
816
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
817
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_global_variable_operator_write_node_t *)node)->operator);
|
818
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
819
|
+
yp_buffer_append_str(buffer, ")", 1);
|
820
|
+
break;
|
821
|
+
}
|
822
|
+
case YP_NODE_GLOBAL_VARIABLE_OR_WRITE_NODE: {
|
823
|
+
yp_buffer_append_str(buffer, "GlobalVariableOrWriteNode(", 26);
|
824
|
+
prettyprint_location(buffer, parser, &((yp_global_variable_or_write_node_t *)node)->name_loc);
|
825
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_or_write_node_t *)node)->operator_loc);
|
826
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_or_write_node_t *)node)->value);
|
827
|
+
yp_buffer_append_str(buffer, ")", 1);
|
828
|
+
break;
|
829
|
+
}
|
699
830
|
case YP_NODE_GLOBAL_VARIABLE_READ_NODE: {
|
700
831
|
yp_buffer_append_str(buffer, "GlobalVariableReadNode(", 23);
|
701
832
|
yp_buffer_append_str(buffer, ")", 1);
|
702
833
|
break;
|
703
834
|
}
|
835
|
+
case YP_NODE_GLOBAL_VARIABLE_TARGET_NODE: {
|
836
|
+
yp_buffer_append_str(buffer, "GlobalVariableTargetNode(", 25);
|
837
|
+
yp_buffer_append_str(buffer, ")", 1);
|
838
|
+
break;
|
839
|
+
}
|
704
840
|
case YP_NODE_GLOBAL_VARIABLE_WRITE_NODE: {
|
705
841
|
yp_buffer_append_str(buffer, "GlobalVariableWriteNode(", 24);
|
706
842
|
prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->name_loc);
|
707
|
-
yp_buffer_append_str(buffer, ", ", 2);
|
708
|
-
|
709
|
-
} else {
|
710
|
-
prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->operator_loc);
|
711
|
-
}
|
712
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_global_variable_write_node_t *)node)->value == NULL) {
|
713
|
-
yp_buffer_append_str(buffer, "nil", 3);
|
714
|
-
} else {
|
715
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_write_node_t *)node)->value);
|
716
|
-
}
|
843
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_global_variable_write_node_t *)node)->value);
|
844
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_global_variable_write_node_t *)node)->operator_loc);
|
717
845
|
yp_buffer_append_str(buffer, ")", 1);
|
718
846
|
break;
|
719
847
|
}
|
@@ -810,24 +938,66 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
810
938
|
yp_buffer_append_str(buffer, ")", 1);
|
811
939
|
break;
|
812
940
|
}
|
941
|
+
case YP_NODE_INSTANCE_VARIABLE_AND_WRITE_NODE: {
|
942
|
+
yp_buffer_append_str(buffer, "InstanceVariableAndWriteNode(", 29);
|
943
|
+
char name_buffer[12];
|
944
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_and_write_node_t *)node)->name);
|
945
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
946
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_and_write_node_t *)node)->name_loc);
|
947
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_and_write_node_t *)node)->operator_loc);
|
948
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_and_write_node_t *)node)->value);
|
949
|
+
yp_buffer_append_str(buffer, ")", 1);
|
950
|
+
break;
|
951
|
+
}
|
952
|
+
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
|
953
|
+
yp_buffer_append_str(buffer, "InstanceVariableOperatorWriteNode(", 34);
|
954
|
+
char name_buffer[12];
|
955
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_operator_write_node_t *)node)->name);
|
956
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
957
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->name_loc);
|
958
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_operator_write_node_t *)node)->operator_loc);
|
959
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_operator_write_node_t *)node)->value);
|
960
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
961
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_instance_variable_operator_write_node_t *)node)->operator);
|
962
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
963
|
+
yp_buffer_append_str(buffer, ")", 1);
|
964
|
+
break;
|
965
|
+
}
|
966
|
+
case YP_NODE_INSTANCE_VARIABLE_OR_WRITE_NODE: {
|
967
|
+
yp_buffer_append_str(buffer, "InstanceVariableOrWriteNode(", 28);
|
968
|
+
char name_buffer[12];
|
969
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_or_write_node_t *)node)->name);
|
970
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
971
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_or_write_node_t *)node)->name_loc);
|
972
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_or_write_node_t *)node)->operator_loc);
|
973
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_or_write_node_t *)node)->value);
|
974
|
+
yp_buffer_append_str(buffer, ")", 1);
|
975
|
+
break;
|
976
|
+
}
|
813
977
|
case YP_NODE_INSTANCE_VARIABLE_READ_NODE: {
|
814
978
|
yp_buffer_append_str(buffer, "InstanceVariableReadNode(", 25);
|
979
|
+
char name_buffer[12];
|
980
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_read_node_t *)node)->name);
|
981
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
982
|
+
yp_buffer_append_str(buffer, ")", 1);
|
983
|
+
break;
|
984
|
+
}
|
985
|
+
case YP_NODE_INSTANCE_VARIABLE_TARGET_NODE: {
|
986
|
+
yp_buffer_append_str(buffer, "InstanceVariableTargetNode(", 27);
|
987
|
+
char name_buffer[12];
|
988
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_target_node_t *)node)->name);
|
989
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
815
990
|
yp_buffer_append_str(buffer, ")", 1);
|
816
991
|
break;
|
817
992
|
}
|
818
993
|
case YP_NODE_INSTANCE_VARIABLE_WRITE_NODE: {
|
819
994
|
yp_buffer_append_str(buffer, "InstanceVariableWriteNode(", 26);
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_instance_variable_write_node_t *)node)->operator_loc.start == NULL) {
|
827
|
-
yp_buffer_append_str(buffer, "nil", 3);
|
828
|
-
} else {
|
829
|
-
prettyprint_location(buffer, parser, &((yp_instance_variable_write_node_t *)node)->operator_loc);
|
830
|
-
}
|
995
|
+
char name_buffer[12];
|
996
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_instance_variable_write_node_t *)node)->name);
|
997
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
998
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_write_node_t *)node)->name_loc);
|
999
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_instance_variable_write_node_t *)node)->value);
|
1000
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_instance_variable_write_node_t *)node)->operator_loc);
|
831
1001
|
yp_buffer_append_str(buffer, ")", 1);
|
832
1002
|
break;
|
833
1003
|
}
|
@@ -950,7 +1120,9 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
950
1120
|
yp_buffer_append_str(buffer, locals_buffer, strlen(locals_buffer));
|
951
1121
|
}
|
952
1122
|
yp_buffer_append_str(buffer, "]", 1);
|
1123
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_lambda_node_t *)node)->operator_loc);
|
953
1124
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_lambda_node_t *)node)->opening_loc);
|
1125
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_lambda_node_t *)node)->closing_loc);
|
954
1126
|
yp_buffer_append_str(buffer, ", ", 2); if (((yp_lambda_node_t *)node)->parameters == NULL) {
|
955
1127
|
yp_buffer_append_str(buffer, "nil", 3);
|
956
1128
|
} else {
|
@@ -964,36 +1136,84 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
964
1136
|
yp_buffer_append_str(buffer, ")", 1);
|
965
1137
|
break;
|
966
1138
|
}
|
1139
|
+
case YP_NODE_LOCAL_VARIABLE_AND_WRITE_NODE: {
|
1140
|
+
yp_buffer_append_str(buffer, "LocalVariableAndWriteNode(", 26);
|
1141
|
+
prettyprint_location(buffer, parser, &((yp_local_variable_and_write_node_t *)node)->name_loc);
|
1142
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_and_write_node_t *)node)->operator_loc);
|
1143
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_and_write_node_t *)node)->value);
|
1144
|
+
yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
|
1145
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_and_write_node_t *)node)->name);
|
1146
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
1147
|
+
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
1148
|
+
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_and_write_node_t *)node)->depth);
|
1149
|
+
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
1150
|
+
yp_buffer_append_str(buffer, ")", 1);
|
1151
|
+
break;
|
1152
|
+
}
|
1153
|
+
case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
1154
|
+
yp_buffer_append_str(buffer, "LocalVariableOperatorWriteNode(", 31);
|
1155
|
+
prettyprint_location(buffer, parser, &((yp_local_variable_operator_write_node_t *)node)->name_loc);
|
1156
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_operator_write_node_t *)node)->operator_loc);
|
1157
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_operator_write_node_t *)node)->value);
|
1158
|
+
yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
|
1159
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->name);
|
1160
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
1161
|
+
yp_buffer_append_str(buffer, ", ", 2); char operator_buffer[12];
|
1162
|
+
snprintf(operator_buffer, sizeof(operator_buffer), "%u", ((yp_local_variable_operator_write_node_t *)node)->operator);
|
1163
|
+
yp_buffer_append_str(buffer, operator_buffer, strlen(operator_buffer));
|
1164
|
+
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
1165
|
+
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_operator_write_node_t *)node)->depth);
|
1166
|
+
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
1167
|
+
yp_buffer_append_str(buffer, ")", 1);
|
1168
|
+
break;
|
1169
|
+
}
|
1170
|
+
case YP_NODE_LOCAL_VARIABLE_OR_WRITE_NODE: {
|
1171
|
+
yp_buffer_append_str(buffer, "LocalVariableOrWriteNode(", 25);
|
1172
|
+
prettyprint_location(buffer, parser, &((yp_local_variable_or_write_node_t *)node)->name_loc);
|
1173
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_or_write_node_t *)node)->operator_loc);
|
1174
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_or_write_node_t *)node)->value);
|
1175
|
+
yp_buffer_append_str(buffer, ", ", 2); char name_buffer[12];
|
1176
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_or_write_node_t *)node)->name);
|
1177
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
1178
|
+
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
1179
|
+
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_or_write_node_t *)node)->depth);
|
1180
|
+
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
1181
|
+
yp_buffer_append_str(buffer, ")", 1);
|
1182
|
+
break;
|
1183
|
+
}
|
967
1184
|
case YP_NODE_LOCAL_VARIABLE_READ_NODE: {
|
968
1185
|
yp_buffer_append_str(buffer, "LocalVariableReadNode(", 22);
|
969
|
-
char
|
970
|
-
snprintf(
|
971
|
-
yp_buffer_append_str(buffer,
|
1186
|
+
char name_buffer[12];
|
1187
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_read_node_t *)node)->name);
|
1188
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
972
1189
|
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
973
1190
|
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_read_node_t *)node)->depth);
|
974
1191
|
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
975
1192
|
yp_buffer_append_str(buffer, ")", 1);
|
976
1193
|
break;
|
977
1194
|
}
|
1195
|
+
case YP_NODE_LOCAL_VARIABLE_TARGET_NODE: {
|
1196
|
+
yp_buffer_append_str(buffer, "LocalVariableTargetNode(", 24);
|
1197
|
+
char name_buffer[12];
|
1198
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_target_node_t *)node)->name);
|
1199
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
1200
|
+
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
1201
|
+
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_target_node_t *)node)->depth);
|
1202
|
+
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
1203
|
+
yp_buffer_append_str(buffer, ")", 1);
|
1204
|
+
break;
|
1205
|
+
}
|
978
1206
|
case YP_NODE_LOCAL_VARIABLE_WRITE_NODE: {
|
979
1207
|
yp_buffer_append_str(buffer, "LocalVariableWriteNode(", 23);
|
980
|
-
char
|
981
|
-
snprintf(
|
982
|
-
yp_buffer_append_str(buffer,
|
1208
|
+
char name_buffer[12];
|
1209
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_local_variable_write_node_t *)node)->name);
|
1210
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
983
1211
|
yp_buffer_append_str(buffer, ", ", 2); char depth_buffer[12];
|
984
1212
|
snprintf(depth_buffer, sizeof(depth_buffer), "+%d", ((yp_local_variable_write_node_t *)node)->depth);
|
985
1213
|
yp_buffer_append_str(buffer, depth_buffer, strlen(depth_buffer));
|
986
|
-
yp_buffer_append_str(buffer, ", ", 2); if (((yp_local_variable_write_node_t *)node)->value == NULL) {
|
987
|
-
yp_buffer_append_str(buffer, "nil", 3);
|
988
|
-
} else {
|
989
|
-
prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_write_node_t *)node)->value);
|
990
|
-
}
|
991
1214
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_write_node_t *)node)->name_loc);
|
992
|
-
yp_buffer_append_str(buffer, ", ", 2);
|
993
|
-
|
994
|
-
} else {
|
995
|
-
prettyprint_location(buffer, parser, &((yp_local_variable_write_node_t *)node)->operator_loc);
|
996
|
-
}
|
1215
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_local_variable_write_node_t *)node)->value);
|
1216
|
+
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_local_variable_write_node_t *)node)->operator_loc);
|
997
1217
|
yp_buffer_append_str(buffer, ")", 1);
|
998
1218
|
break;
|
999
1219
|
}
|
@@ -1036,6 +1256,9 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1036
1256
|
prettyprint_node(buffer, parser, (yp_node_t *)((yp_module_node_t *)node)->body);
|
1037
1257
|
}
|
1038
1258
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_module_node_t *)node)->end_keyword_loc);
|
1259
|
+
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
1260
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_module_node_t *)node)->name), yp_string_length(&((yp_module_node_t *)node)->name));
|
1261
|
+
yp_buffer_append_str(buffer, "\"", 1);
|
1039
1262
|
yp_buffer_append_str(buffer, ")", 1);
|
1040
1263
|
break;
|
1041
1264
|
}
|
@@ -1095,25 +1318,17 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1095
1318
|
}
|
1096
1319
|
case YP_NODE_NUMBERED_REFERENCE_READ_NODE: {
|
1097
1320
|
yp_buffer_append_str(buffer, "NumberedReferenceReadNode(", 26);
|
1098
|
-
|
1099
|
-
|
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);
|
1321
|
+
char number_buffer[12];
|
1322
|
+
snprintf(number_buffer, sizeof(number_buffer), "+%d", ((yp_numbered_reference_read_node_t *)node)->number);
|
1323
|
+
yp_buffer_append_str(buffer, number_buffer, strlen(number_buffer));
|
1109
1324
|
yp_buffer_append_str(buffer, ")", 1);
|
1110
1325
|
break;
|
1111
1326
|
}
|
1112
1327
|
case YP_NODE_OPTIONAL_PARAMETER_NODE: {
|
1113
1328
|
yp_buffer_append_str(buffer, "OptionalParameterNode(", 22);
|
1114
|
-
char
|
1115
|
-
snprintf(
|
1116
|
-
yp_buffer_append_str(buffer,
|
1329
|
+
char name_buffer[12];
|
1330
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_optional_parameter_node_t *)node)->name);
|
1331
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
1117
1332
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_optional_parameter_node_t *)node)->name_loc);
|
1118
1333
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_optional_parameter_node_t *)node)->operator_loc);
|
1119
1334
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_optional_parameter_node_t *)node)->value);
|
@@ -1128,14 +1343,6 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1128
1343
|
yp_buffer_append_str(buffer, ")", 1);
|
1129
1344
|
break;
|
1130
1345
|
}
|
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
|
-
}
|
1139
1346
|
case YP_NODE_PARAMETERS_NODE: {
|
1140
1347
|
yp_buffer_append_str(buffer, "ParametersNode(", 15);
|
1141
1348
|
yp_buffer_append_str(buffer, "[", 1);
|
@@ -1284,7 +1491,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1284
1491
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_regular_expression_node_t *)node)->content_loc);
|
1285
1492
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_regular_expression_node_t *)node)->closing_loc);
|
1286
1493
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
1287
|
-
|
1494
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_regular_expression_node_t *)node)->unescaped), yp_string_length(&((yp_regular_expression_node_t *)node)->unescaped));
|
1288
1495
|
yp_buffer_append_str(buffer, "\"", 1);
|
1289
1496
|
yp_buffer_append_str(buffer, ", ", 2); char flags_buffer[12];
|
1290
1497
|
snprintf(flags_buffer, sizeof(flags_buffer), "+%d", node->flags >> 1);
|
@@ -1307,9 +1514,9 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1307
1514
|
}
|
1308
1515
|
case YP_NODE_REQUIRED_PARAMETER_NODE: {
|
1309
1516
|
yp_buffer_append_str(buffer, "RequiredParameterNode(", 22);
|
1310
|
-
char
|
1311
|
-
snprintf(
|
1312
|
-
yp_buffer_append_str(buffer,
|
1517
|
+
char name_buffer[12];
|
1518
|
+
snprintf(name_buffer, sizeof(name_buffer), "%u", ((yp_required_parameter_node_t *)node)->name);
|
1519
|
+
yp_buffer_append_str(buffer, name_buffer, strlen(name_buffer));
|
1313
1520
|
yp_buffer_append_str(buffer, ")", 1);
|
1314
1521
|
break;
|
1315
1522
|
}
|
@@ -1415,7 +1622,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1415
1622
|
case YP_NODE_SOURCE_FILE_NODE: {
|
1416
1623
|
yp_buffer_append_str(buffer, "SourceFileNode(", 15);
|
1417
1624
|
yp_buffer_append_str(buffer, "\"", 1);
|
1418
|
-
|
1625
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_source_file_node_t *)node)->filepath), yp_string_length(&((yp_source_file_node_t *)node)->filepath));
|
1419
1626
|
yp_buffer_append_str(buffer, "\"", 1);
|
1420
1627
|
yp_buffer_append_str(buffer, ")", 1);
|
1421
1628
|
break;
|
@@ -1468,7 +1675,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1468
1675
|
prettyprint_location(buffer, parser, &((yp_string_node_t *)node)->closing_loc);
|
1469
1676
|
}
|
1470
1677
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
1471
|
-
|
1678
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_string_node_t *)node)->unescaped), yp_string_length(&((yp_string_node_t *)node)->unescaped));
|
1472
1679
|
yp_buffer_append_str(buffer, "\"", 1);
|
1473
1680
|
yp_buffer_append_str(buffer, ")", 1);
|
1474
1681
|
break;
|
@@ -1506,14 +1713,18 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1506
1713
|
} else {
|
1507
1714
|
prettyprint_location(buffer, parser, &((yp_symbol_node_t *)node)->opening_loc);
|
1508
1715
|
}
|
1509
|
-
yp_buffer_append_str(buffer, ", ", 2);
|
1716
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_symbol_node_t *)node)->value_loc.start == NULL) {
|
1717
|
+
yp_buffer_append_str(buffer, "nil", 3);
|
1718
|
+
} else {
|
1719
|
+
prettyprint_location(buffer, parser, &((yp_symbol_node_t *)node)->value_loc);
|
1720
|
+
}
|
1510
1721
|
yp_buffer_append_str(buffer, ", ", 2); if (((yp_symbol_node_t *)node)->closing_loc.start == NULL) {
|
1511
1722
|
yp_buffer_append_str(buffer, "nil", 3);
|
1512
1723
|
} else {
|
1513
1724
|
prettyprint_location(buffer, parser, &((yp_symbol_node_t *)node)->closing_loc);
|
1514
1725
|
}
|
1515
1726
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
1516
|
-
|
1727
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_symbol_node_t *)node)->unescaped), yp_string_length(&((yp_symbol_node_t *)node)->unescaped));
|
1517
1728
|
yp_buffer_append_str(buffer, "\"", 1);
|
1518
1729
|
yp_buffer_append_str(buffer, ")", 1);
|
1519
1730
|
break;
|
@@ -1560,6 +1771,11 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1560
1771
|
case YP_NODE_UNTIL_NODE: {
|
1561
1772
|
yp_buffer_append_str(buffer, "UntilNode(", 10);
|
1562
1773
|
prettyprint_location(buffer, parser, &((yp_until_node_t *)node)->keyword_loc);
|
1774
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_until_node_t *)node)->closing_loc.start == NULL) {
|
1775
|
+
yp_buffer_append_str(buffer, "nil", 3);
|
1776
|
+
} else {
|
1777
|
+
prettyprint_location(buffer, parser, &((yp_until_node_t *)node)->closing_loc);
|
1778
|
+
}
|
1563
1779
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_until_node_t *)node)->predicate);
|
1564
1780
|
yp_buffer_append_str(buffer, ", ", 2); if (((yp_until_node_t *)node)->statements == NULL) {
|
1565
1781
|
yp_buffer_append_str(buffer, "nil", 3);
|
@@ -1592,6 +1808,11 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1592
1808
|
case YP_NODE_WHILE_NODE: {
|
1593
1809
|
yp_buffer_append_str(buffer, "WhileNode(", 10);
|
1594
1810
|
prettyprint_location(buffer, parser, &((yp_while_node_t *)node)->keyword_loc);
|
1811
|
+
yp_buffer_append_str(buffer, ", ", 2); if (((yp_while_node_t *)node)->closing_loc.start == NULL) {
|
1812
|
+
yp_buffer_append_str(buffer, "nil", 3);
|
1813
|
+
} else {
|
1814
|
+
prettyprint_location(buffer, parser, &((yp_while_node_t *)node)->closing_loc);
|
1815
|
+
}
|
1595
1816
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_node(buffer, parser, (yp_node_t *)((yp_while_node_t *)node)->predicate);
|
1596
1817
|
yp_buffer_append_str(buffer, ", ", 2); if (((yp_while_node_t *)node)->statements == NULL) {
|
1597
1818
|
yp_buffer_append_str(buffer, "nil", 3);
|
@@ -1610,7 +1831,7 @@ prettyprint_node(yp_buffer_t *buffer, yp_parser_t *parser, yp_node_t *node) {
|
|
1610
1831
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_x_string_node_t *)node)->content_loc);
|
1611
1832
|
yp_buffer_append_str(buffer, ", ", 2); prettyprint_location(buffer, parser, &((yp_x_string_node_t *)node)->closing_loc);
|
1612
1833
|
yp_buffer_append_str(buffer, ", ", 2); yp_buffer_append_str(buffer, "\"", 1);
|
1613
|
-
|
1834
|
+
yp_buffer_append_bytes(buffer, yp_string_source(&((yp_x_string_node_t *)node)->unescaped), yp_string_length(&((yp_x_string_node_t *)node)->unescaped));
|
1614
1835
|
yp_buffer_append_str(buffer, "\"", 1);
|
1615
1836
|
yp_buffer_append_str(buffer, ")", 1);
|
1616
1837
|
break;
|