11prettyprint_source(
pm_buffer_t *output_buffer,
const uint8_t *source,
size_t length) {
12 for (
size_t index = 0; index < length; index++) {
13 const uint8_t
byte = source[index];
15 if ((
byte <= 0x06) || (
byte >= 0x0E &&
byte <= 0x1F) || (
byte >= 0x7F)) {
16 pm_buffer_append_format(output_buffer,
"\\x%02X",
byte);
19 case '\a': pm_buffer_append_string(output_buffer,
"\\a", 2);
break;
20 case '\b': pm_buffer_append_string(output_buffer,
"\\b", 2);
break;
21 case '\t': pm_buffer_append_string(output_buffer,
"\\t", 2);
break;
22 case '\n': pm_buffer_append_string(output_buffer,
"\\n", 2);
break;
23 case '\v': pm_buffer_append_string(output_buffer,
"\\v", 2);
break;
24 case '\f': pm_buffer_append_string(output_buffer,
"\\f", 2);
break;
25 case '\r': pm_buffer_append_string(output_buffer,
"\\r", 2);
break;
26 case '"': pm_buffer_append_string(output_buffer,
"\\\"", 2);
break;
28 if (index + 1 < length) {
29 const uint8_t next_byte = source[index + 1];
30 if (next_byte ==
'{' || next_byte ==
'@' || next_byte ==
'$') {
31 pm_buffer_append_byte(output_buffer,
'\\');
35 pm_buffer_append_byte(output_buffer,
'#');
38 case '\\': pm_buffer_append_string(output_buffer,
"\\\\", 2);
break;
39 default: pm_buffer_append_byte(output_buffer,
byte);
break;
49 pm_buffer_append_format(output_buffer,
"(%lu,%lu)-(%lu,%lu)", (
unsigned long) (start.
line + 1), (
unsigned long) start.
column, (
unsigned long) (end.
line + 1), (
unsigned long) end.
column);
55 pm_buffer_append_format(output_buffer,
":%.*s", (
int) constant->
length, constant->
start);
66 pm_buffer_append_string(output_buffer,
"@ AliasGlobalVariableNode (location: ", 37);
67 prettyprint_location(output_buffer, parser, &node->
location);
68 pm_buffer_append_string(output_buffer,
")\n", 2);
72 pm_buffer_concat(output_buffer, prefix_buffer);
73 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 new_name:", 19);
74 pm_buffer_append_byte(output_buffer,
'\n');
76 size_t prefix_length = prefix_buffer->
length;
77 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
78 pm_buffer_concat(output_buffer, prefix_buffer);
79 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
new_name, prefix_buffer);
80 prefix_buffer->
length = prefix_length;
85 pm_buffer_concat(output_buffer, prefix_buffer);
86 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 old_name:", 19);
87 pm_buffer_append_byte(output_buffer,
'\n');
89 size_t prefix_length = prefix_buffer->
length;
90 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
91 pm_buffer_concat(output_buffer, prefix_buffer);
92 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
old_name, prefix_buffer);
93 prefix_buffer->
length = prefix_length;
98 pm_buffer_concat(output_buffer, prefix_buffer);
99 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
101 pm_buffer_append_byte(output_buffer,
' ');
102 prettyprint_location(output_buffer, parser, location);
103 pm_buffer_append_string(output_buffer,
" = \"", 4);
104 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
105 pm_buffer_append_string(output_buffer,
"\"\n", 2);
112 pm_buffer_append_string(output_buffer,
"@ AliasMethodNode (location: ", 29);
113 prettyprint_location(output_buffer, parser, &node->
location);
114 pm_buffer_append_string(output_buffer,
")\n", 2);
118 pm_buffer_concat(output_buffer, prefix_buffer);
119 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 new_name:", 19);
120 pm_buffer_append_byte(output_buffer,
'\n');
122 size_t prefix_length = prefix_buffer->
length;
123 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
124 pm_buffer_concat(output_buffer, prefix_buffer);
125 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
new_name, prefix_buffer);
126 prefix_buffer->
length = prefix_length;
131 pm_buffer_concat(output_buffer, prefix_buffer);
132 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 old_name:", 19);
133 pm_buffer_append_byte(output_buffer,
'\n');
135 size_t prefix_length = prefix_buffer->
length;
136 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
137 pm_buffer_concat(output_buffer, prefix_buffer);
138 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
old_name, prefix_buffer);
139 prefix_buffer->
length = prefix_length;
144 pm_buffer_concat(output_buffer, prefix_buffer);
145 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
147 pm_buffer_append_byte(output_buffer,
' ');
148 prettyprint_location(output_buffer, parser, location);
149 pm_buffer_append_string(output_buffer,
" = \"", 4);
150 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
151 pm_buffer_append_string(output_buffer,
"\"\n", 2);
158 pm_buffer_append_string(output_buffer,
"@ AlternationPatternNode (location: ", 36);
159 prettyprint_location(output_buffer, parser, &node->
location);
160 pm_buffer_append_string(output_buffer,
")\n", 2);
164 pm_buffer_concat(output_buffer, prefix_buffer);
165 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 left:", 15);
166 pm_buffer_append_byte(output_buffer,
'\n');
168 size_t prefix_length = prefix_buffer->
length;
169 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
170 pm_buffer_concat(output_buffer, prefix_buffer);
171 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
172 prefix_buffer->
length = prefix_length;
177 pm_buffer_concat(output_buffer, prefix_buffer);
178 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 right:", 16);
179 pm_buffer_append_byte(output_buffer,
'\n');
181 size_t prefix_length = prefix_buffer->
length;
182 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
183 pm_buffer_concat(output_buffer, prefix_buffer);
184 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
185 prefix_buffer->
length = prefix_length;
190 pm_buffer_concat(output_buffer, prefix_buffer);
191 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
193 pm_buffer_append_byte(output_buffer,
' ');
194 prettyprint_location(output_buffer, parser, location);
195 pm_buffer_append_string(output_buffer,
" = \"", 4);
196 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
197 pm_buffer_append_string(output_buffer,
"\"\n", 2);
204 pm_buffer_append_string(output_buffer,
"@ AndNode (location: ", 21);
205 prettyprint_location(output_buffer, parser, &node->
location);
206 pm_buffer_append_string(output_buffer,
")\n", 2);
210 pm_buffer_concat(output_buffer, prefix_buffer);
211 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 left:", 15);
212 pm_buffer_append_byte(output_buffer,
'\n');
214 size_t prefix_length = prefix_buffer->
length;
215 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
216 pm_buffer_concat(output_buffer, prefix_buffer);
217 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
218 prefix_buffer->
length = prefix_length;
223 pm_buffer_concat(output_buffer, prefix_buffer);
224 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 right:", 16);
225 pm_buffer_append_byte(output_buffer,
'\n');
227 size_t prefix_length = prefix_buffer->
length;
228 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
229 pm_buffer_concat(output_buffer, prefix_buffer);
230 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
231 prefix_buffer->
length = prefix_length;
236 pm_buffer_concat(output_buffer, prefix_buffer);
237 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
239 pm_buffer_append_byte(output_buffer,
' ');
240 prettyprint_location(output_buffer, parser, location);
241 pm_buffer_append_string(output_buffer,
" = \"", 4);
242 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
243 pm_buffer_append_string(output_buffer,
"\"\n", 2);
250 pm_buffer_append_string(output_buffer,
"@ ArgumentsNode (location: ", 27);
251 prettyprint_location(output_buffer, parser, &node->
location);
252 pm_buffer_append_string(output_buffer,
")\n", 2);
256 pm_buffer_concat(output_buffer, prefix_buffer);
257 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
260 if (found) pm_buffer_append_byte(output_buffer,
',');
261 pm_buffer_append_string(output_buffer,
" contains_keyword_splat", 23);
264 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
265 pm_buffer_append_byte(output_buffer,
'\n');
270 pm_buffer_concat(output_buffer, prefix_buffer);
271 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
272 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
arguments.
size));
275 for (uint32_t index = 0; index < last_index; index++) {
276 size_t prefix_length = prefix_buffer->
length;
277 pm_buffer_append_string(prefix_buffer,
" ", 4);
278 pm_buffer_concat(output_buffer, prefix_buffer);
280 if (index == last_index - 1) {
281 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
282 pm_buffer_append_string(prefix_buffer,
" ", 4);
284 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
285 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
289 prefix_buffer->
length = prefix_length;
297 pm_buffer_append_string(output_buffer,
"@ ArrayNode (location: ", 23);
298 prettyprint_location(output_buffer, parser, &node->
location);
299 pm_buffer_append_string(output_buffer,
")\n", 2);
303 pm_buffer_concat(output_buffer, prefix_buffer);
304 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
307 if (found) pm_buffer_append_byte(output_buffer,
',');
308 pm_buffer_append_string(output_buffer,
" contains_splat", 15);
311 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
312 pm_buffer_append_byte(output_buffer,
'\n');
317 pm_buffer_concat(output_buffer, prefix_buffer);
318 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 elements:", 19);
319 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
322 for (uint32_t index = 0; index < last_index; index++) {
323 size_t prefix_length = prefix_buffer->
length;
324 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
325 pm_buffer_concat(output_buffer, prefix_buffer);
327 if (index == last_index - 1) {
328 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
329 pm_buffer_append_string(prefix_buffer,
" ", 4);
331 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
332 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
336 prefix_buffer->
length = prefix_length;
342 pm_buffer_concat(output_buffer, prefix_buffer);
343 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
345 if (location->
start == NULL) {
346 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
348 pm_buffer_append_byte(output_buffer,
' ');
349 prettyprint_location(output_buffer, parser, location);
350 pm_buffer_append_string(output_buffer,
" = \"", 4);
351 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
352 pm_buffer_append_string(output_buffer,
"\"\n", 2);
358 pm_buffer_concat(output_buffer, prefix_buffer);
359 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
361 if (location->
start == NULL) {
362 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
364 pm_buffer_append_byte(output_buffer,
' ');
365 prettyprint_location(output_buffer, parser, location);
366 pm_buffer_append_string(output_buffer,
" = \"", 4);
367 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
368 pm_buffer_append_string(output_buffer,
"\"\n", 2);
376 pm_buffer_append_string(output_buffer,
"@ ArrayPatternNode (location: ", 30);
377 prettyprint_location(output_buffer, parser, &node->
location);
378 pm_buffer_append_string(output_buffer,
")\n", 2);
382 pm_buffer_concat(output_buffer, prefix_buffer);
383 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 constant:", 19);
385 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
387 pm_buffer_append_byte(output_buffer,
'\n');
389 size_t prefix_length = prefix_buffer->
length;
390 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
391 pm_buffer_concat(output_buffer, prefix_buffer);
392 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
393 prefix_buffer->
length = prefix_length;
399 pm_buffer_concat(output_buffer, prefix_buffer);
400 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requireds:", 20);
401 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
requireds.
size));
404 for (uint32_t index = 0; index < last_index; index++) {
405 size_t prefix_length = prefix_buffer->
length;
406 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
407 pm_buffer_concat(output_buffer, prefix_buffer);
409 if (index == last_index - 1) {
410 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
411 pm_buffer_append_string(prefix_buffer,
" ", 4);
413 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
414 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
418 prefix_buffer->
length = prefix_length;
424 pm_buffer_concat(output_buffer, prefix_buffer);
425 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rest:", 15);
426 if (cast->
rest == NULL) {
427 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
429 pm_buffer_append_byte(output_buffer,
'\n');
431 size_t prefix_length = prefix_buffer->
length;
432 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
433 pm_buffer_concat(output_buffer, prefix_buffer);
434 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
435 prefix_buffer->
length = prefix_length;
441 pm_buffer_concat(output_buffer, prefix_buffer);
442 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 posts:", 16);
443 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
posts.
size));
446 for (uint32_t index = 0; index < last_index; index++) {
447 size_t prefix_length = prefix_buffer->
length;
448 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
449 pm_buffer_concat(output_buffer, prefix_buffer);
451 if (index == last_index - 1) {
452 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
453 pm_buffer_append_string(prefix_buffer,
" ", 4);
455 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
456 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
459 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
posts.
nodes[index], prefix_buffer);
460 prefix_buffer->
length = prefix_length;
466 pm_buffer_concat(output_buffer, prefix_buffer);
467 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
469 if (location->
start == NULL) {
470 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
472 pm_buffer_append_byte(output_buffer,
' ');
473 prettyprint_location(output_buffer, parser, location);
474 pm_buffer_append_string(output_buffer,
" = \"", 4);
475 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
476 pm_buffer_append_string(output_buffer,
"\"\n", 2);
482 pm_buffer_concat(output_buffer, prefix_buffer);
483 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
485 if (location->
start == NULL) {
486 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
488 pm_buffer_append_byte(output_buffer,
' ');
489 prettyprint_location(output_buffer, parser, location);
490 pm_buffer_append_string(output_buffer,
" = \"", 4);
491 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
492 pm_buffer_append_string(output_buffer,
"\"\n", 2);
500 pm_buffer_append_string(output_buffer,
"@ AssocNode (location: ", 23);
501 prettyprint_location(output_buffer, parser, &node->
location);
502 pm_buffer_append_string(output_buffer,
")\n", 2);
506 pm_buffer_concat(output_buffer, prefix_buffer);
507 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 key:", 14);
508 pm_buffer_append_byte(output_buffer,
'\n');
510 size_t prefix_length = prefix_buffer->
length;
511 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
512 pm_buffer_concat(output_buffer, prefix_buffer);
513 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
key, prefix_buffer);
514 prefix_buffer->
length = prefix_length;
519 pm_buffer_concat(output_buffer, prefix_buffer);
520 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
521 if (cast->
value == NULL) {
522 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
524 pm_buffer_append_byte(output_buffer,
'\n');
526 size_t prefix_length = prefix_buffer->
length;
527 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
528 pm_buffer_concat(output_buffer, prefix_buffer);
529 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
530 prefix_buffer->
length = prefix_length;
536 pm_buffer_concat(output_buffer, prefix_buffer);
537 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
539 if (location->
start == NULL) {
540 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
542 pm_buffer_append_byte(output_buffer,
' ');
543 prettyprint_location(output_buffer, parser, location);
544 pm_buffer_append_string(output_buffer,
" = \"", 4);
545 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
546 pm_buffer_append_string(output_buffer,
"\"\n", 2);
554 pm_buffer_append_string(output_buffer,
"@ AssocSplatNode (location: ", 28);
555 prettyprint_location(output_buffer, parser, &node->
location);
556 pm_buffer_append_string(output_buffer,
")\n", 2);
560 pm_buffer_concat(output_buffer, prefix_buffer);
561 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
562 if (cast->
value == NULL) {
563 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
565 pm_buffer_append_byte(output_buffer,
'\n');
567 size_t prefix_length = prefix_buffer->
length;
568 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
569 pm_buffer_concat(output_buffer, prefix_buffer);
570 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
571 prefix_buffer->
length = prefix_length;
577 pm_buffer_concat(output_buffer, prefix_buffer);
578 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
580 pm_buffer_append_byte(output_buffer,
' ');
581 prettyprint_location(output_buffer, parser, location);
582 pm_buffer_append_string(output_buffer,
" = \"", 4);
583 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
584 pm_buffer_append_string(output_buffer,
"\"\n", 2);
591 pm_buffer_append_string(output_buffer,
"@ BackReferenceReadNode (location: ", 35);
592 prettyprint_location(output_buffer, parser, &node->
location);
593 pm_buffer_append_string(output_buffer,
")\n", 2);
597 pm_buffer_concat(output_buffer, prefix_buffer);
598 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
599 pm_buffer_append_byte(output_buffer,
' ');
600 prettyprint_constant(output_buffer, parser, cast->
name);
601 pm_buffer_append_byte(output_buffer,
'\n');
608 pm_buffer_append_string(output_buffer,
"@ BeginNode (location: ", 23);
609 prettyprint_location(output_buffer, parser, &node->
location);
610 pm_buffer_append_string(output_buffer,
")\n", 2);
614 pm_buffer_concat(output_buffer, prefix_buffer);
615 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 begin_keyword_loc:", 28);
617 if (location->
start == NULL) {
618 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
620 pm_buffer_append_byte(output_buffer,
' ');
621 prettyprint_location(output_buffer, parser, location);
622 pm_buffer_append_string(output_buffer,
" = \"", 4);
623 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
624 pm_buffer_append_string(output_buffer,
"\"\n", 2);
630 pm_buffer_concat(output_buffer, prefix_buffer);
631 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
633 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
635 pm_buffer_append_byte(output_buffer,
'\n');
637 size_t prefix_length = prefix_buffer->
length;
638 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
639 pm_buffer_concat(output_buffer, prefix_buffer);
641 prefix_buffer->
length = prefix_length;
647 pm_buffer_concat(output_buffer, prefix_buffer);
648 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rescue_clause:", 24);
650 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
652 pm_buffer_append_byte(output_buffer,
'\n');
654 size_t prefix_length = prefix_buffer->
length;
655 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
656 pm_buffer_concat(output_buffer, prefix_buffer);
658 prefix_buffer->
length = prefix_length;
664 pm_buffer_concat(output_buffer, prefix_buffer);
665 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 else_clause:", 22);
667 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
669 pm_buffer_append_byte(output_buffer,
'\n');
671 size_t prefix_length = prefix_buffer->
length;
672 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
673 pm_buffer_concat(output_buffer, prefix_buffer);
675 prefix_buffer->
length = prefix_length;
681 pm_buffer_concat(output_buffer, prefix_buffer);
682 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ensure_clause:", 24);
684 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
686 pm_buffer_append_byte(output_buffer,
'\n');
688 size_t prefix_length = prefix_buffer->
length;
689 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
690 pm_buffer_concat(output_buffer, prefix_buffer);
692 prefix_buffer->
length = prefix_length;
698 pm_buffer_concat(output_buffer, prefix_buffer);
699 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
701 if (location->
start == NULL) {
702 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
704 pm_buffer_append_byte(output_buffer,
' ');
705 prettyprint_location(output_buffer, parser, location);
706 pm_buffer_append_string(output_buffer,
" = \"", 4);
707 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
708 pm_buffer_append_string(output_buffer,
"\"\n", 2);
716 pm_buffer_append_string(output_buffer,
"@ BlockArgumentNode (location: ", 31);
717 prettyprint_location(output_buffer, parser, &node->
location);
718 pm_buffer_append_string(output_buffer,
")\n", 2);
722 pm_buffer_concat(output_buffer, prefix_buffer);
723 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 expression:", 21);
725 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
727 pm_buffer_append_byte(output_buffer,
'\n');
729 size_t prefix_length = prefix_buffer->
length;
730 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
731 pm_buffer_concat(output_buffer, prefix_buffer);
733 prefix_buffer->
length = prefix_length;
739 pm_buffer_concat(output_buffer, prefix_buffer);
740 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
742 pm_buffer_append_byte(output_buffer,
' ');
743 prettyprint_location(output_buffer, parser, location);
744 pm_buffer_append_string(output_buffer,
" = \"", 4);
745 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
746 pm_buffer_append_string(output_buffer,
"\"\n", 2);
753 pm_buffer_append_string(output_buffer,
"@ BlockLocalVariableNode (location: ", 36);
754 prettyprint_location(output_buffer, parser, &node->
location);
755 pm_buffer_append_string(output_buffer,
")\n", 2);
759 pm_buffer_concat(output_buffer, prefix_buffer);
760 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
761 pm_buffer_append_byte(output_buffer,
' ');
762 prettyprint_constant(output_buffer, parser, cast->
name);
763 pm_buffer_append_byte(output_buffer,
'\n');
770 pm_buffer_append_string(output_buffer,
"@ BlockNode (location: ", 23);
771 prettyprint_location(output_buffer, parser, &node->
location);
772 pm_buffer_append_string(output_buffer,
")\n", 2);
776 pm_buffer_concat(output_buffer, prefix_buffer);
777 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
778 pm_buffer_append_string(output_buffer,
" [", 2);
779 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
780 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
781 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
783 pm_buffer_append_string(output_buffer,
"]\n", 2);
788 pm_buffer_concat(output_buffer, prefix_buffer);
789 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals_body_index:", 28);
795 pm_buffer_concat(output_buffer, prefix_buffer);
796 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parameters:", 21);
798 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
800 pm_buffer_append_byte(output_buffer,
'\n');
802 size_t prefix_length = prefix_buffer->
length;
803 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
804 pm_buffer_concat(output_buffer, prefix_buffer);
806 prefix_buffer->
length = prefix_length;
812 pm_buffer_concat(output_buffer, prefix_buffer);
813 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 body:", 15);
814 if (cast->
body == NULL) {
815 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
817 pm_buffer_append_byte(output_buffer,
'\n');
819 size_t prefix_length = prefix_buffer->
length;
820 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
821 pm_buffer_concat(output_buffer, prefix_buffer);
822 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
823 prefix_buffer->
length = prefix_length;
829 pm_buffer_concat(output_buffer, prefix_buffer);
830 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
832 pm_buffer_append_byte(output_buffer,
' ');
833 prettyprint_location(output_buffer, parser, location);
834 pm_buffer_append_string(output_buffer,
" = \"", 4);
835 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
836 pm_buffer_append_string(output_buffer,
"\"\n", 2);
841 pm_buffer_concat(output_buffer, prefix_buffer);
842 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
844 pm_buffer_append_byte(output_buffer,
' ');
845 prettyprint_location(output_buffer, parser, location);
846 pm_buffer_append_string(output_buffer,
" = \"", 4);
847 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
848 pm_buffer_append_string(output_buffer,
"\"\n", 2);
855 pm_buffer_append_string(output_buffer,
"@ BlockParameterNode (location: ", 32);
856 prettyprint_location(output_buffer, parser, &node->
location);
857 pm_buffer_append_string(output_buffer,
")\n", 2);
861 pm_buffer_concat(output_buffer, prefix_buffer);
862 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
863 if (cast->
name == 0) {
864 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
866 pm_buffer_append_byte(output_buffer,
' ');
867 prettyprint_constant(output_buffer, parser, cast->
name);
868 pm_buffer_append_byte(output_buffer,
'\n');
874 pm_buffer_concat(output_buffer, prefix_buffer);
875 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
877 if (location->
start == NULL) {
878 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
880 pm_buffer_append_byte(output_buffer,
' ');
881 prettyprint_location(output_buffer, parser, location);
882 pm_buffer_append_string(output_buffer,
" = \"", 4);
883 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
884 pm_buffer_append_string(output_buffer,
"\"\n", 2);
890 pm_buffer_concat(output_buffer, prefix_buffer);
891 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
893 pm_buffer_append_byte(output_buffer,
' ');
894 prettyprint_location(output_buffer, parser, location);
895 pm_buffer_append_string(output_buffer,
" = \"", 4);
896 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
897 pm_buffer_append_string(output_buffer,
"\"\n", 2);
904 pm_buffer_append_string(output_buffer,
"@ BlockParametersNode (location: ", 33);
905 prettyprint_location(output_buffer, parser, &node->
location);
906 pm_buffer_append_string(output_buffer,
")\n", 2);
910 pm_buffer_concat(output_buffer, prefix_buffer);
911 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parameters:", 21);
913 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
915 pm_buffer_append_byte(output_buffer,
'\n');
917 size_t prefix_length = prefix_buffer->
length;
918 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
919 pm_buffer_concat(output_buffer, prefix_buffer);
921 prefix_buffer->
length = prefix_length;
927 pm_buffer_concat(output_buffer, prefix_buffer);
928 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
929 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
locals.
size));
932 for (uint32_t index = 0; index < last_index; index++) {
933 size_t prefix_length = prefix_buffer->
length;
934 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
935 pm_buffer_concat(output_buffer, prefix_buffer);
937 if (index == last_index - 1) {
938 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
939 pm_buffer_append_string(prefix_buffer,
" ", 4);
941 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
942 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
945 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
locals.
nodes[index], prefix_buffer);
946 prefix_buffer->
length = prefix_length;
952 pm_buffer_concat(output_buffer, prefix_buffer);
953 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
955 if (location->
start == NULL) {
956 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
958 pm_buffer_append_byte(output_buffer,
' ');
959 prettyprint_location(output_buffer, parser, location);
960 pm_buffer_append_string(output_buffer,
" = \"", 4);
961 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
962 pm_buffer_append_string(output_buffer,
"\"\n", 2);
968 pm_buffer_concat(output_buffer, prefix_buffer);
969 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
971 if (location->
start == NULL) {
972 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
974 pm_buffer_append_byte(output_buffer,
' ');
975 prettyprint_location(output_buffer, parser, location);
976 pm_buffer_append_string(output_buffer,
" = \"", 4);
977 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
978 pm_buffer_append_string(output_buffer,
"\"\n", 2);
986 pm_buffer_append_string(output_buffer,
"@ BreakNode (location: ", 23);
987 prettyprint_location(output_buffer, parser, &node->
location);
988 pm_buffer_append_string(output_buffer,
")\n", 2);
992 pm_buffer_concat(output_buffer, prefix_buffer);
993 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
995 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
997 pm_buffer_append_byte(output_buffer,
'\n');
999 size_t prefix_length = prefix_buffer->
length;
1000 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1001 pm_buffer_concat(output_buffer, prefix_buffer);
1002 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
1003 prefix_buffer->
length = prefix_length;
1009 pm_buffer_concat(output_buffer, prefix_buffer);
1010 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
1012 pm_buffer_append_byte(output_buffer,
' ');
1013 prettyprint_location(output_buffer, parser, location);
1014 pm_buffer_append_string(output_buffer,
" = \"", 4);
1015 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1016 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1023 pm_buffer_append_string(output_buffer,
"@ CallAndWriteNode (location: ", 30);
1024 prettyprint_location(output_buffer, parser, &node->
location);
1025 pm_buffer_append_string(output_buffer,
")\n", 2);
1029 pm_buffer_concat(output_buffer, prefix_buffer);
1030 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
1033 if (found) pm_buffer_append_byte(output_buffer,
',');
1034 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1038 if (found) pm_buffer_append_byte(output_buffer,
',');
1039 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1043 if (found) pm_buffer_append_byte(output_buffer,
',');
1044 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1047 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
1048 pm_buffer_append_byte(output_buffer,
'\n');
1053 pm_buffer_concat(output_buffer, prefix_buffer);
1054 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
1056 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1058 pm_buffer_append_byte(output_buffer,
'\n');
1060 size_t prefix_length = prefix_buffer->
length;
1061 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1062 pm_buffer_concat(output_buffer, prefix_buffer);
1063 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1064 prefix_buffer->
length = prefix_length;
1070 pm_buffer_concat(output_buffer, prefix_buffer);
1071 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
1073 if (location->
start == NULL) {
1074 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1076 pm_buffer_append_byte(output_buffer,
' ');
1077 prettyprint_location(output_buffer, parser, location);
1078 pm_buffer_append_string(output_buffer,
" = \"", 4);
1079 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1080 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1086 pm_buffer_concat(output_buffer, prefix_buffer);
1087 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 message_loc:", 22);
1089 if (location->
start == NULL) {
1090 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1092 pm_buffer_append_byte(output_buffer,
' ');
1093 prettyprint_location(output_buffer, parser, location);
1094 pm_buffer_append_string(output_buffer,
" = \"", 4);
1095 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1096 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1102 pm_buffer_concat(output_buffer, prefix_buffer);
1103 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 read_name:", 20);
1104 pm_buffer_append_byte(output_buffer,
' ');
1105 prettyprint_constant(output_buffer, parser, cast->
read_name);
1106 pm_buffer_append_byte(output_buffer,
'\n');
1111 pm_buffer_concat(output_buffer, prefix_buffer);
1112 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 write_name:", 21);
1113 pm_buffer_append_byte(output_buffer,
' ');
1114 prettyprint_constant(output_buffer, parser, cast->
write_name);
1115 pm_buffer_append_byte(output_buffer,
'\n');
1120 pm_buffer_concat(output_buffer, prefix_buffer);
1121 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
1123 pm_buffer_append_byte(output_buffer,
' ');
1124 prettyprint_location(output_buffer, parser, location);
1125 pm_buffer_append_string(output_buffer,
" = \"", 4);
1126 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1127 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1132 pm_buffer_concat(output_buffer, prefix_buffer);
1133 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
1134 pm_buffer_append_byte(output_buffer,
'\n');
1136 size_t prefix_length = prefix_buffer->
length;
1137 pm_buffer_append_string(prefix_buffer,
" ", 4);
1138 pm_buffer_concat(output_buffer, prefix_buffer);
1139 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1140 prefix_buffer->
length = prefix_length;
1147 pm_buffer_append_string(output_buffer,
"@ CallNode (location: ", 22);
1148 prettyprint_location(output_buffer, parser, &node->
location);
1149 pm_buffer_append_string(output_buffer,
")\n", 2);
1153 pm_buffer_concat(output_buffer, prefix_buffer);
1154 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
1157 if (found) pm_buffer_append_byte(output_buffer,
',');
1158 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1162 if (found) pm_buffer_append_byte(output_buffer,
',');
1163 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1167 if (found) pm_buffer_append_byte(output_buffer,
',');
1168 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1171 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
1172 pm_buffer_append_byte(output_buffer,
'\n');
1177 pm_buffer_concat(output_buffer, prefix_buffer);
1178 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
1180 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1182 pm_buffer_append_byte(output_buffer,
'\n');
1184 size_t prefix_length = prefix_buffer->
length;
1185 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1186 pm_buffer_concat(output_buffer, prefix_buffer);
1187 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1188 prefix_buffer->
length = prefix_length;
1194 pm_buffer_concat(output_buffer, prefix_buffer);
1195 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
1197 if (location->
start == NULL) {
1198 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1200 pm_buffer_append_byte(output_buffer,
' ');
1201 prettyprint_location(output_buffer, parser, location);
1202 pm_buffer_append_string(output_buffer,
" = \"", 4);
1203 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1204 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1210 pm_buffer_concat(output_buffer, prefix_buffer);
1211 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
1212 pm_buffer_append_byte(output_buffer,
' ');
1213 prettyprint_constant(output_buffer, parser, cast->
name);
1214 pm_buffer_append_byte(output_buffer,
'\n');
1219 pm_buffer_concat(output_buffer, prefix_buffer);
1220 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 message_loc:", 22);
1222 if (location->
start == NULL) {
1223 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1225 pm_buffer_append_byte(output_buffer,
' ');
1226 prettyprint_location(output_buffer, parser, location);
1227 pm_buffer_append_string(output_buffer,
" = \"", 4);
1228 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1229 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1235 pm_buffer_concat(output_buffer, prefix_buffer);
1236 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
1238 if (location->
start == NULL) {
1239 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1241 pm_buffer_append_byte(output_buffer,
' ');
1242 prettyprint_location(output_buffer, parser, location);
1243 pm_buffer_append_string(output_buffer,
" = \"", 4);
1244 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1245 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1251 pm_buffer_concat(output_buffer, prefix_buffer);
1252 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
1254 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1256 pm_buffer_append_byte(output_buffer,
'\n');
1258 size_t prefix_length = prefix_buffer->
length;
1259 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1260 pm_buffer_concat(output_buffer, prefix_buffer);
1261 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
1262 prefix_buffer->
length = prefix_length;
1268 pm_buffer_concat(output_buffer, prefix_buffer);
1269 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
1271 if (location->
start == NULL) {
1272 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1274 pm_buffer_append_byte(output_buffer,
' ');
1275 prettyprint_location(output_buffer, parser, location);
1276 pm_buffer_append_string(output_buffer,
" = \"", 4);
1277 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1278 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1284 pm_buffer_concat(output_buffer, prefix_buffer);
1285 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 block:", 16);
1286 if (cast->
block == NULL) {
1287 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1289 pm_buffer_append_byte(output_buffer,
'\n');
1291 size_t prefix_length = prefix_buffer->
length;
1292 pm_buffer_append_string(prefix_buffer,
" ", 4);
1293 pm_buffer_concat(output_buffer, prefix_buffer);
1294 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
1295 prefix_buffer->
length = prefix_length;
1303 pm_buffer_append_string(output_buffer,
"@ CallOperatorWriteNode (location: ", 35);
1304 prettyprint_location(output_buffer, parser, &node->
location);
1305 pm_buffer_append_string(output_buffer,
")\n", 2);
1309 pm_buffer_concat(output_buffer, prefix_buffer);
1310 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
1313 if (found) pm_buffer_append_byte(output_buffer,
',');
1314 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1318 if (found) pm_buffer_append_byte(output_buffer,
',');
1319 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1323 if (found) pm_buffer_append_byte(output_buffer,
',');
1324 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1327 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
1328 pm_buffer_append_byte(output_buffer,
'\n');
1333 pm_buffer_concat(output_buffer, prefix_buffer);
1334 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
1336 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1338 pm_buffer_append_byte(output_buffer,
'\n');
1340 size_t prefix_length = prefix_buffer->
length;
1341 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1342 pm_buffer_concat(output_buffer, prefix_buffer);
1343 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1344 prefix_buffer->
length = prefix_length;
1350 pm_buffer_concat(output_buffer, prefix_buffer);
1351 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
1353 if (location->
start == NULL) {
1354 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1356 pm_buffer_append_byte(output_buffer,
' ');
1357 prettyprint_location(output_buffer, parser, location);
1358 pm_buffer_append_string(output_buffer,
" = \"", 4);
1359 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1360 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1366 pm_buffer_concat(output_buffer, prefix_buffer);
1367 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 message_loc:", 22);
1369 if (location->
start == NULL) {
1370 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1372 pm_buffer_append_byte(output_buffer,
' ');
1373 prettyprint_location(output_buffer, parser, location);
1374 pm_buffer_append_string(output_buffer,
" = \"", 4);
1375 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1376 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1382 pm_buffer_concat(output_buffer, prefix_buffer);
1383 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 read_name:", 20);
1384 pm_buffer_append_byte(output_buffer,
' ');
1385 prettyprint_constant(output_buffer, parser, cast->
read_name);
1386 pm_buffer_append_byte(output_buffer,
'\n');
1391 pm_buffer_concat(output_buffer, prefix_buffer);
1392 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 write_name:", 21);
1393 pm_buffer_append_byte(output_buffer,
' ');
1394 prettyprint_constant(output_buffer, parser, cast->
write_name);
1395 pm_buffer_append_byte(output_buffer,
'\n');
1400 pm_buffer_concat(output_buffer, prefix_buffer);
1401 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator:", 19);
1402 pm_buffer_append_byte(output_buffer,
' ');
1403 prettyprint_constant(output_buffer, parser, cast->
operator);
1404 pm_buffer_append_byte(output_buffer,
'\n');
1409 pm_buffer_concat(output_buffer, prefix_buffer);
1410 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
1412 pm_buffer_append_byte(output_buffer,
' ');
1413 prettyprint_location(output_buffer, parser, location);
1414 pm_buffer_append_string(output_buffer,
" = \"", 4);
1415 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1416 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1421 pm_buffer_concat(output_buffer, prefix_buffer);
1422 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
1423 pm_buffer_append_byte(output_buffer,
'\n');
1425 size_t prefix_length = prefix_buffer->
length;
1426 pm_buffer_append_string(prefix_buffer,
" ", 4);
1427 pm_buffer_concat(output_buffer, prefix_buffer);
1428 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1429 prefix_buffer->
length = prefix_length;
1436 pm_buffer_append_string(output_buffer,
"@ CallOrWriteNode (location: ", 29);
1437 prettyprint_location(output_buffer, parser, &node->
location);
1438 pm_buffer_append_string(output_buffer,
")\n", 2);
1442 pm_buffer_concat(output_buffer, prefix_buffer);
1443 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
1446 if (found) pm_buffer_append_byte(output_buffer,
',');
1447 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1451 if (found) pm_buffer_append_byte(output_buffer,
',');
1452 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1456 if (found) pm_buffer_append_byte(output_buffer,
',');
1457 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1460 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
1461 pm_buffer_append_byte(output_buffer,
'\n');
1466 pm_buffer_concat(output_buffer, prefix_buffer);
1467 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
1469 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1471 pm_buffer_append_byte(output_buffer,
'\n');
1473 size_t prefix_length = prefix_buffer->
length;
1474 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1475 pm_buffer_concat(output_buffer, prefix_buffer);
1476 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1477 prefix_buffer->
length = prefix_length;
1483 pm_buffer_concat(output_buffer, prefix_buffer);
1484 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
1486 if (location->
start == NULL) {
1487 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1489 pm_buffer_append_byte(output_buffer,
' ');
1490 prettyprint_location(output_buffer, parser, location);
1491 pm_buffer_append_string(output_buffer,
" = \"", 4);
1492 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1493 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1499 pm_buffer_concat(output_buffer, prefix_buffer);
1500 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 message_loc:", 22);
1502 if (location->
start == NULL) {
1503 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1505 pm_buffer_append_byte(output_buffer,
' ');
1506 prettyprint_location(output_buffer, parser, location);
1507 pm_buffer_append_string(output_buffer,
" = \"", 4);
1508 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1509 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1515 pm_buffer_concat(output_buffer, prefix_buffer);
1516 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 read_name:", 20);
1517 pm_buffer_append_byte(output_buffer,
' ');
1518 prettyprint_constant(output_buffer, parser, cast->
read_name);
1519 pm_buffer_append_byte(output_buffer,
'\n');
1524 pm_buffer_concat(output_buffer, prefix_buffer);
1525 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 write_name:", 21);
1526 pm_buffer_append_byte(output_buffer,
' ');
1527 prettyprint_constant(output_buffer, parser, cast->
write_name);
1528 pm_buffer_append_byte(output_buffer,
'\n');
1533 pm_buffer_concat(output_buffer, prefix_buffer);
1534 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
1536 pm_buffer_append_byte(output_buffer,
' ');
1537 prettyprint_location(output_buffer, parser, location);
1538 pm_buffer_append_string(output_buffer,
" = \"", 4);
1539 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1540 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1545 pm_buffer_concat(output_buffer, prefix_buffer);
1546 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
1547 pm_buffer_append_byte(output_buffer,
'\n');
1549 size_t prefix_length = prefix_buffer->
length;
1550 pm_buffer_append_string(prefix_buffer,
" ", 4);
1551 pm_buffer_concat(output_buffer, prefix_buffer);
1552 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1553 prefix_buffer->
length = prefix_length;
1560 pm_buffer_append_string(output_buffer,
"@ CallTargetNode (location: ", 28);
1561 prettyprint_location(output_buffer, parser, &node->
location);
1562 pm_buffer_append_string(output_buffer,
")\n", 2);
1566 pm_buffer_concat(output_buffer, prefix_buffer);
1567 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
1570 if (found) pm_buffer_append_byte(output_buffer,
',');
1571 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1575 if (found) pm_buffer_append_byte(output_buffer,
',');
1576 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1580 if (found) pm_buffer_append_byte(output_buffer,
',');
1581 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1584 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
1585 pm_buffer_append_byte(output_buffer,
'\n');
1590 pm_buffer_concat(output_buffer, prefix_buffer);
1591 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
1592 pm_buffer_append_byte(output_buffer,
'\n');
1594 size_t prefix_length = prefix_buffer->
length;
1595 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1596 pm_buffer_concat(output_buffer, prefix_buffer);
1597 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1598 prefix_buffer->
length = prefix_length;
1603 pm_buffer_concat(output_buffer, prefix_buffer);
1604 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
1606 pm_buffer_append_byte(output_buffer,
' ');
1607 prettyprint_location(output_buffer, parser, location);
1608 pm_buffer_append_string(output_buffer,
" = \"", 4);
1609 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1610 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1615 pm_buffer_concat(output_buffer, prefix_buffer);
1616 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
1617 pm_buffer_append_byte(output_buffer,
' ');
1618 prettyprint_constant(output_buffer, parser, cast->
name);
1619 pm_buffer_append_byte(output_buffer,
'\n');
1624 pm_buffer_concat(output_buffer, prefix_buffer);
1625 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 message_loc:", 22);
1627 pm_buffer_append_byte(output_buffer,
' ');
1628 prettyprint_location(output_buffer, parser, location);
1629 pm_buffer_append_string(output_buffer,
" = \"", 4);
1630 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1631 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1638 pm_buffer_append_string(output_buffer,
"@ CapturePatternNode (location: ", 32);
1639 prettyprint_location(output_buffer, parser, &node->
location);
1640 pm_buffer_append_string(output_buffer,
")\n", 2);
1644 pm_buffer_concat(output_buffer, prefix_buffer);
1645 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
1646 pm_buffer_append_byte(output_buffer,
'\n');
1648 size_t prefix_length = prefix_buffer->
length;
1649 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1650 pm_buffer_concat(output_buffer, prefix_buffer);
1651 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1652 prefix_buffer->
length = prefix_length;
1657 pm_buffer_concat(output_buffer, prefix_buffer);
1658 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 target:", 17);
1659 pm_buffer_append_byte(output_buffer,
'\n');
1661 size_t prefix_length = prefix_buffer->
length;
1662 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1663 pm_buffer_concat(output_buffer, prefix_buffer);
1664 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
1665 prefix_buffer->
length = prefix_length;
1670 pm_buffer_concat(output_buffer, prefix_buffer);
1671 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
1673 pm_buffer_append_byte(output_buffer,
' ');
1674 prettyprint_location(output_buffer, parser, location);
1675 pm_buffer_append_string(output_buffer,
" = \"", 4);
1676 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1677 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1684 pm_buffer_append_string(output_buffer,
"@ CaseMatchNode (location: ", 27);
1685 prettyprint_location(output_buffer, parser, &node->
location);
1686 pm_buffer_append_string(output_buffer,
")\n", 2);
1690 pm_buffer_concat(output_buffer, prefix_buffer);
1691 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 predicate:", 20);
1693 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1695 pm_buffer_append_byte(output_buffer,
'\n');
1697 size_t prefix_length = prefix_buffer->
length;
1698 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1699 pm_buffer_concat(output_buffer, prefix_buffer);
1700 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
1701 prefix_buffer->
length = prefix_length;
1707 pm_buffer_concat(output_buffer, prefix_buffer);
1708 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conditions:", 21);
1709 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
conditions.
size));
1712 for (uint32_t index = 0; index < last_index; index++) {
1713 size_t prefix_length = prefix_buffer->
length;
1714 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1715 pm_buffer_concat(output_buffer, prefix_buffer);
1717 if (index == last_index - 1) {
1718 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
1719 pm_buffer_append_string(prefix_buffer,
" ", 4);
1721 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
1722 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1726 prefix_buffer->
length = prefix_length;
1732 pm_buffer_concat(output_buffer, prefix_buffer);
1733 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 consequent:", 21);
1735 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1737 pm_buffer_append_byte(output_buffer,
'\n');
1739 size_t prefix_length = prefix_buffer->
length;
1740 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1741 pm_buffer_concat(output_buffer, prefix_buffer);
1743 prefix_buffer->
length = prefix_length;
1749 pm_buffer_concat(output_buffer, prefix_buffer);
1750 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 case_keyword_loc:", 27);
1752 pm_buffer_append_byte(output_buffer,
' ');
1753 prettyprint_location(output_buffer, parser, location);
1754 pm_buffer_append_string(output_buffer,
" = \"", 4);
1755 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1756 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1761 pm_buffer_concat(output_buffer, prefix_buffer);
1762 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
1764 pm_buffer_append_byte(output_buffer,
' ');
1765 prettyprint_location(output_buffer, parser, location);
1766 pm_buffer_append_string(output_buffer,
" = \"", 4);
1767 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1768 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1775 pm_buffer_append_string(output_buffer,
"@ CaseNode (location: ", 22);
1776 prettyprint_location(output_buffer, parser, &node->
location);
1777 pm_buffer_append_string(output_buffer,
")\n", 2);
1781 pm_buffer_concat(output_buffer, prefix_buffer);
1782 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 predicate:", 20);
1784 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1786 pm_buffer_append_byte(output_buffer,
'\n');
1788 size_t prefix_length = prefix_buffer->
length;
1789 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1790 pm_buffer_concat(output_buffer, prefix_buffer);
1791 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
1792 prefix_buffer->
length = prefix_length;
1798 pm_buffer_concat(output_buffer, prefix_buffer);
1799 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conditions:", 21);
1800 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
conditions.
size));
1803 for (uint32_t index = 0; index < last_index; index++) {
1804 size_t prefix_length = prefix_buffer->
length;
1805 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1806 pm_buffer_concat(output_buffer, prefix_buffer);
1808 if (index == last_index - 1) {
1809 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
1810 pm_buffer_append_string(prefix_buffer,
" ", 4);
1812 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
1813 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1817 prefix_buffer->
length = prefix_length;
1823 pm_buffer_concat(output_buffer, prefix_buffer);
1824 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 consequent:", 21);
1826 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1828 pm_buffer_append_byte(output_buffer,
'\n');
1830 size_t prefix_length = prefix_buffer->
length;
1831 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1832 pm_buffer_concat(output_buffer, prefix_buffer);
1834 prefix_buffer->
length = prefix_length;
1840 pm_buffer_concat(output_buffer, prefix_buffer);
1841 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 case_keyword_loc:", 27);
1843 pm_buffer_append_byte(output_buffer,
' ');
1844 prettyprint_location(output_buffer, parser, location);
1845 pm_buffer_append_string(output_buffer,
" = \"", 4);
1846 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1847 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1852 pm_buffer_concat(output_buffer, prefix_buffer);
1853 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
1855 pm_buffer_append_byte(output_buffer,
' ');
1856 prettyprint_location(output_buffer, parser, location);
1857 pm_buffer_append_string(output_buffer,
" = \"", 4);
1858 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1859 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1866 pm_buffer_append_string(output_buffer,
"@ ClassNode (location: ", 23);
1867 prettyprint_location(output_buffer, parser, &node->
location);
1868 pm_buffer_append_string(output_buffer,
")\n", 2);
1872 pm_buffer_concat(output_buffer, prefix_buffer);
1873 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
1874 pm_buffer_append_string(output_buffer,
" [", 2);
1875 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
1876 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
1877 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
1879 pm_buffer_append_string(output_buffer,
"]\n", 2);
1884 pm_buffer_concat(output_buffer, prefix_buffer);
1885 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 class_keyword_loc:", 28);
1887 pm_buffer_append_byte(output_buffer,
' ');
1888 prettyprint_location(output_buffer, parser, location);
1889 pm_buffer_append_string(output_buffer,
" = \"", 4);
1890 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1891 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1896 pm_buffer_concat(output_buffer, prefix_buffer);
1897 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 constant_path:", 24);
1898 pm_buffer_append_byte(output_buffer,
'\n');
1900 size_t prefix_length = prefix_buffer->
length;
1901 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1902 pm_buffer_concat(output_buffer, prefix_buffer);
1904 prefix_buffer->
length = prefix_length;
1909 pm_buffer_concat(output_buffer, prefix_buffer);
1910 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 inheritance_operator_loc:", 35);
1912 if (location->
start == NULL) {
1913 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1915 pm_buffer_append_byte(output_buffer,
' ');
1916 prettyprint_location(output_buffer, parser, location);
1917 pm_buffer_append_string(output_buffer,
" = \"", 4);
1918 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1919 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1925 pm_buffer_concat(output_buffer, prefix_buffer);
1926 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 superclass:", 21);
1928 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1930 pm_buffer_append_byte(output_buffer,
'\n');
1932 size_t prefix_length = prefix_buffer->
length;
1933 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1934 pm_buffer_concat(output_buffer, prefix_buffer);
1936 prefix_buffer->
length = prefix_length;
1942 pm_buffer_concat(output_buffer, prefix_buffer);
1943 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 body:", 15);
1944 if (cast->
body == NULL) {
1945 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
1947 pm_buffer_append_byte(output_buffer,
'\n');
1949 size_t prefix_length = prefix_buffer->
length;
1950 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
1951 pm_buffer_concat(output_buffer, prefix_buffer);
1952 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
1953 prefix_buffer->
length = prefix_length;
1959 pm_buffer_concat(output_buffer, prefix_buffer);
1960 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
1962 pm_buffer_append_byte(output_buffer,
' ');
1963 prettyprint_location(output_buffer, parser, location);
1964 pm_buffer_append_string(output_buffer,
" = \"", 4);
1965 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
1966 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1971 pm_buffer_concat(output_buffer, prefix_buffer);
1972 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
1973 pm_buffer_append_byte(output_buffer,
' ');
1974 prettyprint_constant(output_buffer, parser, cast->
name);
1975 pm_buffer_append_byte(output_buffer,
'\n');
1982 pm_buffer_append_string(output_buffer,
"@ ClassVariableAndWriteNode (location: ", 39);
1983 prettyprint_location(output_buffer, parser, &node->
location);
1984 pm_buffer_append_string(output_buffer,
")\n", 2);
1988 pm_buffer_concat(output_buffer, prefix_buffer);
1989 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
1990 pm_buffer_append_byte(output_buffer,
' ');
1991 prettyprint_constant(output_buffer, parser, cast->
name);
1992 pm_buffer_append_byte(output_buffer,
'\n');
1997 pm_buffer_concat(output_buffer, prefix_buffer);
1998 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2000 pm_buffer_append_byte(output_buffer,
' ');
2001 prettyprint_location(output_buffer, parser, location);
2002 pm_buffer_append_string(output_buffer,
" = \"", 4);
2003 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2004 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2009 pm_buffer_concat(output_buffer, prefix_buffer);
2010 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2012 pm_buffer_append_byte(output_buffer,
' ');
2013 prettyprint_location(output_buffer, parser, location);
2014 pm_buffer_append_string(output_buffer,
" = \"", 4);
2015 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2016 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2021 pm_buffer_concat(output_buffer, prefix_buffer);
2022 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2023 pm_buffer_append_byte(output_buffer,
'\n');
2025 size_t prefix_length = prefix_buffer->
length;
2026 pm_buffer_append_string(prefix_buffer,
" ", 4);
2027 pm_buffer_concat(output_buffer, prefix_buffer);
2028 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2029 prefix_buffer->
length = prefix_length;
2036 pm_buffer_append_string(output_buffer,
"@ ClassVariableOperatorWriteNode (location: ", 44);
2037 prettyprint_location(output_buffer, parser, &node->
location);
2038 pm_buffer_append_string(output_buffer,
")\n", 2);
2042 pm_buffer_concat(output_buffer, prefix_buffer);
2043 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2044 pm_buffer_append_byte(output_buffer,
' ');
2045 prettyprint_constant(output_buffer, parser, cast->
name);
2046 pm_buffer_append_byte(output_buffer,
'\n');
2051 pm_buffer_concat(output_buffer, prefix_buffer);
2052 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2054 pm_buffer_append_byte(output_buffer,
' ');
2055 prettyprint_location(output_buffer, parser, location);
2056 pm_buffer_append_string(output_buffer,
" = \"", 4);
2057 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2058 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2063 pm_buffer_concat(output_buffer, prefix_buffer);
2064 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2066 pm_buffer_append_byte(output_buffer,
' ');
2067 prettyprint_location(output_buffer, parser, location);
2068 pm_buffer_append_string(output_buffer,
" = \"", 4);
2069 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2070 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2075 pm_buffer_concat(output_buffer, prefix_buffer);
2076 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
2077 pm_buffer_append_byte(output_buffer,
'\n');
2079 size_t prefix_length = prefix_buffer->
length;
2080 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2081 pm_buffer_concat(output_buffer, prefix_buffer);
2082 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2083 prefix_buffer->
length = prefix_length;
2088 pm_buffer_concat(output_buffer, prefix_buffer);
2089 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator:", 19);
2090 pm_buffer_append_byte(output_buffer,
' ');
2091 prettyprint_constant(output_buffer, parser, cast->
operator);
2092 pm_buffer_append_byte(output_buffer,
'\n');
2099 pm_buffer_append_string(output_buffer,
"@ ClassVariableOrWriteNode (location: ", 38);
2100 prettyprint_location(output_buffer, parser, &node->
location);
2101 pm_buffer_append_string(output_buffer,
")\n", 2);
2105 pm_buffer_concat(output_buffer, prefix_buffer);
2106 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2107 pm_buffer_append_byte(output_buffer,
' ');
2108 prettyprint_constant(output_buffer, parser, cast->
name);
2109 pm_buffer_append_byte(output_buffer,
'\n');
2114 pm_buffer_concat(output_buffer, prefix_buffer);
2115 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2117 pm_buffer_append_byte(output_buffer,
' ');
2118 prettyprint_location(output_buffer, parser, location);
2119 pm_buffer_append_string(output_buffer,
" = \"", 4);
2120 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2121 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2126 pm_buffer_concat(output_buffer, prefix_buffer);
2127 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2129 pm_buffer_append_byte(output_buffer,
' ');
2130 prettyprint_location(output_buffer, parser, location);
2131 pm_buffer_append_string(output_buffer,
" = \"", 4);
2132 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2133 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2138 pm_buffer_concat(output_buffer, prefix_buffer);
2139 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2140 pm_buffer_append_byte(output_buffer,
'\n');
2142 size_t prefix_length = prefix_buffer->
length;
2143 pm_buffer_append_string(prefix_buffer,
" ", 4);
2144 pm_buffer_concat(output_buffer, prefix_buffer);
2145 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2146 prefix_buffer->
length = prefix_length;
2153 pm_buffer_append_string(output_buffer,
"@ ClassVariableReadNode (location: ", 35);
2154 prettyprint_location(output_buffer, parser, &node->
location);
2155 pm_buffer_append_string(output_buffer,
")\n", 2);
2159 pm_buffer_concat(output_buffer, prefix_buffer);
2160 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
2161 pm_buffer_append_byte(output_buffer,
' ');
2162 prettyprint_constant(output_buffer, parser, cast->
name);
2163 pm_buffer_append_byte(output_buffer,
'\n');
2170 pm_buffer_append_string(output_buffer,
"@ ClassVariableTargetNode (location: ", 37);
2171 prettyprint_location(output_buffer, parser, &node->
location);
2172 pm_buffer_append_string(output_buffer,
")\n", 2);
2176 pm_buffer_concat(output_buffer, prefix_buffer);
2177 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
2178 pm_buffer_append_byte(output_buffer,
' ');
2179 prettyprint_constant(output_buffer, parser, cast->
name);
2180 pm_buffer_append_byte(output_buffer,
'\n');
2187 pm_buffer_append_string(output_buffer,
"@ ClassVariableWriteNode (location: ", 36);
2188 prettyprint_location(output_buffer, parser, &node->
location);
2189 pm_buffer_append_string(output_buffer,
")\n", 2);
2193 pm_buffer_concat(output_buffer, prefix_buffer);
2194 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2195 pm_buffer_append_byte(output_buffer,
' ');
2196 prettyprint_constant(output_buffer, parser, cast->
name);
2197 pm_buffer_append_byte(output_buffer,
'\n');
2202 pm_buffer_concat(output_buffer, prefix_buffer);
2203 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2205 pm_buffer_append_byte(output_buffer,
' ');
2206 prettyprint_location(output_buffer, parser, location);
2207 pm_buffer_append_string(output_buffer,
" = \"", 4);
2208 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2209 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2214 pm_buffer_concat(output_buffer, prefix_buffer);
2215 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
2216 pm_buffer_append_byte(output_buffer,
'\n');
2218 size_t prefix_length = prefix_buffer->
length;
2219 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2220 pm_buffer_concat(output_buffer, prefix_buffer);
2221 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2222 prefix_buffer->
length = prefix_length;
2227 pm_buffer_concat(output_buffer, prefix_buffer);
2228 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2230 if (location->
start == NULL) {
2231 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2233 pm_buffer_append_byte(output_buffer,
' ');
2234 prettyprint_location(output_buffer, parser, location);
2235 pm_buffer_append_string(output_buffer,
" = \"", 4);
2236 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2237 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2245 pm_buffer_append_string(output_buffer,
"@ ConstantAndWriteNode (location: ", 34);
2246 prettyprint_location(output_buffer, parser, &node->
location);
2247 pm_buffer_append_string(output_buffer,
")\n", 2);
2251 pm_buffer_concat(output_buffer, prefix_buffer);
2252 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2253 pm_buffer_append_byte(output_buffer,
' ');
2254 prettyprint_constant(output_buffer, parser, cast->
name);
2255 pm_buffer_append_byte(output_buffer,
'\n');
2260 pm_buffer_concat(output_buffer, prefix_buffer);
2261 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2263 pm_buffer_append_byte(output_buffer,
' ');
2264 prettyprint_location(output_buffer, parser, location);
2265 pm_buffer_append_string(output_buffer,
" = \"", 4);
2266 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2267 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2272 pm_buffer_concat(output_buffer, prefix_buffer);
2273 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2275 pm_buffer_append_byte(output_buffer,
' ');
2276 prettyprint_location(output_buffer, parser, location);
2277 pm_buffer_append_string(output_buffer,
" = \"", 4);
2278 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2279 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2284 pm_buffer_concat(output_buffer, prefix_buffer);
2285 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2286 pm_buffer_append_byte(output_buffer,
'\n');
2288 size_t prefix_length = prefix_buffer->
length;
2289 pm_buffer_append_string(prefix_buffer,
" ", 4);
2290 pm_buffer_concat(output_buffer, prefix_buffer);
2291 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2292 prefix_buffer->
length = prefix_length;
2299 pm_buffer_append_string(output_buffer,
"@ ConstantOperatorWriteNode (location: ", 39);
2300 prettyprint_location(output_buffer, parser, &node->
location);
2301 pm_buffer_append_string(output_buffer,
")\n", 2);
2305 pm_buffer_concat(output_buffer, prefix_buffer);
2306 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2307 pm_buffer_append_byte(output_buffer,
' ');
2308 prettyprint_constant(output_buffer, parser, cast->
name);
2309 pm_buffer_append_byte(output_buffer,
'\n');
2314 pm_buffer_concat(output_buffer, prefix_buffer);
2315 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2317 pm_buffer_append_byte(output_buffer,
' ');
2318 prettyprint_location(output_buffer, parser, location);
2319 pm_buffer_append_string(output_buffer,
" = \"", 4);
2320 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2321 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2326 pm_buffer_concat(output_buffer, prefix_buffer);
2327 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2329 pm_buffer_append_byte(output_buffer,
' ');
2330 prettyprint_location(output_buffer, parser, location);
2331 pm_buffer_append_string(output_buffer,
" = \"", 4);
2332 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2333 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2338 pm_buffer_concat(output_buffer, prefix_buffer);
2339 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
2340 pm_buffer_append_byte(output_buffer,
'\n');
2342 size_t prefix_length = prefix_buffer->
length;
2343 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2344 pm_buffer_concat(output_buffer, prefix_buffer);
2345 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2346 prefix_buffer->
length = prefix_length;
2351 pm_buffer_concat(output_buffer, prefix_buffer);
2352 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator:", 19);
2353 pm_buffer_append_byte(output_buffer,
' ');
2354 prettyprint_constant(output_buffer, parser, cast->
operator);
2355 pm_buffer_append_byte(output_buffer,
'\n');
2362 pm_buffer_append_string(output_buffer,
"@ ConstantOrWriteNode (location: ", 33);
2363 prettyprint_location(output_buffer, parser, &node->
location);
2364 pm_buffer_append_string(output_buffer,
")\n", 2);
2368 pm_buffer_concat(output_buffer, prefix_buffer);
2369 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2370 pm_buffer_append_byte(output_buffer,
' ');
2371 prettyprint_constant(output_buffer, parser, cast->
name);
2372 pm_buffer_append_byte(output_buffer,
'\n');
2377 pm_buffer_concat(output_buffer, prefix_buffer);
2378 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2380 pm_buffer_append_byte(output_buffer,
' ');
2381 prettyprint_location(output_buffer, parser, location);
2382 pm_buffer_append_string(output_buffer,
" = \"", 4);
2383 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2384 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2389 pm_buffer_concat(output_buffer, prefix_buffer);
2390 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2392 pm_buffer_append_byte(output_buffer,
' ');
2393 prettyprint_location(output_buffer, parser, location);
2394 pm_buffer_append_string(output_buffer,
" = \"", 4);
2395 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2396 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2401 pm_buffer_concat(output_buffer, prefix_buffer);
2402 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2403 pm_buffer_append_byte(output_buffer,
'\n');
2405 size_t prefix_length = prefix_buffer->
length;
2406 pm_buffer_append_string(prefix_buffer,
" ", 4);
2407 pm_buffer_concat(output_buffer, prefix_buffer);
2408 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2409 prefix_buffer->
length = prefix_length;
2416 pm_buffer_append_string(output_buffer,
"@ ConstantPathAndWriteNode (location: ", 38);
2417 prettyprint_location(output_buffer, parser, &node->
location);
2418 pm_buffer_append_string(output_buffer,
")\n", 2);
2422 pm_buffer_concat(output_buffer, prefix_buffer);
2423 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 target:", 17);
2424 pm_buffer_append_byte(output_buffer,
'\n');
2426 size_t prefix_length = prefix_buffer->
length;
2427 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2428 pm_buffer_concat(output_buffer, prefix_buffer);
2429 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2430 prefix_buffer->
length = prefix_length;
2435 pm_buffer_concat(output_buffer, prefix_buffer);
2436 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2438 pm_buffer_append_byte(output_buffer,
' ');
2439 prettyprint_location(output_buffer, parser, location);
2440 pm_buffer_append_string(output_buffer,
" = \"", 4);
2441 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2442 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2447 pm_buffer_concat(output_buffer, prefix_buffer);
2448 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2449 pm_buffer_append_byte(output_buffer,
'\n');
2451 size_t prefix_length = prefix_buffer->
length;
2452 pm_buffer_append_string(prefix_buffer,
" ", 4);
2453 pm_buffer_concat(output_buffer, prefix_buffer);
2454 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2455 prefix_buffer->
length = prefix_length;
2462 pm_buffer_append_string(output_buffer,
"@ ConstantPathNode (location: ", 30);
2463 prettyprint_location(output_buffer, parser, &node->
location);
2464 pm_buffer_append_string(output_buffer,
")\n", 2);
2468 pm_buffer_concat(output_buffer, prefix_buffer);
2469 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parent:", 17);
2470 if (cast->
parent == NULL) {
2471 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2473 pm_buffer_append_byte(output_buffer,
'\n');
2475 size_t prefix_length = prefix_buffer->
length;
2476 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2477 pm_buffer_concat(output_buffer, prefix_buffer);
2478 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parent, prefix_buffer);
2479 prefix_buffer->
length = prefix_length;
2485 pm_buffer_concat(output_buffer, prefix_buffer);
2486 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 child:", 16);
2487 pm_buffer_append_byte(output_buffer,
'\n');
2489 size_t prefix_length = prefix_buffer->
length;
2490 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2491 pm_buffer_concat(output_buffer, prefix_buffer);
2492 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
child, prefix_buffer);
2493 prefix_buffer->
length = prefix_length;
2498 pm_buffer_concat(output_buffer, prefix_buffer);
2499 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 delimiter_loc:", 24);
2501 pm_buffer_append_byte(output_buffer,
' ');
2502 prettyprint_location(output_buffer, parser, location);
2503 pm_buffer_append_string(output_buffer,
" = \"", 4);
2504 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2505 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2512 pm_buffer_append_string(output_buffer,
"@ ConstantPathOperatorWriteNode (location: ", 43);
2513 prettyprint_location(output_buffer, parser, &node->
location);
2514 pm_buffer_append_string(output_buffer,
")\n", 2);
2518 pm_buffer_concat(output_buffer, prefix_buffer);
2519 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 target:", 17);
2520 pm_buffer_append_byte(output_buffer,
'\n');
2522 size_t prefix_length = prefix_buffer->
length;
2523 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2524 pm_buffer_concat(output_buffer, prefix_buffer);
2525 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2526 prefix_buffer->
length = prefix_length;
2531 pm_buffer_concat(output_buffer, prefix_buffer);
2532 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2534 pm_buffer_append_byte(output_buffer,
' ');
2535 prettyprint_location(output_buffer, parser, location);
2536 pm_buffer_append_string(output_buffer,
" = \"", 4);
2537 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2538 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2543 pm_buffer_concat(output_buffer, prefix_buffer);
2544 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
2545 pm_buffer_append_byte(output_buffer,
'\n');
2547 size_t prefix_length = prefix_buffer->
length;
2548 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2549 pm_buffer_concat(output_buffer, prefix_buffer);
2550 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2551 prefix_buffer->
length = prefix_length;
2556 pm_buffer_concat(output_buffer, prefix_buffer);
2557 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator:", 19);
2558 pm_buffer_append_byte(output_buffer,
' ');
2559 prettyprint_constant(output_buffer, parser, cast->
operator);
2560 pm_buffer_append_byte(output_buffer,
'\n');
2567 pm_buffer_append_string(output_buffer,
"@ ConstantPathOrWriteNode (location: ", 37);
2568 prettyprint_location(output_buffer, parser, &node->
location);
2569 pm_buffer_append_string(output_buffer,
")\n", 2);
2573 pm_buffer_concat(output_buffer, prefix_buffer);
2574 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 target:", 17);
2575 pm_buffer_append_byte(output_buffer,
'\n');
2577 size_t prefix_length = prefix_buffer->
length;
2578 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2579 pm_buffer_concat(output_buffer, prefix_buffer);
2580 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2581 prefix_buffer->
length = prefix_length;
2586 pm_buffer_concat(output_buffer, prefix_buffer);
2587 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2589 pm_buffer_append_byte(output_buffer,
' ');
2590 prettyprint_location(output_buffer, parser, location);
2591 pm_buffer_append_string(output_buffer,
" = \"", 4);
2592 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2593 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2598 pm_buffer_concat(output_buffer, prefix_buffer);
2599 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2600 pm_buffer_append_byte(output_buffer,
'\n');
2602 size_t prefix_length = prefix_buffer->
length;
2603 pm_buffer_append_string(prefix_buffer,
" ", 4);
2604 pm_buffer_concat(output_buffer, prefix_buffer);
2605 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2606 prefix_buffer->
length = prefix_length;
2613 pm_buffer_append_string(output_buffer,
"@ ConstantPathTargetNode (location: ", 36);
2614 prettyprint_location(output_buffer, parser, &node->
location);
2615 pm_buffer_append_string(output_buffer,
")\n", 2);
2619 pm_buffer_concat(output_buffer, prefix_buffer);
2620 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parent:", 17);
2621 if (cast->
parent == NULL) {
2622 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2624 pm_buffer_append_byte(output_buffer,
'\n');
2626 size_t prefix_length = prefix_buffer->
length;
2627 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2628 pm_buffer_concat(output_buffer, prefix_buffer);
2629 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parent, prefix_buffer);
2630 prefix_buffer->
length = prefix_length;
2636 pm_buffer_concat(output_buffer, prefix_buffer);
2637 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 child:", 16);
2638 pm_buffer_append_byte(output_buffer,
'\n');
2640 size_t prefix_length = prefix_buffer->
length;
2641 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2642 pm_buffer_concat(output_buffer, prefix_buffer);
2643 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
child, prefix_buffer);
2644 prefix_buffer->
length = prefix_length;
2649 pm_buffer_concat(output_buffer, prefix_buffer);
2650 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 delimiter_loc:", 24);
2652 pm_buffer_append_byte(output_buffer,
' ');
2653 prettyprint_location(output_buffer, parser, location);
2654 pm_buffer_append_string(output_buffer,
" = \"", 4);
2655 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2656 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2663 pm_buffer_append_string(output_buffer,
"@ ConstantPathWriteNode (location: ", 35);
2664 prettyprint_location(output_buffer, parser, &node->
location);
2665 pm_buffer_append_string(output_buffer,
")\n", 2);
2669 pm_buffer_concat(output_buffer, prefix_buffer);
2670 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 target:", 17);
2671 pm_buffer_append_byte(output_buffer,
'\n');
2673 size_t prefix_length = prefix_buffer->
length;
2674 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2675 pm_buffer_concat(output_buffer, prefix_buffer);
2676 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2677 prefix_buffer->
length = prefix_length;
2682 pm_buffer_concat(output_buffer, prefix_buffer);
2683 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2685 pm_buffer_append_byte(output_buffer,
' ');
2686 prettyprint_location(output_buffer, parser, location);
2687 pm_buffer_append_string(output_buffer,
" = \"", 4);
2688 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2689 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2694 pm_buffer_concat(output_buffer, prefix_buffer);
2695 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
2696 pm_buffer_append_byte(output_buffer,
'\n');
2698 size_t prefix_length = prefix_buffer->
length;
2699 pm_buffer_append_string(prefix_buffer,
" ", 4);
2700 pm_buffer_concat(output_buffer, prefix_buffer);
2701 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2702 prefix_buffer->
length = prefix_length;
2709 pm_buffer_append_string(output_buffer,
"@ ConstantReadNode (location: ", 30);
2710 prettyprint_location(output_buffer, parser, &node->
location);
2711 pm_buffer_append_string(output_buffer,
")\n", 2);
2715 pm_buffer_concat(output_buffer, prefix_buffer);
2716 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
2717 pm_buffer_append_byte(output_buffer,
' ');
2718 prettyprint_constant(output_buffer, parser, cast->
name);
2719 pm_buffer_append_byte(output_buffer,
'\n');
2726 pm_buffer_append_string(output_buffer,
"@ ConstantTargetNode (location: ", 32);
2727 prettyprint_location(output_buffer, parser, &node->
location);
2728 pm_buffer_append_string(output_buffer,
")\n", 2);
2732 pm_buffer_concat(output_buffer, prefix_buffer);
2733 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
2734 pm_buffer_append_byte(output_buffer,
' ');
2735 prettyprint_constant(output_buffer, parser, cast->
name);
2736 pm_buffer_append_byte(output_buffer,
'\n');
2743 pm_buffer_append_string(output_buffer,
"@ ConstantWriteNode (location: ", 31);
2744 prettyprint_location(output_buffer, parser, &node->
location);
2745 pm_buffer_append_string(output_buffer,
")\n", 2);
2749 pm_buffer_concat(output_buffer, prefix_buffer);
2750 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2751 pm_buffer_append_byte(output_buffer,
' ');
2752 prettyprint_constant(output_buffer, parser, cast->
name);
2753 pm_buffer_append_byte(output_buffer,
'\n');
2758 pm_buffer_concat(output_buffer, prefix_buffer);
2759 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2761 pm_buffer_append_byte(output_buffer,
' ');
2762 prettyprint_location(output_buffer, parser, location);
2763 pm_buffer_append_string(output_buffer,
" = \"", 4);
2764 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2765 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2770 pm_buffer_concat(output_buffer, prefix_buffer);
2771 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
2772 pm_buffer_append_byte(output_buffer,
'\n');
2774 size_t prefix_length = prefix_buffer->
length;
2775 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2776 pm_buffer_concat(output_buffer, prefix_buffer);
2777 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2778 prefix_buffer->
length = prefix_length;
2783 pm_buffer_concat(output_buffer, prefix_buffer);
2784 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2786 pm_buffer_append_byte(output_buffer,
' ');
2787 prettyprint_location(output_buffer, parser, location);
2788 pm_buffer_append_string(output_buffer,
" = \"", 4);
2789 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2790 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2797 pm_buffer_append_string(output_buffer,
"@ DefNode (location: ", 21);
2798 prettyprint_location(output_buffer, parser, &node->
location);
2799 pm_buffer_append_string(output_buffer,
")\n", 2);
2803 pm_buffer_concat(output_buffer, prefix_buffer);
2804 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
2805 pm_buffer_append_byte(output_buffer,
' ');
2806 prettyprint_constant(output_buffer, parser, cast->
name);
2807 pm_buffer_append_byte(output_buffer,
'\n');
2812 pm_buffer_concat(output_buffer, prefix_buffer);
2813 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
2815 pm_buffer_append_byte(output_buffer,
' ');
2816 prettyprint_location(output_buffer, parser, location);
2817 pm_buffer_append_string(output_buffer,
" = \"", 4);
2818 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2819 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2824 pm_buffer_concat(output_buffer, prefix_buffer);
2825 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
2827 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2829 pm_buffer_append_byte(output_buffer,
'\n');
2831 size_t prefix_length = prefix_buffer->
length;
2832 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2833 pm_buffer_concat(output_buffer, prefix_buffer);
2834 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
2835 prefix_buffer->
length = prefix_length;
2841 pm_buffer_concat(output_buffer, prefix_buffer);
2842 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parameters:", 21);
2844 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2846 pm_buffer_append_byte(output_buffer,
'\n');
2848 size_t prefix_length = prefix_buffer->
length;
2849 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2850 pm_buffer_concat(output_buffer, prefix_buffer);
2852 prefix_buffer->
length = prefix_length;
2858 pm_buffer_concat(output_buffer, prefix_buffer);
2859 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 body:", 15);
2860 if (cast->
body == NULL) {
2861 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2863 pm_buffer_append_byte(output_buffer,
'\n');
2865 size_t prefix_length = prefix_buffer->
length;
2866 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
2867 pm_buffer_concat(output_buffer, prefix_buffer);
2868 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
2869 prefix_buffer->
length = prefix_length;
2875 pm_buffer_concat(output_buffer, prefix_buffer);
2876 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
2877 pm_buffer_append_string(output_buffer,
" [", 2);
2878 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
2879 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
2880 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
2882 pm_buffer_append_string(output_buffer,
"]\n", 2);
2887 pm_buffer_concat(output_buffer, prefix_buffer);
2888 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals_body_index:", 28);
2894 pm_buffer_concat(output_buffer, prefix_buffer);
2895 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 def_keyword_loc:", 26);
2897 pm_buffer_append_byte(output_buffer,
' ');
2898 prettyprint_location(output_buffer, parser, location);
2899 pm_buffer_append_string(output_buffer,
" = \"", 4);
2900 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2901 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2906 pm_buffer_concat(output_buffer, prefix_buffer);
2907 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
2909 if (location->
start == NULL) {
2910 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2912 pm_buffer_append_byte(output_buffer,
' ');
2913 prettyprint_location(output_buffer, parser, location);
2914 pm_buffer_append_string(output_buffer,
" = \"", 4);
2915 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2916 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2922 pm_buffer_concat(output_buffer, prefix_buffer);
2923 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
2925 if (location->
start == NULL) {
2926 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2928 pm_buffer_append_byte(output_buffer,
' ');
2929 prettyprint_location(output_buffer, parser, location);
2930 pm_buffer_append_string(output_buffer,
" = \"", 4);
2931 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2932 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2938 pm_buffer_concat(output_buffer, prefix_buffer);
2939 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
2941 if (location->
start == NULL) {
2942 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2944 pm_buffer_append_byte(output_buffer,
' ');
2945 prettyprint_location(output_buffer, parser, location);
2946 pm_buffer_append_string(output_buffer,
" = \"", 4);
2947 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2948 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2954 pm_buffer_concat(output_buffer, prefix_buffer);
2955 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 equal_loc:", 20);
2957 if (location->
start == NULL) {
2958 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2960 pm_buffer_append_byte(output_buffer,
' ');
2961 prettyprint_location(output_buffer, parser, location);
2962 pm_buffer_append_string(output_buffer,
" = \"", 4);
2963 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2964 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2970 pm_buffer_concat(output_buffer, prefix_buffer);
2971 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
2973 if (location->
start == NULL) {
2974 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
2976 pm_buffer_append_byte(output_buffer,
' ');
2977 prettyprint_location(output_buffer, parser, location);
2978 pm_buffer_append_string(output_buffer,
" = \"", 4);
2979 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
2980 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2988 pm_buffer_append_string(output_buffer,
"@ DefinedNode (location: ", 25);
2989 prettyprint_location(output_buffer, parser, &node->
location);
2990 pm_buffer_append_string(output_buffer,
")\n", 2);
2994 pm_buffer_concat(output_buffer, prefix_buffer);
2995 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
2997 if (location->
start == NULL) {
2998 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3000 pm_buffer_append_byte(output_buffer,
' ');
3001 prettyprint_location(output_buffer, parser, location);
3002 pm_buffer_append_string(output_buffer,
" = \"", 4);
3003 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3004 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3010 pm_buffer_concat(output_buffer, prefix_buffer);
3011 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
3012 pm_buffer_append_byte(output_buffer,
'\n');
3014 size_t prefix_length = prefix_buffer->
length;
3015 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3016 pm_buffer_concat(output_buffer, prefix_buffer);
3017 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3018 prefix_buffer->
length = prefix_length;
3023 pm_buffer_concat(output_buffer, prefix_buffer);
3024 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
3026 if (location->
start == NULL) {
3027 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3029 pm_buffer_append_byte(output_buffer,
' ');
3030 prettyprint_location(output_buffer, parser, location);
3031 pm_buffer_append_string(output_buffer,
" = \"", 4);
3032 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3033 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3039 pm_buffer_concat(output_buffer, prefix_buffer);
3040 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
3042 pm_buffer_append_byte(output_buffer,
' ');
3043 prettyprint_location(output_buffer, parser, location);
3044 pm_buffer_append_string(output_buffer,
" = \"", 4);
3045 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3046 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3053 pm_buffer_append_string(output_buffer,
"@ ElseNode (location: ", 22);
3054 prettyprint_location(output_buffer, parser, &node->
location);
3055 pm_buffer_append_string(output_buffer,
")\n", 2);
3059 pm_buffer_concat(output_buffer, prefix_buffer);
3060 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 else_keyword_loc:", 27);
3062 pm_buffer_append_byte(output_buffer,
' ');
3063 prettyprint_location(output_buffer, parser, location);
3064 pm_buffer_append_string(output_buffer,
" = \"", 4);
3065 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3066 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3071 pm_buffer_concat(output_buffer, prefix_buffer);
3072 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
3074 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3076 pm_buffer_append_byte(output_buffer,
'\n');
3078 size_t prefix_length = prefix_buffer->
length;
3079 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3080 pm_buffer_concat(output_buffer, prefix_buffer);
3082 prefix_buffer->
length = prefix_length;
3088 pm_buffer_concat(output_buffer, prefix_buffer);
3089 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
3091 if (location->
start == NULL) {
3092 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3094 pm_buffer_append_byte(output_buffer,
' ');
3095 prettyprint_location(output_buffer, parser, location);
3096 pm_buffer_append_string(output_buffer,
" = \"", 4);
3097 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3098 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3106 pm_buffer_append_string(output_buffer,
"@ EmbeddedStatementsNode (location: ", 36);
3107 prettyprint_location(output_buffer, parser, &node->
location);
3108 pm_buffer_append_string(output_buffer,
")\n", 2);
3112 pm_buffer_concat(output_buffer, prefix_buffer);
3113 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
3115 pm_buffer_append_byte(output_buffer,
' ');
3116 prettyprint_location(output_buffer, parser, location);
3117 pm_buffer_append_string(output_buffer,
" = \"", 4);
3118 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3119 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3124 pm_buffer_concat(output_buffer, prefix_buffer);
3125 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
3127 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3129 pm_buffer_append_byte(output_buffer,
'\n');
3131 size_t prefix_length = prefix_buffer->
length;
3132 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3133 pm_buffer_concat(output_buffer, prefix_buffer);
3135 prefix_buffer->
length = prefix_length;
3141 pm_buffer_concat(output_buffer, prefix_buffer);
3142 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
3144 pm_buffer_append_byte(output_buffer,
' ');
3145 prettyprint_location(output_buffer, parser, location);
3146 pm_buffer_append_string(output_buffer,
" = \"", 4);
3147 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3148 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3155 pm_buffer_append_string(output_buffer,
"@ EmbeddedVariableNode (location: ", 34);
3156 prettyprint_location(output_buffer, parser, &node->
location);
3157 pm_buffer_append_string(output_buffer,
")\n", 2);
3161 pm_buffer_concat(output_buffer, prefix_buffer);
3162 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
3164 pm_buffer_append_byte(output_buffer,
' ');
3165 prettyprint_location(output_buffer, parser, location);
3166 pm_buffer_append_string(output_buffer,
" = \"", 4);
3167 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3168 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3173 pm_buffer_concat(output_buffer, prefix_buffer);
3174 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 variable:", 19);
3175 pm_buffer_append_byte(output_buffer,
'\n');
3177 size_t prefix_length = prefix_buffer->
length;
3178 pm_buffer_append_string(prefix_buffer,
" ", 4);
3179 pm_buffer_concat(output_buffer, prefix_buffer);
3180 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
variable, prefix_buffer);
3181 prefix_buffer->
length = prefix_length;
3188 pm_buffer_append_string(output_buffer,
"@ EnsureNode (location: ", 24);
3189 prettyprint_location(output_buffer, parser, &node->
location);
3190 pm_buffer_append_string(output_buffer,
")\n", 2);
3194 pm_buffer_concat(output_buffer, prefix_buffer);
3195 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ensure_keyword_loc:", 29);
3197 pm_buffer_append_byte(output_buffer,
' ');
3198 prettyprint_location(output_buffer, parser, location);
3199 pm_buffer_append_string(output_buffer,
" = \"", 4);
3200 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3201 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3206 pm_buffer_concat(output_buffer, prefix_buffer);
3207 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
3209 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3211 pm_buffer_append_byte(output_buffer,
'\n');
3213 size_t prefix_length = prefix_buffer->
length;
3214 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3215 pm_buffer_concat(output_buffer, prefix_buffer);
3217 prefix_buffer->
length = prefix_length;
3223 pm_buffer_concat(output_buffer, prefix_buffer);
3224 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
3226 pm_buffer_append_byte(output_buffer,
' ');
3227 prettyprint_location(output_buffer, parser, location);
3228 pm_buffer_append_string(output_buffer,
" = \"", 4);
3229 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3230 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3236 pm_buffer_append_string(output_buffer,
"@ FalseNode (location: ", 23);
3237 prettyprint_location(output_buffer, parser, &node->
location);
3238 pm_buffer_append_string(output_buffer,
")\n", 2);
3244 pm_buffer_append_string(output_buffer,
"@ FindPatternNode (location: ", 29);
3245 prettyprint_location(output_buffer, parser, &node->
location);
3246 pm_buffer_append_string(output_buffer,
")\n", 2);
3250 pm_buffer_concat(output_buffer, prefix_buffer);
3251 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 constant:", 19);
3253 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3255 pm_buffer_append_byte(output_buffer,
'\n');
3257 size_t prefix_length = prefix_buffer->
length;
3258 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3259 pm_buffer_concat(output_buffer, prefix_buffer);
3260 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
3261 prefix_buffer->
length = prefix_length;
3267 pm_buffer_concat(output_buffer, prefix_buffer);
3268 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 left:", 15);
3269 pm_buffer_append_byte(output_buffer,
'\n');
3271 size_t prefix_length = prefix_buffer->
length;
3272 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3273 pm_buffer_concat(output_buffer, prefix_buffer);
3274 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
3275 prefix_buffer->
length = prefix_length;
3280 pm_buffer_concat(output_buffer, prefix_buffer);
3281 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requireds:", 20);
3282 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
requireds.
size));
3285 for (uint32_t index = 0; index < last_index; index++) {
3286 size_t prefix_length = prefix_buffer->
length;
3287 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3288 pm_buffer_concat(output_buffer, prefix_buffer);
3290 if (index == last_index - 1) {
3291 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
3292 pm_buffer_append_string(prefix_buffer,
" ", 4);
3294 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
3295 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3299 prefix_buffer->
length = prefix_length;
3305 pm_buffer_concat(output_buffer, prefix_buffer);
3306 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 right:", 16);
3307 pm_buffer_append_byte(output_buffer,
'\n');
3309 size_t prefix_length = prefix_buffer->
length;
3310 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3311 pm_buffer_concat(output_buffer, prefix_buffer);
3312 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
3313 prefix_buffer->
length = prefix_length;
3318 pm_buffer_concat(output_buffer, prefix_buffer);
3319 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
3321 if (location->
start == NULL) {
3322 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3324 pm_buffer_append_byte(output_buffer,
' ');
3325 prettyprint_location(output_buffer, parser, location);
3326 pm_buffer_append_string(output_buffer,
" = \"", 4);
3327 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3328 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3334 pm_buffer_concat(output_buffer, prefix_buffer);
3335 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
3337 if (location->
start == NULL) {
3338 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3340 pm_buffer_append_byte(output_buffer,
' ');
3341 prettyprint_location(output_buffer, parser, location);
3342 pm_buffer_append_string(output_buffer,
" = \"", 4);
3343 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3344 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3352 pm_buffer_append_string(output_buffer,
"@ FlipFlopNode (location: ", 26);
3353 prettyprint_location(output_buffer, parser, &node->
location);
3354 pm_buffer_append_string(output_buffer,
")\n", 2);
3358 pm_buffer_concat(output_buffer, prefix_buffer);
3359 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
3362 if (found) pm_buffer_append_byte(output_buffer,
',');
3363 pm_buffer_append_string(output_buffer,
" exclude_end", 12);
3366 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
3367 pm_buffer_append_byte(output_buffer,
'\n');
3372 pm_buffer_concat(output_buffer, prefix_buffer);
3373 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 left:", 15);
3374 if (cast->
left == NULL) {
3375 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3377 pm_buffer_append_byte(output_buffer,
'\n');
3379 size_t prefix_length = prefix_buffer->
length;
3380 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3381 pm_buffer_concat(output_buffer, prefix_buffer);
3382 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
3383 prefix_buffer->
length = prefix_length;
3389 pm_buffer_concat(output_buffer, prefix_buffer);
3390 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 right:", 16);
3391 if (cast->
right == NULL) {
3392 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3394 pm_buffer_append_byte(output_buffer,
'\n');
3396 size_t prefix_length = prefix_buffer->
length;
3397 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3398 pm_buffer_concat(output_buffer, prefix_buffer);
3399 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
3400 prefix_buffer->
length = prefix_length;
3406 pm_buffer_concat(output_buffer, prefix_buffer);
3407 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
3409 pm_buffer_append_byte(output_buffer,
' ');
3410 prettyprint_location(output_buffer, parser, location);
3411 pm_buffer_append_string(output_buffer,
" = \"", 4);
3412 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3413 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3419 pm_buffer_append_string(output_buffer,
"@ FloatNode (location: ", 23);
3420 prettyprint_location(output_buffer, parser, &node->
location);
3421 pm_buffer_append_string(output_buffer,
")\n", 2);
3427 pm_buffer_append_string(output_buffer,
"@ ForNode (location: ", 21);
3428 prettyprint_location(output_buffer, parser, &node->
location);
3429 pm_buffer_append_string(output_buffer,
")\n", 2);
3433 pm_buffer_concat(output_buffer, prefix_buffer);
3434 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index:", 16);
3435 pm_buffer_append_byte(output_buffer,
'\n');
3437 size_t prefix_length = prefix_buffer->
length;
3438 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3439 pm_buffer_concat(output_buffer, prefix_buffer);
3440 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
index, prefix_buffer);
3441 prefix_buffer->
length = prefix_length;
3446 pm_buffer_concat(output_buffer, prefix_buffer);
3447 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 collection:", 21);
3448 pm_buffer_append_byte(output_buffer,
'\n');
3450 size_t prefix_length = prefix_buffer->
length;
3451 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3452 pm_buffer_concat(output_buffer, prefix_buffer);
3454 prefix_buffer->
length = prefix_length;
3459 pm_buffer_concat(output_buffer, prefix_buffer);
3460 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
3462 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3464 pm_buffer_append_byte(output_buffer,
'\n');
3466 size_t prefix_length = prefix_buffer->
length;
3467 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3468 pm_buffer_concat(output_buffer, prefix_buffer);
3470 prefix_buffer->
length = prefix_length;
3476 pm_buffer_concat(output_buffer, prefix_buffer);
3477 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 for_keyword_loc:", 26);
3479 pm_buffer_append_byte(output_buffer,
' ');
3480 prettyprint_location(output_buffer, parser, location);
3481 pm_buffer_append_string(output_buffer,
" = \"", 4);
3482 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3483 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3488 pm_buffer_concat(output_buffer, prefix_buffer);
3489 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 in_keyword_loc:", 25);
3491 pm_buffer_append_byte(output_buffer,
' ');
3492 prettyprint_location(output_buffer, parser, location);
3493 pm_buffer_append_string(output_buffer,
" = \"", 4);
3494 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3495 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3500 pm_buffer_concat(output_buffer, prefix_buffer);
3501 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 do_keyword_loc:", 25);
3503 if (location->
start == NULL) {
3504 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3506 pm_buffer_append_byte(output_buffer,
' ');
3507 prettyprint_location(output_buffer, parser, location);
3508 pm_buffer_append_string(output_buffer,
" = \"", 4);
3509 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3510 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3516 pm_buffer_concat(output_buffer, prefix_buffer);
3517 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
3519 pm_buffer_append_byte(output_buffer,
' ');
3520 prettyprint_location(output_buffer, parser, location);
3521 pm_buffer_append_string(output_buffer,
" = \"", 4);
3522 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3523 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3529 pm_buffer_append_string(output_buffer,
"@ ForwardingArgumentsNode (location: ", 37);
3530 prettyprint_location(output_buffer, parser, &node->
location);
3531 pm_buffer_append_string(output_buffer,
")\n", 2);
3536 pm_buffer_append_string(output_buffer,
"@ ForwardingParameterNode (location: ", 37);
3537 prettyprint_location(output_buffer, parser, &node->
location);
3538 pm_buffer_append_string(output_buffer,
")\n", 2);
3544 pm_buffer_append_string(output_buffer,
"@ ForwardingSuperNode (location: ", 33);
3545 prettyprint_location(output_buffer, parser, &node->
location);
3546 pm_buffer_append_string(output_buffer,
")\n", 2);
3550 pm_buffer_concat(output_buffer, prefix_buffer);
3551 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 block:", 16);
3552 if (cast->
block == NULL) {
3553 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3555 pm_buffer_append_byte(output_buffer,
'\n');
3557 size_t prefix_length = prefix_buffer->
length;
3558 pm_buffer_append_string(prefix_buffer,
" ", 4);
3559 pm_buffer_concat(output_buffer, prefix_buffer);
3560 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
3561 prefix_buffer->
length = prefix_length;
3569 pm_buffer_append_string(output_buffer,
"@ GlobalVariableAndWriteNode (location: ", 40);
3570 prettyprint_location(output_buffer, parser, &node->
location);
3571 pm_buffer_append_string(output_buffer,
")\n", 2);
3575 pm_buffer_concat(output_buffer, prefix_buffer);
3576 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
3577 pm_buffer_append_byte(output_buffer,
' ');
3578 prettyprint_constant(output_buffer, parser, cast->
name);
3579 pm_buffer_append_byte(output_buffer,
'\n');
3584 pm_buffer_concat(output_buffer, prefix_buffer);
3585 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
3587 pm_buffer_append_byte(output_buffer,
' ');
3588 prettyprint_location(output_buffer, parser, location);
3589 pm_buffer_append_string(output_buffer,
" = \"", 4);
3590 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3591 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3596 pm_buffer_concat(output_buffer, prefix_buffer);
3597 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
3599 pm_buffer_append_byte(output_buffer,
' ');
3600 prettyprint_location(output_buffer, parser, location);
3601 pm_buffer_append_string(output_buffer,
" = \"", 4);
3602 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3603 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3608 pm_buffer_concat(output_buffer, prefix_buffer);
3609 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
3610 pm_buffer_append_byte(output_buffer,
'\n');
3612 size_t prefix_length = prefix_buffer->
length;
3613 pm_buffer_append_string(prefix_buffer,
" ", 4);
3614 pm_buffer_concat(output_buffer, prefix_buffer);
3615 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3616 prefix_buffer->
length = prefix_length;
3623 pm_buffer_append_string(output_buffer,
"@ GlobalVariableOperatorWriteNode (location: ", 45);
3624 prettyprint_location(output_buffer, parser, &node->
location);
3625 pm_buffer_append_string(output_buffer,
")\n", 2);
3629 pm_buffer_concat(output_buffer, prefix_buffer);
3630 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
3631 pm_buffer_append_byte(output_buffer,
' ');
3632 prettyprint_constant(output_buffer, parser, cast->
name);
3633 pm_buffer_append_byte(output_buffer,
'\n');
3638 pm_buffer_concat(output_buffer, prefix_buffer);
3639 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
3641 pm_buffer_append_byte(output_buffer,
' ');
3642 prettyprint_location(output_buffer, parser, location);
3643 pm_buffer_append_string(output_buffer,
" = \"", 4);
3644 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3645 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3650 pm_buffer_concat(output_buffer, prefix_buffer);
3651 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
3653 pm_buffer_append_byte(output_buffer,
' ');
3654 prettyprint_location(output_buffer, parser, location);
3655 pm_buffer_append_string(output_buffer,
" = \"", 4);
3656 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3657 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3662 pm_buffer_concat(output_buffer, prefix_buffer);
3663 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
3664 pm_buffer_append_byte(output_buffer,
'\n');
3666 size_t prefix_length = prefix_buffer->
length;
3667 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3668 pm_buffer_concat(output_buffer, prefix_buffer);
3669 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3670 prefix_buffer->
length = prefix_length;
3675 pm_buffer_concat(output_buffer, prefix_buffer);
3676 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator:", 19);
3677 pm_buffer_append_byte(output_buffer,
' ');
3678 prettyprint_constant(output_buffer, parser, cast->
operator);
3679 pm_buffer_append_byte(output_buffer,
'\n');
3686 pm_buffer_append_string(output_buffer,
"@ GlobalVariableOrWriteNode (location: ", 39);
3687 prettyprint_location(output_buffer, parser, &node->
location);
3688 pm_buffer_append_string(output_buffer,
")\n", 2);
3692 pm_buffer_concat(output_buffer, prefix_buffer);
3693 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
3694 pm_buffer_append_byte(output_buffer,
' ');
3695 prettyprint_constant(output_buffer, parser, cast->
name);
3696 pm_buffer_append_byte(output_buffer,
'\n');
3701 pm_buffer_concat(output_buffer, prefix_buffer);
3702 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
3704 pm_buffer_append_byte(output_buffer,
' ');
3705 prettyprint_location(output_buffer, parser, location);
3706 pm_buffer_append_string(output_buffer,
" = \"", 4);
3707 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3708 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3713 pm_buffer_concat(output_buffer, prefix_buffer);
3714 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
3716 pm_buffer_append_byte(output_buffer,
' ');
3717 prettyprint_location(output_buffer, parser, location);
3718 pm_buffer_append_string(output_buffer,
" = \"", 4);
3719 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3720 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3725 pm_buffer_concat(output_buffer, prefix_buffer);
3726 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
3727 pm_buffer_append_byte(output_buffer,
'\n');
3729 size_t prefix_length = prefix_buffer->
length;
3730 pm_buffer_append_string(prefix_buffer,
" ", 4);
3731 pm_buffer_concat(output_buffer, prefix_buffer);
3732 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3733 prefix_buffer->
length = prefix_length;
3740 pm_buffer_append_string(output_buffer,
"@ GlobalVariableReadNode (location: ", 36);
3741 prettyprint_location(output_buffer, parser, &node->
location);
3742 pm_buffer_append_string(output_buffer,
")\n", 2);
3746 pm_buffer_concat(output_buffer, prefix_buffer);
3747 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
3748 pm_buffer_append_byte(output_buffer,
' ');
3749 prettyprint_constant(output_buffer, parser, cast->
name);
3750 pm_buffer_append_byte(output_buffer,
'\n');
3757 pm_buffer_append_string(output_buffer,
"@ GlobalVariableTargetNode (location: ", 38);
3758 prettyprint_location(output_buffer, parser, &node->
location);
3759 pm_buffer_append_string(output_buffer,
")\n", 2);
3763 pm_buffer_concat(output_buffer, prefix_buffer);
3764 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
3765 pm_buffer_append_byte(output_buffer,
' ');
3766 prettyprint_constant(output_buffer, parser, cast->
name);
3767 pm_buffer_append_byte(output_buffer,
'\n');
3774 pm_buffer_append_string(output_buffer,
"@ GlobalVariableWriteNode (location: ", 37);
3775 prettyprint_location(output_buffer, parser, &node->
location);
3776 pm_buffer_append_string(output_buffer,
")\n", 2);
3780 pm_buffer_concat(output_buffer, prefix_buffer);
3781 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
3782 pm_buffer_append_byte(output_buffer,
' ');
3783 prettyprint_constant(output_buffer, parser, cast->
name);
3784 pm_buffer_append_byte(output_buffer,
'\n');
3789 pm_buffer_concat(output_buffer, prefix_buffer);
3790 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
3792 pm_buffer_append_byte(output_buffer,
' ');
3793 prettyprint_location(output_buffer, parser, location);
3794 pm_buffer_append_string(output_buffer,
" = \"", 4);
3795 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3796 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3801 pm_buffer_concat(output_buffer, prefix_buffer);
3802 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
3803 pm_buffer_append_byte(output_buffer,
'\n');
3805 size_t prefix_length = prefix_buffer->
length;
3806 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3807 pm_buffer_concat(output_buffer, prefix_buffer);
3808 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3809 prefix_buffer->
length = prefix_length;
3814 pm_buffer_concat(output_buffer, prefix_buffer);
3815 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
3817 pm_buffer_append_byte(output_buffer,
' ');
3818 prettyprint_location(output_buffer, parser, location);
3819 pm_buffer_append_string(output_buffer,
" = \"", 4);
3820 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3821 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3828 pm_buffer_append_string(output_buffer,
"@ HashNode (location: ", 22);
3829 prettyprint_location(output_buffer, parser, &node->
location);
3830 pm_buffer_append_string(output_buffer,
")\n", 2);
3834 pm_buffer_concat(output_buffer, prefix_buffer);
3835 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
3837 pm_buffer_append_byte(output_buffer,
' ');
3838 prettyprint_location(output_buffer, parser, location);
3839 pm_buffer_append_string(output_buffer,
" = \"", 4);
3840 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3841 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3846 pm_buffer_concat(output_buffer, prefix_buffer);
3847 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 elements:", 19);
3848 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
3851 for (uint32_t index = 0; index < last_index; index++) {
3852 size_t prefix_length = prefix_buffer->
length;
3853 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3854 pm_buffer_concat(output_buffer, prefix_buffer);
3856 if (index == last_index - 1) {
3857 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
3858 pm_buffer_append_string(prefix_buffer,
" ", 4);
3860 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
3861 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3865 prefix_buffer->
length = prefix_length;
3871 pm_buffer_concat(output_buffer, prefix_buffer);
3872 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
3874 pm_buffer_append_byte(output_buffer,
' ');
3875 prettyprint_location(output_buffer, parser, location);
3876 pm_buffer_append_string(output_buffer,
" = \"", 4);
3877 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3878 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3885 pm_buffer_append_string(output_buffer,
"@ HashPatternNode (location: ", 29);
3886 prettyprint_location(output_buffer, parser, &node->
location);
3887 pm_buffer_append_string(output_buffer,
")\n", 2);
3891 pm_buffer_concat(output_buffer, prefix_buffer);
3892 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 constant:", 19);
3894 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3896 pm_buffer_append_byte(output_buffer,
'\n');
3898 size_t prefix_length = prefix_buffer->
length;
3899 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3900 pm_buffer_concat(output_buffer, prefix_buffer);
3901 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
3902 prefix_buffer->
length = prefix_length;
3908 pm_buffer_concat(output_buffer, prefix_buffer);
3909 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 elements:", 19);
3910 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
3913 for (uint32_t index = 0; index < last_index; index++) {
3914 size_t prefix_length = prefix_buffer->
length;
3915 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3916 pm_buffer_concat(output_buffer, prefix_buffer);
3918 if (index == last_index - 1) {
3919 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
3920 pm_buffer_append_string(prefix_buffer,
" ", 4);
3922 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
3923 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3927 prefix_buffer->
length = prefix_length;
3933 pm_buffer_concat(output_buffer, prefix_buffer);
3934 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rest:", 15);
3935 if (cast->
rest == NULL) {
3936 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3938 pm_buffer_append_byte(output_buffer,
'\n');
3940 size_t prefix_length = prefix_buffer->
length;
3941 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
3942 pm_buffer_concat(output_buffer, prefix_buffer);
3943 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
3944 prefix_buffer->
length = prefix_length;
3950 pm_buffer_concat(output_buffer, prefix_buffer);
3951 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
3953 if (location->
start == NULL) {
3954 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3956 pm_buffer_append_byte(output_buffer,
' ');
3957 prettyprint_location(output_buffer, parser, location);
3958 pm_buffer_append_string(output_buffer,
" = \"", 4);
3959 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3960 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3966 pm_buffer_concat(output_buffer, prefix_buffer);
3967 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
3969 if (location->
start == NULL) {
3970 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3972 pm_buffer_append_byte(output_buffer,
' ');
3973 prettyprint_location(output_buffer, parser, location);
3974 pm_buffer_append_string(output_buffer,
" = \"", 4);
3975 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
3976 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3984 pm_buffer_append_string(output_buffer,
"@ IfNode (location: ", 20);
3985 prettyprint_location(output_buffer, parser, &node->
location);
3986 pm_buffer_append_string(output_buffer,
")\n", 2);
3990 pm_buffer_concat(output_buffer, prefix_buffer);
3991 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 if_keyword_loc:", 25);
3993 if (location->
start == NULL) {
3994 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
3996 pm_buffer_append_byte(output_buffer,
' ');
3997 prettyprint_location(output_buffer, parser, location);
3998 pm_buffer_append_string(output_buffer,
" = \"", 4);
3999 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4000 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4006 pm_buffer_concat(output_buffer, prefix_buffer);
4007 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 predicate:", 20);
4008 pm_buffer_append_byte(output_buffer,
'\n');
4010 size_t prefix_length = prefix_buffer->
length;
4011 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4012 pm_buffer_concat(output_buffer, prefix_buffer);
4013 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
4014 prefix_buffer->
length = prefix_length;
4019 pm_buffer_concat(output_buffer, prefix_buffer);
4020 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 then_keyword_loc:", 27);
4022 if (location->
start == NULL) {
4023 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4025 pm_buffer_append_byte(output_buffer,
' ');
4026 prettyprint_location(output_buffer, parser, location);
4027 pm_buffer_append_string(output_buffer,
" = \"", 4);
4028 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4029 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4035 pm_buffer_concat(output_buffer, prefix_buffer);
4036 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
4038 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4040 pm_buffer_append_byte(output_buffer,
'\n');
4042 size_t prefix_length = prefix_buffer->
length;
4043 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4044 pm_buffer_concat(output_buffer, prefix_buffer);
4046 prefix_buffer->
length = prefix_length;
4052 pm_buffer_concat(output_buffer, prefix_buffer);
4053 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 consequent:", 21);
4055 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4057 pm_buffer_append_byte(output_buffer,
'\n');
4059 size_t prefix_length = prefix_buffer->
length;
4060 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4061 pm_buffer_concat(output_buffer, prefix_buffer);
4063 prefix_buffer->
length = prefix_length;
4069 pm_buffer_concat(output_buffer, prefix_buffer);
4070 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
4072 if (location->
start == NULL) {
4073 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4075 pm_buffer_append_byte(output_buffer,
' ');
4076 prettyprint_location(output_buffer, parser, location);
4077 pm_buffer_append_string(output_buffer,
" = \"", 4);
4078 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4079 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4087 pm_buffer_append_string(output_buffer,
"@ ImaginaryNode (location: ", 27);
4088 prettyprint_location(output_buffer, parser, &node->
location);
4089 pm_buffer_append_string(output_buffer,
")\n", 2);
4093 pm_buffer_concat(output_buffer, prefix_buffer);
4094 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 numeric:", 18);
4095 pm_buffer_append_byte(output_buffer,
'\n');
4097 size_t prefix_length = prefix_buffer->
length;
4098 pm_buffer_append_string(prefix_buffer,
" ", 4);
4099 pm_buffer_concat(output_buffer, prefix_buffer);
4100 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
numeric, prefix_buffer);
4101 prefix_buffer->
length = prefix_length;
4108 pm_buffer_append_string(output_buffer,
"@ ImplicitNode (location: ", 26);
4109 prettyprint_location(output_buffer, parser, &node->
location);
4110 pm_buffer_append_string(output_buffer,
")\n", 2);
4114 pm_buffer_concat(output_buffer, prefix_buffer);
4115 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
4116 pm_buffer_append_byte(output_buffer,
'\n');
4118 size_t prefix_length = prefix_buffer->
length;
4119 pm_buffer_append_string(prefix_buffer,
" ", 4);
4120 pm_buffer_concat(output_buffer, prefix_buffer);
4121 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4122 prefix_buffer->
length = prefix_length;
4128 pm_buffer_append_string(output_buffer,
"@ ImplicitRestNode (location: ", 30);
4129 prettyprint_location(output_buffer, parser, &node->
location);
4130 pm_buffer_append_string(output_buffer,
")\n", 2);
4136 pm_buffer_append_string(output_buffer,
"@ InNode (location: ", 20);
4137 prettyprint_location(output_buffer, parser, &node->
location);
4138 pm_buffer_append_string(output_buffer,
")\n", 2);
4142 pm_buffer_concat(output_buffer, prefix_buffer);
4143 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pattern:", 18);
4144 pm_buffer_append_byte(output_buffer,
'\n');
4146 size_t prefix_length = prefix_buffer->
length;
4147 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4148 pm_buffer_concat(output_buffer, prefix_buffer);
4149 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
4150 prefix_buffer->
length = prefix_length;
4155 pm_buffer_concat(output_buffer, prefix_buffer);
4156 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
4158 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4160 pm_buffer_append_byte(output_buffer,
'\n');
4162 size_t prefix_length = prefix_buffer->
length;
4163 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4164 pm_buffer_concat(output_buffer, prefix_buffer);
4166 prefix_buffer->
length = prefix_length;
4172 pm_buffer_concat(output_buffer, prefix_buffer);
4173 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 in_loc:", 17);
4175 pm_buffer_append_byte(output_buffer,
' ');
4176 prettyprint_location(output_buffer, parser, location);
4177 pm_buffer_append_string(output_buffer,
" = \"", 4);
4178 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4179 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4184 pm_buffer_concat(output_buffer, prefix_buffer);
4185 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 then_loc:", 19);
4187 if (location->
start == NULL) {
4188 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4190 pm_buffer_append_byte(output_buffer,
' ');
4191 prettyprint_location(output_buffer, parser, location);
4192 pm_buffer_append_string(output_buffer,
" = \"", 4);
4193 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4194 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4202 pm_buffer_append_string(output_buffer,
"@ IndexAndWriteNode (location: ", 31);
4203 prettyprint_location(output_buffer, parser, &node->
location);
4204 pm_buffer_append_string(output_buffer,
")\n", 2);
4208 pm_buffer_concat(output_buffer, prefix_buffer);
4209 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
4212 if (found) pm_buffer_append_byte(output_buffer,
',');
4213 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4217 if (found) pm_buffer_append_byte(output_buffer,
',');
4218 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4222 if (found) pm_buffer_append_byte(output_buffer,
',');
4223 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4226 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
4227 pm_buffer_append_byte(output_buffer,
'\n');
4232 pm_buffer_concat(output_buffer, prefix_buffer);
4233 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
4235 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4237 pm_buffer_append_byte(output_buffer,
'\n');
4239 size_t prefix_length = prefix_buffer->
length;
4240 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4241 pm_buffer_concat(output_buffer, prefix_buffer);
4242 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4243 prefix_buffer->
length = prefix_length;
4249 pm_buffer_concat(output_buffer, prefix_buffer);
4250 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
4252 if (location->
start == NULL) {
4253 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4255 pm_buffer_append_byte(output_buffer,
' ');
4256 prettyprint_location(output_buffer, parser, location);
4257 pm_buffer_append_string(output_buffer,
" = \"", 4);
4258 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4259 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4265 pm_buffer_concat(output_buffer, prefix_buffer);
4266 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
4268 pm_buffer_append_byte(output_buffer,
' ');
4269 prettyprint_location(output_buffer, parser, location);
4270 pm_buffer_append_string(output_buffer,
" = \"", 4);
4271 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4272 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4277 pm_buffer_concat(output_buffer, prefix_buffer);
4278 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
4280 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4282 pm_buffer_append_byte(output_buffer,
'\n');
4284 size_t prefix_length = prefix_buffer->
length;
4285 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4286 pm_buffer_concat(output_buffer, prefix_buffer);
4287 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4288 prefix_buffer->
length = prefix_length;
4294 pm_buffer_concat(output_buffer, prefix_buffer);
4295 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
4297 pm_buffer_append_byte(output_buffer,
' ');
4298 prettyprint_location(output_buffer, parser, location);
4299 pm_buffer_append_string(output_buffer,
" = \"", 4);
4300 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4301 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4306 pm_buffer_concat(output_buffer, prefix_buffer);
4307 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 block:", 16);
4308 if (cast->
block == NULL) {
4309 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4311 pm_buffer_append_byte(output_buffer,
'\n');
4313 size_t prefix_length = prefix_buffer->
length;
4314 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4315 pm_buffer_concat(output_buffer, prefix_buffer);
4316 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4317 prefix_buffer->
length = prefix_length;
4323 pm_buffer_concat(output_buffer, prefix_buffer);
4324 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
4326 pm_buffer_append_byte(output_buffer,
' ');
4327 prettyprint_location(output_buffer, parser, location);
4328 pm_buffer_append_string(output_buffer,
" = \"", 4);
4329 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4330 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4335 pm_buffer_concat(output_buffer, prefix_buffer);
4336 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
4337 pm_buffer_append_byte(output_buffer,
'\n');
4339 size_t prefix_length = prefix_buffer->
length;
4340 pm_buffer_append_string(prefix_buffer,
" ", 4);
4341 pm_buffer_concat(output_buffer, prefix_buffer);
4342 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4343 prefix_buffer->
length = prefix_length;
4350 pm_buffer_append_string(output_buffer,
"@ IndexOperatorWriteNode (location: ", 36);
4351 prettyprint_location(output_buffer, parser, &node->
location);
4352 pm_buffer_append_string(output_buffer,
")\n", 2);
4356 pm_buffer_concat(output_buffer, prefix_buffer);
4357 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
4360 if (found) pm_buffer_append_byte(output_buffer,
',');
4361 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4365 if (found) pm_buffer_append_byte(output_buffer,
',');
4366 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4370 if (found) pm_buffer_append_byte(output_buffer,
',');
4371 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4374 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
4375 pm_buffer_append_byte(output_buffer,
'\n');
4380 pm_buffer_concat(output_buffer, prefix_buffer);
4381 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
4383 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4385 pm_buffer_append_byte(output_buffer,
'\n');
4387 size_t prefix_length = prefix_buffer->
length;
4388 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4389 pm_buffer_concat(output_buffer, prefix_buffer);
4390 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4391 prefix_buffer->
length = prefix_length;
4397 pm_buffer_concat(output_buffer, prefix_buffer);
4398 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
4400 if (location->
start == NULL) {
4401 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4403 pm_buffer_append_byte(output_buffer,
' ');
4404 prettyprint_location(output_buffer, parser, location);
4405 pm_buffer_append_string(output_buffer,
" = \"", 4);
4406 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4407 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4413 pm_buffer_concat(output_buffer, prefix_buffer);
4414 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
4416 pm_buffer_append_byte(output_buffer,
' ');
4417 prettyprint_location(output_buffer, parser, location);
4418 pm_buffer_append_string(output_buffer,
" = \"", 4);
4419 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4420 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4425 pm_buffer_concat(output_buffer, prefix_buffer);
4426 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
4428 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4430 pm_buffer_append_byte(output_buffer,
'\n');
4432 size_t prefix_length = prefix_buffer->
length;
4433 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4434 pm_buffer_concat(output_buffer, prefix_buffer);
4435 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4436 prefix_buffer->
length = prefix_length;
4442 pm_buffer_concat(output_buffer, prefix_buffer);
4443 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
4445 pm_buffer_append_byte(output_buffer,
' ');
4446 prettyprint_location(output_buffer, parser, location);
4447 pm_buffer_append_string(output_buffer,
" = \"", 4);
4448 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4449 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4454 pm_buffer_concat(output_buffer, prefix_buffer);
4455 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 block:", 16);
4456 if (cast->
block == NULL) {
4457 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4459 pm_buffer_append_byte(output_buffer,
'\n');
4461 size_t prefix_length = prefix_buffer->
length;
4462 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4463 pm_buffer_concat(output_buffer, prefix_buffer);
4464 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4465 prefix_buffer->
length = prefix_length;
4471 pm_buffer_concat(output_buffer, prefix_buffer);
4472 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator:", 19);
4473 pm_buffer_append_byte(output_buffer,
' ');
4474 prettyprint_constant(output_buffer, parser, cast->
operator);
4475 pm_buffer_append_byte(output_buffer,
'\n');
4480 pm_buffer_concat(output_buffer, prefix_buffer);
4481 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
4483 pm_buffer_append_byte(output_buffer,
' ');
4484 prettyprint_location(output_buffer, parser, location);
4485 pm_buffer_append_string(output_buffer,
" = \"", 4);
4486 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4487 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4492 pm_buffer_concat(output_buffer, prefix_buffer);
4493 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
4494 pm_buffer_append_byte(output_buffer,
'\n');
4496 size_t prefix_length = prefix_buffer->
length;
4497 pm_buffer_append_string(prefix_buffer,
" ", 4);
4498 pm_buffer_concat(output_buffer, prefix_buffer);
4499 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4500 prefix_buffer->
length = prefix_length;
4507 pm_buffer_append_string(output_buffer,
"@ IndexOrWriteNode (location: ", 30);
4508 prettyprint_location(output_buffer, parser, &node->
location);
4509 pm_buffer_append_string(output_buffer,
")\n", 2);
4513 pm_buffer_concat(output_buffer, prefix_buffer);
4514 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
4517 if (found) pm_buffer_append_byte(output_buffer,
',');
4518 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4522 if (found) pm_buffer_append_byte(output_buffer,
',');
4523 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4527 if (found) pm_buffer_append_byte(output_buffer,
',');
4528 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4531 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
4532 pm_buffer_append_byte(output_buffer,
'\n');
4537 pm_buffer_concat(output_buffer, prefix_buffer);
4538 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
4540 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4542 pm_buffer_append_byte(output_buffer,
'\n');
4544 size_t prefix_length = prefix_buffer->
length;
4545 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4546 pm_buffer_concat(output_buffer, prefix_buffer);
4547 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4548 prefix_buffer->
length = prefix_length;
4554 pm_buffer_concat(output_buffer, prefix_buffer);
4555 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call_operator_loc:", 28);
4557 if (location->
start == NULL) {
4558 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4560 pm_buffer_append_byte(output_buffer,
' ');
4561 prettyprint_location(output_buffer, parser, location);
4562 pm_buffer_append_string(output_buffer,
" = \"", 4);
4563 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4564 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4570 pm_buffer_concat(output_buffer, prefix_buffer);
4571 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
4573 pm_buffer_append_byte(output_buffer,
' ');
4574 prettyprint_location(output_buffer, parser, location);
4575 pm_buffer_append_string(output_buffer,
" = \"", 4);
4576 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4577 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4582 pm_buffer_concat(output_buffer, prefix_buffer);
4583 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
4585 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4587 pm_buffer_append_byte(output_buffer,
'\n');
4589 size_t prefix_length = prefix_buffer->
length;
4590 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4591 pm_buffer_concat(output_buffer, prefix_buffer);
4592 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4593 prefix_buffer->
length = prefix_length;
4599 pm_buffer_concat(output_buffer, prefix_buffer);
4600 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
4602 pm_buffer_append_byte(output_buffer,
' ');
4603 prettyprint_location(output_buffer, parser, location);
4604 pm_buffer_append_string(output_buffer,
" = \"", 4);
4605 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4606 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4611 pm_buffer_concat(output_buffer, prefix_buffer);
4612 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 block:", 16);
4613 if (cast->
block == NULL) {
4614 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4616 pm_buffer_append_byte(output_buffer,
'\n');
4618 size_t prefix_length = prefix_buffer->
length;
4619 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4620 pm_buffer_concat(output_buffer, prefix_buffer);
4621 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4622 prefix_buffer->
length = prefix_length;
4628 pm_buffer_concat(output_buffer, prefix_buffer);
4629 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
4631 pm_buffer_append_byte(output_buffer,
' ');
4632 prettyprint_location(output_buffer, parser, location);
4633 pm_buffer_append_string(output_buffer,
" = \"", 4);
4634 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4635 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4640 pm_buffer_concat(output_buffer, prefix_buffer);
4641 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
4642 pm_buffer_append_byte(output_buffer,
'\n');
4644 size_t prefix_length = prefix_buffer->
length;
4645 pm_buffer_append_string(prefix_buffer,
" ", 4);
4646 pm_buffer_concat(output_buffer, prefix_buffer);
4647 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4648 prefix_buffer->
length = prefix_length;
4655 pm_buffer_append_string(output_buffer,
"@ IndexTargetNode (location: ", 29);
4656 prettyprint_location(output_buffer, parser, &node->
location);
4657 pm_buffer_append_string(output_buffer,
")\n", 2);
4661 pm_buffer_concat(output_buffer, prefix_buffer);
4662 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
4665 if (found) pm_buffer_append_byte(output_buffer,
',');
4666 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4670 if (found) pm_buffer_append_byte(output_buffer,
',');
4671 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4675 if (found) pm_buffer_append_byte(output_buffer,
',');
4676 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4679 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
4680 pm_buffer_append_byte(output_buffer,
'\n');
4685 pm_buffer_concat(output_buffer, prefix_buffer);
4686 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 receiver:", 19);
4687 pm_buffer_append_byte(output_buffer,
'\n');
4689 size_t prefix_length = prefix_buffer->
length;
4690 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4691 pm_buffer_concat(output_buffer, prefix_buffer);
4692 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4693 prefix_buffer->
length = prefix_length;
4698 pm_buffer_concat(output_buffer, prefix_buffer);
4699 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
4701 pm_buffer_append_byte(output_buffer,
' ');
4702 prettyprint_location(output_buffer, parser, location);
4703 pm_buffer_append_string(output_buffer,
" = \"", 4);
4704 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4705 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4710 pm_buffer_concat(output_buffer, prefix_buffer);
4711 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
4713 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4715 pm_buffer_append_byte(output_buffer,
'\n');
4717 size_t prefix_length = prefix_buffer->
length;
4718 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4719 pm_buffer_concat(output_buffer, prefix_buffer);
4720 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4721 prefix_buffer->
length = prefix_length;
4727 pm_buffer_concat(output_buffer, prefix_buffer);
4728 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
4730 pm_buffer_append_byte(output_buffer,
' ');
4731 prettyprint_location(output_buffer, parser, location);
4732 pm_buffer_append_string(output_buffer,
" = \"", 4);
4733 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4734 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4739 pm_buffer_concat(output_buffer, prefix_buffer);
4740 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 block:", 16);
4741 if (cast->
block == NULL) {
4742 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
4744 pm_buffer_append_byte(output_buffer,
'\n');
4746 size_t prefix_length = prefix_buffer->
length;
4747 pm_buffer_append_string(prefix_buffer,
" ", 4);
4748 pm_buffer_concat(output_buffer, prefix_buffer);
4749 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4750 prefix_buffer->
length = prefix_length;
4758 pm_buffer_append_string(output_buffer,
"@ InstanceVariableAndWriteNode (location: ", 42);
4759 prettyprint_location(output_buffer, parser, &node->
location);
4760 pm_buffer_append_string(output_buffer,
")\n", 2);
4764 pm_buffer_concat(output_buffer, prefix_buffer);
4765 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
4766 pm_buffer_append_byte(output_buffer,
' ');
4767 prettyprint_constant(output_buffer, parser, cast->
name);
4768 pm_buffer_append_byte(output_buffer,
'\n');
4773 pm_buffer_concat(output_buffer, prefix_buffer);
4774 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
4776 pm_buffer_append_byte(output_buffer,
' ');
4777 prettyprint_location(output_buffer, parser, location);
4778 pm_buffer_append_string(output_buffer,
" = \"", 4);
4779 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4780 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4785 pm_buffer_concat(output_buffer, prefix_buffer);
4786 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
4788 pm_buffer_append_byte(output_buffer,
' ');
4789 prettyprint_location(output_buffer, parser, location);
4790 pm_buffer_append_string(output_buffer,
" = \"", 4);
4791 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4792 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4797 pm_buffer_concat(output_buffer, prefix_buffer);
4798 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
4799 pm_buffer_append_byte(output_buffer,
'\n');
4801 size_t prefix_length = prefix_buffer->
length;
4802 pm_buffer_append_string(prefix_buffer,
" ", 4);
4803 pm_buffer_concat(output_buffer, prefix_buffer);
4804 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4805 prefix_buffer->
length = prefix_length;
4812 pm_buffer_append_string(output_buffer,
"@ InstanceVariableOperatorWriteNode (location: ", 47);
4813 prettyprint_location(output_buffer, parser, &node->
location);
4814 pm_buffer_append_string(output_buffer,
")\n", 2);
4818 pm_buffer_concat(output_buffer, prefix_buffer);
4819 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
4820 pm_buffer_append_byte(output_buffer,
' ');
4821 prettyprint_constant(output_buffer, parser, cast->
name);
4822 pm_buffer_append_byte(output_buffer,
'\n');
4827 pm_buffer_concat(output_buffer, prefix_buffer);
4828 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
4830 pm_buffer_append_byte(output_buffer,
' ');
4831 prettyprint_location(output_buffer, parser, location);
4832 pm_buffer_append_string(output_buffer,
" = \"", 4);
4833 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4834 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4839 pm_buffer_concat(output_buffer, prefix_buffer);
4840 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
4842 pm_buffer_append_byte(output_buffer,
' ');
4843 prettyprint_location(output_buffer, parser, location);
4844 pm_buffer_append_string(output_buffer,
" = \"", 4);
4845 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4846 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4851 pm_buffer_concat(output_buffer, prefix_buffer);
4852 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
4853 pm_buffer_append_byte(output_buffer,
'\n');
4855 size_t prefix_length = prefix_buffer->
length;
4856 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4857 pm_buffer_concat(output_buffer, prefix_buffer);
4858 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4859 prefix_buffer->
length = prefix_length;
4864 pm_buffer_concat(output_buffer, prefix_buffer);
4865 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator:", 19);
4866 pm_buffer_append_byte(output_buffer,
' ');
4867 prettyprint_constant(output_buffer, parser, cast->
operator);
4868 pm_buffer_append_byte(output_buffer,
'\n');
4875 pm_buffer_append_string(output_buffer,
"@ InstanceVariableOrWriteNode (location: ", 41);
4876 prettyprint_location(output_buffer, parser, &node->
location);
4877 pm_buffer_append_string(output_buffer,
")\n", 2);
4881 pm_buffer_concat(output_buffer, prefix_buffer);
4882 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
4883 pm_buffer_append_byte(output_buffer,
' ');
4884 prettyprint_constant(output_buffer, parser, cast->
name);
4885 pm_buffer_append_byte(output_buffer,
'\n');
4890 pm_buffer_concat(output_buffer, prefix_buffer);
4891 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
4893 pm_buffer_append_byte(output_buffer,
' ');
4894 prettyprint_location(output_buffer, parser, location);
4895 pm_buffer_append_string(output_buffer,
" = \"", 4);
4896 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4897 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4902 pm_buffer_concat(output_buffer, prefix_buffer);
4903 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
4905 pm_buffer_append_byte(output_buffer,
' ');
4906 prettyprint_location(output_buffer, parser, location);
4907 pm_buffer_append_string(output_buffer,
" = \"", 4);
4908 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4909 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4914 pm_buffer_concat(output_buffer, prefix_buffer);
4915 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
4916 pm_buffer_append_byte(output_buffer,
'\n');
4918 size_t prefix_length = prefix_buffer->
length;
4919 pm_buffer_append_string(prefix_buffer,
" ", 4);
4920 pm_buffer_concat(output_buffer, prefix_buffer);
4921 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4922 prefix_buffer->
length = prefix_length;
4929 pm_buffer_append_string(output_buffer,
"@ InstanceVariableReadNode (location: ", 38);
4930 prettyprint_location(output_buffer, parser, &node->
location);
4931 pm_buffer_append_string(output_buffer,
")\n", 2);
4935 pm_buffer_concat(output_buffer, prefix_buffer);
4936 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
4937 pm_buffer_append_byte(output_buffer,
' ');
4938 prettyprint_constant(output_buffer, parser, cast->
name);
4939 pm_buffer_append_byte(output_buffer,
'\n');
4946 pm_buffer_append_string(output_buffer,
"@ InstanceVariableTargetNode (location: ", 40);
4947 prettyprint_location(output_buffer, parser, &node->
location);
4948 pm_buffer_append_string(output_buffer,
")\n", 2);
4952 pm_buffer_concat(output_buffer, prefix_buffer);
4953 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
4954 pm_buffer_append_byte(output_buffer,
' ');
4955 prettyprint_constant(output_buffer, parser, cast->
name);
4956 pm_buffer_append_byte(output_buffer,
'\n');
4963 pm_buffer_append_string(output_buffer,
"@ InstanceVariableWriteNode (location: ", 39);
4964 prettyprint_location(output_buffer, parser, &node->
location);
4965 pm_buffer_append_string(output_buffer,
")\n", 2);
4969 pm_buffer_concat(output_buffer, prefix_buffer);
4970 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
4971 pm_buffer_append_byte(output_buffer,
' ');
4972 prettyprint_constant(output_buffer, parser, cast->
name);
4973 pm_buffer_append_byte(output_buffer,
'\n');
4978 pm_buffer_concat(output_buffer, prefix_buffer);
4979 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
4981 pm_buffer_append_byte(output_buffer,
' ');
4982 prettyprint_location(output_buffer, parser, location);
4983 pm_buffer_append_string(output_buffer,
" = \"", 4);
4984 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
4985 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4990 pm_buffer_concat(output_buffer, prefix_buffer);
4991 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
4992 pm_buffer_append_byte(output_buffer,
'\n');
4994 size_t prefix_length = prefix_buffer->
length;
4995 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
4996 pm_buffer_concat(output_buffer, prefix_buffer);
4997 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4998 prefix_buffer->
length = prefix_length;
5003 pm_buffer_concat(output_buffer, prefix_buffer);
5004 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5006 pm_buffer_append_byte(output_buffer,
' ');
5007 prettyprint_location(output_buffer, parser, location);
5008 pm_buffer_append_string(output_buffer,
" = \"", 4);
5009 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5010 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5017 pm_buffer_append_string(output_buffer,
"@ IntegerNode (location: ", 25);
5018 prettyprint_location(output_buffer, parser, &node->
location);
5019 pm_buffer_append_string(output_buffer,
")\n", 2);
5023 pm_buffer_concat(output_buffer, prefix_buffer);
5024 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 flags:", 16);
5027 if (found) pm_buffer_append_byte(output_buffer,
',');
5028 pm_buffer_append_string(output_buffer,
" binary", 7);
5032 if (found) pm_buffer_append_byte(output_buffer,
',');
5033 pm_buffer_append_string(output_buffer,
" decimal", 8);
5037 if (found) pm_buffer_append_byte(output_buffer,
',');
5038 pm_buffer_append_string(output_buffer,
" octal", 6);
5042 if (found) pm_buffer_append_byte(output_buffer,
',');
5043 pm_buffer_append_string(output_buffer,
" hexadecimal", 12);
5046 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
5047 pm_buffer_append_byte(output_buffer,
'\n');
5054 pm_buffer_append_string(output_buffer,
"@ InterpolatedMatchLastLineNode (location: ", 43);
5055 prettyprint_location(output_buffer, parser, &node->
location);
5056 pm_buffer_append_string(output_buffer,
")\n", 2);
5060 pm_buffer_concat(output_buffer, prefix_buffer);
5061 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
5064 if (found) pm_buffer_append_byte(output_buffer,
',');
5065 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
5069 if (found) pm_buffer_append_byte(output_buffer,
',');
5070 pm_buffer_append_string(output_buffer,
" extended", 9);
5074 if (found) pm_buffer_append_byte(output_buffer,
',');
5075 pm_buffer_append_string(output_buffer,
" multi_line", 11);
5079 if (found) pm_buffer_append_byte(output_buffer,
',');
5080 pm_buffer_append_string(output_buffer,
" once", 5);
5084 if (found) pm_buffer_append_byte(output_buffer,
',');
5085 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
5089 if (found) pm_buffer_append_byte(output_buffer,
',');
5090 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
5094 if (found) pm_buffer_append_byte(output_buffer,
',');
5095 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
5099 if (found) pm_buffer_append_byte(output_buffer,
',');
5100 pm_buffer_append_string(output_buffer,
" utf_8", 6);
5104 if (found) pm_buffer_append_byte(output_buffer,
',');
5105 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
5109 if (found) pm_buffer_append_byte(output_buffer,
',');
5110 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
5114 if (found) pm_buffer_append_byte(output_buffer,
',');
5115 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
5118 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
5119 pm_buffer_append_byte(output_buffer,
'\n');
5124 pm_buffer_concat(output_buffer, prefix_buffer);
5125 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
5127 pm_buffer_append_byte(output_buffer,
' ');
5128 prettyprint_location(output_buffer, parser, location);
5129 pm_buffer_append_string(output_buffer,
" = \"", 4);
5130 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5131 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5136 pm_buffer_concat(output_buffer, prefix_buffer);
5137 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parts:", 16);
5138 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5141 for (uint32_t index = 0; index < last_index; index++) {
5142 size_t prefix_length = prefix_buffer->
length;
5143 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5144 pm_buffer_concat(output_buffer, prefix_buffer);
5146 if (index == last_index - 1) {
5147 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
5148 pm_buffer_append_string(prefix_buffer,
" ", 4);
5150 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
5151 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5154 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5155 prefix_buffer->
length = prefix_length;
5161 pm_buffer_concat(output_buffer, prefix_buffer);
5162 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
5164 pm_buffer_append_byte(output_buffer,
' ');
5165 prettyprint_location(output_buffer, parser, location);
5166 pm_buffer_append_string(output_buffer,
" = \"", 4);
5167 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5168 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5175 pm_buffer_append_string(output_buffer,
"@ InterpolatedRegularExpressionNode (location: ", 47);
5176 prettyprint_location(output_buffer, parser, &node->
location);
5177 pm_buffer_append_string(output_buffer,
")\n", 2);
5181 pm_buffer_concat(output_buffer, prefix_buffer);
5182 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
5185 if (found) pm_buffer_append_byte(output_buffer,
',');
5186 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
5190 if (found) pm_buffer_append_byte(output_buffer,
',');
5191 pm_buffer_append_string(output_buffer,
" extended", 9);
5195 if (found) pm_buffer_append_byte(output_buffer,
',');
5196 pm_buffer_append_string(output_buffer,
" multi_line", 11);
5200 if (found) pm_buffer_append_byte(output_buffer,
',');
5201 pm_buffer_append_string(output_buffer,
" once", 5);
5205 if (found) pm_buffer_append_byte(output_buffer,
',');
5206 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
5210 if (found) pm_buffer_append_byte(output_buffer,
',');
5211 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
5215 if (found) pm_buffer_append_byte(output_buffer,
',');
5216 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
5220 if (found) pm_buffer_append_byte(output_buffer,
',');
5221 pm_buffer_append_string(output_buffer,
" utf_8", 6);
5225 if (found) pm_buffer_append_byte(output_buffer,
',');
5226 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
5230 if (found) pm_buffer_append_byte(output_buffer,
',');
5231 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
5235 if (found) pm_buffer_append_byte(output_buffer,
',');
5236 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
5239 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
5240 pm_buffer_append_byte(output_buffer,
'\n');
5245 pm_buffer_concat(output_buffer, prefix_buffer);
5246 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
5248 pm_buffer_append_byte(output_buffer,
' ');
5249 prettyprint_location(output_buffer, parser, location);
5250 pm_buffer_append_string(output_buffer,
" = \"", 4);
5251 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5252 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5257 pm_buffer_concat(output_buffer, prefix_buffer);
5258 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parts:", 16);
5259 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5262 for (uint32_t index = 0; index < last_index; index++) {
5263 size_t prefix_length = prefix_buffer->
length;
5264 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5265 pm_buffer_concat(output_buffer, prefix_buffer);
5267 if (index == last_index - 1) {
5268 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
5269 pm_buffer_append_string(prefix_buffer,
" ", 4);
5271 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
5272 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5275 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5276 prefix_buffer->
length = prefix_length;
5282 pm_buffer_concat(output_buffer, prefix_buffer);
5283 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
5285 pm_buffer_append_byte(output_buffer,
' ');
5286 prettyprint_location(output_buffer, parser, location);
5287 pm_buffer_append_string(output_buffer,
" = \"", 4);
5288 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5289 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5296 pm_buffer_append_string(output_buffer,
"@ InterpolatedStringNode (location: ", 36);
5297 prettyprint_location(output_buffer, parser, &node->
location);
5298 pm_buffer_append_string(output_buffer,
")\n", 2);
5302 pm_buffer_concat(output_buffer, prefix_buffer);
5303 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
5305 if (location->
start == NULL) {
5306 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5308 pm_buffer_append_byte(output_buffer,
' ');
5309 prettyprint_location(output_buffer, parser, location);
5310 pm_buffer_append_string(output_buffer,
" = \"", 4);
5311 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5312 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5318 pm_buffer_concat(output_buffer, prefix_buffer);
5319 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parts:", 16);
5320 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5323 for (uint32_t index = 0; index < last_index; index++) {
5324 size_t prefix_length = prefix_buffer->
length;
5325 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5326 pm_buffer_concat(output_buffer, prefix_buffer);
5328 if (index == last_index - 1) {
5329 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
5330 pm_buffer_append_string(prefix_buffer,
" ", 4);
5332 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
5333 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5336 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5337 prefix_buffer->
length = prefix_length;
5343 pm_buffer_concat(output_buffer, prefix_buffer);
5344 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
5346 if (location->
start == NULL) {
5347 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5349 pm_buffer_append_byte(output_buffer,
' ');
5350 prettyprint_location(output_buffer, parser, location);
5351 pm_buffer_append_string(output_buffer,
" = \"", 4);
5352 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5353 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5361 pm_buffer_append_string(output_buffer,
"@ InterpolatedSymbolNode (location: ", 36);
5362 prettyprint_location(output_buffer, parser, &node->
location);
5363 pm_buffer_append_string(output_buffer,
")\n", 2);
5367 pm_buffer_concat(output_buffer, prefix_buffer);
5368 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
5370 if (location->
start == NULL) {
5371 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5373 pm_buffer_append_byte(output_buffer,
' ');
5374 prettyprint_location(output_buffer, parser, location);
5375 pm_buffer_append_string(output_buffer,
" = \"", 4);
5376 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5377 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5383 pm_buffer_concat(output_buffer, prefix_buffer);
5384 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parts:", 16);
5385 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5388 for (uint32_t index = 0; index < last_index; index++) {
5389 size_t prefix_length = prefix_buffer->
length;
5390 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5391 pm_buffer_concat(output_buffer, prefix_buffer);
5393 if (index == last_index - 1) {
5394 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
5395 pm_buffer_append_string(prefix_buffer,
" ", 4);
5397 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
5398 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5401 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5402 prefix_buffer->
length = prefix_length;
5408 pm_buffer_concat(output_buffer, prefix_buffer);
5409 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
5411 if (location->
start == NULL) {
5412 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5414 pm_buffer_append_byte(output_buffer,
' ');
5415 prettyprint_location(output_buffer, parser, location);
5416 pm_buffer_append_string(output_buffer,
" = \"", 4);
5417 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5418 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5426 pm_buffer_append_string(output_buffer,
"@ InterpolatedXStringNode (location: ", 37);
5427 prettyprint_location(output_buffer, parser, &node->
location);
5428 pm_buffer_append_string(output_buffer,
")\n", 2);
5432 pm_buffer_concat(output_buffer, prefix_buffer);
5433 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
5435 pm_buffer_append_byte(output_buffer,
' ');
5436 prettyprint_location(output_buffer, parser, location);
5437 pm_buffer_append_string(output_buffer,
" = \"", 4);
5438 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5439 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5444 pm_buffer_concat(output_buffer, prefix_buffer);
5445 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parts:", 16);
5446 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5449 for (uint32_t index = 0; index < last_index; index++) {
5450 size_t prefix_length = prefix_buffer->
length;
5451 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5452 pm_buffer_concat(output_buffer, prefix_buffer);
5454 if (index == last_index - 1) {
5455 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
5456 pm_buffer_append_string(prefix_buffer,
" ", 4);
5458 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
5459 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5462 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5463 prefix_buffer->
length = prefix_length;
5469 pm_buffer_concat(output_buffer, prefix_buffer);
5470 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
5472 pm_buffer_append_byte(output_buffer,
' ');
5473 prettyprint_location(output_buffer, parser, location);
5474 pm_buffer_append_string(output_buffer,
" = \"", 4);
5475 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5476 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5483 pm_buffer_append_string(output_buffer,
"@ KeywordHashNode (location: ", 29);
5484 prettyprint_location(output_buffer, parser, &node->
location);
5485 pm_buffer_append_string(output_buffer,
")\n", 2);
5489 pm_buffer_concat(output_buffer, prefix_buffer);
5490 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
5493 if (found) pm_buffer_append_byte(output_buffer,
',');
5494 pm_buffer_append_string(output_buffer,
" static_keys", 12);
5497 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
5498 pm_buffer_append_byte(output_buffer,
'\n');
5503 pm_buffer_concat(output_buffer, prefix_buffer);
5504 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 elements:", 19);
5505 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
5508 for (uint32_t index = 0; index < last_index; index++) {
5509 size_t prefix_length = prefix_buffer->
length;
5510 pm_buffer_append_string(prefix_buffer,
" ", 4);
5511 pm_buffer_concat(output_buffer, prefix_buffer);
5513 if (index == last_index - 1) {
5514 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
5515 pm_buffer_append_string(prefix_buffer,
" ", 4);
5517 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
5518 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5522 prefix_buffer->
length = prefix_length;
5530 pm_buffer_append_string(output_buffer,
"@ KeywordRestParameterNode (location: ", 38);
5531 prettyprint_location(output_buffer, parser, &node->
location);
5532 pm_buffer_append_string(output_buffer,
")\n", 2);
5536 pm_buffer_concat(output_buffer, prefix_buffer);
5537 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5538 if (cast->
name == 0) {
5539 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5541 pm_buffer_append_byte(output_buffer,
' ');
5542 prettyprint_constant(output_buffer, parser, cast->
name);
5543 pm_buffer_append_byte(output_buffer,
'\n');
5549 pm_buffer_concat(output_buffer, prefix_buffer);
5550 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
5552 if (location->
start == NULL) {
5553 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5555 pm_buffer_append_byte(output_buffer,
' ');
5556 prettyprint_location(output_buffer, parser, location);
5557 pm_buffer_append_string(output_buffer,
" = \"", 4);
5558 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5559 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5565 pm_buffer_concat(output_buffer, prefix_buffer);
5566 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5568 pm_buffer_append_byte(output_buffer,
' ');
5569 prettyprint_location(output_buffer, parser, location);
5570 pm_buffer_append_string(output_buffer,
" = \"", 4);
5571 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5572 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5579 pm_buffer_append_string(output_buffer,
"@ LambdaNode (location: ", 24);
5580 prettyprint_location(output_buffer, parser, &node->
location);
5581 pm_buffer_append_string(output_buffer,
")\n", 2);
5585 pm_buffer_concat(output_buffer, prefix_buffer);
5586 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
5587 pm_buffer_append_string(output_buffer,
" [", 2);
5588 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
5589 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
5590 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
5592 pm_buffer_append_string(output_buffer,
"]\n", 2);
5597 pm_buffer_concat(output_buffer, prefix_buffer);
5598 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals_body_index:", 28);
5604 pm_buffer_concat(output_buffer, prefix_buffer);
5605 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5607 pm_buffer_append_byte(output_buffer,
' ');
5608 prettyprint_location(output_buffer, parser, location);
5609 pm_buffer_append_string(output_buffer,
" = \"", 4);
5610 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5611 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5616 pm_buffer_concat(output_buffer, prefix_buffer);
5617 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
5619 pm_buffer_append_byte(output_buffer,
' ');
5620 prettyprint_location(output_buffer, parser, location);
5621 pm_buffer_append_string(output_buffer,
" = \"", 4);
5622 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5623 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5628 pm_buffer_concat(output_buffer, prefix_buffer);
5629 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
5631 pm_buffer_append_byte(output_buffer,
' ');
5632 prettyprint_location(output_buffer, parser, location);
5633 pm_buffer_append_string(output_buffer,
" = \"", 4);
5634 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5635 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5640 pm_buffer_concat(output_buffer, prefix_buffer);
5641 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parameters:", 21);
5643 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5645 pm_buffer_append_byte(output_buffer,
'\n');
5647 size_t prefix_length = prefix_buffer->
length;
5648 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5649 pm_buffer_concat(output_buffer, prefix_buffer);
5651 prefix_buffer->
length = prefix_length;
5657 pm_buffer_concat(output_buffer, prefix_buffer);
5658 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 body:", 15);
5659 if (cast->
body == NULL) {
5660 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
5662 pm_buffer_append_byte(output_buffer,
'\n');
5664 size_t prefix_length = prefix_buffer->
length;
5665 pm_buffer_append_string(prefix_buffer,
" ", 4);
5666 pm_buffer_concat(output_buffer, prefix_buffer);
5667 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
5668 prefix_buffer->
length = prefix_length;
5676 pm_buffer_append_string(output_buffer,
"@ LocalVariableAndWriteNode (location: ", 39);
5677 prettyprint_location(output_buffer, parser, &node->
location);
5678 pm_buffer_append_string(output_buffer,
")\n", 2);
5682 pm_buffer_concat(output_buffer, prefix_buffer);
5683 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
5685 pm_buffer_append_byte(output_buffer,
' ');
5686 prettyprint_location(output_buffer, parser, location);
5687 pm_buffer_append_string(output_buffer,
" = \"", 4);
5688 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5689 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5694 pm_buffer_concat(output_buffer, prefix_buffer);
5695 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5697 pm_buffer_append_byte(output_buffer,
' ');
5698 prettyprint_location(output_buffer, parser, location);
5699 pm_buffer_append_string(output_buffer,
" = \"", 4);
5700 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5701 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5706 pm_buffer_concat(output_buffer, prefix_buffer);
5707 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
5708 pm_buffer_append_byte(output_buffer,
'\n');
5710 size_t prefix_length = prefix_buffer->
length;
5711 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5712 pm_buffer_concat(output_buffer, prefix_buffer);
5713 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5714 prefix_buffer->
length = prefix_length;
5719 pm_buffer_concat(output_buffer, prefix_buffer);
5720 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5721 pm_buffer_append_byte(output_buffer,
' ');
5722 prettyprint_constant(output_buffer, parser, cast->
name);
5723 pm_buffer_append_byte(output_buffer,
'\n');
5728 pm_buffer_concat(output_buffer, prefix_buffer);
5729 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 depth:", 16);
5730 pm_buffer_append_format(output_buffer,
" %d\n", cast->
depth);
5737 pm_buffer_append_string(output_buffer,
"@ LocalVariableOperatorWriteNode (location: ", 44);
5738 prettyprint_location(output_buffer, parser, &node->
location);
5739 pm_buffer_append_string(output_buffer,
")\n", 2);
5743 pm_buffer_concat(output_buffer, prefix_buffer);
5744 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
5746 pm_buffer_append_byte(output_buffer,
' ');
5747 prettyprint_location(output_buffer, parser, location);
5748 pm_buffer_append_string(output_buffer,
" = \"", 4);
5749 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5750 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5755 pm_buffer_concat(output_buffer, prefix_buffer);
5756 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5758 pm_buffer_append_byte(output_buffer,
' ');
5759 prettyprint_location(output_buffer, parser, location);
5760 pm_buffer_append_string(output_buffer,
" = \"", 4);
5761 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5762 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5767 pm_buffer_concat(output_buffer, prefix_buffer);
5768 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
5769 pm_buffer_append_byte(output_buffer,
'\n');
5771 size_t prefix_length = prefix_buffer->
length;
5772 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5773 pm_buffer_concat(output_buffer, prefix_buffer);
5774 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5775 prefix_buffer->
length = prefix_length;
5780 pm_buffer_concat(output_buffer, prefix_buffer);
5781 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5782 pm_buffer_append_byte(output_buffer,
' ');
5783 prettyprint_constant(output_buffer, parser, cast->
name);
5784 pm_buffer_append_byte(output_buffer,
'\n');
5789 pm_buffer_concat(output_buffer, prefix_buffer);
5790 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator:", 19);
5791 pm_buffer_append_byte(output_buffer,
' ');
5792 prettyprint_constant(output_buffer, parser, cast->
operator);
5793 pm_buffer_append_byte(output_buffer,
'\n');
5798 pm_buffer_concat(output_buffer, prefix_buffer);
5799 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 depth:", 16);
5800 pm_buffer_append_format(output_buffer,
" %d\n", cast->
depth);
5807 pm_buffer_append_string(output_buffer,
"@ LocalVariableOrWriteNode (location: ", 38);
5808 prettyprint_location(output_buffer, parser, &node->
location);
5809 pm_buffer_append_string(output_buffer,
")\n", 2);
5813 pm_buffer_concat(output_buffer, prefix_buffer);
5814 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
5816 pm_buffer_append_byte(output_buffer,
' ');
5817 prettyprint_location(output_buffer, parser, location);
5818 pm_buffer_append_string(output_buffer,
" = \"", 4);
5819 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5820 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5825 pm_buffer_concat(output_buffer, prefix_buffer);
5826 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5828 pm_buffer_append_byte(output_buffer,
' ');
5829 prettyprint_location(output_buffer, parser, location);
5830 pm_buffer_append_string(output_buffer,
" = \"", 4);
5831 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5832 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5837 pm_buffer_concat(output_buffer, prefix_buffer);
5838 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
5839 pm_buffer_append_byte(output_buffer,
'\n');
5841 size_t prefix_length = prefix_buffer->
length;
5842 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5843 pm_buffer_concat(output_buffer, prefix_buffer);
5844 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5845 prefix_buffer->
length = prefix_length;
5850 pm_buffer_concat(output_buffer, prefix_buffer);
5851 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5852 pm_buffer_append_byte(output_buffer,
' ');
5853 prettyprint_constant(output_buffer, parser, cast->
name);
5854 pm_buffer_append_byte(output_buffer,
'\n');
5859 pm_buffer_concat(output_buffer, prefix_buffer);
5860 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 depth:", 16);
5861 pm_buffer_append_format(output_buffer,
" %d\n", cast->
depth);
5868 pm_buffer_append_string(output_buffer,
"@ LocalVariableReadNode (location: ", 35);
5869 prettyprint_location(output_buffer, parser, &node->
location);
5870 pm_buffer_append_string(output_buffer,
")\n", 2);
5874 pm_buffer_concat(output_buffer, prefix_buffer);
5875 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5876 pm_buffer_append_byte(output_buffer,
' ');
5877 prettyprint_constant(output_buffer, parser, cast->
name);
5878 pm_buffer_append_byte(output_buffer,
'\n');
5883 pm_buffer_concat(output_buffer, prefix_buffer);
5884 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 depth:", 16);
5885 pm_buffer_append_format(output_buffer,
" %d\n", cast->
depth);
5892 pm_buffer_append_string(output_buffer,
"@ LocalVariableTargetNode (location: ", 37);
5893 prettyprint_location(output_buffer, parser, &node->
location);
5894 pm_buffer_append_string(output_buffer,
")\n", 2);
5898 pm_buffer_concat(output_buffer, prefix_buffer);
5899 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5900 pm_buffer_append_byte(output_buffer,
' ');
5901 prettyprint_constant(output_buffer, parser, cast->
name);
5902 pm_buffer_append_byte(output_buffer,
'\n');
5907 pm_buffer_concat(output_buffer, prefix_buffer);
5908 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 depth:", 16);
5909 pm_buffer_append_format(output_buffer,
" %d\n", cast->
depth);
5916 pm_buffer_append_string(output_buffer,
"@ LocalVariableWriteNode (location: ", 36);
5917 prettyprint_location(output_buffer, parser, &node->
location);
5918 pm_buffer_append_string(output_buffer,
")\n", 2);
5922 pm_buffer_concat(output_buffer, prefix_buffer);
5923 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
5924 pm_buffer_append_byte(output_buffer,
' ');
5925 prettyprint_constant(output_buffer, parser, cast->
name);
5926 pm_buffer_append_byte(output_buffer,
'\n');
5931 pm_buffer_concat(output_buffer, prefix_buffer);
5932 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 depth:", 16);
5933 pm_buffer_append_format(output_buffer,
" %d\n", cast->
depth);
5938 pm_buffer_concat(output_buffer, prefix_buffer);
5939 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
5941 pm_buffer_append_byte(output_buffer,
' ');
5942 prettyprint_location(output_buffer, parser, location);
5943 pm_buffer_append_string(output_buffer,
" = \"", 4);
5944 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5945 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5950 pm_buffer_concat(output_buffer, prefix_buffer);
5951 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
5952 pm_buffer_append_byte(output_buffer,
'\n');
5954 size_t prefix_length = prefix_buffer->
length;
5955 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
5956 pm_buffer_concat(output_buffer, prefix_buffer);
5957 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5958 prefix_buffer->
length = prefix_length;
5963 pm_buffer_concat(output_buffer, prefix_buffer);
5964 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
5966 pm_buffer_append_byte(output_buffer,
' ');
5967 prettyprint_location(output_buffer, parser, location);
5968 pm_buffer_append_string(output_buffer,
" = \"", 4);
5969 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
5970 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5977 pm_buffer_append_string(output_buffer,
"@ MatchLastLineNode (location: ", 31);
5978 prettyprint_location(output_buffer, parser, &node->
location);
5979 pm_buffer_append_string(output_buffer,
")\n", 2);
5983 pm_buffer_concat(output_buffer, prefix_buffer);
5984 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
5987 if (found) pm_buffer_append_byte(output_buffer,
',');
5988 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
5992 if (found) pm_buffer_append_byte(output_buffer,
',');
5993 pm_buffer_append_string(output_buffer,
" extended", 9);
5997 if (found) pm_buffer_append_byte(output_buffer,
',');
5998 pm_buffer_append_string(output_buffer,
" multi_line", 11);
6002 if (found) pm_buffer_append_byte(output_buffer,
',');
6003 pm_buffer_append_string(output_buffer,
" once", 5);
6007 if (found) pm_buffer_append_byte(output_buffer,
',');
6008 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
6012 if (found) pm_buffer_append_byte(output_buffer,
',');
6013 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
6017 if (found) pm_buffer_append_byte(output_buffer,
',');
6018 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
6022 if (found) pm_buffer_append_byte(output_buffer,
',');
6023 pm_buffer_append_string(output_buffer,
" utf_8", 6);
6027 if (found) pm_buffer_append_byte(output_buffer,
',');
6028 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
6032 if (found) pm_buffer_append_byte(output_buffer,
',');
6033 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
6037 if (found) pm_buffer_append_byte(output_buffer,
',');
6038 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
6041 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
6042 pm_buffer_append_byte(output_buffer,
'\n');
6047 pm_buffer_concat(output_buffer, prefix_buffer);
6048 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
6050 pm_buffer_append_byte(output_buffer,
' ');
6051 prettyprint_location(output_buffer, parser, location);
6052 pm_buffer_append_string(output_buffer,
" = \"", 4);
6053 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6054 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6059 pm_buffer_concat(output_buffer, prefix_buffer);
6060 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 content_loc:", 22);
6062 pm_buffer_append_byte(output_buffer,
' ');
6063 prettyprint_location(output_buffer, parser, location);
6064 pm_buffer_append_string(output_buffer,
" = \"", 4);
6065 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6066 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6071 pm_buffer_concat(output_buffer, prefix_buffer);
6072 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
6074 pm_buffer_append_byte(output_buffer,
' ');
6075 prettyprint_location(output_buffer, parser, location);
6076 pm_buffer_append_string(output_buffer,
" = \"", 4);
6077 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6078 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6083 pm_buffer_concat(output_buffer, prefix_buffer);
6084 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unescaped:", 20);
6085 pm_buffer_append_string(output_buffer,
" \"", 2);
6086 prettyprint_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped));
6087 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6094 pm_buffer_append_string(output_buffer,
"@ MatchPredicateNode (location: ", 32);
6095 prettyprint_location(output_buffer, parser, &node->
location);
6096 pm_buffer_append_string(output_buffer,
")\n", 2);
6100 pm_buffer_concat(output_buffer, prefix_buffer);
6101 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
6102 pm_buffer_append_byte(output_buffer,
'\n');
6104 size_t prefix_length = prefix_buffer->
length;
6105 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6106 pm_buffer_concat(output_buffer, prefix_buffer);
6107 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6108 prefix_buffer->
length = prefix_length;
6113 pm_buffer_concat(output_buffer, prefix_buffer);
6114 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pattern:", 18);
6115 pm_buffer_append_byte(output_buffer,
'\n');
6117 size_t prefix_length = prefix_buffer->
length;
6118 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6119 pm_buffer_concat(output_buffer, prefix_buffer);
6120 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
6121 prefix_buffer->
length = prefix_length;
6126 pm_buffer_concat(output_buffer, prefix_buffer);
6127 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
6129 pm_buffer_append_byte(output_buffer,
' ');
6130 prettyprint_location(output_buffer, parser, location);
6131 pm_buffer_append_string(output_buffer,
" = \"", 4);
6132 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6133 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6140 pm_buffer_append_string(output_buffer,
"@ MatchRequiredNode (location: ", 31);
6141 prettyprint_location(output_buffer, parser, &node->
location);
6142 pm_buffer_append_string(output_buffer,
")\n", 2);
6146 pm_buffer_concat(output_buffer, prefix_buffer);
6147 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value:", 16);
6148 pm_buffer_append_byte(output_buffer,
'\n');
6150 size_t prefix_length = prefix_buffer->
length;
6151 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6152 pm_buffer_concat(output_buffer, prefix_buffer);
6153 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6154 prefix_buffer->
length = prefix_length;
6159 pm_buffer_concat(output_buffer, prefix_buffer);
6160 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pattern:", 18);
6161 pm_buffer_append_byte(output_buffer,
'\n');
6163 size_t prefix_length = prefix_buffer->
length;
6164 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6165 pm_buffer_concat(output_buffer, prefix_buffer);
6166 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
6167 prefix_buffer->
length = prefix_length;
6172 pm_buffer_concat(output_buffer, prefix_buffer);
6173 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
6175 pm_buffer_append_byte(output_buffer,
' ');
6176 prettyprint_location(output_buffer, parser, location);
6177 pm_buffer_append_string(output_buffer,
" = \"", 4);
6178 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6179 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6186 pm_buffer_append_string(output_buffer,
"@ MatchWriteNode (location: ", 28);
6187 prettyprint_location(output_buffer, parser, &node->
location);
6188 pm_buffer_append_string(output_buffer,
")\n", 2);
6192 pm_buffer_concat(output_buffer, prefix_buffer);
6193 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 call:", 15);
6194 pm_buffer_append_byte(output_buffer,
'\n');
6196 size_t prefix_length = prefix_buffer->
length;
6197 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6198 pm_buffer_concat(output_buffer, prefix_buffer);
6199 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
call, prefix_buffer);
6200 prefix_buffer->
length = prefix_length;
6205 pm_buffer_concat(output_buffer, prefix_buffer);
6206 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 targets:", 18);
6207 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
targets.
size));
6210 for (uint32_t index = 0; index < last_index; index++) {
6211 size_t prefix_length = prefix_buffer->
length;
6212 pm_buffer_append_string(prefix_buffer,
" ", 4);
6213 pm_buffer_concat(output_buffer, prefix_buffer);
6215 if (index == last_index - 1) {
6216 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6217 pm_buffer_append_string(prefix_buffer,
" ", 4);
6219 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6220 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6224 prefix_buffer->
length = prefix_length;
6231 pm_buffer_append_string(output_buffer,
"@ MissingNode (location: ", 25);
6232 prettyprint_location(output_buffer, parser, &node->
location);
6233 pm_buffer_append_string(output_buffer,
")\n", 2);
6239 pm_buffer_append_string(output_buffer,
"@ ModuleNode (location: ", 24);
6240 prettyprint_location(output_buffer, parser, &node->
location);
6241 pm_buffer_append_string(output_buffer,
")\n", 2);
6245 pm_buffer_concat(output_buffer, prefix_buffer);
6246 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
6247 pm_buffer_append_string(output_buffer,
" [", 2);
6248 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
6249 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
6250 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
6252 pm_buffer_append_string(output_buffer,
"]\n", 2);
6257 pm_buffer_concat(output_buffer, prefix_buffer);
6258 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 module_keyword_loc:", 29);
6260 pm_buffer_append_byte(output_buffer,
' ');
6261 prettyprint_location(output_buffer, parser, location);
6262 pm_buffer_append_string(output_buffer,
" = \"", 4);
6263 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6264 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6269 pm_buffer_concat(output_buffer, prefix_buffer);
6270 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 constant_path:", 24);
6271 pm_buffer_append_byte(output_buffer,
'\n');
6273 size_t prefix_length = prefix_buffer->
length;
6274 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6275 pm_buffer_concat(output_buffer, prefix_buffer);
6277 prefix_buffer->
length = prefix_length;
6282 pm_buffer_concat(output_buffer, prefix_buffer);
6283 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 body:", 15);
6284 if (cast->
body == NULL) {
6285 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6287 pm_buffer_append_byte(output_buffer,
'\n');
6289 size_t prefix_length = prefix_buffer->
length;
6290 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6291 pm_buffer_concat(output_buffer, prefix_buffer);
6292 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
6293 prefix_buffer->
length = prefix_length;
6299 pm_buffer_concat(output_buffer, prefix_buffer);
6300 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
6302 pm_buffer_append_byte(output_buffer,
' ');
6303 prettyprint_location(output_buffer, parser, location);
6304 pm_buffer_append_string(output_buffer,
" = \"", 4);
6305 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6306 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6311 pm_buffer_concat(output_buffer, prefix_buffer);
6312 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
6313 pm_buffer_append_byte(output_buffer,
' ');
6314 prettyprint_constant(output_buffer, parser, cast->
name);
6315 pm_buffer_append_byte(output_buffer,
'\n');
6322 pm_buffer_append_string(output_buffer,
"@ MultiTargetNode (location: ", 29);
6323 prettyprint_location(output_buffer, parser, &node->
location);
6324 pm_buffer_append_string(output_buffer,
")\n", 2);
6328 pm_buffer_concat(output_buffer, prefix_buffer);
6329 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lefts:", 16);
6330 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
lefts.
size));
6333 for (uint32_t index = 0; index < last_index; index++) {
6334 size_t prefix_length = prefix_buffer->
length;
6335 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6336 pm_buffer_concat(output_buffer, prefix_buffer);
6338 if (index == last_index - 1) {
6339 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6340 pm_buffer_append_string(prefix_buffer,
" ", 4);
6342 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6343 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6346 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
lefts.
nodes[index], prefix_buffer);
6347 prefix_buffer->
length = prefix_length;
6353 pm_buffer_concat(output_buffer, prefix_buffer);
6354 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rest:", 15);
6355 if (cast->
rest == NULL) {
6356 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6358 pm_buffer_append_byte(output_buffer,
'\n');
6360 size_t prefix_length = prefix_buffer->
length;
6361 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6362 pm_buffer_concat(output_buffer, prefix_buffer);
6363 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6364 prefix_buffer->
length = prefix_length;
6370 pm_buffer_concat(output_buffer, prefix_buffer);
6371 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rights:", 17);
6372 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
rights.
size));
6375 for (uint32_t index = 0; index < last_index; index++) {
6376 size_t prefix_length = prefix_buffer->
length;
6377 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6378 pm_buffer_concat(output_buffer, prefix_buffer);
6380 if (index == last_index - 1) {
6381 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6382 pm_buffer_append_string(prefix_buffer,
" ", 4);
6384 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6385 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6388 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rights.
nodes[index], prefix_buffer);
6389 prefix_buffer->
length = prefix_length;
6395 pm_buffer_concat(output_buffer, prefix_buffer);
6396 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
6398 if (location->
start == NULL) {
6399 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6401 pm_buffer_append_byte(output_buffer,
' ');
6402 prettyprint_location(output_buffer, parser, location);
6403 pm_buffer_append_string(output_buffer,
" = \"", 4);
6404 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6405 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6411 pm_buffer_concat(output_buffer, prefix_buffer);
6412 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
6414 if (location->
start == NULL) {
6415 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6417 pm_buffer_append_byte(output_buffer,
' ');
6418 prettyprint_location(output_buffer, parser, location);
6419 pm_buffer_append_string(output_buffer,
" = \"", 4);
6420 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6421 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6429 pm_buffer_append_string(output_buffer,
"@ MultiWriteNode (location: ", 28);
6430 prettyprint_location(output_buffer, parser, &node->
location);
6431 pm_buffer_append_string(output_buffer,
")\n", 2);
6435 pm_buffer_concat(output_buffer, prefix_buffer);
6436 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lefts:", 16);
6437 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
lefts.
size));
6440 for (uint32_t index = 0; index < last_index; index++) {
6441 size_t prefix_length = prefix_buffer->
length;
6442 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6443 pm_buffer_concat(output_buffer, prefix_buffer);
6445 if (index == last_index - 1) {
6446 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6447 pm_buffer_append_string(prefix_buffer,
" ", 4);
6449 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6450 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6453 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
lefts.
nodes[index], prefix_buffer);
6454 prefix_buffer->
length = prefix_length;
6460 pm_buffer_concat(output_buffer, prefix_buffer);
6461 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rest:", 15);
6462 if (cast->
rest == NULL) {
6463 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6465 pm_buffer_append_byte(output_buffer,
'\n');
6467 size_t prefix_length = prefix_buffer->
length;
6468 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6469 pm_buffer_concat(output_buffer, prefix_buffer);
6470 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6471 prefix_buffer->
length = prefix_length;
6477 pm_buffer_concat(output_buffer, prefix_buffer);
6478 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rights:", 17);
6479 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
rights.
size));
6482 for (uint32_t index = 0; index < last_index; index++) {
6483 size_t prefix_length = prefix_buffer->
length;
6484 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6485 pm_buffer_concat(output_buffer, prefix_buffer);
6487 if (index == last_index - 1) {
6488 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6489 pm_buffer_append_string(prefix_buffer,
" ", 4);
6491 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6492 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6495 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rights.
nodes[index], prefix_buffer);
6496 prefix_buffer->
length = prefix_length;
6502 pm_buffer_concat(output_buffer, prefix_buffer);
6503 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
6505 if (location->
start == NULL) {
6506 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6508 pm_buffer_append_byte(output_buffer,
' ');
6509 prettyprint_location(output_buffer, parser, location);
6510 pm_buffer_append_string(output_buffer,
" = \"", 4);
6511 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6512 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6518 pm_buffer_concat(output_buffer, prefix_buffer);
6519 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
6521 if (location->
start == NULL) {
6522 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6524 pm_buffer_append_byte(output_buffer,
' ');
6525 prettyprint_location(output_buffer, parser, location);
6526 pm_buffer_append_string(output_buffer,
" = \"", 4);
6527 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6528 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6534 pm_buffer_concat(output_buffer, prefix_buffer);
6535 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
6537 pm_buffer_append_byte(output_buffer,
' ');
6538 prettyprint_location(output_buffer, parser, location);
6539 pm_buffer_append_string(output_buffer,
" = \"", 4);
6540 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6541 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6546 pm_buffer_concat(output_buffer, prefix_buffer);
6547 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
6548 pm_buffer_append_byte(output_buffer,
'\n');
6550 size_t prefix_length = prefix_buffer->
length;
6551 pm_buffer_append_string(prefix_buffer,
" ", 4);
6552 pm_buffer_concat(output_buffer, prefix_buffer);
6553 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6554 prefix_buffer->
length = prefix_length;
6561 pm_buffer_append_string(output_buffer,
"@ NextNode (location: ", 22);
6562 prettyprint_location(output_buffer, parser, &node->
location);
6563 pm_buffer_append_string(output_buffer,
")\n", 2);
6567 pm_buffer_concat(output_buffer, prefix_buffer);
6568 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
6570 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6572 pm_buffer_append_byte(output_buffer,
'\n');
6574 size_t prefix_length = prefix_buffer->
length;
6575 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6576 pm_buffer_concat(output_buffer, prefix_buffer);
6577 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
6578 prefix_buffer->
length = prefix_length;
6584 pm_buffer_concat(output_buffer, prefix_buffer);
6585 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
6587 pm_buffer_append_byte(output_buffer,
' ');
6588 prettyprint_location(output_buffer, parser, location);
6589 pm_buffer_append_string(output_buffer,
" = \"", 4);
6590 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6591 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6597 pm_buffer_append_string(output_buffer,
"@ NilNode (location: ", 21);
6598 prettyprint_location(output_buffer, parser, &node->
location);
6599 pm_buffer_append_string(output_buffer,
")\n", 2);
6605 pm_buffer_append_string(output_buffer,
"@ NoKeywordsParameterNode (location: ", 37);
6606 prettyprint_location(output_buffer, parser, &node->
location);
6607 pm_buffer_append_string(output_buffer,
")\n", 2);
6611 pm_buffer_concat(output_buffer, prefix_buffer);
6612 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
6614 pm_buffer_append_byte(output_buffer,
' ');
6615 prettyprint_location(output_buffer, parser, location);
6616 pm_buffer_append_string(output_buffer,
" = \"", 4);
6617 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6618 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6623 pm_buffer_concat(output_buffer, prefix_buffer);
6624 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
6626 pm_buffer_append_byte(output_buffer,
' ');
6627 prettyprint_location(output_buffer, parser, location);
6628 pm_buffer_append_string(output_buffer,
" = \"", 4);
6629 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6630 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6637 pm_buffer_append_string(output_buffer,
"@ NumberedParametersNode (location: ", 36);
6638 prettyprint_location(output_buffer, parser, &node->
location);
6639 pm_buffer_append_string(output_buffer,
")\n", 2);
6643 pm_buffer_concat(output_buffer, prefix_buffer);
6644 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 maximum:", 18);
6645 pm_buffer_append_format(output_buffer,
" %d\n", cast->
maximum);
6652 pm_buffer_append_string(output_buffer,
"@ NumberedReferenceReadNode (location: ", 39);
6653 prettyprint_location(output_buffer, parser, &node->
location);
6654 pm_buffer_append_string(output_buffer,
")\n", 2);
6658 pm_buffer_concat(output_buffer, prefix_buffer);
6659 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 number:", 17);
6660 pm_buffer_append_format(output_buffer,
" %d\n", cast->
number);
6667 pm_buffer_append_string(output_buffer,
"@ OptionalKeywordParameterNode (location: ", 42);
6668 prettyprint_location(output_buffer, parser, &node->
location);
6669 pm_buffer_append_string(output_buffer,
")\n", 2);
6673 pm_buffer_concat(output_buffer, prefix_buffer);
6674 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
6675 pm_buffer_append_byte(output_buffer,
' ');
6676 prettyprint_constant(output_buffer, parser, cast->
name);
6677 pm_buffer_append_byte(output_buffer,
'\n');
6682 pm_buffer_concat(output_buffer, prefix_buffer);
6683 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
6685 pm_buffer_append_byte(output_buffer,
' ');
6686 prettyprint_location(output_buffer, parser, location);
6687 pm_buffer_append_string(output_buffer,
" = \"", 4);
6688 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6689 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6694 pm_buffer_concat(output_buffer, prefix_buffer);
6695 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
6696 pm_buffer_append_byte(output_buffer,
'\n');
6698 size_t prefix_length = prefix_buffer->
length;
6699 pm_buffer_append_string(prefix_buffer,
" ", 4);
6700 pm_buffer_concat(output_buffer, prefix_buffer);
6701 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6702 prefix_buffer->
length = prefix_length;
6709 pm_buffer_append_string(output_buffer,
"@ OptionalParameterNode (location: ", 35);
6710 prettyprint_location(output_buffer, parser, &node->
location);
6711 pm_buffer_append_string(output_buffer,
")\n", 2);
6715 pm_buffer_concat(output_buffer, prefix_buffer);
6716 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
6717 pm_buffer_append_byte(output_buffer,
' ');
6718 prettyprint_constant(output_buffer, parser, cast->
name);
6719 pm_buffer_append_byte(output_buffer,
'\n');
6724 pm_buffer_concat(output_buffer, prefix_buffer);
6725 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
6727 pm_buffer_append_byte(output_buffer,
' ');
6728 prettyprint_location(output_buffer, parser, location);
6729 pm_buffer_append_string(output_buffer,
" = \"", 4);
6730 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6731 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6736 pm_buffer_concat(output_buffer, prefix_buffer);
6737 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
6739 pm_buffer_append_byte(output_buffer,
' ');
6740 prettyprint_location(output_buffer, parser, location);
6741 pm_buffer_append_string(output_buffer,
" = \"", 4);
6742 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6743 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6748 pm_buffer_concat(output_buffer, prefix_buffer);
6749 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 value:", 16);
6750 pm_buffer_append_byte(output_buffer,
'\n');
6752 size_t prefix_length = prefix_buffer->
length;
6753 pm_buffer_append_string(prefix_buffer,
" ", 4);
6754 pm_buffer_concat(output_buffer, prefix_buffer);
6755 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6756 prefix_buffer->
length = prefix_length;
6763 pm_buffer_append_string(output_buffer,
"@ OrNode (location: ", 20);
6764 prettyprint_location(output_buffer, parser, &node->
location);
6765 pm_buffer_append_string(output_buffer,
")\n", 2);
6769 pm_buffer_concat(output_buffer, prefix_buffer);
6770 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 left:", 15);
6771 pm_buffer_append_byte(output_buffer,
'\n');
6773 size_t prefix_length = prefix_buffer->
length;
6774 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6775 pm_buffer_concat(output_buffer, prefix_buffer);
6776 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
6777 prefix_buffer->
length = prefix_length;
6782 pm_buffer_concat(output_buffer, prefix_buffer);
6783 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 right:", 16);
6784 pm_buffer_append_byte(output_buffer,
'\n');
6786 size_t prefix_length = prefix_buffer->
length;
6787 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6788 pm_buffer_concat(output_buffer, prefix_buffer);
6789 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
6790 prefix_buffer->
length = prefix_length;
6795 pm_buffer_concat(output_buffer, prefix_buffer);
6796 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
6798 pm_buffer_append_byte(output_buffer,
' ');
6799 prettyprint_location(output_buffer, parser, location);
6800 pm_buffer_append_string(output_buffer,
" = \"", 4);
6801 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6802 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6809 pm_buffer_append_string(output_buffer,
"@ ParametersNode (location: ", 28);
6810 prettyprint_location(output_buffer, parser, &node->
location);
6811 pm_buffer_append_string(output_buffer,
")\n", 2);
6815 pm_buffer_concat(output_buffer, prefix_buffer);
6816 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requireds:", 20);
6817 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
requireds.
size));
6820 for (uint32_t index = 0; index < last_index; index++) {
6821 size_t prefix_length = prefix_buffer->
length;
6822 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6823 pm_buffer_concat(output_buffer, prefix_buffer);
6825 if (index == last_index - 1) {
6826 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6827 pm_buffer_append_string(prefix_buffer,
" ", 4);
6829 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6830 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6834 prefix_buffer->
length = prefix_length;
6840 pm_buffer_concat(output_buffer, prefix_buffer);
6841 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 optionals:", 20);
6842 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
optionals.
size));
6845 for (uint32_t index = 0; index < last_index; index++) {
6846 size_t prefix_length = prefix_buffer->
length;
6847 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6848 pm_buffer_concat(output_buffer, prefix_buffer);
6850 if (index == last_index - 1) {
6851 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6852 pm_buffer_append_string(prefix_buffer,
" ", 4);
6854 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6855 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6859 prefix_buffer->
length = prefix_length;
6865 pm_buffer_concat(output_buffer, prefix_buffer);
6866 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rest:", 15);
6867 if (cast->
rest == NULL) {
6868 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6870 pm_buffer_append_byte(output_buffer,
'\n');
6872 size_t prefix_length = prefix_buffer->
length;
6873 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6874 pm_buffer_concat(output_buffer, prefix_buffer);
6875 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6876 prefix_buffer->
length = prefix_length;
6882 pm_buffer_concat(output_buffer, prefix_buffer);
6883 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 posts:", 16);
6884 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
posts.
size));
6887 for (uint32_t index = 0; index < last_index; index++) {
6888 size_t prefix_length = prefix_buffer->
length;
6889 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6890 pm_buffer_concat(output_buffer, prefix_buffer);
6892 if (index == last_index - 1) {
6893 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6894 pm_buffer_append_string(prefix_buffer,
" ", 4);
6896 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6897 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6900 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
posts.
nodes[index], prefix_buffer);
6901 prefix_buffer->
length = prefix_length;
6907 pm_buffer_concat(output_buffer, prefix_buffer);
6908 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keywords:", 19);
6909 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
keywords.
size));
6912 for (uint32_t index = 0; index < last_index; index++) {
6913 size_t prefix_length = prefix_buffer->
length;
6914 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6915 pm_buffer_concat(output_buffer, prefix_buffer);
6917 if (index == last_index - 1) {
6918 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
6919 pm_buffer_append_string(prefix_buffer,
" ", 4);
6921 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
6922 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6926 prefix_buffer->
length = prefix_length;
6932 pm_buffer_concat(output_buffer, prefix_buffer);
6933 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_rest:", 23);
6935 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6937 pm_buffer_append_byte(output_buffer,
'\n');
6939 size_t prefix_length = prefix_buffer->
length;
6940 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6941 pm_buffer_concat(output_buffer, prefix_buffer);
6943 prefix_buffer->
length = prefix_length;
6949 pm_buffer_concat(output_buffer, prefix_buffer);
6950 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 block:", 16);
6951 if (cast->
block == NULL) {
6952 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6954 pm_buffer_append_byte(output_buffer,
'\n');
6956 size_t prefix_length = prefix_buffer->
length;
6957 pm_buffer_append_string(prefix_buffer,
" ", 4);
6958 pm_buffer_concat(output_buffer, prefix_buffer);
6959 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
6960 prefix_buffer->
length = prefix_length;
6968 pm_buffer_append_string(output_buffer,
"@ ParenthesesNode (location: ", 29);
6969 prettyprint_location(output_buffer, parser, &node->
location);
6970 pm_buffer_append_string(output_buffer,
")\n", 2);
6974 pm_buffer_concat(output_buffer, prefix_buffer);
6975 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 body:", 15);
6976 if (cast->
body == NULL) {
6977 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
6979 pm_buffer_append_byte(output_buffer,
'\n');
6981 size_t prefix_length = prefix_buffer->
length;
6982 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
6983 pm_buffer_concat(output_buffer, prefix_buffer);
6984 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
6985 prefix_buffer->
length = prefix_length;
6991 pm_buffer_concat(output_buffer, prefix_buffer);
6992 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
6994 pm_buffer_append_byte(output_buffer,
' ');
6995 prettyprint_location(output_buffer, parser, location);
6996 pm_buffer_append_string(output_buffer,
" = \"", 4);
6997 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
6998 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7003 pm_buffer_concat(output_buffer, prefix_buffer);
7004 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
7006 pm_buffer_append_byte(output_buffer,
' ');
7007 prettyprint_location(output_buffer, parser, location);
7008 pm_buffer_append_string(output_buffer,
" = \"", 4);
7009 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7010 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7017 pm_buffer_append_string(output_buffer,
"@ PinnedExpressionNode (location: ", 34);
7018 prettyprint_location(output_buffer, parser, &node->
location);
7019 pm_buffer_append_string(output_buffer,
")\n", 2);
7023 pm_buffer_concat(output_buffer, prefix_buffer);
7024 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 expression:", 21);
7025 pm_buffer_append_byte(output_buffer,
'\n');
7027 size_t prefix_length = prefix_buffer->
length;
7028 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7029 pm_buffer_concat(output_buffer, prefix_buffer);
7031 prefix_buffer->
length = prefix_length;
7036 pm_buffer_concat(output_buffer, prefix_buffer);
7037 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7039 pm_buffer_append_byte(output_buffer,
' ');
7040 prettyprint_location(output_buffer, parser, location);
7041 pm_buffer_append_string(output_buffer,
" = \"", 4);
7042 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7043 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7048 pm_buffer_concat(output_buffer, prefix_buffer);
7049 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
7051 pm_buffer_append_byte(output_buffer,
' ');
7052 prettyprint_location(output_buffer, parser, location);
7053 pm_buffer_append_string(output_buffer,
" = \"", 4);
7054 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7055 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7060 pm_buffer_concat(output_buffer, prefix_buffer);
7061 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
7063 pm_buffer_append_byte(output_buffer,
' ');
7064 prettyprint_location(output_buffer, parser, location);
7065 pm_buffer_append_string(output_buffer,
" = \"", 4);
7066 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7067 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7074 pm_buffer_append_string(output_buffer,
"@ PinnedVariableNode (location: ", 32);
7075 prettyprint_location(output_buffer, parser, &node->
location);
7076 pm_buffer_append_string(output_buffer,
")\n", 2);
7080 pm_buffer_concat(output_buffer, prefix_buffer);
7081 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 variable:", 19);
7082 pm_buffer_append_byte(output_buffer,
'\n');
7084 size_t prefix_length = prefix_buffer->
length;
7085 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7086 pm_buffer_concat(output_buffer, prefix_buffer);
7087 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
variable, prefix_buffer);
7088 prefix_buffer->
length = prefix_length;
7093 pm_buffer_concat(output_buffer, prefix_buffer);
7094 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7096 pm_buffer_append_byte(output_buffer,
' ');
7097 prettyprint_location(output_buffer, parser, location);
7098 pm_buffer_append_string(output_buffer,
" = \"", 4);
7099 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7100 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7107 pm_buffer_append_string(output_buffer,
"@ PostExecutionNode (location: ", 31);
7108 prettyprint_location(output_buffer, parser, &node->
location);
7109 pm_buffer_append_string(output_buffer,
")\n", 2);
7113 pm_buffer_concat(output_buffer, prefix_buffer);
7114 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
7116 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7118 pm_buffer_append_byte(output_buffer,
'\n');
7120 size_t prefix_length = prefix_buffer->
length;
7121 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7122 pm_buffer_concat(output_buffer, prefix_buffer);
7124 prefix_buffer->
length = prefix_length;
7130 pm_buffer_concat(output_buffer, prefix_buffer);
7131 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
7133 pm_buffer_append_byte(output_buffer,
' ');
7134 prettyprint_location(output_buffer, parser, location);
7135 pm_buffer_append_string(output_buffer,
" = \"", 4);
7136 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7137 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7142 pm_buffer_concat(output_buffer, prefix_buffer);
7143 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
7145 pm_buffer_append_byte(output_buffer,
' ');
7146 prettyprint_location(output_buffer, parser, location);
7147 pm_buffer_append_string(output_buffer,
" = \"", 4);
7148 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7149 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7154 pm_buffer_concat(output_buffer, prefix_buffer);
7155 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
7157 pm_buffer_append_byte(output_buffer,
' ');
7158 prettyprint_location(output_buffer, parser, location);
7159 pm_buffer_append_string(output_buffer,
" = \"", 4);
7160 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7161 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7168 pm_buffer_append_string(output_buffer,
"@ PreExecutionNode (location: ", 30);
7169 prettyprint_location(output_buffer, parser, &node->
location);
7170 pm_buffer_append_string(output_buffer,
")\n", 2);
7174 pm_buffer_concat(output_buffer, prefix_buffer);
7175 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
7177 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7179 pm_buffer_append_byte(output_buffer,
'\n');
7181 size_t prefix_length = prefix_buffer->
length;
7182 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7183 pm_buffer_concat(output_buffer, prefix_buffer);
7185 prefix_buffer->
length = prefix_length;
7191 pm_buffer_concat(output_buffer, prefix_buffer);
7192 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
7194 pm_buffer_append_byte(output_buffer,
' ');
7195 prettyprint_location(output_buffer, parser, location);
7196 pm_buffer_append_string(output_buffer,
" = \"", 4);
7197 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7198 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7203 pm_buffer_concat(output_buffer, prefix_buffer);
7204 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
7206 pm_buffer_append_byte(output_buffer,
' ');
7207 prettyprint_location(output_buffer, parser, location);
7208 pm_buffer_append_string(output_buffer,
" = \"", 4);
7209 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7210 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7215 pm_buffer_concat(output_buffer, prefix_buffer);
7216 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
7218 pm_buffer_append_byte(output_buffer,
' ');
7219 prettyprint_location(output_buffer, parser, location);
7220 pm_buffer_append_string(output_buffer,
" = \"", 4);
7221 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7222 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7229 pm_buffer_append_string(output_buffer,
"@ ProgramNode (location: ", 25);
7230 prettyprint_location(output_buffer, parser, &node->
location);
7231 pm_buffer_append_string(output_buffer,
")\n", 2);
7235 pm_buffer_concat(output_buffer, prefix_buffer);
7236 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
7237 pm_buffer_append_string(output_buffer,
" [", 2);
7238 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
7239 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
7240 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
7242 pm_buffer_append_string(output_buffer,
"]\n", 2);
7247 pm_buffer_concat(output_buffer, prefix_buffer);
7248 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 statements:", 21);
7249 pm_buffer_append_byte(output_buffer,
'\n');
7251 size_t prefix_length = prefix_buffer->
length;
7252 pm_buffer_append_string(prefix_buffer,
" ", 4);
7253 pm_buffer_concat(output_buffer, prefix_buffer);
7255 prefix_buffer->
length = prefix_length;
7262 pm_buffer_append_string(output_buffer,
"@ RangeNode (location: ", 23);
7263 prettyprint_location(output_buffer, parser, &node->
location);
7264 pm_buffer_append_string(output_buffer,
")\n", 2);
7268 pm_buffer_concat(output_buffer, prefix_buffer);
7269 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
7272 if (found) pm_buffer_append_byte(output_buffer,
',');
7273 pm_buffer_append_string(output_buffer,
" exclude_end", 12);
7276 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
7277 pm_buffer_append_byte(output_buffer,
'\n');
7282 pm_buffer_concat(output_buffer, prefix_buffer);
7283 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 left:", 15);
7284 if (cast->
left == NULL) {
7285 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7287 pm_buffer_append_byte(output_buffer,
'\n');
7289 size_t prefix_length = prefix_buffer->
length;
7290 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7291 pm_buffer_concat(output_buffer, prefix_buffer);
7292 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
7293 prefix_buffer->
length = prefix_length;
7299 pm_buffer_concat(output_buffer, prefix_buffer);
7300 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 right:", 16);
7301 if (cast->
right == NULL) {
7302 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7304 pm_buffer_append_byte(output_buffer,
'\n');
7306 size_t prefix_length = prefix_buffer->
length;
7307 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7308 pm_buffer_concat(output_buffer, prefix_buffer);
7309 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
7310 prefix_buffer->
length = prefix_length;
7316 pm_buffer_concat(output_buffer, prefix_buffer);
7317 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7319 pm_buffer_append_byte(output_buffer,
' ');
7320 prettyprint_location(output_buffer, parser, location);
7321 pm_buffer_append_string(output_buffer,
" = \"", 4);
7322 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7323 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7330 pm_buffer_append_string(output_buffer,
"@ RationalNode (location: ", 26);
7331 prettyprint_location(output_buffer, parser, &node->
location);
7332 pm_buffer_append_string(output_buffer,
")\n", 2);
7336 pm_buffer_concat(output_buffer, prefix_buffer);
7337 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 numeric:", 18);
7338 pm_buffer_append_byte(output_buffer,
'\n');
7340 size_t prefix_length = prefix_buffer->
length;
7341 pm_buffer_append_string(prefix_buffer,
" ", 4);
7342 pm_buffer_concat(output_buffer, prefix_buffer);
7343 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
numeric, prefix_buffer);
7344 prefix_buffer->
length = prefix_length;
7350 pm_buffer_append_string(output_buffer,
"@ RedoNode (location: ", 22);
7351 prettyprint_location(output_buffer, parser, &node->
location);
7352 pm_buffer_append_string(output_buffer,
")\n", 2);
7358 pm_buffer_append_string(output_buffer,
"@ RegularExpressionNode (location: ", 35);
7359 prettyprint_location(output_buffer, parser, &node->
location);
7360 pm_buffer_append_string(output_buffer,
")\n", 2);
7364 pm_buffer_concat(output_buffer, prefix_buffer);
7365 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
7368 if (found) pm_buffer_append_byte(output_buffer,
',');
7369 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
7373 if (found) pm_buffer_append_byte(output_buffer,
',');
7374 pm_buffer_append_string(output_buffer,
" extended", 9);
7378 if (found) pm_buffer_append_byte(output_buffer,
',');
7379 pm_buffer_append_string(output_buffer,
" multi_line", 11);
7383 if (found) pm_buffer_append_byte(output_buffer,
',');
7384 pm_buffer_append_string(output_buffer,
" once", 5);
7388 if (found) pm_buffer_append_byte(output_buffer,
',');
7389 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
7393 if (found) pm_buffer_append_byte(output_buffer,
',');
7394 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
7398 if (found) pm_buffer_append_byte(output_buffer,
',');
7399 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
7403 if (found) pm_buffer_append_byte(output_buffer,
',');
7404 pm_buffer_append_string(output_buffer,
" utf_8", 6);
7408 if (found) pm_buffer_append_byte(output_buffer,
',');
7409 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
7413 if (found) pm_buffer_append_byte(output_buffer,
',');
7414 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
7418 if (found) pm_buffer_append_byte(output_buffer,
',');
7419 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
7422 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
7423 pm_buffer_append_byte(output_buffer,
'\n');
7428 pm_buffer_concat(output_buffer, prefix_buffer);
7429 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
7431 pm_buffer_append_byte(output_buffer,
' ');
7432 prettyprint_location(output_buffer, parser, location);
7433 pm_buffer_append_string(output_buffer,
" = \"", 4);
7434 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7435 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7440 pm_buffer_concat(output_buffer, prefix_buffer);
7441 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 content_loc:", 22);
7443 pm_buffer_append_byte(output_buffer,
' ');
7444 prettyprint_location(output_buffer, parser, location);
7445 pm_buffer_append_string(output_buffer,
" = \"", 4);
7446 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7447 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7452 pm_buffer_concat(output_buffer, prefix_buffer);
7453 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
7455 pm_buffer_append_byte(output_buffer,
' ');
7456 prettyprint_location(output_buffer, parser, location);
7457 pm_buffer_append_string(output_buffer,
" = \"", 4);
7458 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7459 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7464 pm_buffer_concat(output_buffer, prefix_buffer);
7465 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unescaped:", 20);
7466 pm_buffer_append_string(output_buffer,
" \"", 2);
7467 prettyprint_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped));
7468 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7475 pm_buffer_append_string(output_buffer,
"@ RequiredKeywordParameterNode (location: ", 42);
7476 prettyprint_location(output_buffer, parser, &node->
location);
7477 pm_buffer_append_string(output_buffer,
")\n", 2);
7481 pm_buffer_concat(output_buffer, prefix_buffer);
7482 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
7483 pm_buffer_append_byte(output_buffer,
' ');
7484 prettyprint_constant(output_buffer, parser, cast->
name);
7485 pm_buffer_append_byte(output_buffer,
'\n');
7490 pm_buffer_concat(output_buffer, prefix_buffer);
7491 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
7493 pm_buffer_append_byte(output_buffer,
' ');
7494 prettyprint_location(output_buffer, parser, location);
7495 pm_buffer_append_string(output_buffer,
" = \"", 4);
7496 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7497 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7504 pm_buffer_append_string(output_buffer,
"@ RequiredParameterNode (location: ", 35);
7505 prettyprint_location(output_buffer, parser, &node->
location);
7506 pm_buffer_append_string(output_buffer,
")\n", 2);
7510 pm_buffer_concat(output_buffer, prefix_buffer);
7511 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 name:", 15);
7512 pm_buffer_append_byte(output_buffer,
' ');
7513 prettyprint_constant(output_buffer, parser, cast->
name);
7514 pm_buffer_append_byte(output_buffer,
'\n');
7521 pm_buffer_append_string(output_buffer,
"@ RescueModifierNode (location: ", 32);
7522 prettyprint_location(output_buffer, parser, &node->
location);
7523 pm_buffer_append_string(output_buffer,
")\n", 2);
7527 pm_buffer_concat(output_buffer, prefix_buffer);
7528 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 expression:", 21);
7529 pm_buffer_append_byte(output_buffer,
'\n');
7531 size_t prefix_length = prefix_buffer->
length;
7532 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7533 pm_buffer_concat(output_buffer, prefix_buffer);
7535 prefix_buffer->
length = prefix_length;
7540 pm_buffer_concat(output_buffer, prefix_buffer);
7541 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
7543 pm_buffer_append_byte(output_buffer,
' ');
7544 prettyprint_location(output_buffer, parser, location);
7545 pm_buffer_append_string(output_buffer,
" = \"", 4);
7546 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7547 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7552 pm_buffer_concat(output_buffer, prefix_buffer);
7553 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 rescue_expression:", 28);
7554 pm_buffer_append_byte(output_buffer,
'\n');
7556 size_t prefix_length = prefix_buffer->
length;
7557 pm_buffer_append_string(prefix_buffer,
" ", 4);
7558 pm_buffer_concat(output_buffer, prefix_buffer);
7560 prefix_buffer->
length = prefix_length;
7567 pm_buffer_append_string(output_buffer,
"@ RescueNode (location: ", 24);
7568 prettyprint_location(output_buffer, parser, &node->
location);
7569 pm_buffer_append_string(output_buffer,
")\n", 2);
7573 pm_buffer_concat(output_buffer, prefix_buffer);
7574 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
7576 pm_buffer_append_byte(output_buffer,
' ');
7577 prettyprint_location(output_buffer, parser, location);
7578 pm_buffer_append_string(output_buffer,
" = \"", 4);
7579 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7580 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7585 pm_buffer_concat(output_buffer, prefix_buffer);
7586 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 exceptions:", 21);
7587 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
exceptions.
size));
7590 for (uint32_t index = 0; index < last_index; index++) {
7591 size_t prefix_length = prefix_buffer->
length;
7592 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7593 pm_buffer_concat(output_buffer, prefix_buffer);
7595 if (index == last_index - 1) {
7596 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
7597 pm_buffer_append_string(prefix_buffer,
" ", 4);
7599 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
7600 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7604 prefix_buffer->
length = prefix_length;
7610 pm_buffer_concat(output_buffer, prefix_buffer);
7611 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7613 if (location->
start == NULL) {
7614 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7616 pm_buffer_append_byte(output_buffer,
' ');
7617 prettyprint_location(output_buffer, parser, location);
7618 pm_buffer_append_string(output_buffer,
" = \"", 4);
7619 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7620 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7626 pm_buffer_concat(output_buffer, prefix_buffer);
7627 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 reference:", 20);
7629 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7631 pm_buffer_append_byte(output_buffer,
'\n');
7633 size_t prefix_length = prefix_buffer->
length;
7634 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7635 pm_buffer_concat(output_buffer, prefix_buffer);
7636 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
reference, prefix_buffer);
7637 prefix_buffer->
length = prefix_length;
7643 pm_buffer_concat(output_buffer, prefix_buffer);
7644 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
7646 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7648 pm_buffer_append_byte(output_buffer,
'\n');
7650 size_t prefix_length = prefix_buffer->
length;
7651 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7652 pm_buffer_concat(output_buffer, prefix_buffer);
7654 prefix_buffer->
length = prefix_length;
7660 pm_buffer_concat(output_buffer, prefix_buffer);
7661 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 consequent:", 21);
7663 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7665 pm_buffer_append_byte(output_buffer,
'\n');
7667 size_t prefix_length = prefix_buffer->
length;
7668 pm_buffer_append_string(prefix_buffer,
" ", 4);
7669 pm_buffer_concat(output_buffer, prefix_buffer);
7671 prefix_buffer->
length = prefix_length;
7679 pm_buffer_append_string(output_buffer,
"@ RestParameterNode (location: ", 31);
7680 prettyprint_location(output_buffer, parser, &node->
location);
7681 pm_buffer_append_string(output_buffer,
")\n", 2);
7685 pm_buffer_concat(output_buffer, prefix_buffer);
7686 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name:", 15);
7687 if (cast->
name == 0) {
7688 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7690 pm_buffer_append_byte(output_buffer,
' ');
7691 prettyprint_constant(output_buffer, parser, cast->
name);
7692 pm_buffer_append_byte(output_buffer,
'\n');
7698 pm_buffer_concat(output_buffer, prefix_buffer);
7699 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 name_loc:", 19);
7701 if (location->
start == NULL) {
7702 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7704 pm_buffer_append_byte(output_buffer,
' ');
7705 prettyprint_location(output_buffer, parser, location);
7706 pm_buffer_append_string(output_buffer,
" = \"", 4);
7707 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7708 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7714 pm_buffer_concat(output_buffer, prefix_buffer);
7715 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7717 pm_buffer_append_byte(output_buffer,
' ');
7718 prettyprint_location(output_buffer, parser, location);
7719 pm_buffer_append_string(output_buffer,
" = \"", 4);
7720 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7721 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7727 pm_buffer_append_string(output_buffer,
"@ RetryNode (location: ", 23);
7728 prettyprint_location(output_buffer, parser, &node->
location);
7729 pm_buffer_append_string(output_buffer,
")\n", 2);
7735 pm_buffer_append_string(output_buffer,
"@ ReturnNode (location: ", 24);
7736 prettyprint_location(output_buffer, parser, &node->
location);
7737 pm_buffer_append_string(output_buffer,
")\n", 2);
7741 pm_buffer_concat(output_buffer, prefix_buffer);
7742 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
7744 pm_buffer_append_byte(output_buffer,
' ');
7745 prettyprint_location(output_buffer, parser, location);
7746 pm_buffer_append_string(output_buffer,
" = \"", 4);
7747 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7748 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7753 pm_buffer_concat(output_buffer, prefix_buffer);
7754 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
7756 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7758 pm_buffer_append_byte(output_buffer,
'\n');
7760 size_t prefix_length = prefix_buffer->
length;
7761 pm_buffer_append_string(prefix_buffer,
" ", 4);
7762 pm_buffer_concat(output_buffer, prefix_buffer);
7763 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
7764 prefix_buffer->
length = prefix_length;
7771 pm_buffer_append_string(output_buffer,
"@ SelfNode (location: ", 22);
7772 prettyprint_location(output_buffer, parser, &node->
location);
7773 pm_buffer_append_string(output_buffer,
")\n", 2);
7779 pm_buffer_append_string(output_buffer,
"@ SingletonClassNode (location: ", 32);
7780 prettyprint_location(output_buffer, parser, &node->
location);
7781 pm_buffer_append_string(output_buffer,
")\n", 2);
7785 pm_buffer_concat(output_buffer, prefix_buffer);
7786 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 locals:", 17);
7787 pm_buffer_append_string(output_buffer,
" [", 2);
7788 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
7789 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
7790 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
7792 pm_buffer_append_string(output_buffer,
"]\n", 2);
7797 pm_buffer_concat(output_buffer, prefix_buffer);
7798 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 class_keyword_loc:", 28);
7800 pm_buffer_append_byte(output_buffer,
' ');
7801 prettyprint_location(output_buffer, parser, location);
7802 pm_buffer_append_string(output_buffer,
" = \"", 4);
7803 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7804 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7809 pm_buffer_concat(output_buffer, prefix_buffer);
7810 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7812 pm_buffer_append_byte(output_buffer,
' ');
7813 prettyprint_location(output_buffer, parser, location);
7814 pm_buffer_append_string(output_buffer,
" = \"", 4);
7815 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7816 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7821 pm_buffer_concat(output_buffer, prefix_buffer);
7822 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 expression:", 21);
7823 pm_buffer_append_byte(output_buffer,
'\n');
7825 size_t prefix_length = prefix_buffer->
length;
7826 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7827 pm_buffer_concat(output_buffer, prefix_buffer);
7829 prefix_buffer->
length = prefix_length;
7834 pm_buffer_concat(output_buffer, prefix_buffer);
7835 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 body:", 15);
7836 if (cast->
body == NULL) {
7837 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7839 pm_buffer_append_byte(output_buffer,
'\n');
7841 size_t prefix_length = prefix_buffer->
length;
7842 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7843 pm_buffer_concat(output_buffer, prefix_buffer);
7844 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
7845 prefix_buffer->
length = prefix_length;
7851 pm_buffer_concat(output_buffer, prefix_buffer);
7852 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
7854 pm_buffer_append_byte(output_buffer,
' ');
7855 prettyprint_location(output_buffer, parser, location);
7856 pm_buffer_append_string(output_buffer,
" = \"", 4);
7857 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7858 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7864 pm_buffer_append_string(output_buffer,
"@ SourceEncodingNode (location: ", 32);
7865 prettyprint_location(output_buffer, parser, &node->
location);
7866 pm_buffer_append_string(output_buffer,
")\n", 2);
7872 pm_buffer_append_string(output_buffer,
"@ SourceFileNode (location: ", 28);
7873 prettyprint_location(output_buffer, parser, &node->
location);
7874 pm_buffer_append_string(output_buffer,
")\n", 2);
7878 pm_buffer_concat(output_buffer, prefix_buffer);
7879 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 filepath:", 19);
7880 pm_buffer_append_string(output_buffer,
" \"", 2);
7881 prettyprint_source(output_buffer, pm_string_source(&cast->
filepath), pm_string_length(&cast->
filepath));
7882 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7888 pm_buffer_append_string(output_buffer,
"@ SourceLineNode (location: ", 28);
7889 prettyprint_location(output_buffer, parser, &node->
location);
7890 pm_buffer_append_string(output_buffer,
")\n", 2);
7896 pm_buffer_append_string(output_buffer,
"@ SplatNode (location: ", 23);
7897 prettyprint_location(output_buffer, parser, &node->
location);
7898 pm_buffer_append_string(output_buffer,
")\n", 2);
7902 pm_buffer_concat(output_buffer, prefix_buffer);
7903 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 operator_loc:", 23);
7905 pm_buffer_append_byte(output_buffer,
' ');
7906 prettyprint_location(output_buffer, parser, location);
7907 pm_buffer_append_string(output_buffer,
" = \"", 4);
7908 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
7909 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7914 pm_buffer_concat(output_buffer, prefix_buffer);
7915 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 expression:", 21);
7917 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
7919 pm_buffer_append_byte(output_buffer,
'\n');
7921 size_t prefix_length = prefix_buffer->
length;
7922 pm_buffer_append_string(prefix_buffer,
" ", 4);
7923 pm_buffer_concat(output_buffer, prefix_buffer);
7925 prefix_buffer->
length = prefix_length;
7933 pm_buffer_append_string(output_buffer,
"@ StatementsNode (location: ", 28);
7934 prettyprint_location(output_buffer, parser, &node->
location);
7935 pm_buffer_append_string(output_buffer,
")\n", 2);
7939 pm_buffer_concat(output_buffer, prefix_buffer);
7940 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 body:", 15);
7941 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
body.
size));
7943 size_t last_index = cast->
body.
size;
7944 for (uint32_t index = 0; index < last_index; index++) {
7945 size_t prefix_length = prefix_buffer->
length;
7946 pm_buffer_append_string(prefix_buffer,
" ", 4);
7947 pm_buffer_concat(output_buffer, prefix_buffer);
7949 if (index == last_index - 1) {
7950 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
7951 pm_buffer_append_string(prefix_buffer,
" ", 4);
7953 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
7954 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
7957 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body.
nodes[index], prefix_buffer);
7958 prefix_buffer->
length = prefix_length;
7966 pm_buffer_append_string(output_buffer,
"@ StringNode (location: ", 24);
7967 prettyprint_location(output_buffer, parser, &node->
location);
7968 pm_buffer_append_string(output_buffer,
")\n", 2);
7972 pm_buffer_concat(output_buffer, prefix_buffer);
7973 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
7976 if (found) pm_buffer_append_byte(output_buffer,
',');
7977 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
7981 if (found) pm_buffer_append_byte(output_buffer,
',');
7982 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
7986 if (found) pm_buffer_append_byte(output_buffer,
',');
7987 pm_buffer_append_string(output_buffer,
" frozen", 7);
7990 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
7991 pm_buffer_append_byte(output_buffer,
'\n');
7996 pm_buffer_concat(output_buffer, prefix_buffer);
7997 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
7999 if (location->
start == NULL) {
8000 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8002 pm_buffer_append_byte(output_buffer,
' ');
8003 prettyprint_location(output_buffer, parser, location);
8004 pm_buffer_append_string(output_buffer,
" = \"", 4);
8005 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8006 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8012 pm_buffer_concat(output_buffer, prefix_buffer);
8013 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 content_loc:", 22);
8015 pm_buffer_append_byte(output_buffer,
' ');
8016 prettyprint_location(output_buffer, parser, location);
8017 pm_buffer_append_string(output_buffer,
" = \"", 4);
8018 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8019 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8024 pm_buffer_concat(output_buffer, prefix_buffer);
8025 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
8027 if (location->
start == NULL) {
8028 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8030 pm_buffer_append_byte(output_buffer,
' ');
8031 prettyprint_location(output_buffer, parser, location);
8032 pm_buffer_append_string(output_buffer,
" = \"", 4);
8033 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8034 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8040 pm_buffer_concat(output_buffer, prefix_buffer);
8041 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unescaped:", 20);
8042 pm_buffer_append_string(output_buffer,
" \"", 2);
8043 prettyprint_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped));
8044 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8051 pm_buffer_append_string(output_buffer,
"@ SuperNode (location: ", 23);
8052 prettyprint_location(output_buffer, parser, &node->
location);
8053 pm_buffer_append_string(output_buffer,
")\n", 2);
8057 pm_buffer_concat(output_buffer, prefix_buffer);
8058 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8060 pm_buffer_append_byte(output_buffer,
' ');
8061 prettyprint_location(output_buffer, parser, location);
8062 pm_buffer_append_string(output_buffer,
" = \"", 4);
8063 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8064 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8069 pm_buffer_concat(output_buffer, prefix_buffer);
8070 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
8072 if (location->
start == NULL) {
8073 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8075 pm_buffer_append_byte(output_buffer,
' ');
8076 prettyprint_location(output_buffer, parser, location);
8077 pm_buffer_append_string(output_buffer,
" = \"", 4);
8078 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8079 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8085 pm_buffer_concat(output_buffer, prefix_buffer);
8086 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
8088 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8090 pm_buffer_append_byte(output_buffer,
'\n');
8092 size_t prefix_length = prefix_buffer->
length;
8093 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8094 pm_buffer_concat(output_buffer, prefix_buffer);
8095 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
8096 prefix_buffer->
length = prefix_length;
8102 pm_buffer_concat(output_buffer, prefix_buffer);
8103 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
8105 if (location->
start == NULL) {
8106 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8108 pm_buffer_append_byte(output_buffer,
' ');
8109 prettyprint_location(output_buffer, parser, location);
8110 pm_buffer_append_string(output_buffer,
" = \"", 4);
8111 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8112 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8118 pm_buffer_concat(output_buffer, prefix_buffer);
8119 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 block:", 16);
8120 if (cast->
block == NULL) {
8121 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8123 pm_buffer_append_byte(output_buffer,
'\n');
8125 size_t prefix_length = prefix_buffer->
length;
8126 pm_buffer_append_string(prefix_buffer,
" ", 4);
8127 pm_buffer_concat(output_buffer, prefix_buffer);
8128 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
8129 prefix_buffer->
length = prefix_length;
8137 pm_buffer_append_string(output_buffer,
"@ SymbolNode (location: ", 24);
8138 prettyprint_location(output_buffer, parser, &node->
location);
8139 pm_buffer_append_string(output_buffer,
")\n", 2);
8143 pm_buffer_concat(output_buffer, prefix_buffer);
8144 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
8147 if (found) pm_buffer_append_byte(output_buffer,
',');
8148 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
8152 if (found) pm_buffer_append_byte(output_buffer,
',');
8153 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
8157 if (found) pm_buffer_append_byte(output_buffer,
',');
8158 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
8161 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
8162 pm_buffer_append_byte(output_buffer,
'\n');
8167 pm_buffer_concat(output_buffer, prefix_buffer);
8168 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
8170 if (location->
start == NULL) {
8171 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8173 pm_buffer_append_byte(output_buffer,
' ');
8174 prettyprint_location(output_buffer, parser, location);
8175 pm_buffer_append_string(output_buffer,
" = \"", 4);
8176 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8177 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8183 pm_buffer_concat(output_buffer, prefix_buffer);
8184 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 value_loc:", 20);
8186 if (location->
start == NULL) {
8187 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8189 pm_buffer_append_byte(output_buffer,
' ');
8190 prettyprint_location(output_buffer, parser, location);
8191 pm_buffer_append_string(output_buffer,
" = \"", 4);
8192 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8193 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8199 pm_buffer_concat(output_buffer, prefix_buffer);
8200 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
8202 if (location->
start == NULL) {
8203 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8205 pm_buffer_append_byte(output_buffer,
' ');
8206 prettyprint_location(output_buffer, parser, location);
8207 pm_buffer_append_string(output_buffer,
" = \"", 4);
8208 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8209 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8215 pm_buffer_concat(output_buffer, prefix_buffer);
8216 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unescaped:", 20);
8217 pm_buffer_append_string(output_buffer,
" \"", 2);
8218 prettyprint_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped));
8219 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8225 pm_buffer_append_string(output_buffer,
"@ TrueNode (location: ", 22);
8226 prettyprint_location(output_buffer, parser, &node->
location);
8227 pm_buffer_append_string(output_buffer,
")\n", 2);
8233 pm_buffer_append_string(output_buffer,
"@ UndefNode (location: ", 23);
8234 prettyprint_location(output_buffer, parser, &node->
location);
8235 pm_buffer_append_string(output_buffer,
")\n", 2);
8239 pm_buffer_concat(output_buffer, prefix_buffer);
8240 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 names:", 16);
8241 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
names.
size));
8244 for (uint32_t index = 0; index < last_index; index++) {
8245 size_t prefix_length = prefix_buffer->
length;
8246 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8247 pm_buffer_concat(output_buffer, prefix_buffer);
8249 if (index == last_index - 1) {
8250 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
8251 pm_buffer_append_string(prefix_buffer,
" ", 4);
8253 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
8254 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8257 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
names.
nodes[index], prefix_buffer);
8258 prefix_buffer->
length = prefix_length;
8264 pm_buffer_concat(output_buffer, prefix_buffer);
8265 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8267 pm_buffer_append_byte(output_buffer,
' ');
8268 prettyprint_location(output_buffer, parser, location);
8269 pm_buffer_append_string(output_buffer,
" = \"", 4);
8270 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8271 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8278 pm_buffer_append_string(output_buffer,
"@ UnlessNode (location: ", 24);
8279 prettyprint_location(output_buffer, parser, &node->
location);
8280 pm_buffer_append_string(output_buffer,
")\n", 2);
8284 pm_buffer_concat(output_buffer, prefix_buffer);
8285 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8287 pm_buffer_append_byte(output_buffer,
' ');
8288 prettyprint_location(output_buffer, parser, location);
8289 pm_buffer_append_string(output_buffer,
" = \"", 4);
8290 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8291 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8296 pm_buffer_concat(output_buffer, prefix_buffer);
8297 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 predicate:", 20);
8298 pm_buffer_append_byte(output_buffer,
'\n');
8300 size_t prefix_length = prefix_buffer->
length;
8301 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8302 pm_buffer_concat(output_buffer, prefix_buffer);
8303 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8304 prefix_buffer->
length = prefix_length;
8309 pm_buffer_concat(output_buffer, prefix_buffer);
8310 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 then_keyword_loc:", 27);
8312 if (location->
start == NULL) {
8313 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8315 pm_buffer_append_byte(output_buffer,
' ');
8316 prettyprint_location(output_buffer, parser, location);
8317 pm_buffer_append_string(output_buffer,
" = \"", 4);
8318 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8319 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8325 pm_buffer_concat(output_buffer, prefix_buffer);
8326 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 statements:", 21);
8328 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8330 pm_buffer_append_byte(output_buffer,
'\n');
8332 size_t prefix_length = prefix_buffer->
length;
8333 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8334 pm_buffer_concat(output_buffer, prefix_buffer);
8336 prefix_buffer->
length = prefix_length;
8342 pm_buffer_concat(output_buffer, prefix_buffer);
8343 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 consequent:", 21);
8345 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8347 pm_buffer_append_byte(output_buffer,
'\n');
8349 size_t prefix_length = prefix_buffer->
length;
8350 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8351 pm_buffer_concat(output_buffer, prefix_buffer);
8353 prefix_buffer->
length = prefix_length;
8359 pm_buffer_concat(output_buffer, prefix_buffer);
8360 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 end_keyword_loc:", 26);
8362 if (location->
start == NULL) {
8363 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8365 pm_buffer_append_byte(output_buffer,
' ');
8366 prettyprint_location(output_buffer, parser, location);
8367 pm_buffer_append_string(output_buffer,
" = \"", 4);
8368 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8369 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8377 pm_buffer_append_string(output_buffer,
"@ UntilNode (location: ", 23);
8378 prettyprint_location(output_buffer, parser, &node->
location);
8379 pm_buffer_append_string(output_buffer,
")\n", 2);
8383 pm_buffer_concat(output_buffer, prefix_buffer);
8384 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
8387 if (found) pm_buffer_append_byte(output_buffer,
',');
8388 pm_buffer_append_string(output_buffer,
" begin_modifier", 15);
8391 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
8392 pm_buffer_append_byte(output_buffer,
'\n');
8397 pm_buffer_concat(output_buffer, prefix_buffer);
8398 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8400 pm_buffer_append_byte(output_buffer,
' ');
8401 prettyprint_location(output_buffer, parser, location);
8402 pm_buffer_append_string(output_buffer,
" = \"", 4);
8403 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8404 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8409 pm_buffer_concat(output_buffer, prefix_buffer);
8410 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
8412 if (location->
start == NULL) {
8413 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8415 pm_buffer_append_byte(output_buffer,
' ');
8416 prettyprint_location(output_buffer, parser, location);
8417 pm_buffer_append_string(output_buffer,
" = \"", 4);
8418 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8419 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8425 pm_buffer_concat(output_buffer, prefix_buffer);
8426 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 predicate:", 20);
8427 pm_buffer_append_byte(output_buffer,
'\n');
8429 size_t prefix_length = prefix_buffer->
length;
8430 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8431 pm_buffer_concat(output_buffer, prefix_buffer);
8432 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8433 prefix_buffer->
length = prefix_length;
8438 pm_buffer_concat(output_buffer, prefix_buffer);
8439 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 statements:", 21);
8441 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8443 pm_buffer_append_byte(output_buffer,
'\n');
8445 size_t prefix_length = prefix_buffer->
length;
8446 pm_buffer_append_string(prefix_buffer,
" ", 4);
8447 pm_buffer_concat(output_buffer, prefix_buffer);
8449 prefix_buffer->
length = prefix_length;
8457 pm_buffer_append_string(output_buffer,
"@ WhenNode (location: ", 22);
8458 prettyprint_location(output_buffer, parser, &node->
location);
8459 pm_buffer_append_string(output_buffer,
")\n", 2);
8463 pm_buffer_concat(output_buffer, prefix_buffer);
8464 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8466 pm_buffer_append_byte(output_buffer,
' ');
8467 prettyprint_location(output_buffer, parser, location);
8468 pm_buffer_append_string(output_buffer,
" = \"", 4);
8469 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8470 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8475 pm_buffer_concat(output_buffer, prefix_buffer);
8476 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conditions:", 21);
8477 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
conditions.
size));
8480 for (uint32_t index = 0; index < last_index; index++) {
8481 size_t prefix_length = prefix_buffer->
length;
8482 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8483 pm_buffer_concat(output_buffer, prefix_buffer);
8485 if (index == last_index - 1) {
8486 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ", 10);
8487 pm_buffer_append_string(prefix_buffer,
" ", 4);
8489 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ", 10);
8490 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8494 prefix_buffer->
length = prefix_length;
8500 pm_buffer_concat(output_buffer, prefix_buffer);
8501 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 statements:", 21);
8503 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8505 pm_buffer_append_byte(output_buffer,
'\n');
8507 size_t prefix_length = prefix_buffer->
length;
8508 pm_buffer_append_string(prefix_buffer,
" ", 4);
8509 pm_buffer_concat(output_buffer, prefix_buffer);
8511 prefix_buffer->
length = prefix_length;
8519 pm_buffer_append_string(output_buffer,
"@ WhileNode (location: ", 23);
8520 prettyprint_location(output_buffer, parser, &node->
location);
8521 pm_buffer_append_string(output_buffer,
")\n", 2);
8525 pm_buffer_concat(output_buffer, prefix_buffer);
8526 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
8529 if (found) pm_buffer_append_byte(output_buffer,
',');
8530 pm_buffer_append_string(output_buffer,
" begin_modifier", 15);
8533 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
8534 pm_buffer_append_byte(output_buffer,
'\n');
8539 pm_buffer_concat(output_buffer, prefix_buffer);
8540 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8542 pm_buffer_append_byte(output_buffer,
' ');
8543 prettyprint_location(output_buffer, parser, location);
8544 pm_buffer_append_string(output_buffer,
" = \"", 4);
8545 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8546 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8551 pm_buffer_concat(output_buffer, prefix_buffer);
8552 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
8554 if (location->
start == NULL) {
8555 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8557 pm_buffer_append_byte(output_buffer,
' ');
8558 prettyprint_location(output_buffer, parser, location);
8559 pm_buffer_append_string(output_buffer,
" = \"", 4);
8560 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8561 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8567 pm_buffer_concat(output_buffer, prefix_buffer);
8568 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 predicate:", 20);
8569 pm_buffer_append_byte(output_buffer,
'\n');
8571 size_t prefix_length = prefix_buffer->
length;
8572 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8573 pm_buffer_concat(output_buffer, prefix_buffer);
8574 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8575 prefix_buffer->
length = prefix_length;
8580 pm_buffer_concat(output_buffer, prefix_buffer);
8581 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 statements:", 21);
8583 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8585 pm_buffer_append_byte(output_buffer,
'\n');
8587 size_t prefix_length = prefix_buffer->
length;
8588 pm_buffer_append_string(prefix_buffer,
" ", 4);
8589 pm_buffer_concat(output_buffer, prefix_buffer);
8591 prefix_buffer->
length = prefix_length;
8599 pm_buffer_append_string(output_buffer,
"@ XStringNode (location: ", 25);
8600 prettyprint_location(output_buffer, parser, &node->
location);
8601 pm_buffer_append_string(output_buffer,
")\n", 2);
8605 pm_buffer_concat(output_buffer, prefix_buffer);
8606 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 flags:", 16);
8609 if (found) pm_buffer_append_byte(output_buffer,
',');
8610 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
8614 if (found) pm_buffer_append_byte(output_buffer,
',');
8615 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
8618 if (!found) pm_buffer_append_string(output_buffer,
" \xe2\x88\x85", 4);
8619 pm_buffer_append_byte(output_buffer,
'\n');
8624 pm_buffer_concat(output_buffer, prefix_buffer);
8625 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 opening_loc:", 22);
8627 pm_buffer_append_byte(output_buffer,
' ');
8628 prettyprint_location(output_buffer, parser, location);
8629 pm_buffer_append_string(output_buffer,
" = \"", 4);
8630 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8631 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8636 pm_buffer_concat(output_buffer, prefix_buffer);
8637 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 content_loc:", 22);
8639 pm_buffer_append_byte(output_buffer,
' ');
8640 prettyprint_location(output_buffer, parser, location);
8641 pm_buffer_append_string(output_buffer,
" = \"", 4);
8642 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8643 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8648 pm_buffer_concat(output_buffer, prefix_buffer);
8649 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 closing_loc:", 22);
8651 pm_buffer_append_byte(output_buffer,
' ');
8652 prettyprint_location(output_buffer, parser, location);
8653 pm_buffer_append_string(output_buffer,
" = \"", 4);
8654 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8655 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8660 pm_buffer_concat(output_buffer, prefix_buffer);
8661 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unescaped:", 20);
8662 pm_buffer_append_string(output_buffer,
" \"", 2);
8663 prettyprint_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped));
8664 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8671 pm_buffer_append_string(output_buffer,
"@ YieldNode (location: ", 23);
8672 prettyprint_location(output_buffer, parser, &node->
location);
8673 pm_buffer_append_string(output_buffer,
")\n", 2);
8677 pm_buffer_concat(output_buffer, prefix_buffer);
8678 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keyword_loc:", 22);
8680 pm_buffer_append_byte(output_buffer,
' ');
8681 prettyprint_location(output_buffer, parser, location);
8682 pm_buffer_append_string(output_buffer,
" = \"", 4);
8683 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8684 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8689 pm_buffer_concat(output_buffer, prefix_buffer);
8690 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lparen_loc:", 21);
8692 if (location->
start == NULL) {
8693 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8695 pm_buffer_append_byte(output_buffer,
' ');
8696 prettyprint_location(output_buffer, parser, location);
8697 pm_buffer_append_string(output_buffer,
" = \"", 4);
8698 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8699 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8705 pm_buffer_concat(output_buffer, prefix_buffer);
8706 pm_buffer_append_string(output_buffer,
"\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 arguments:", 20);
8708 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8710 pm_buffer_append_byte(output_buffer,
'\n');
8712 size_t prefix_length = prefix_buffer->
length;
8713 pm_buffer_append_string(prefix_buffer,
"\xe2\x94\x82 ", 6);
8714 pm_buffer_concat(output_buffer, prefix_buffer);
8715 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
8716 prefix_buffer->
length = prefix_length;
8722 pm_buffer_concat(output_buffer, prefix_buffer);
8723 pm_buffer_append_string(output_buffer,
"\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 rparen_loc:", 21);
8725 if (location->
start == NULL) {
8726 pm_buffer_append_string(output_buffer,
" \xe2\x88\x85\n", 5);
8728 pm_buffer_append_byte(output_buffer,
' ');
8729 prettyprint_location(output_buffer, parser, location);
8730 pm_buffer_append_string(output_buffer,
" = \"", 4);
8731 prettyprint_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start));
8732 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8747 prettyprint_node(output_buffer, parser, node, &prefix_buffer);
8748 pm_buffer_free(&prefix_buffer);
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
@ PM_DEFINED_NODE
DefinedNode.
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
@ PM_RETRY_NODE
RetryNode.
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
@ PM_SOURCE_LINE_NODE
SourceLineNode.
@ PM_UNLESS_NODE
UnlessNode.
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
@ PM_RATIONAL_NODE
RationalNode.
@ PM_YIELD_NODE
YieldNode.
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
@ PM_CLASS_NODE
ClassNode.
@ PM_FIND_PATTERN_NODE
FindPatternNode.
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
@ PM_ARRAY_NODE
ArrayNode.
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
@ PM_PROGRAM_NODE
ProgramNode.
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
@ PM_IMPLICIT_NODE
ImplicitNode.
@ PM_ARGUMENTS_NODE
ArgumentsNode.
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
@ PM_WHILE_NODE
WhileNode.
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
@ PM_FALSE_NODE
FalseNode.
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
@ PM_UNTIL_NODE
UntilNode.
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
@ PM_X_STRING_NODE
XStringNode.
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
@ PM_SOURCE_FILE_NODE
SourceFileNode.
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
@ PM_SPLAT_NODE
SplatNode.
@ PM_LAMBDA_NODE
LambdaNode.
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
@ PM_CALL_TARGET_NODE
CallTargetNode.
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
@ PM_SYMBOL_NODE
SymbolNode.
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
@ PM_SCOPE_NODE
A special kind of node used for compilation.
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
@ PM_MISSING_NODE
MissingNode.
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
@ PM_RANGE_NODE
RangeNode.
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
@ PM_HASH_PATTERN_NODE
HashPatternNode.
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
@ PM_UNDEF_NODE
UndefNode.
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
@ PM_ENSURE_NODE
EnsureNode.
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
@ PM_PARENTHESES_NODE
ParenthesesNode.
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
@ PM_RETURN_NODE
ReturnNode.
@ PM_MODULE_NODE
ModuleNode.
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
@ PM_SUPER_NODE
SuperNode.
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
@ PM_CASE_MATCH_NODE
CaseMatchNode.
@ PM_BREAK_NODE
BreakNode.
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
@ PM_IMAGINARY_NODE
ImaginaryNode.
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
@ PM_BEGIN_NODE
BeginNode.
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
@ PM_RESCUE_NODE
RescueNode.
@ PM_FLOAT_NODE
FloatNode.
@ PM_ASSOC_NODE
AssocNode.
@ PM_INTEGER_NODE
IntegerNode.
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
@ PM_STRING_NODE
StringNode.
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
@ PM_PARAMETERS_NODE
ParametersNode.
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
@ PM_STATEMENTS_NODE
StatementsNode.
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
@ PM_BLOCK_NODE
BlockNode.
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
@ PM_REST_PARAMETER_NODE
RestParameterNode.
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal comment
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if arguments contain keyword splat
#define PM_NODE_TYPE(node)
Cast the type to an enum to allow the compiler to provide exhaustiveness checking.
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
@ PM_KEYWORD_HASH_NODE_FLAGS_STATIC_KEYS
a keyword hash which only has AssocNode elements all with static literal keys, which means the elemen...
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
An AST node pretty-printer.
#define PRISM_EXPORTED_FUNCTION
By default, we compile with -fvisibility=hidden.
struct pm_node * old_name
AliasGlobalVariableNode#old_name.
struct pm_node * new_name
AliasGlobalVariableNode#new_name.
pm_location_t keyword_loc
AliasGlobalVariableNode#keyword_loc.
struct pm_node * old_name
AliasMethodNode#old_name.
struct pm_node * new_name
AliasMethodNode#new_name.
pm_location_t keyword_loc
AliasMethodNode#keyword_loc.
pm_location_t operator_loc
AlternationPatternNode#operator_loc.
struct pm_node * left
AlternationPatternNode#left.
struct pm_node * right
AlternationPatternNode#right.
struct pm_node * left
AndNode#left.
struct pm_node * right
AndNode#right.
pm_location_t operator_loc
AndNode#operator_loc.
pm_node_t base
The embedded base node.
struct pm_node_list arguments
ArgumentsNode#arguments.
pm_node_t base
The embedded base node.
pm_location_t closing_loc
ArrayNode#closing_loc.
struct pm_node_list elements
ArrayNode#elements.
pm_location_t opening_loc
ArrayNode#opening_loc.
struct pm_node_list requireds
ArrayPatternNode#requireds.
struct pm_node * rest
ArrayPatternNode#rest.
struct pm_node * constant
ArrayPatternNode#constant.
pm_location_t opening_loc
ArrayPatternNode#opening_loc.
pm_location_t closing_loc
ArrayPatternNode#closing_loc.
struct pm_node_list posts
ArrayPatternNode#posts.
struct pm_node * value
AssocNode#value.
struct pm_node * key
AssocNode#key.
pm_location_t operator_loc
AssocNode#operator_loc.
struct pm_node * value
AssocSplatNode#value.
pm_location_t operator_loc
AssocSplatNode#operator_loc.
pm_constant_id_t name
BackReferenceReadNode#name.
struct pm_ensure_node * ensure_clause
BeginNode#ensure_clause.
struct pm_rescue_node * rescue_clause
BeginNode#rescue_clause.
struct pm_statements_node * statements
BeginNode#statements.
pm_location_t end_keyword_loc
BeginNode#end_keyword_loc.
pm_location_t begin_keyword_loc
BeginNode#begin_keyword_loc.
struct pm_else_node * else_clause
BeginNode#else_clause.
struct pm_node * expression
BlockArgumentNode#expression.
pm_location_t operator_loc
BlockArgumentNode#operator_loc.
pm_constant_id_t name
BlockLocalVariableNode#name.
pm_location_t closing_loc
BlockNode#closing_loc.
struct pm_node * parameters
BlockNode#parameters.
pm_location_t opening_loc
BlockNode#opening_loc.
struct pm_node * body
BlockNode#body.
uint32_t locals_body_index
BlockNode#locals_body_index.
pm_constant_id_list_t locals
BlockNode#locals.
pm_location_t operator_loc
BlockParameterNode#operator_loc.
pm_location_t name_loc
BlockParameterNode#name_loc.
pm_constant_id_t name
BlockParameterNode#name.
struct pm_parameters_node * parameters
BlockParametersNode#parameters.
struct pm_node_list locals
BlockParametersNode#locals.
pm_location_t closing_loc
BlockParametersNode#closing_loc.
pm_location_t opening_loc
BlockParametersNode#opening_loc.
struct pm_arguments_node * arguments
BreakNode#arguments.
pm_location_t keyword_loc
BreakNode#keyword_loc.
A pm_buffer_t is a simple memory buffer that stores data in a contiguous block of memory.
size_t length
The length of the buffer in bytes.
pm_location_t operator_loc
CallAndWriteNode#operator_loc.
struct pm_node * value
CallAndWriteNode#value.
pm_node_t base
The embedded base node.
pm_location_t call_operator_loc
CallAndWriteNode#call_operator_loc.
pm_location_t message_loc
CallAndWriteNode#message_loc.
pm_constant_id_t read_name
CallAndWriteNode#read_name.
pm_constant_id_t write_name
CallAndWriteNode#write_name.
struct pm_node * receiver
CallAndWriteNode#receiver.
pm_location_t opening_loc
CallNode#opening_loc.
pm_location_t closing_loc
CallNode#closing_loc.
struct pm_node * receiver
CallNode#receiver.
pm_constant_id_t name
CallNode::name.
pm_node_t base
The embedded base node.
pm_location_t call_operator_loc
CallNode#call_operator_loc.
pm_location_t message_loc
CallNode#message_loc.
struct pm_arguments_node * arguments
CallNode#arguments.
struct pm_node * block
CallNode#block.
pm_constant_id_t read_name
CallOperatorWriteNode#read_name.
struct pm_node * receiver
CallOperatorWriteNode#receiver.
pm_node_t base
The embedded base node.
pm_constant_id_t write_name
CallOperatorWriteNode#write_name.
pm_location_t message_loc
CallOperatorWriteNode#message_loc.
pm_constant_id_t operator
CallOperatorWriteNode#operator.
pm_location_t operator_loc
CallOperatorWriteNode#operator_loc.
struct pm_node * value
CallOperatorWriteNode#value.
pm_location_t call_operator_loc
CallOperatorWriteNode#call_operator_loc.
pm_location_t operator_loc
CallOrWriteNode#operator_loc.
pm_location_t call_operator_loc
CallOrWriteNode#call_operator_loc.
pm_node_t base
The embedded base node.
struct pm_node * receiver
CallOrWriteNode#receiver.
struct pm_node * value
CallOrWriteNode#value.
pm_constant_id_t write_name
CallOrWriteNode#write_name.
pm_constant_id_t read_name
CallOrWriteNode#read_name.
pm_location_t message_loc
CallOrWriteNode#message_loc.
pm_node_t base
The embedded base node.
pm_constant_id_t name
CallTargetNode#name.
struct pm_node * receiver
CallTargetNode#receiver.
pm_location_t call_operator_loc
CallTargetNode#call_operator_loc.
pm_location_t message_loc
CallTargetNode#message_loc.
struct pm_node * target
CapturePatternNode#target.
pm_location_t operator_loc
CapturePatternNode#operator_loc.
struct pm_node * value
CapturePatternNode#value.
pm_location_t end_keyword_loc
CaseMatchNode#end_keyword_loc.
struct pm_node_list conditions
CaseMatchNode#conditions.
struct pm_else_node * consequent
CaseMatchNode#consequent.
pm_location_t case_keyword_loc
CaseMatchNode#case_keyword_loc.
struct pm_node * predicate
CaseMatchNode#predicate.
struct pm_node * predicate
CaseNode#predicate.
struct pm_else_node * consequent
CaseNode#consequent.
struct pm_node_list conditions
CaseNode#conditions.
pm_location_t case_keyword_loc
CaseNode#case_keyword_loc.
pm_location_t end_keyword_loc
CaseNode#end_keyword_loc.
pm_location_t class_keyword_loc
ClassNode#class_keyword_loc.
pm_location_t end_keyword_loc
ClassNode#end_keyword_loc.
struct pm_node * constant_path
ClassNode#constant_path.
pm_constant_id_list_t locals
ClassNode#locals.
pm_location_t inheritance_operator_loc
ClassNode#inheritance_operator_loc.
pm_constant_id_t name
ClassNode#name.
struct pm_node * body
ClassNode#body.
struct pm_node * superclass
ClassNode#superclass.
ClassVariableAndWriteNode.
struct pm_node * value
ClassVariableAndWriteNode#value.
pm_constant_id_t name
ClassVariableAndWriteNode#name.
pm_location_t operator_loc
ClassVariableAndWriteNode#operator_loc.
pm_location_t name_loc
ClassVariableAndWriteNode#name_loc.
ClassVariableOperatorWriteNode.
pm_location_t operator_loc
ClassVariableOperatorWriteNode#operator_loc.
pm_constant_id_t name
ClassVariableOperatorWriteNode#name.
pm_constant_id_t operator
ClassVariableOperatorWriteNode#operator.
pm_location_t name_loc
ClassVariableOperatorWriteNode#name_loc.
struct pm_node * value
ClassVariableOperatorWriteNode#value.
ClassVariableOrWriteNode.
pm_location_t name_loc
ClassVariableOrWriteNode#name_loc.
pm_location_t operator_loc
ClassVariableOrWriteNode#operator_loc.
pm_constant_id_t name
ClassVariableOrWriteNode#name.
struct pm_node * value
ClassVariableOrWriteNode#value.
pm_constant_id_t name
ClassVariableReadNode#name.
pm_constant_id_t name
ClassVariableTargetNode#name.
pm_location_t name_loc
ClassVariableWriteNode#name_loc.
struct pm_node * value
ClassVariableWriteNode#value.
pm_location_t operator_loc
ClassVariableWriteNode#operator_loc.
pm_constant_id_t name
ClassVariableWriteNode#name.
pm_location_t operator_loc
ConstantAndWriteNode#operator_loc.
pm_location_t name_loc
ConstantAndWriteNode#name_loc.
pm_constant_id_t name
ConstantAndWriteNode#name.
struct pm_node * value
ConstantAndWriteNode#value.
size_t size
The number of constant ids in the list.
pm_constant_id_t * ids
The constant ids in the list.
ConstantOperatorWriteNode.
pm_constant_id_t name
ConstantOperatorWriteNode#name.
pm_location_t name_loc
ConstantOperatorWriteNode#name_loc.
pm_constant_id_t operator
ConstantOperatorWriteNode#operator.
struct pm_node * value
ConstantOperatorWriteNode#value.
pm_location_t operator_loc
ConstantOperatorWriteNode#operator_loc.
pm_location_t operator_loc
ConstantOrWriteNode#operator_loc.
pm_location_t name_loc
ConstantOrWriteNode#name_loc.
pm_constant_id_t name
ConstantOrWriteNode#name.
struct pm_node * value
ConstantOrWriteNode#value.
ConstantPathAndWriteNode.
struct pm_constant_path_node * target
ConstantPathAndWriteNode#target.
pm_location_t operator_loc
ConstantPathAndWriteNode#operator_loc.
struct pm_node * value
ConstantPathAndWriteNode#value.
pm_location_t delimiter_loc
ConstantPathNode#delimiter_loc.
struct pm_node * child
ConstantPathNode#child.
struct pm_node * parent
ConstantPathNode#parent.
ConstantPathOperatorWriteNode.
pm_constant_id_t operator
ConstantPathOperatorWriteNode#operator.
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode#target.
struct pm_node * value
ConstantPathOperatorWriteNode#value.
pm_location_t operator_loc
ConstantPathOperatorWriteNode#operator_loc.
pm_location_t operator_loc
ConstantPathOrWriteNode#operator_loc.
struct pm_node * value
ConstantPathOrWriteNode#value.
struct pm_constant_path_node * target
ConstantPathOrWriteNode#target.
struct pm_node * parent
ConstantPathTargetNode#parent.
pm_location_t delimiter_loc
ConstantPathTargetNode#delimiter_loc.
struct pm_node * child
ConstantPathTargetNode#child.
struct pm_constant_path_node * target
ConstantPathWriteNode#target.
pm_location_t operator_loc
ConstantPathWriteNode#operator_loc.
struct pm_node * value
ConstantPathWriteNode#value.
pm_constant_id_t name
ConstantReadNode#name.
A constant in the pool which effectively stores a string.
size_t length
The length of the string.
const uint8_t * start
A pointer to the start of the string.
pm_constant_id_t name
ConstantTargetNode#name.
struct pm_node * value
ConstantWriteNode#value.
pm_constant_id_t name
ConstantWriteNode#name.
pm_location_t name_loc
ConstantWriteNode#name_loc.
pm_location_t operator_loc
ConstantWriteNode#operator_loc.
struct pm_parameters_node * parameters
DefNode#parameters.
uint32_t locals_body_index
DefNode#locals_body_index.
pm_location_t end_keyword_loc
DefNode#end_keyword_loc.
pm_constant_id_t name
DefNode#name.
pm_location_t name_loc
DefNode#name_loc.
pm_location_t rparen_loc
DefNode#rparen_loc.
struct pm_node * body
DefNode#body.
pm_location_t equal_loc
DefNode#equal_loc.
pm_location_t def_keyword_loc
DefNode#def_keyword_loc.
struct pm_node * receiver
DefNode#receiver.
pm_location_t lparen_loc
DefNode#lparen_loc.
pm_location_t operator_loc
DefNode#operator_loc.
pm_constant_id_list_t locals
DefNode#locals.
pm_location_t lparen_loc
DefinedNode#lparen_loc.
pm_location_t rparen_loc
DefinedNode#rparen_loc.
pm_location_t keyword_loc
DefinedNode#keyword_loc.
struct pm_node * value
DefinedNode#value.
struct pm_statements_node * statements
ElseNode#statements.
pm_location_t else_keyword_loc
ElseNode#else_keyword_loc.
pm_location_t end_keyword_loc
ElseNode#end_keyword_loc.
pm_location_t closing_loc
EmbeddedStatementsNode#closing_loc.
struct pm_statements_node * statements
EmbeddedStatementsNode#statements.
pm_location_t opening_loc
EmbeddedStatementsNode#opening_loc.
struct pm_node * variable
EmbeddedVariableNode#variable.
pm_location_t operator_loc
EmbeddedVariableNode#operator_loc.
struct pm_statements_node * statements
EnsureNode#statements.
pm_location_t ensure_keyword_loc
EnsureNode#ensure_keyword_loc.
pm_location_t end_keyword_loc
EnsureNode#end_keyword_loc.
struct pm_node * left
FindPatternNode#left.
struct pm_node * constant
FindPatternNode#constant.
struct pm_node * right
FindPatternNode#right.
pm_location_t opening_loc
FindPatternNode#opening_loc.
struct pm_node_list requireds
FindPatternNode#requireds.
pm_location_t closing_loc
FindPatternNode#closing_loc.
pm_node_t base
The embedded base node.
pm_location_t operator_loc
FlipFlopNode#operator_loc.
struct pm_node * left
FlipFlopNode#left.
struct pm_node * right
FlipFlopNode#right.
struct pm_statements_node * statements
ForNode#statements.
struct pm_node * index
ForNode#index.
struct pm_node * collection
ForNode#collection.
pm_location_t end_keyword_loc
ForNode#end_keyword_loc.
pm_location_t for_keyword_loc
ForNode#for_keyword_loc.
pm_location_t do_keyword_loc
ForNode#do_keyword_loc.
pm_location_t in_keyword_loc
ForNode#in_keyword_loc.
struct pm_block_node * block
ForwardingSuperNode#block.
GlobalVariableAndWriteNode.
pm_location_t operator_loc
GlobalVariableAndWriteNode#operator_loc.
pm_location_t name_loc
GlobalVariableAndWriteNode#name_loc.
struct pm_node * value
GlobalVariableAndWriteNode#value.
pm_constant_id_t name
GlobalVariableAndWriteNode#name.
GlobalVariableOperatorWriteNode.
pm_constant_id_t name
GlobalVariableOperatorWriteNode#name.
pm_constant_id_t operator
GlobalVariableOperatorWriteNode#operator.
pm_location_t operator_loc
GlobalVariableOperatorWriteNode#operator_loc.
struct pm_node * value
GlobalVariableOperatorWriteNode#value.
pm_location_t name_loc
GlobalVariableOperatorWriteNode#name_loc.
GlobalVariableOrWriteNode.
pm_constant_id_t name
GlobalVariableOrWriteNode#name.
pm_location_t name_loc
GlobalVariableOrWriteNode#name_loc.
pm_location_t operator_loc
GlobalVariableOrWriteNode#operator_loc.
struct pm_node * value
GlobalVariableOrWriteNode#value.
pm_constant_id_t name
GlobalVariableReadNode#name.
GlobalVariableTargetNode.
pm_constant_id_t name
GlobalVariableTargetNode#name.
struct pm_node * value
GlobalVariableWriteNode#value.
pm_location_t name_loc
GlobalVariableWriteNode#name_loc.
pm_location_t operator_loc
GlobalVariableWriteNode#operator_loc.
pm_constant_id_t name
GlobalVariableWriteNode#name.
struct pm_node_list elements
HashNode#elements.
pm_location_t closing_loc
HashNode#closing_loc.
pm_location_t opening_loc
HashNode#opening_loc.
struct pm_node_list elements
HashPatternNode#elements.
pm_location_t opening_loc
HashPatternNode#opening_loc.
struct pm_node * rest
HashPatternNode#rest.
pm_location_t closing_loc
HashPatternNode#closing_loc.
struct pm_node * constant
HashPatternNode#constant.
struct pm_node * consequent
IfNode#consequent.
struct pm_node * predicate
IfNode#predicate.
pm_location_t end_keyword_loc
IfNode#end_keyword_loc.
pm_location_t if_keyword_loc
IfNode#if_keyword_loc.
struct pm_statements_node * statements
IfNode#statements.
pm_location_t then_keyword_loc
IfNode#then_keyword_loc.
struct pm_node * numeric
ImaginaryNode#numeric.
struct pm_node * value
ImplicitNode#value.
struct pm_statements_node * statements
InNode#statements.
struct pm_node * pattern
InNode#pattern.
pm_location_t then_loc
InNode#then_loc.
pm_location_t in_loc
InNode#in_loc.
struct pm_arguments_node * arguments
IndexAndWriteNode#arguments.
struct pm_node * receiver
IndexAndWriteNode#receiver.
pm_node_t base
The embedded base node.
struct pm_node * value
IndexAndWriteNode#value.
pm_location_t operator_loc
IndexAndWriteNode#operator_loc.
struct pm_node * block
IndexAndWriteNode#block.
pm_location_t closing_loc
IndexAndWriteNode#closing_loc.
pm_location_t opening_loc
IndexAndWriteNode#opening_loc.
pm_location_t call_operator_loc
IndexAndWriteNode#call_operator_loc.
pm_node_t base
The embedded base node.
pm_constant_id_t operator
IndexOperatorWriteNode#operator.
struct pm_node * value
IndexOperatorWriteNode#value.
pm_location_t opening_loc
IndexOperatorWriteNode#opening_loc.
struct pm_node * block
IndexOperatorWriteNode#block.
pm_location_t call_operator_loc
IndexOperatorWriteNode#call_operator_loc.
pm_location_t operator_loc
IndexOperatorWriteNode#operator_loc.
pm_location_t closing_loc
IndexOperatorWriteNode#closing_loc.
struct pm_arguments_node * arguments
IndexOperatorWriteNode#arguments.
struct pm_node * receiver
IndexOperatorWriteNode#receiver.
pm_location_t closing_loc
IndexOrWriteNode#closing_loc.
pm_location_t call_operator_loc
IndexOrWriteNode#call_operator_loc.
pm_node_t base
The embedded base node.
pm_location_t operator_loc
IndexOrWriteNode#operator_loc.
struct pm_node * receiver
IndexOrWriteNode#receiver.
pm_location_t opening_loc
IndexOrWriteNode#opening_loc.
struct pm_node * value
IndexOrWriteNode#value.
struct pm_arguments_node * arguments
IndexOrWriteNode#arguments.
struct pm_node * block
IndexOrWriteNode#block.
pm_node_t base
The embedded base node.
struct pm_node * block
IndexTargetNode#block.
struct pm_node * receiver
IndexTargetNode#receiver.
pm_location_t closing_loc
IndexTargetNode#closing_loc.
struct pm_arguments_node * arguments
IndexTargetNode#arguments.
pm_location_t opening_loc
IndexTargetNode#opening_loc.
InstanceVariableAndWriteNode.
pm_location_t operator_loc
InstanceVariableAndWriteNode#operator_loc.
pm_location_t name_loc
InstanceVariableAndWriteNode#name_loc.
struct pm_node * value
InstanceVariableAndWriteNode#value.
pm_constant_id_t name
InstanceVariableAndWriteNode#name.
InstanceVariableOperatorWriteNode.
struct pm_node * value
InstanceVariableOperatorWriteNode#value.
pm_location_t operator_loc
InstanceVariableOperatorWriteNode#operator_loc.
pm_constant_id_t name
InstanceVariableOperatorWriteNode#name.
pm_location_t name_loc
InstanceVariableOperatorWriteNode#name_loc.
pm_constant_id_t operator
InstanceVariableOperatorWriteNode#operator.
InstanceVariableOrWriteNode.
pm_location_t operator_loc
InstanceVariableOrWriteNode#operator_loc.
struct pm_node * value
InstanceVariableOrWriteNode#value.
pm_location_t name_loc
InstanceVariableOrWriteNode#name_loc.
pm_constant_id_t name
InstanceVariableOrWriteNode#name.
InstanceVariableReadNode.
pm_constant_id_t name
InstanceVariableReadNode#name.
InstanceVariableTargetNode.
pm_constant_id_t name
InstanceVariableTargetNode#name.
InstanceVariableWriteNode.
pm_location_t operator_loc
InstanceVariableWriteNode#operator_loc.
pm_constant_id_t name
InstanceVariableWriteNode#name.
struct pm_node * value
InstanceVariableWriteNode#value.
pm_location_t name_loc
InstanceVariableWriteNode#name_loc.
pm_node_t base
The embedded base node.
InterpolatedMatchLastLineNode.
pm_node_t base
The embedded base node.
pm_location_t closing_loc
InterpolatedMatchLastLineNode#closing_loc.
struct pm_node_list parts
InterpolatedMatchLastLineNode#parts.
pm_location_t opening_loc
InterpolatedMatchLastLineNode#opening_loc.
InterpolatedRegularExpressionNode.
pm_location_t opening_loc
InterpolatedRegularExpressionNode#opening_loc.
struct pm_node_list parts
InterpolatedRegularExpressionNode#parts.
pm_node_t base
The embedded base node.
pm_location_t closing_loc
InterpolatedRegularExpressionNode#closing_loc.
pm_location_t closing_loc
InterpolatedStringNode#closing_loc.
pm_location_t opening_loc
InterpolatedStringNode#opening_loc.
struct pm_node_list parts
InterpolatedStringNode#parts.
struct pm_node_list parts
InterpolatedSymbolNode#parts.
pm_location_t closing_loc
InterpolatedSymbolNode#closing_loc.
pm_location_t opening_loc
InterpolatedSymbolNode#opening_loc.
pm_location_t opening_loc
InterpolatedXStringNode#opening_loc.
pm_location_t closing_loc
InterpolatedXStringNode#closing_loc.
struct pm_node_list parts
InterpolatedXStringNode#parts.
pm_node_t base
The embedded base node.
struct pm_node_list elements
KeywordHashNode#elements.
KeywordRestParameterNode.
pm_constant_id_t name
KeywordRestParameterNode#name.
pm_location_t operator_loc
KeywordRestParameterNode#operator_loc.
pm_location_t name_loc
KeywordRestParameterNode#name_loc.
pm_location_t closing_loc
LambdaNode#closing_loc.
struct pm_node * body
LambdaNode#body.
uint32_t locals_body_index
LambdaNode#locals_body_index.
pm_location_t opening_loc
LambdaNode#opening_loc.
struct pm_node * parameters
LambdaNode#parameters.
pm_location_t operator_loc
LambdaNode#operator_loc.
pm_constant_id_list_t locals
LambdaNode#locals.
A line and column in a string.
size_t column
The column number.
size_t line
The line number.
LocalVariableAndWriteNode.
pm_constant_id_t name
LocalVariableAndWriteNode#name.
uint32_t depth
LocalVariableAndWriteNode#depth.
pm_location_t operator_loc
LocalVariableAndWriteNode#operator_loc.
struct pm_node * value
LocalVariableAndWriteNode#value.
pm_location_t name_loc
LocalVariableAndWriteNode#name_loc.
LocalVariableOperatorWriteNode.
uint32_t depth
LocalVariableOperatorWriteNode#depth.
struct pm_node * value
LocalVariableOperatorWriteNode#value.
pm_constant_id_t operator
LocalVariableOperatorWriteNode#operator.
pm_location_t name_loc
LocalVariableOperatorWriteNode#name_loc.
pm_location_t operator_loc
LocalVariableOperatorWriteNode#operator_loc.
pm_constant_id_t name
LocalVariableOperatorWriteNode#name.
LocalVariableOrWriteNode.
uint32_t depth
LocalVariableOrWriteNode#depth.
pm_location_t operator_loc
LocalVariableOrWriteNode#operator_loc.
struct pm_node * value
LocalVariableOrWriteNode#value.
pm_constant_id_t name
LocalVariableOrWriteNode#name.
pm_location_t name_loc
LocalVariableOrWriteNode#name_loc.
uint32_t depth
LocalVariableReadNode#depth.
pm_constant_id_t name
LocalVariableReadNode#name.
uint32_t depth
LocalVariableTargetNode#depth.
pm_constant_id_t name
LocalVariableTargetNode#name.
pm_location_t operator_loc
LocalVariableWriteNode#operator_loc.
pm_location_t name_loc
LocalVariableWriteNode#name_loc.
struct pm_node * value
LocalVariableWriteNode#value.
uint32_t depth
LocalVariableWriteNode#depth.
pm_constant_id_t name
LocalVariableWriteNode#name.
This represents a range of bytes in the source string to which a node or token corresponds.
const uint8_t * start
A pointer to the start location of the range in the source.
const uint8_t * end
A pointer to the end location of the range in the source.
pm_location_t content_loc
MatchLastLineNode#content_loc.
pm_location_t opening_loc
MatchLastLineNode#opening_loc.
pm_location_t closing_loc
MatchLastLineNode#closing_loc.
pm_string_t unescaped
MatchLastLineNode#unescaped.
pm_node_t base
The embedded base node.
pm_location_t operator_loc
MatchPredicateNode#operator_loc.
struct pm_node * pattern
MatchPredicateNode#pattern.
struct pm_node * value
MatchPredicateNode#value.
pm_location_t operator_loc
MatchRequiredNode#operator_loc.
struct pm_node * value
MatchRequiredNode#value.
struct pm_node * pattern
MatchRequiredNode#pattern.
struct pm_node_list targets
MatchWriteNode#targets.
struct pm_call_node * call
MatchWriteNode#call.
pm_location_t end_keyword_loc
ModuleNode#end_keyword_loc.
struct pm_node * constant_path
ModuleNode#constant_path.
struct pm_node * body
ModuleNode#body.
pm_constant_id_list_t locals
ModuleNode#locals.
pm_location_t module_keyword_loc
ModuleNode#module_keyword_loc.
pm_constant_id_t name
ModuleNode#name.
pm_location_t lparen_loc
MultiTargetNode#lparen_loc.
struct pm_node_list lefts
MultiTargetNode#lefts.
struct pm_node * rest
MultiTargetNode#rest.
pm_location_t rparen_loc
MultiTargetNode#rparen_loc.
struct pm_node_list rights
MultiTargetNode#rights.
pm_location_t rparen_loc
MultiWriteNode#rparen_loc.
struct pm_node * value
MultiWriteNode#value.
struct pm_node * rest
MultiWriteNode#rest.
struct pm_node_list rights
MultiWriteNode#rights.
pm_location_t operator_loc
MultiWriteNode#operator_loc.
pm_location_t lparen_loc
MultiWriteNode#lparen_loc.
struct pm_node_list lefts
MultiWriteNode#lefts.
struct pm_arguments_node * arguments
NextNode#arguments.
pm_location_t keyword_loc
NextNode#keyword_loc.
pm_location_t keyword_loc
NoKeywordsParameterNode#keyword_loc.
pm_location_t operator_loc
NoKeywordsParameterNode#operator_loc.
size_t size
The number of nodes in the list.
struct pm_node ** nodes
The nodes in the list.
This is the base structure that represents a node in the syntax tree.
pm_node_flags_t flags
This represents any flags on the node.
pm_location_t location
This is the location of the node in the source.
uint8_t maximum
NumberedParametersNode#maximum.
NumberedReferenceReadNode.
uint32_t number
NumberedReferenceReadNode#number.
OptionalKeywordParameterNode.
pm_constant_id_t name
OptionalKeywordParameterNode#name.
struct pm_node * value
OptionalKeywordParameterNode#value.
pm_location_t name_loc
OptionalKeywordParameterNode#name_loc.
pm_location_t name_loc
OptionalParameterNode#name_loc.
struct pm_node * value
OptionalParameterNode#value.
pm_constant_id_t name
OptionalParameterNode#name.
pm_location_t operator_loc
OptionalParameterNode#operator_loc.
struct pm_node * left
OrNode#left.
struct pm_node * right
OrNode#right.
pm_location_t operator_loc
OrNode#operator_loc.
struct pm_node * rest
ParametersNode#rest.
struct pm_node_list requireds
ParametersNode#requireds.
struct pm_block_parameter_node * block
ParametersNode#block.
struct pm_node_list optionals
ParametersNode#optionals.
struct pm_node_list posts
ParametersNode#posts.
struct pm_node * keyword_rest
ParametersNode#keyword_rest.
struct pm_node_list keywords
ParametersNode#keywords.
struct pm_node * body
ParenthesesNode#body.
pm_location_t closing_loc
ParenthesesNode#closing_loc.
pm_location_t opening_loc
ParenthesesNode#opening_loc.
This struct represents the overall parser.
pm_constant_pool_t constant_pool
This constant pool keeps all of the constants defined throughout the file so that we can reference th...
pm_newline_list_t newline_list
This is the list of newline offsets in the source file.
pm_location_t rparen_loc
PinnedExpressionNode#rparen_loc.
struct pm_node * expression
PinnedExpressionNode#expression.
pm_location_t lparen_loc
PinnedExpressionNode#lparen_loc.
pm_location_t operator_loc
PinnedExpressionNode#operator_loc.
struct pm_node * variable
PinnedVariableNode#variable.
pm_location_t operator_loc
PinnedVariableNode#operator_loc.
pm_location_t closing_loc
PostExecutionNode#closing_loc.
struct pm_statements_node * statements
PostExecutionNode#statements.
pm_location_t opening_loc
PostExecutionNode#opening_loc.
pm_location_t keyword_loc
PostExecutionNode#keyword_loc.
struct pm_statements_node * statements
PreExecutionNode#statements.
pm_location_t closing_loc
PreExecutionNode#closing_loc.
pm_location_t opening_loc
PreExecutionNode#opening_loc.
pm_location_t keyword_loc
PreExecutionNode#keyword_loc.
struct pm_statements_node * statements
ProgramNode#statements.
pm_constant_id_list_t locals
ProgramNode#locals.
struct pm_node * right
RangeNode#right.
pm_location_t operator_loc
RangeNode#operator_loc.
pm_node_t base
The embedded base node.
struct pm_node * left
RangeNode#left.
struct pm_node * numeric
RationalNode#numeric.
pm_location_t closing_loc
RegularExpressionNode#closing_loc.
pm_node_t base
The embedded base node.
pm_string_t unescaped
RegularExpressionNode#unescaped.
pm_location_t opening_loc
RegularExpressionNode#opening_loc.
pm_location_t content_loc
RegularExpressionNode#content_loc.
RequiredKeywordParameterNode.
pm_location_t name_loc
RequiredKeywordParameterNode#name_loc.
pm_constant_id_t name
RequiredKeywordParameterNode#name.
pm_constant_id_t name
RequiredParameterNode#name.
struct pm_node * rescue_expression
RescueModifierNode#rescue_expression.
pm_location_t keyword_loc
RescueModifierNode#keyword_loc.
struct pm_node * expression
RescueModifierNode#expression.
pm_location_t keyword_loc
RescueNode#keyword_loc.
struct pm_rescue_node * consequent
RescueNode#consequent.
pm_location_t operator_loc
RescueNode#operator_loc.
struct pm_node * reference
RescueNode#reference.
struct pm_node_list exceptions
RescueNode#exceptions.
struct pm_statements_node * statements
RescueNode#statements.
pm_constant_id_t name
RestParameterNode#name.
pm_location_t name_loc
RestParameterNode#name_loc.
pm_location_t operator_loc
RestParameterNode#operator_loc.
pm_location_t keyword_loc
ReturnNode#keyword_loc.
struct pm_arguments_node * arguments
ReturnNode#arguments.
pm_constant_id_list_t locals
SingletonClassNode#locals.
pm_location_t operator_loc
SingletonClassNode#operator_loc.
struct pm_node * expression
SingletonClassNode#expression.
pm_location_t end_keyword_loc
SingletonClassNode#end_keyword_loc.
pm_location_t class_keyword_loc
SingletonClassNode#class_keyword_loc.
struct pm_node * body
SingletonClassNode#body.
pm_string_t filepath
SourceFileNode#filepath.
struct pm_node * expression
SplatNode#expression.
pm_location_t operator_loc
SplatNode#operator_loc.
struct pm_node_list body
StatementsNode#body.
pm_node_t base
The embedded base node.
pm_string_t unescaped
StringNode#unescaped.
pm_location_t content_loc
StringNode#content_loc.
pm_location_t closing_loc
StringNode#closing_loc.
pm_location_t opening_loc
StringNode#opening_loc.
struct pm_arguments_node * arguments
SuperNode#arguments.
pm_location_t lparen_loc
SuperNode#lparen_loc.
pm_location_t keyword_loc
SuperNode#keyword_loc.
pm_location_t rparen_loc
SuperNode#rparen_loc.
struct pm_node * block
SuperNode#block.
pm_location_t opening_loc
SymbolNode#opening_loc.
pm_location_t value_loc
SymbolNode#value_loc.
pm_location_t closing_loc
SymbolNode#closing_loc.
pm_string_t unescaped
SymbolNode#unescaped.
pm_node_t base
The embedded base node.
pm_location_t keyword_loc
UndefNode#keyword_loc.
struct pm_node_list names
UndefNode#names.
struct pm_else_node * consequent
UnlessNode#consequent.
pm_location_t keyword_loc
UnlessNode#keyword_loc.
pm_location_t then_keyword_loc
UnlessNode#then_keyword_loc.
pm_location_t end_keyword_loc
UnlessNode#end_keyword_loc.
struct pm_statements_node * statements
UnlessNode#statements.
struct pm_node * predicate
UnlessNode#predicate.
struct pm_statements_node * statements
UntilNode#statements.
pm_location_t closing_loc
UntilNode#closing_loc.
struct pm_node * predicate
UntilNode#predicate.
pm_location_t keyword_loc
UntilNode#keyword_loc.
pm_node_t base
The embedded base node.
struct pm_statements_node * statements
WhenNode#statements.
pm_location_t keyword_loc
WhenNode#keyword_loc.
struct pm_node_list conditions
WhenNode#conditions.
pm_location_t closing_loc
WhileNode#closing_loc.
pm_location_t keyword_loc
WhileNode#keyword_loc.
struct pm_statements_node * statements
WhileNode#statements.
pm_node_t base
The embedded base node.
struct pm_node * predicate
WhileNode#predicate.
pm_location_t closing_loc
XStringNode#closing_loc.
pm_location_t opening_loc
XStringNode#opening_loc.
pm_location_t content_loc
XStringNode#content_loc.
pm_string_t unescaped
XStringNode#unescaped.
pm_node_t base
The embedded base node.
pm_location_t keyword_loc
YieldNode#keyword_loc.
pm_location_t lparen_loc
YieldNode#lparen_loc.
pm_location_t rparen_loc
YieldNode#rparen_loc.
struct pm_arguments_node * arguments
YieldNode#arguments.