prism 0.27.0 → 0.29.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -1
- data/config.yml +68 -44
- data/docs/configuration.md +1 -0
- data/ext/prism/api_node.c +854 -847
- data/ext/prism/extconf.rb +27 -23
- data/ext/prism/extension.c +5 -3
- data/ext/prism/extension.h +1 -1
- data/include/prism/ast.h +70 -48
- data/include/prism/diagnostic.h +23 -6
- data/include/prism/options.h +2 -2
- data/include/prism/parser.h +10 -0
- data/include/prism/static_literals.h +8 -6
- data/include/prism/version.h +2 -2
- data/lib/prism/desugar_compiler.rb +4 -4
- data/lib/prism/dot_visitor.rb +54 -38
- data/lib/prism/dsl.rb +24 -24
- data/lib/prism/ffi.rb +4 -4
- data/lib/prism/inspect_visitor.rb +2156 -0
- data/lib/prism/lex_compat.rb +1 -1
- data/lib/prism/mutation_compiler.rb +2 -2
- data/lib/prism/node.rb +737 -1863
- data/lib/prism/node_ext.rb +176 -5
- data/lib/prism/parse_result/comments.rb +1 -1
- data/lib/prism/parse_result/newlines.rb +1 -1
- data/lib/prism/parse_result.rb +78 -0
- data/lib/prism/pattern.rb +12 -6
- data/lib/prism/polyfill/byteindex.rb +13 -0
- data/lib/prism/polyfill/unpack1.rb +14 -0
- data/lib/prism/reflection.rb +20 -20
- data/lib/prism/serialize.rb +32 -15
- data/lib/prism/translation/parser/compiler.rb +156 -26
- data/lib/prism/translation/parser.rb +7 -7
- data/lib/prism/translation/ripper.rb +29 -25
- data/lib/prism/translation/ruby_parser.rb +13 -13
- data/lib/prism.rb +2 -1
- data/prism.gemspec +37 -38
- data/rbi/prism/compiler.rbi +3 -5
- data/rbi/prism/inspect_visitor.rbi +12 -0
- data/rbi/prism/node.rbi +405 -370
- data/rbi/prism/node_ext.rbi +5 -0
- data/rbi/prism/parse_result.rbi +23 -0
- data/rbi/prism/translation/ripper.rbi +1 -11
- data/sig/prism/dsl.rbs +12 -12
- data/sig/prism/inspect_visitor.rbs +22 -0
- data/sig/prism/lex_compat.rbs +10 -0
- data/sig/prism/node.rbs +108 -91
- data/sig/prism/node_ext.rbs +4 -0
- data/sig/prism/parse_result.rbs +12 -0
- data/src/diagnostic.c +66 -33
- data/src/node.c +89 -64
- data/src/options.c +2 -2
- data/src/prettyprint.c +109 -66
- data/src/prism.c +862 -317
- data/src/serialize.c +21 -18
- data/src/static_literals.c +120 -34
- data/src/token_type.c +6 -6
- metadata +8 -9
- data/lib/prism/node_inspector.rb +0 -68
- data/lib/prism/polyfill/string.rb +0 -12
- data/rbi/prism/desugar_compiler.rbi +0 -5
- data/rbi/prism/mutation_compiler.rbi +0 -5
- data/rbi/prism/translation/parser/compiler.rbi +0 -13
- data/rbi/prism/translation/ripper/ripper_compiler.rbi +0 -5
- data/rbi/prism/translation/ruby_parser.rbi +0 -11
data/src/prettyprint.c
CHANGED
@@ -231,6 +231,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
231
231
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
232
232
|
pm_buffer_append_string(output_buffer, "+-- flags:", 10);
|
233
233
|
bool found = false;
|
234
|
+
if (cast->base.flags & PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS) {
|
235
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
236
|
+
pm_buffer_append_string(output_buffer, " contains_keywords", 18);
|
237
|
+
found = true;
|
238
|
+
}
|
234
239
|
if (cast->base.flags & PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT) {
|
235
240
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
236
241
|
pm_buffer_append_string(output_buffer, " contains_keyword_splat", 23);
|
@@ -1367,20 +1372,20 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1367
1372
|
pm_buffer_append_byte(output_buffer, '\n');
|
1368
1373
|
}
|
1369
1374
|
|
1370
|
-
//
|
1375
|
+
// binary_operator
|
1371
1376
|
{
|
1372
1377
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1373
|
-
pm_buffer_append_string(output_buffer, "+--
|
1378
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
1374
1379
|
pm_buffer_append_byte(output_buffer, ' ');
|
1375
|
-
prettyprint_constant(output_buffer, parser, cast->
|
1380
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
1376
1381
|
pm_buffer_append_byte(output_buffer, '\n');
|
1377
1382
|
}
|
1378
1383
|
|
1379
|
-
//
|
1384
|
+
// binary_operator_loc
|
1380
1385
|
{
|
1381
1386
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1382
|
-
pm_buffer_append_string(output_buffer, "+--
|
1383
|
-
pm_location_t *location = &cast->
|
1387
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
1388
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
1384
1389
|
pm_buffer_append_byte(output_buffer, ' ');
|
1385
1390
|
prettyprint_location(output_buffer, parser, location);
|
1386
1391
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -2026,11 +2031,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2026
2031
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
2027
2032
|
}
|
2028
2033
|
|
2029
|
-
//
|
2034
|
+
// binary_operator_loc
|
2030
2035
|
{
|
2031
2036
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2032
|
-
pm_buffer_append_string(output_buffer, "+--
|
2033
|
-
pm_location_t *location = &cast->
|
2037
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
2038
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
2034
2039
|
pm_buffer_append_byte(output_buffer, ' ');
|
2035
2040
|
prettyprint_location(output_buffer, parser, location);
|
2036
2041
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -2051,12 +2056,12 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2051
2056
|
prefix_buffer->length = prefix_length;
|
2052
2057
|
}
|
2053
2058
|
|
2054
|
-
//
|
2059
|
+
// binary_operator
|
2055
2060
|
{
|
2056
2061
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2057
|
-
pm_buffer_append_string(output_buffer, "+--
|
2062
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
2058
2063
|
pm_buffer_append_byte(output_buffer, ' ');
|
2059
|
-
prettyprint_constant(output_buffer, parser, cast->
|
2064
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
2060
2065
|
pm_buffer_append_byte(output_buffer, '\n');
|
2061
2066
|
}
|
2062
2067
|
|
@@ -2285,11 +2290,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2285
2290
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
2286
2291
|
}
|
2287
2292
|
|
2288
|
-
//
|
2293
|
+
// binary_operator_loc
|
2289
2294
|
{
|
2290
2295
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2291
|
-
pm_buffer_append_string(output_buffer, "+--
|
2292
|
-
pm_location_t *location = &cast->
|
2296
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
2297
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
2293
2298
|
pm_buffer_append_byte(output_buffer, ' ');
|
2294
2299
|
prettyprint_location(output_buffer, parser, location);
|
2295
2300
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -2310,12 +2315,12 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2310
2315
|
prefix_buffer->length = prefix_length;
|
2311
2316
|
}
|
2312
2317
|
|
2313
|
-
//
|
2318
|
+
// binary_operator
|
2314
2319
|
{
|
2315
2320
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2316
|
-
pm_buffer_append_string(output_buffer, "+--
|
2321
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
2317
2322
|
pm_buffer_append_byte(output_buffer, ' ');
|
2318
|
-
prettyprint_constant(output_buffer, parser, cast->
|
2323
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
2319
2324
|
pm_buffer_append_byte(output_buffer, '\n');
|
2320
2325
|
}
|
2321
2326
|
|
@@ -2444,17 +2449,17 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2444
2449
|
}
|
2445
2450
|
}
|
2446
2451
|
|
2447
|
-
//
|
2452
|
+
// name
|
2448
2453
|
{
|
2449
2454
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2450
|
-
pm_buffer_append_string(output_buffer, "+--
|
2451
|
-
|
2452
|
-
|
2453
|
-
|
2454
|
-
|
2455
|
-
|
2456
|
-
|
2457
|
-
|
2455
|
+
pm_buffer_append_string(output_buffer, "+-- name:", 9);
|
2456
|
+
if (cast->name == 0) {
|
2457
|
+
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
2458
|
+
} else {
|
2459
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
2460
|
+
prettyprint_constant(output_buffer, parser, cast->name);
|
2461
|
+
pm_buffer_append_byte(output_buffer, '\n');
|
2462
|
+
}
|
2458
2463
|
}
|
2459
2464
|
|
2460
2465
|
// delimiter_loc
|
@@ -2469,6 +2474,18 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2469
2474
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
2470
2475
|
}
|
2471
2476
|
|
2477
|
+
// name_loc
|
2478
|
+
{
|
2479
|
+
pm_buffer_concat(output_buffer, prefix_buffer);
|
2480
|
+
pm_buffer_append_string(output_buffer, "+-- name_loc:", 13);
|
2481
|
+
pm_location_t *location = &cast->name_loc;
|
2482
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
2483
|
+
prettyprint_location(output_buffer, parser, location);
|
2484
|
+
pm_buffer_append_string(output_buffer, " = \"", 4);
|
2485
|
+
pm_buffer_append_source(output_buffer, location->start, (size_t) (location->end - location->start), PM_BUFFER_ESCAPING_RUBY);
|
2486
|
+
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
2487
|
+
}
|
2488
|
+
|
2472
2489
|
break;
|
2473
2490
|
}
|
2474
2491
|
case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
|
@@ -2490,11 +2507,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2490
2507
|
prefix_buffer->length = prefix_length;
|
2491
2508
|
}
|
2492
2509
|
|
2493
|
-
//
|
2510
|
+
// binary_operator_loc
|
2494
2511
|
{
|
2495
2512
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2496
|
-
pm_buffer_append_string(output_buffer, "+--
|
2497
|
-
pm_location_t *location = &cast->
|
2513
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
2514
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
2498
2515
|
pm_buffer_append_byte(output_buffer, ' ');
|
2499
2516
|
prettyprint_location(output_buffer, parser, location);
|
2500
2517
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -2515,12 +2532,12 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2515
2532
|
prefix_buffer->length = prefix_length;
|
2516
2533
|
}
|
2517
2534
|
|
2518
|
-
//
|
2535
|
+
// binary_operator
|
2519
2536
|
{
|
2520
2537
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2521
|
-
pm_buffer_append_string(output_buffer, "+--
|
2538
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
2522
2539
|
pm_buffer_append_byte(output_buffer, ' ');
|
2523
|
-
prettyprint_constant(output_buffer, parser, cast->
|
2540
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
2524
2541
|
pm_buffer_append_byte(output_buffer, '\n');
|
2525
2542
|
}
|
2526
2543
|
|
@@ -2595,17 +2612,17 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2595
2612
|
}
|
2596
2613
|
}
|
2597
2614
|
|
2598
|
-
//
|
2615
|
+
// name
|
2599
2616
|
{
|
2600
2617
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
2601
|
-
pm_buffer_append_string(output_buffer, "+--
|
2602
|
-
|
2603
|
-
|
2604
|
-
|
2605
|
-
|
2606
|
-
|
2607
|
-
|
2608
|
-
|
2618
|
+
pm_buffer_append_string(output_buffer, "+-- name:", 9);
|
2619
|
+
if (cast->name == 0) {
|
2620
|
+
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
2621
|
+
} else {
|
2622
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
2623
|
+
prettyprint_constant(output_buffer, parser, cast->name);
|
2624
|
+
pm_buffer_append_byte(output_buffer, '\n');
|
2625
|
+
}
|
2609
2626
|
}
|
2610
2627
|
|
2611
2628
|
// delimiter_loc
|
@@ -2620,6 +2637,18 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
2620
2637
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
2621
2638
|
}
|
2622
2639
|
|
2640
|
+
// name_loc
|
2641
|
+
{
|
2642
|
+
pm_buffer_concat(output_buffer, prefix_buffer);
|
2643
|
+
pm_buffer_append_string(output_buffer, "+-- name_loc:", 13);
|
2644
|
+
pm_location_t *location = &cast->name_loc;
|
2645
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
2646
|
+
prettyprint_location(output_buffer, parser, location);
|
2647
|
+
pm_buffer_append_string(output_buffer, " = \"", 4);
|
2648
|
+
pm_buffer_append_source(output_buffer, location->start, (size_t) (location->end - location->start), PM_BUFFER_ESCAPING_RUBY);
|
2649
|
+
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
2650
|
+
}
|
2651
|
+
|
2623
2652
|
break;
|
2624
2653
|
}
|
2625
2654
|
case PM_CONSTANT_PATH_WRITE_NODE: {
|
@@ -3603,11 +3632,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
3603
3632
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
3604
3633
|
}
|
3605
3634
|
|
3606
|
-
//
|
3635
|
+
// binary_operator_loc
|
3607
3636
|
{
|
3608
3637
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
3609
|
-
pm_buffer_append_string(output_buffer, "+--
|
3610
|
-
pm_location_t *location = &cast->
|
3638
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
3639
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
3611
3640
|
pm_buffer_append_byte(output_buffer, ' ');
|
3612
3641
|
prettyprint_location(output_buffer, parser, location);
|
3613
3642
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -3628,12 +3657,12 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
3628
3657
|
prefix_buffer->length = prefix_length;
|
3629
3658
|
}
|
3630
3659
|
|
3631
|
-
//
|
3660
|
+
// binary_operator
|
3632
3661
|
{
|
3633
3662
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
3634
|
-
pm_buffer_append_string(output_buffer, "+--
|
3663
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
3635
3664
|
pm_buffer_append_byte(output_buffer, ' ');
|
3636
|
-
prettyprint_constant(output_buffer, parser, cast->
|
3665
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
3637
3666
|
pm_buffer_append_byte(output_buffer, '\n');
|
3638
3667
|
}
|
3639
3668
|
|
@@ -4420,20 +4449,20 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4420
4449
|
}
|
4421
4450
|
}
|
4422
4451
|
|
4423
|
-
//
|
4452
|
+
// binary_operator
|
4424
4453
|
{
|
4425
4454
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4426
|
-
pm_buffer_append_string(output_buffer, "+--
|
4455
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
4427
4456
|
pm_buffer_append_byte(output_buffer, ' ');
|
4428
|
-
prettyprint_constant(output_buffer, parser, cast->
|
4457
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
4429
4458
|
pm_buffer_append_byte(output_buffer, '\n');
|
4430
4459
|
}
|
4431
4460
|
|
4432
|
-
//
|
4461
|
+
// binary_operator_loc
|
4433
4462
|
{
|
4434
4463
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4435
|
-
pm_buffer_append_string(output_buffer, "+--
|
4436
|
-
pm_location_t *location = &cast->
|
4464
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
4465
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
4437
4466
|
pm_buffer_append_byte(output_buffer, ' ');
|
4438
4467
|
prettyprint_location(output_buffer, parser, location);
|
4439
4468
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -4798,11 +4827,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4798
4827
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
4799
4828
|
}
|
4800
4829
|
|
4801
|
-
//
|
4830
|
+
// binary_operator_loc
|
4802
4831
|
{
|
4803
4832
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4804
|
-
pm_buffer_append_string(output_buffer, "+--
|
4805
|
-
pm_location_t *location = &cast->
|
4833
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
4834
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
4806
4835
|
pm_buffer_append_byte(output_buffer, ' ');
|
4807
4836
|
prettyprint_location(output_buffer, parser, location);
|
4808
4837
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -4823,12 +4852,12 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4823
4852
|
prefix_buffer->length = prefix_length;
|
4824
4853
|
}
|
4825
4854
|
|
4826
|
-
//
|
4855
|
+
// binary_operator
|
4827
4856
|
{
|
4828
4857
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4829
|
-
pm_buffer_append_string(output_buffer, "+--
|
4858
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
4830
4859
|
pm_buffer_append_byte(output_buffer, ' ');
|
4831
|
-
prettyprint_constant(output_buffer, parser, cast->
|
4860
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
4832
4861
|
pm_buffer_append_byte(output_buffer, '\n');
|
4833
4862
|
}
|
4834
4863
|
|
@@ -5715,11 +5744,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5715
5744
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
5716
5745
|
}
|
5717
5746
|
|
5718
|
-
//
|
5747
|
+
// binary_operator_loc
|
5719
5748
|
{
|
5720
5749
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5721
|
-
pm_buffer_append_string(output_buffer, "+--
|
5722
|
-
pm_location_t *location = &cast->
|
5750
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator_loc:", 24);
|
5751
|
+
pm_location_t *location = &cast->binary_operator_loc;
|
5723
5752
|
pm_buffer_append_byte(output_buffer, ' ');
|
5724
5753
|
prettyprint_location(output_buffer, parser, location);
|
5725
5754
|
pm_buffer_append_string(output_buffer, " = \"", 4);
|
@@ -5749,12 +5778,12 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5749
5778
|
pm_buffer_append_byte(output_buffer, '\n');
|
5750
5779
|
}
|
5751
5780
|
|
5752
|
-
//
|
5781
|
+
// binary_operator
|
5753
5782
|
{
|
5754
5783
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5755
|
-
pm_buffer_append_string(output_buffer, "+--
|
5784
|
+
pm_buffer_append_string(output_buffer, "+-- binary_operator:", 20);
|
5756
5785
|
pm_buffer_append_byte(output_buffer, ' ');
|
5757
|
-
prettyprint_constant(output_buffer, parser, cast->
|
5786
|
+
prettyprint_constant(output_buffer, parser, cast->binary_operator);
|
5758
5787
|
pm_buffer_append_byte(output_buffer, '\n');
|
5759
5788
|
}
|
5760
5789
|
|
@@ -7701,6 +7730,20 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7701
7730
|
prettyprint_location(output_buffer, parser, &node->location);
|
7702
7731
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7703
7732
|
|
7733
|
+
// flags
|
7734
|
+
{
|
7735
|
+
pm_buffer_concat(output_buffer, prefix_buffer);
|
7736
|
+
pm_buffer_append_string(output_buffer, "+-- flags:", 10);
|
7737
|
+
bool found = false;
|
7738
|
+
if (cast->base.flags & PM_RETURN_NODE_FLAGS_REDUNDANT) {
|
7739
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
7740
|
+
pm_buffer_append_string(output_buffer, " redundant", 10);
|
7741
|
+
found = true;
|
7742
|
+
}
|
7743
|
+
if (!found) pm_buffer_append_string(output_buffer, " nil", 4);
|
7744
|
+
pm_buffer_append_byte(output_buffer, '\n');
|
7745
|
+
}
|
7746
|
+
|
7704
7747
|
// keyword_loc
|
7705
7748
|
{
|
7706
7749
|
pm_buffer_concat(output_buffer, prefix_buffer);
|