prism 0.29.0 → 1.3.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 +115 -1
- data/CONTRIBUTING.md +0 -4
- data/Makefile +1 -1
- data/README.md +4 -0
- data/config.yml +920 -148
- data/docs/build_system.md +8 -11
- data/docs/fuzzing.md +1 -1
- data/docs/parsing_rules.md +4 -1
- data/docs/relocation.md +34 -0
- data/docs/ripper_translation.md +22 -0
- data/docs/serialization.md +3 -0
- data/ext/prism/api_node.c +2863 -2079
- data/ext/prism/extconf.rb +14 -37
- data/ext/prism/extension.c +241 -391
- data/ext/prism/extension.h +2 -2
- data/include/prism/ast.h +2156 -453
- data/include/prism/defines.h +58 -7
- data/include/prism/diagnostic.h +24 -6
- data/include/prism/node.h +0 -21
- data/include/prism/options.h +94 -3
- data/include/prism/parser.h +82 -40
- data/include/prism/regexp.h +18 -8
- data/include/prism/static_literals.h +3 -2
- data/include/prism/util/pm_char.h +1 -2
- data/include/prism/util/pm_constant_pool.h +0 -8
- data/include/prism/util/pm_integer.h +22 -15
- data/include/prism/util/pm_newline_list.h +11 -0
- data/include/prism/util/pm_string.h +28 -12
- data/include/prism/version.h +3 -3
- data/include/prism.h +47 -11
- data/lib/prism/compiler.rb +3 -0
- data/lib/prism/desugar_compiler.rb +111 -74
- data/lib/prism/dispatcher.rb +16 -1
- data/lib/prism/dot_visitor.rb +55 -34
- data/lib/prism/dsl.rb +660 -468
- data/lib/prism/ffi.rb +113 -8
- data/lib/prism/inspect_visitor.rb +296 -64
- data/lib/prism/lex_compat.rb +1 -1
- data/lib/prism/mutation_compiler.rb +11 -6
- data/lib/prism/node.rb +4262 -5023
- data/lib/prism/node_ext.rb +91 -14
- data/lib/prism/parse_result/comments.rb +0 -7
- data/lib/prism/parse_result/errors.rb +65 -0
- data/lib/prism/parse_result/newlines.rb +101 -11
- data/lib/prism/parse_result.rb +183 -6
- data/lib/prism/reflection.rb +12 -10
- data/lib/prism/relocation.rb +504 -0
- data/lib/prism/serialize.rb +496 -609
- data/lib/prism/string_query.rb +30 -0
- data/lib/prism/translation/parser/compiler.rb +185 -155
- data/lib/prism/translation/parser/lexer.rb +26 -4
- data/lib/prism/translation/parser.rb +9 -4
- data/lib/prism/translation/ripper.rb +23 -25
- data/lib/prism/translation/ruby_parser.rb +86 -17
- data/lib/prism/visitor.rb +3 -0
- data/lib/prism.rb +6 -8
- data/prism.gemspec +9 -5
- data/rbi/prism/dsl.rbi +521 -0
- data/rbi/prism/node.rbi +1115 -1120
- data/rbi/prism/parse_result.rbi +29 -0
- data/rbi/prism/string_query.rbi +12 -0
- data/rbi/prism/visitor.rbi +3 -0
- data/rbi/prism.rbi +36 -30
- data/sig/prism/dsl.rbs +190 -303
- data/sig/prism/mutation_compiler.rbs +1 -0
- data/sig/prism/node.rbs +678 -632
- data/sig/prism/parse_result.rbs +22 -0
- data/sig/prism/relocation.rbs +185 -0
- data/sig/prism/string_query.rbs +11 -0
- data/sig/prism/visitor.rbs +1 -0
- data/sig/prism.rbs +103 -64
- data/src/diagnostic.c +64 -28
- data/src/node.c +502 -1739
- data/src/options.c +76 -27
- data/src/prettyprint.c +188 -112
- data/src/prism.c +3376 -2293
- data/src/regexp.c +208 -71
- data/src/serialize.c +182 -50
- data/src/static_literals.c +64 -85
- data/src/token_type.c +4 -4
- data/src/util/pm_char.c +1 -1
- data/src/util/pm_constant_pool.c +0 -8
- data/src/util/pm_integer.c +53 -25
- data/src/util/pm_newline_list.c +29 -0
- data/src/util/pm_string.c +131 -80
- data/src/util/pm_strpbrk.c +32 -6
- metadata +11 -7
- data/include/prism/util/pm_string_list.h +0 -44
- data/lib/prism/debug.rb +0 -249
- data/lib/prism/translation/parser/rubocop.rb +0 -73
- data/src/util/pm_string_list.c +0 -28
data/src/prettyprint.c
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
/*----------------------------------------------------------------------------*/
|
2
2
|
/* This file is generated by the templates/template.rb script and should not */
|
3
3
|
/* be modified manually. See */
|
4
4
|
/* templates/src/prettyprint.c.erb */
|
5
5
|
/* if you are looking to modify the */
|
6
6
|
/* template */
|
7
|
-
|
7
|
+
/*----------------------------------------------------------------------------*/
|
8
8
|
|
9
9
|
#include "prism/prettyprint.h"
|
10
10
|
|
@@ -226,11 +226,16 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
226
226
|
prettyprint_location(output_buffer, parser, &node->location);
|
227
227
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
228
228
|
|
229
|
-
//
|
229
|
+
// ArgumentsNodeFlags
|
230
230
|
{
|
231
231
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
232
|
-
pm_buffer_append_string(output_buffer, "+--
|
232
|
+
pm_buffer_append_string(output_buffer, "+-- ArgumentsNodeFlags:", 23);
|
233
233
|
bool found = false;
|
234
|
+
if (cast->base.flags & PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING) {
|
235
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
236
|
+
pm_buffer_append_string(output_buffer, " contains_forwarding", 20);
|
237
|
+
found = true;
|
238
|
+
}
|
234
239
|
if (cast->base.flags & PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS) {
|
235
240
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
236
241
|
pm_buffer_append_string(output_buffer, " contains_keywords", 18);
|
@@ -241,6 +246,16 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
241
246
|
pm_buffer_append_string(output_buffer, " contains_keyword_splat", 23);
|
242
247
|
found = true;
|
243
248
|
}
|
249
|
+
if (cast->base.flags & PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT) {
|
250
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
251
|
+
pm_buffer_append_string(output_buffer, " contains_splat", 15);
|
252
|
+
found = true;
|
253
|
+
}
|
254
|
+
if (cast->base.flags & PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS) {
|
255
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
256
|
+
pm_buffer_append_string(output_buffer, " contains_multiple_splats", 25);
|
257
|
+
found = true;
|
258
|
+
}
|
244
259
|
if (!found) pm_buffer_append_string(output_buffer, " nil", 4);
|
245
260
|
pm_buffer_append_byte(output_buffer, '\n');
|
246
261
|
}
|
@@ -271,10 +286,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
271
286
|
prettyprint_location(output_buffer, parser, &node->location);
|
272
287
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
273
288
|
|
274
|
-
//
|
289
|
+
// ArrayNodeFlags
|
275
290
|
{
|
276
291
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
277
|
-
pm_buffer_append_string(output_buffer, "+--
|
292
|
+
pm_buffer_append_string(output_buffer, "+-- ArrayNodeFlags:", 19);
|
278
293
|
bool found = false;
|
279
294
|
if (cast->base.flags & PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT) {
|
280
295
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -702,10 +717,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
702
717
|
prettyprint_location(output_buffer, parser, &node->location);
|
703
718
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
704
719
|
|
705
|
-
//
|
720
|
+
// ParameterFlags
|
706
721
|
{
|
707
722
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
708
|
-
pm_buffer_append_string(output_buffer, "+--
|
723
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
709
724
|
bool found = false;
|
710
725
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
711
726
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -811,10 +826,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
811
826
|
prettyprint_location(output_buffer, parser, &node->location);
|
812
827
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
813
828
|
|
814
|
-
//
|
829
|
+
// ParameterFlags
|
815
830
|
{
|
816
831
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
817
|
-
pm_buffer_append_string(output_buffer, "+--
|
832
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
818
833
|
bool found = false;
|
819
834
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
820
835
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -986,10 +1001,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
986
1001
|
prettyprint_location(output_buffer, parser, &node->location);
|
987
1002
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
988
1003
|
|
989
|
-
//
|
1004
|
+
// CallNodeFlags
|
990
1005
|
{
|
991
1006
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
992
|
-
pm_buffer_append_string(output_buffer, "+--
|
1007
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
993
1008
|
bool found = false;
|
994
1009
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
995
1010
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -1115,10 +1130,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1115
1130
|
prettyprint_location(output_buffer, parser, &node->location);
|
1116
1131
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
1117
1132
|
|
1118
|
-
//
|
1133
|
+
// CallNodeFlags
|
1119
1134
|
{
|
1120
1135
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1121
|
-
pm_buffer_append_string(output_buffer, "+--
|
1136
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
1122
1137
|
bool found = false;
|
1123
1138
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
1124
1139
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -1276,10 +1291,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1276
1291
|
prettyprint_location(output_buffer, parser, &node->location);
|
1277
1292
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
1278
1293
|
|
1279
|
-
//
|
1294
|
+
// CallNodeFlags
|
1280
1295
|
{
|
1281
1296
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1282
|
-
pm_buffer_append_string(output_buffer, "+--
|
1297
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
1283
1298
|
bool found = false;
|
1284
1299
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
1285
1300
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -1414,10 +1429,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1414
1429
|
prettyprint_location(output_buffer, parser, &node->location);
|
1415
1430
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
1416
1431
|
|
1417
|
-
//
|
1432
|
+
// CallNodeFlags
|
1418
1433
|
{
|
1419
1434
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1420
|
-
pm_buffer_append_string(output_buffer, "+--
|
1435
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
1421
1436
|
bool found = false;
|
1422
1437
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
1423
1438
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -1543,10 +1558,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1543
1558
|
prettyprint_location(output_buffer, parser, &node->location);
|
1544
1559
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
1545
1560
|
|
1546
|
-
//
|
1561
|
+
// CallNodeFlags
|
1547
1562
|
{
|
1548
1563
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1549
|
-
pm_buffer_append_string(output_buffer, "+--
|
1564
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
1550
1565
|
bool found = false;
|
1551
1566
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
1552
1567
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -1707,11 +1722,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1707
1722
|
}
|
1708
1723
|
}
|
1709
1724
|
|
1710
|
-
//
|
1725
|
+
// else_clause
|
1711
1726
|
{
|
1712
1727
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1713
|
-
pm_buffer_append_string(output_buffer, "+--
|
1714
|
-
if (cast->
|
1728
|
+
pm_buffer_append_string(output_buffer, "+-- else_clause:", 16);
|
1729
|
+
if (cast->else_clause == NULL) {
|
1715
1730
|
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
1716
1731
|
} else {
|
1717
1732
|
pm_buffer_append_byte(output_buffer, '\n');
|
@@ -1719,7 +1734,7 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1719
1734
|
size_t prefix_length = prefix_buffer->length;
|
1720
1735
|
pm_buffer_append_string(prefix_buffer, "| ", 4);
|
1721
1736
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1722
|
-
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->
|
1737
|
+
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->else_clause, prefix_buffer);
|
1723
1738
|
prefix_buffer->length = prefix_length;
|
1724
1739
|
}
|
1725
1740
|
}
|
@@ -1791,11 +1806,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1791
1806
|
}
|
1792
1807
|
}
|
1793
1808
|
|
1794
|
-
//
|
1809
|
+
// else_clause
|
1795
1810
|
{
|
1796
1811
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1797
|
-
pm_buffer_append_string(output_buffer, "+--
|
1798
|
-
if (cast->
|
1812
|
+
pm_buffer_append_string(output_buffer, "+-- else_clause:", 16);
|
1813
|
+
if (cast->else_clause == NULL) {
|
1799
1814
|
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
1800
1815
|
} else {
|
1801
1816
|
pm_buffer_append_byte(output_buffer, '\n');
|
@@ -1803,7 +1818,7 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
1803
1818
|
size_t prefix_length = prefix_buffer->length;
|
1804
1819
|
pm_buffer_append_string(prefix_buffer, "| ", 4);
|
1805
1820
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
1806
|
-
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->
|
1821
|
+
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->else_clause, prefix_buffer);
|
1807
1822
|
prefix_buffer->length = prefix_length;
|
1808
1823
|
}
|
1809
1824
|
}
|
@@ -3332,10 +3347,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
3332
3347
|
prettyprint_location(output_buffer, parser, &node->location);
|
3333
3348
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
3334
3349
|
|
3335
|
-
//
|
3350
|
+
// RangeFlags
|
3336
3351
|
{
|
3337
3352
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
3338
|
-
pm_buffer_append_string(output_buffer, "+--
|
3353
|
+
pm_buffer_append_string(output_buffer, "+-- RangeFlags:", 15);
|
3339
3354
|
bool found = false;
|
3340
3355
|
if (cast->base.flags & PM_RANGE_FLAGS_EXCLUDE_END) {
|
3341
3356
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -4020,11 +4035,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4020
4035
|
}
|
4021
4036
|
}
|
4022
4037
|
|
4023
|
-
//
|
4038
|
+
// subsequent
|
4024
4039
|
{
|
4025
4040
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4026
|
-
pm_buffer_append_string(output_buffer, "+--
|
4027
|
-
if (cast->
|
4041
|
+
pm_buffer_append_string(output_buffer, "+-- subsequent:", 15);
|
4042
|
+
if (cast->subsequent == NULL) {
|
4028
4043
|
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
4029
4044
|
} else {
|
4030
4045
|
pm_buffer_append_byte(output_buffer, '\n');
|
@@ -4032,7 +4047,7 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4032
4047
|
size_t prefix_length = prefix_buffer->length;
|
4033
4048
|
pm_buffer_append_string(prefix_buffer, "| ", 4);
|
4034
4049
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4035
|
-
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->
|
4050
|
+
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->subsequent, prefix_buffer);
|
4036
4051
|
prefix_buffer->length = prefix_length;
|
4037
4052
|
}
|
4038
4053
|
}
|
@@ -4176,10 +4191,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4176
4191
|
prettyprint_location(output_buffer, parser, &node->location);
|
4177
4192
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
4178
4193
|
|
4179
|
-
//
|
4194
|
+
// CallNodeFlags
|
4180
4195
|
{
|
4181
4196
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4182
|
-
pm_buffer_append_string(output_buffer, "+--
|
4197
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
4183
4198
|
bool found = false;
|
4184
4199
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
4185
4200
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -4329,10 +4344,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4329
4344
|
prettyprint_location(output_buffer, parser, &node->location);
|
4330
4345
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
4331
4346
|
|
4332
|
-
//
|
4347
|
+
// CallNodeFlags
|
4333
4348
|
{
|
4334
4349
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4335
|
-
pm_buffer_append_string(output_buffer, "+--
|
4350
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
4336
4351
|
bool found = false;
|
4337
4352
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
4338
4353
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -4491,10 +4506,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4491
4506
|
prettyprint_location(output_buffer, parser, &node->location);
|
4492
4507
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
4493
4508
|
|
4494
|
-
//
|
4509
|
+
// CallNodeFlags
|
4495
4510
|
{
|
4496
4511
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4497
|
-
pm_buffer_append_string(output_buffer, "+--
|
4512
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
4498
4513
|
bool found = false;
|
4499
4514
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
4500
4515
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -4644,10 +4659,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
4644
4659
|
prettyprint_location(output_buffer, parser, &node->location);
|
4645
4660
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
4646
4661
|
|
4647
|
-
//
|
4662
|
+
// CallNodeFlags
|
4648
4663
|
{
|
4649
4664
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
4650
|
-
pm_buffer_append_string(output_buffer, "+--
|
4665
|
+
pm_buffer_append_string(output_buffer, "+-- CallNodeFlags:", 18);
|
4651
4666
|
bool found = false;
|
4652
4667
|
if (cast->base.flags & PM_CALL_NODE_FLAGS_SAFE_NAVIGATION) {
|
4653
4668
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5011,10 +5026,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5011
5026
|
prettyprint_location(output_buffer, parser, &node->location);
|
5012
5027
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5013
5028
|
|
5014
|
-
//
|
5029
|
+
// IntegerBaseFlags
|
5015
5030
|
{
|
5016
5031
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5017
|
-
pm_buffer_append_string(output_buffer, "+--
|
5032
|
+
pm_buffer_append_string(output_buffer, "+-- IntegerBaseFlags:", 21);
|
5018
5033
|
bool found = false;
|
5019
5034
|
if (cast->base.flags & PM_INTEGER_BASE_FLAGS_BINARY) {
|
5020
5035
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5058,10 +5073,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5058
5073
|
prettyprint_location(output_buffer, parser, &node->location);
|
5059
5074
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5060
5075
|
|
5061
|
-
//
|
5076
|
+
// RegularExpressionFlags
|
5062
5077
|
{
|
5063
5078
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5064
|
-
pm_buffer_append_string(output_buffer, "+--
|
5079
|
+
pm_buffer_append_string(output_buffer, "+-- RegularExpressionFlags:", 27);
|
5065
5080
|
bool found = false;
|
5066
5081
|
if (cast->base.flags & PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE) {
|
5067
5082
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5172,10 +5187,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5172
5187
|
prettyprint_location(output_buffer, parser, &node->location);
|
5173
5188
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5174
5189
|
|
5175
|
-
//
|
5190
|
+
// RegularExpressionFlags
|
5176
5191
|
{
|
5177
5192
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5178
|
-
pm_buffer_append_string(output_buffer, "+--
|
5193
|
+
pm_buffer_append_string(output_buffer, "+-- RegularExpressionFlags:", 27);
|
5179
5194
|
bool found = false;
|
5180
5195
|
if (cast->base.flags & PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE) {
|
5181
5196
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5286,10 +5301,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5286
5301
|
prettyprint_location(output_buffer, parser, &node->location);
|
5287
5302
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5288
5303
|
|
5289
|
-
//
|
5304
|
+
// InterpolatedStringNodeFlags
|
5290
5305
|
{
|
5291
5306
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5292
|
-
pm_buffer_append_string(output_buffer, "+--
|
5307
|
+
pm_buffer_append_string(output_buffer, "+-- InterpolatedStringNodeFlags:", 32);
|
5293
5308
|
bool found = false;
|
5294
5309
|
if (cast->base.flags & PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN) {
|
5295
5310
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5465,6 +5480,13 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5465
5480
|
|
5466
5481
|
break;
|
5467
5482
|
}
|
5483
|
+
case PM_IT_LOCAL_VARIABLE_READ_NODE: {
|
5484
|
+
pm_buffer_append_string(output_buffer, "@ ItLocalVariableReadNode (location: ", 37);
|
5485
|
+
prettyprint_location(output_buffer, parser, &node->location);
|
5486
|
+
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5487
|
+
|
5488
|
+
break;
|
5489
|
+
}
|
5468
5490
|
case PM_IT_PARAMETERS_NODE: {
|
5469
5491
|
pm_buffer_append_string(output_buffer, "@ ItParametersNode (location: ", 30);
|
5470
5492
|
prettyprint_location(output_buffer, parser, &node->location);
|
@@ -5478,10 +5500,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5478
5500
|
prettyprint_location(output_buffer, parser, &node->location);
|
5479
5501
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5480
5502
|
|
5481
|
-
//
|
5503
|
+
// KeywordHashNodeFlags
|
5482
5504
|
{
|
5483
5505
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5484
|
-
pm_buffer_append_string(output_buffer, "+--
|
5506
|
+
pm_buffer_append_string(output_buffer, "+-- KeywordHashNodeFlags:", 25);
|
5485
5507
|
bool found = false;
|
5486
5508
|
if (cast->base.flags & PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS) {
|
5487
5509
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5518,10 +5540,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5518
5540
|
prettyprint_location(output_buffer, parser, &node->location);
|
5519
5541
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5520
5542
|
|
5521
|
-
//
|
5543
|
+
// ParameterFlags
|
5522
5544
|
{
|
5523
5545
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5524
|
-
pm_buffer_append_string(output_buffer, "+--
|
5546
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
5525
5547
|
bool found = false;
|
5526
5548
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
5527
5549
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -5972,10 +5994,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
5972
5994
|
prettyprint_location(output_buffer, parser, &node->location);
|
5973
5995
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
5974
5996
|
|
5975
|
-
//
|
5997
|
+
// RegularExpressionFlags
|
5976
5998
|
{
|
5977
5999
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
5978
|
-
pm_buffer_append_string(output_buffer, "+--
|
6000
|
+
pm_buffer_append_string(output_buffer, "+-- RegularExpressionFlags:", 27);
|
5979
6001
|
bool found = false;
|
5980
6002
|
if (cast->base.flags & PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE) {
|
5981
6003
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -6627,10 +6649,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
6627
6649
|
prettyprint_location(output_buffer, parser, &node->location);
|
6628
6650
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
6629
6651
|
|
6630
|
-
//
|
6652
|
+
// ParameterFlags
|
6631
6653
|
{
|
6632
6654
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
6633
|
-
pm_buffer_append_string(output_buffer, "+--
|
6655
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
6634
6656
|
bool found = false;
|
6635
6657
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
6636
6658
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -6683,10 +6705,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
6683
6705
|
prettyprint_location(output_buffer, parser, &node->location);
|
6684
6706
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
6685
6707
|
|
6686
|
-
//
|
6708
|
+
// ParameterFlags
|
6687
6709
|
{
|
6688
6710
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
6689
|
-
pm_buffer_append_string(output_buffer, "+--
|
6711
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
6690
6712
|
bool found = false;
|
6691
6713
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
6692
6714
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7222,10 +7244,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7222
7244
|
prettyprint_location(output_buffer, parser, &node->location);
|
7223
7245
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7224
7246
|
|
7225
|
-
//
|
7247
|
+
// RangeFlags
|
7226
7248
|
{
|
7227
7249
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7228
|
-
pm_buffer_append_string(output_buffer, "+--
|
7250
|
+
pm_buffer_append_string(output_buffer, "+-- RangeFlags:", 15);
|
7229
7251
|
bool found = false;
|
7230
7252
|
if (cast->base.flags & PM_RANGE_FLAGS_EXCLUDE_END) {
|
7231
7253
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7290,17 +7312,53 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7290
7312
|
prettyprint_location(output_buffer, parser, &node->location);
|
7291
7313
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7292
7314
|
|
7293
|
-
//
|
7315
|
+
// IntegerBaseFlags
|
7294
7316
|
{
|
7295
7317
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7296
|
-
pm_buffer_append_string(output_buffer, "+--
|
7318
|
+
pm_buffer_append_string(output_buffer, "+-- IntegerBaseFlags:", 21);
|
7319
|
+
bool found = false;
|
7320
|
+
if (cast->base.flags & PM_INTEGER_BASE_FLAGS_BINARY) {
|
7321
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
7322
|
+
pm_buffer_append_string(output_buffer, " binary", 7);
|
7323
|
+
found = true;
|
7324
|
+
}
|
7325
|
+
if (cast->base.flags & PM_INTEGER_BASE_FLAGS_DECIMAL) {
|
7326
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
7327
|
+
pm_buffer_append_string(output_buffer, " decimal", 8);
|
7328
|
+
found = true;
|
7329
|
+
}
|
7330
|
+
if (cast->base.flags & PM_INTEGER_BASE_FLAGS_OCTAL) {
|
7331
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
7332
|
+
pm_buffer_append_string(output_buffer, " octal", 6);
|
7333
|
+
found = true;
|
7334
|
+
}
|
7335
|
+
if (cast->base.flags & PM_INTEGER_BASE_FLAGS_HEXADECIMAL) {
|
7336
|
+
if (found) pm_buffer_append_byte(output_buffer, ',');
|
7337
|
+
pm_buffer_append_string(output_buffer, " hexadecimal", 12);
|
7338
|
+
found = true;
|
7339
|
+
}
|
7340
|
+
if (!found) pm_buffer_append_string(output_buffer, " nil", 4);
|
7297
7341
|
pm_buffer_append_byte(output_buffer, '\n');
|
7342
|
+
}
|
7298
7343
|
|
7299
|
-
|
7300
|
-
|
7344
|
+
// numerator
|
7345
|
+
{
|
7301
7346
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7302
|
-
|
7303
|
-
|
7347
|
+
pm_buffer_append_string(output_buffer, "+-- numerator:", 14);
|
7348
|
+
const pm_integer_t *integer = &cast->numerator;
|
7349
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
7350
|
+
pm_integer_string(output_buffer, integer);
|
7351
|
+
pm_buffer_append_byte(output_buffer, '\n');
|
7352
|
+
}
|
7353
|
+
|
7354
|
+
// denominator
|
7355
|
+
{
|
7356
|
+
pm_buffer_concat(output_buffer, prefix_buffer);
|
7357
|
+
pm_buffer_append_string(output_buffer, "+-- denominator:", 16);
|
7358
|
+
const pm_integer_t *integer = &cast->denominator;
|
7359
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
7360
|
+
pm_integer_string(output_buffer, integer);
|
7361
|
+
pm_buffer_append_byte(output_buffer, '\n');
|
7304
7362
|
}
|
7305
7363
|
|
7306
7364
|
break;
|
@@ -7318,10 +7376,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7318
7376
|
prettyprint_location(output_buffer, parser, &node->location);
|
7319
7377
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7320
7378
|
|
7321
|
-
//
|
7379
|
+
// RegularExpressionFlags
|
7322
7380
|
{
|
7323
7381
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7324
|
-
pm_buffer_append_string(output_buffer, "+--
|
7382
|
+
pm_buffer_append_string(output_buffer, "+-- RegularExpressionFlags:", 27);
|
7325
7383
|
bool found = false;
|
7326
7384
|
if (cast->base.flags & PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE) {
|
7327
7385
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7435,10 +7493,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7435
7493
|
prettyprint_location(output_buffer, parser, &node->location);
|
7436
7494
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7437
7495
|
|
7438
|
-
//
|
7496
|
+
// ParameterFlags
|
7439
7497
|
{
|
7440
7498
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7441
|
-
pm_buffer_append_string(output_buffer, "+--
|
7499
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
7442
7500
|
bool found = false;
|
7443
7501
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
7444
7502
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7478,10 +7536,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7478
7536
|
prettyprint_location(output_buffer, parser, &node->location);
|
7479
7537
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7480
7538
|
|
7481
|
-
//
|
7539
|
+
// ParameterFlags
|
7482
7540
|
{
|
7483
7541
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7484
|
-
pm_buffer_append_string(output_buffer, "+--
|
7542
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
7485
7543
|
bool found = false;
|
7486
7544
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
7487
7545
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7635,11 +7693,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7635
7693
|
}
|
7636
7694
|
}
|
7637
7695
|
|
7638
|
-
//
|
7696
|
+
// subsequent
|
7639
7697
|
{
|
7640
7698
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7641
|
-
pm_buffer_append_string(output_buffer, "+--
|
7642
|
-
if (cast->
|
7699
|
+
pm_buffer_append_string(output_buffer, "+-- subsequent:", 15);
|
7700
|
+
if (cast->subsequent == NULL) {
|
7643
7701
|
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
7644
7702
|
} else {
|
7645
7703
|
pm_buffer_append_byte(output_buffer, '\n');
|
@@ -7647,7 +7705,7 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7647
7705
|
size_t prefix_length = prefix_buffer->length;
|
7648
7706
|
pm_buffer_append_string(prefix_buffer, " ", 4);
|
7649
7707
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7650
|
-
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->
|
7708
|
+
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->subsequent, prefix_buffer);
|
7651
7709
|
prefix_buffer->length = prefix_length;
|
7652
7710
|
}
|
7653
7711
|
}
|
@@ -7660,10 +7718,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7660
7718
|
prettyprint_location(output_buffer, parser, &node->location);
|
7661
7719
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7662
7720
|
|
7663
|
-
//
|
7721
|
+
// ParameterFlags
|
7664
7722
|
{
|
7665
7723
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7666
|
-
pm_buffer_append_string(output_buffer, "+--
|
7724
|
+
pm_buffer_append_string(output_buffer, "+-- ParameterFlags:", 19);
|
7667
7725
|
bool found = false;
|
7668
7726
|
if (cast->base.flags & PM_PARAMETER_FLAGS_REPEATED_PARAMETER) {
|
7669
7727
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7730,20 +7788,6 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7730
7788
|
prettyprint_location(output_buffer, parser, &node->location);
|
7731
7789
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7732
7790
|
|
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
|
-
|
7747
7791
|
// keyword_loc
|
7748
7792
|
{
|
7749
7793
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
@@ -7788,10 +7832,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7788
7832
|
prettyprint_location(output_buffer, parser, &node->location);
|
7789
7833
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7790
7834
|
|
7791
|
-
//
|
7835
|
+
// ShareableConstantNodeFlags
|
7792
7836
|
{
|
7793
7837
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7794
|
-
pm_buffer_append_string(output_buffer, "+--
|
7838
|
+
pm_buffer_append_string(output_buffer, "+-- ShareableConstantNodeFlags:", 31);
|
7795
7839
|
bool found = false;
|
7796
7840
|
if (cast->base.flags & PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL) {
|
7797
7841
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -7926,10 +7970,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
7926
7970
|
prettyprint_location(output_buffer, parser, &node->location);
|
7927
7971
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
7928
7972
|
|
7929
|
-
//
|
7973
|
+
// StringFlags
|
7930
7974
|
{
|
7931
7975
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
7932
|
-
pm_buffer_append_string(output_buffer, "+--
|
7976
|
+
pm_buffer_append_string(output_buffer, "+-- StringFlags:", 16);
|
7933
7977
|
bool found = false;
|
7934
7978
|
if (cast->base.flags & PM_STRING_FLAGS_FORCED_UTF8_ENCODING) {
|
7935
7979
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -8042,10 +8086,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8042
8086
|
prettyprint_location(output_buffer, parser, &node->location);
|
8043
8087
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
8044
8088
|
|
8045
|
-
//
|
8089
|
+
// StringFlags
|
8046
8090
|
{
|
8047
8091
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8048
|
-
pm_buffer_append_string(output_buffer, "+--
|
8092
|
+
pm_buffer_append_string(output_buffer, "+-- StringFlags:", 16);
|
8049
8093
|
bool found = false;
|
8050
8094
|
if (cast->base.flags & PM_STRING_FLAGS_FORCED_UTF8_ENCODING) {
|
8051
8095
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -8218,10 +8262,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8218
8262
|
prettyprint_location(output_buffer, parser, &node->location);
|
8219
8263
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
8220
8264
|
|
8221
|
-
//
|
8265
|
+
// SymbolFlags
|
8222
8266
|
{
|
8223
8267
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8224
|
-
pm_buffer_append_string(output_buffer, "+--
|
8268
|
+
pm_buffer_append_string(output_buffer, "+-- SymbolFlags:", 16);
|
8225
8269
|
bool found = false;
|
8226
8270
|
if (cast->base.flags & PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING) {
|
8227
8271
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -8410,11 +8454,11 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8410
8454
|
}
|
8411
8455
|
}
|
8412
8456
|
|
8413
|
-
//
|
8457
|
+
// else_clause
|
8414
8458
|
{
|
8415
8459
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8416
|
-
pm_buffer_append_string(output_buffer, "+--
|
8417
|
-
if (cast->
|
8460
|
+
pm_buffer_append_string(output_buffer, "+-- else_clause:", 16);
|
8461
|
+
if (cast->else_clause == NULL) {
|
8418
8462
|
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
8419
8463
|
} else {
|
8420
8464
|
pm_buffer_append_byte(output_buffer, '\n');
|
@@ -8422,7 +8466,7 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8422
8466
|
size_t prefix_length = prefix_buffer->length;
|
8423
8467
|
pm_buffer_append_string(prefix_buffer, "| ", 4);
|
8424
8468
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8425
|
-
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->
|
8469
|
+
prettyprint_node(output_buffer, parser, (pm_node_t *) cast->else_clause, prefix_buffer);
|
8426
8470
|
prefix_buffer->length = prefix_length;
|
8427
8471
|
}
|
8428
8472
|
}
|
@@ -8451,10 +8495,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8451
8495
|
prettyprint_location(output_buffer, parser, &node->location);
|
8452
8496
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
8453
8497
|
|
8454
|
-
//
|
8498
|
+
// LoopFlags
|
8455
8499
|
{
|
8456
8500
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8457
|
-
pm_buffer_append_string(output_buffer, "+--
|
8501
|
+
pm_buffer_append_string(output_buffer, "+-- LoopFlags:", 14);
|
8458
8502
|
bool found = false;
|
8459
8503
|
if (cast->base.flags & PM_LOOP_FLAGS_BEGIN_MODIFIER) {
|
8460
8504
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -8477,6 +8521,22 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8477
8521
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
8478
8522
|
}
|
8479
8523
|
|
8524
|
+
// do_keyword_loc
|
8525
|
+
{
|
8526
|
+
pm_buffer_concat(output_buffer, prefix_buffer);
|
8527
|
+
pm_buffer_append_string(output_buffer, "+-- do_keyword_loc:", 19);
|
8528
|
+
pm_location_t *location = &cast->do_keyword_loc;
|
8529
|
+
if (location->start == NULL) {
|
8530
|
+
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
8531
|
+
} else {
|
8532
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
8533
|
+
prettyprint_location(output_buffer, parser, location);
|
8534
|
+
pm_buffer_append_string(output_buffer, " = \"", 4);
|
8535
|
+
pm_buffer_append_source(output_buffer, location->start, (size_t) (location->end - location->start), PM_BUFFER_ESCAPING_RUBY);
|
8536
|
+
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
8537
|
+
}
|
8538
|
+
}
|
8539
|
+
|
8480
8540
|
// closing_loc
|
8481
8541
|
{
|
8482
8542
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
@@ -8602,10 +8662,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8602
8662
|
prettyprint_location(output_buffer, parser, &node->location);
|
8603
8663
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
8604
8664
|
|
8605
|
-
//
|
8665
|
+
// LoopFlags
|
8606
8666
|
{
|
8607
8667
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8608
|
-
pm_buffer_append_string(output_buffer, "+--
|
8668
|
+
pm_buffer_append_string(output_buffer, "+-- LoopFlags:", 14);
|
8609
8669
|
bool found = false;
|
8610
8670
|
if (cast->base.flags & PM_LOOP_FLAGS_BEGIN_MODIFIER) {
|
8611
8671
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|
@@ -8628,6 +8688,22 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8628
8688
|
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
8629
8689
|
}
|
8630
8690
|
|
8691
|
+
// do_keyword_loc
|
8692
|
+
{
|
8693
|
+
pm_buffer_concat(output_buffer, prefix_buffer);
|
8694
|
+
pm_buffer_append_string(output_buffer, "+-- do_keyword_loc:", 19);
|
8695
|
+
pm_location_t *location = &cast->do_keyword_loc;
|
8696
|
+
if (location->start == NULL) {
|
8697
|
+
pm_buffer_append_string(output_buffer, " nil\n", 5);
|
8698
|
+
} else {
|
8699
|
+
pm_buffer_append_byte(output_buffer, ' ');
|
8700
|
+
prettyprint_location(output_buffer, parser, location);
|
8701
|
+
pm_buffer_append_string(output_buffer, " = \"", 4);
|
8702
|
+
pm_buffer_append_source(output_buffer, location->start, (size_t) (location->end - location->start), PM_BUFFER_ESCAPING_RUBY);
|
8703
|
+
pm_buffer_append_string(output_buffer, "\"\n", 2);
|
8704
|
+
}
|
8705
|
+
}
|
8706
|
+
|
8631
8707
|
// closing_loc
|
8632
8708
|
{
|
8633
8709
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
@@ -8682,10 +8758,10 @@ prettyprint_node(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm
|
|
8682
8758
|
prettyprint_location(output_buffer, parser, &node->location);
|
8683
8759
|
pm_buffer_append_string(output_buffer, ")\n", 2);
|
8684
8760
|
|
8685
|
-
//
|
8761
|
+
// EncodingFlags
|
8686
8762
|
{
|
8687
8763
|
pm_buffer_concat(output_buffer, prefix_buffer);
|
8688
|
-
pm_buffer_append_string(output_buffer, "+--
|
8764
|
+
pm_buffer_append_string(output_buffer, "+-- EncodingFlags:", 18);
|
8689
8765
|
bool found = false;
|
8690
8766
|
if (cast->base.flags & PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING) {
|
8691
8767
|
if (found) pm_buffer_append_byte(output_buffer, ',');
|