prism 0.29.0 → 1.3.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 +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, ',');
|