14#ifdef PRISM_EXCLUDE_PRETTYPRINT
16void pm_prettyprint(
void) {}
24 pm_buffer_append_format(output_buffer,
"(%" PRIi32
",%" PRIu32
")-(%" PRIi32
",%" PRIu32
")", start.
line, start.
column, end.
line, end.
column);
30 pm_buffer_append_format(output_buffer,
":%.*s", (
int) constant->
length, constant->
start);
41 pm_buffer_append_string(output_buffer,
"@ AliasGlobalVariableNode (location: ", 37);
42 prettyprint_location(output_buffer, parser, &node->
location);
43 pm_buffer_append_string(output_buffer,
")\n", 2);
47 pm_buffer_concat(output_buffer, prefix_buffer);
48 pm_buffer_append_string(output_buffer,
"+-- new_name:", 13);
49 pm_buffer_append_byte(output_buffer,
'\n');
51 size_t prefix_length = prefix_buffer->
length;
52 pm_buffer_append_string(prefix_buffer,
"| ", 4);
53 pm_buffer_concat(output_buffer, prefix_buffer);
54 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
new_name, prefix_buffer);
55 prefix_buffer->
length = prefix_length;
60 pm_buffer_concat(output_buffer, prefix_buffer);
61 pm_buffer_append_string(output_buffer,
"+-- old_name:", 13);
62 pm_buffer_append_byte(output_buffer,
'\n');
64 size_t prefix_length = prefix_buffer->
length;
65 pm_buffer_append_string(prefix_buffer,
"| ", 4);
66 pm_buffer_concat(output_buffer, prefix_buffer);
67 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
old_name, prefix_buffer);
68 prefix_buffer->
length = prefix_length;
73 pm_buffer_concat(output_buffer, prefix_buffer);
74 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
76 pm_buffer_append_byte(output_buffer,
' ');
77 prettyprint_location(output_buffer, parser, location);
78 pm_buffer_append_string(output_buffer,
" = \"", 4);
79 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
80 pm_buffer_append_string(output_buffer,
"\"\n", 2);
87 pm_buffer_append_string(output_buffer,
"@ AliasMethodNode (location: ", 29);
88 prettyprint_location(output_buffer, parser, &node->
location);
89 pm_buffer_append_string(output_buffer,
")\n", 2);
93 pm_buffer_concat(output_buffer, prefix_buffer);
94 pm_buffer_append_string(output_buffer,
"+-- new_name:", 13);
95 pm_buffer_append_byte(output_buffer,
'\n');
97 size_t prefix_length = prefix_buffer->
length;
98 pm_buffer_append_string(prefix_buffer,
"| ", 4);
99 pm_buffer_concat(output_buffer, prefix_buffer);
100 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
new_name, prefix_buffer);
101 prefix_buffer->
length = prefix_length;
106 pm_buffer_concat(output_buffer, prefix_buffer);
107 pm_buffer_append_string(output_buffer,
"+-- old_name:", 13);
108 pm_buffer_append_byte(output_buffer,
'\n');
110 size_t prefix_length = prefix_buffer->
length;
111 pm_buffer_append_string(prefix_buffer,
"| ", 4);
112 pm_buffer_concat(output_buffer, prefix_buffer);
113 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
old_name, prefix_buffer);
114 prefix_buffer->
length = prefix_length;
119 pm_buffer_concat(output_buffer, prefix_buffer);
120 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
122 pm_buffer_append_byte(output_buffer,
' ');
123 prettyprint_location(output_buffer, parser, location);
124 pm_buffer_append_string(output_buffer,
" = \"", 4);
125 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
126 pm_buffer_append_string(output_buffer,
"\"\n", 2);
133 pm_buffer_append_string(output_buffer,
"@ AlternationPatternNode (location: ", 36);
134 prettyprint_location(output_buffer, parser, &node->
location);
135 pm_buffer_append_string(output_buffer,
")\n", 2);
139 pm_buffer_concat(output_buffer, prefix_buffer);
140 pm_buffer_append_string(output_buffer,
"+-- left:", 9);
141 pm_buffer_append_byte(output_buffer,
'\n');
143 size_t prefix_length = prefix_buffer->
length;
144 pm_buffer_append_string(prefix_buffer,
"| ", 4);
145 pm_buffer_concat(output_buffer, prefix_buffer);
146 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
147 prefix_buffer->
length = prefix_length;
152 pm_buffer_concat(output_buffer, prefix_buffer);
153 pm_buffer_append_string(output_buffer,
"+-- right:", 10);
154 pm_buffer_append_byte(output_buffer,
'\n');
156 size_t prefix_length = prefix_buffer->
length;
157 pm_buffer_append_string(prefix_buffer,
"| ", 4);
158 pm_buffer_concat(output_buffer, prefix_buffer);
159 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
160 prefix_buffer->
length = prefix_length;
165 pm_buffer_concat(output_buffer, prefix_buffer);
166 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
168 pm_buffer_append_byte(output_buffer,
' ');
169 prettyprint_location(output_buffer, parser, location);
170 pm_buffer_append_string(output_buffer,
" = \"", 4);
171 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
172 pm_buffer_append_string(output_buffer,
"\"\n", 2);
179 pm_buffer_append_string(output_buffer,
"@ AndNode (location: ", 21);
180 prettyprint_location(output_buffer, parser, &node->
location);
181 pm_buffer_append_string(output_buffer,
")\n", 2);
185 pm_buffer_concat(output_buffer, prefix_buffer);
186 pm_buffer_append_string(output_buffer,
"+-- left:", 9);
187 pm_buffer_append_byte(output_buffer,
'\n');
189 size_t prefix_length = prefix_buffer->
length;
190 pm_buffer_append_string(prefix_buffer,
"| ", 4);
191 pm_buffer_concat(output_buffer, prefix_buffer);
192 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
193 prefix_buffer->
length = prefix_length;
198 pm_buffer_concat(output_buffer, prefix_buffer);
199 pm_buffer_append_string(output_buffer,
"+-- right:", 10);
200 pm_buffer_append_byte(output_buffer,
'\n');
202 size_t prefix_length = prefix_buffer->
length;
203 pm_buffer_append_string(prefix_buffer,
"| ", 4);
204 pm_buffer_concat(output_buffer, prefix_buffer);
205 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
206 prefix_buffer->
length = prefix_length;
211 pm_buffer_concat(output_buffer, prefix_buffer);
212 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
214 pm_buffer_append_byte(output_buffer,
' ');
215 prettyprint_location(output_buffer, parser, location);
216 pm_buffer_append_string(output_buffer,
" = \"", 4);
217 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
218 pm_buffer_append_string(output_buffer,
"\"\n", 2);
225 pm_buffer_append_string(output_buffer,
"@ ArgumentsNode (location: ", 27);
226 prettyprint_location(output_buffer, parser, &node->
location);
227 pm_buffer_append_string(output_buffer,
")\n", 2);
231 pm_buffer_concat(output_buffer, prefix_buffer);
232 pm_buffer_append_string(output_buffer,
"+-- ArgumentsNodeFlags:", 23);
235 if (found) pm_buffer_append_byte(output_buffer,
',');
236 pm_buffer_append_string(output_buffer,
" contains_forwarding", 20);
240 if (found) pm_buffer_append_byte(output_buffer,
',');
241 pm_buffer_append_string(output_buffer,
" contains_keywords", 18);
245 if (found) pm_buffer_append_byte(output_buffer,
',');
246 pm_buffer_append_string(output_buffer,
" contains_keyword_splat", 23);
250 if (found) pm_buffer_append_byte(output_buffer,
',');
251 pm_buffer_append_string(output_buffer,
" contains_splat", 15);
255 if (found) pm_buffer_append_byte(output_buffer,
',');
256 pm_buffer_append_string(output_buffer,
" contains_multiple_splats", 25);
259 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
260 pm_buffer_append_byte(output_buffer,
'\n');
265 pm_buffer_concat(output_buffer, prefix_buffer);
266 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
267 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
arguments.
size));
270 for (uint32_t index = 0; index < last_index; index++) {
271 size_t prefix_length = prefix_buffer->
length;
272 pm_buffer_append_string(prefix_buffer,
" ", 4);
273 pm_buffer_concat(output_buffer, prefix_buffer);
274 pm_buffer_append_string(output_buffer,
"+-- ", 4);
275 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
277 prefix_buffer->
length = prefix_length;
285 pm_buffer_append_string(output_buffer,
"@ ArrayNode (location: ", 23);
286 prettyprint_location(output_buffer, parser, &node->
location);
287 pm_buffer_append_string(output_buffer,
")\n", 2);
291 pm_buffer_concat(output_buffer, prefix_buffer);
292 pm_buffer_append_string(output_buffer,
"+-- ArrayNodeFlags:", 19);
295 if (found) pm_buffer_append_byte(output_buffer,
',');
296 pm_buffer_append_string(output_buffer,
" contains_splat", 15);
299 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
300 pm_buffer_append_byte(output_buffer,
'\n');
305 pm_buffer_concat(output_buffer, prefix_buffer);
306 pm_buffer_append_string(output_buffer,
"+-- elements:", 13);
307 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
310 for (uint32_t index = 0; index < last_index; index++) {
311 size_t prefix_length = prefix_buffer->
length;
312 pm_buffer_append_string(prefix_buffer,
"| ", 4);
313 pm_buffer_concat(output_buffer, prefix_buffer);
314 pm_buffer_append_string(output_buffer,
"+-- ", 4);
315 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
317 prefix_buffer->
length = prefix_length;
323 pm_buffer_concat(output_buffer, prefix_buffer);
324 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
326 if (location->
start == NULL) {
327 pm_buffer_append_string(output_buffer,
" nil\n", 5);
329 pm_buffer_append_byte(output_buffer,
' ');
330 prettyprint_location(output_buffer, parser, location);
331 pm_buffer_append_string(output_buffer,
" = \"", 4);
332 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
333 pm_buffer_append_string(output_buffer,
"\"\n", 2);
339 pm_buffer_concat(output_buffer, prefix_buffer);
340 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
342 if (location->
start == NULL) {
343 pm_buffer_append_string(output_buffer,
" nil\n", 5);
345 pm_buffer_append_byte(output_buffer,
' ');
346 prettyprint_location(output_buffer, parser, location);
347 pm_buffer_append_string(output_buffer,
" = \"", 4);
348 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
349 pm_buffer_append_string(output_buffer,
"\"\n", 2);
357 pm_buffer_append_string(output_buffer,
"@ ArrayPatternNode (location: ", 30);
358 prettyprint_location(output_buffer, parser, &node->
location);
359 pm_buffer_append_string(output_buffer,
")\n", 2);
363 pm_buffer_concat(output_buffer, prefix_buffer);
364 pm_buffer_append_string(output_buffer,
"+-- constant:", 13);
366 pm_buffer_append_string(output_buffer,
" nil\n", 5);
368 pm_buffer_append_byte(output_buffer,
'\n');
370 size_t prefix_length = prefix_buffer->
length;
371 pm_buffer_append_string(prefix_buffer,
"| ", 4);
372 pm_buffer_concat(output_buffer, prefix_buffer);
373 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
374 prefix_buffer->
length = prefix_length;
380 pm_buffer_concat(output_buffer, prefix_buffer);
381 pm_buffer_append_string(output_buffer,
"+-- requireds:", 14);
382 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
requireds.
size));
385 for (uint32_t index = 0; index < last_index; index++) {
386 size_t prefix_length = prefix_buffer->
length;
387 pm_buffer_append_string(prefix_buffer,
"| ", 4);
388 pm_buffer_concat(output_buffer, prefix_buffer);
389 pm_buffer_append_string(output_buffer,
"+-- ", 4);
390 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
392 prefix_buffer->
length = prefix_length;
398 pm_buffer_concat(output_buffer, prefix_buffer);
399 pm_buffer_append_string(output_buffer,
"+-- rest:", 9);
400 if (cast->
rest == NULL) {
401 pm_buffer_append_string(output_buffer,
" nil\n", 5);
403 pm_buffer_append_byte(output_buffer,
'\n');
405 size_t prefix_length = prefix_buffer->
length;
406 pm_buffer_append_string(prefix_buffer,
"| ", 4);
407 pm_buffer_concat(output_buffer, prefix_buffer);
408 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
409 prefix_buffer->
length = prefix_length;
415 pm_buffer_concat(output_buffer, prefix_buffer);
416 pm_buffer_append_string(output_buffer,
"+-- posts:", 10);
417 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
posts.
size));
420 for (uint32_t index = 0; index < last_index; index++) {
421 size_t prefix_length = prefix_buffer->
length;
422 pm_buffer_append_string(prefix_buffer,
"| ", 4);
423 pm_buffer_concat(output_buffer, prefix_buffer);
424 pm_buffer_append_string(output_buffer,
"+-- ", 4);
425 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
426 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
posts.
nodes[index], prefix_buffer);
427 prefix_buffer->
length = prefix_length;
433 pm_buffer_concat(output_buffer, prefix_buffer);
434 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
436 if (location->
start == NULL) {
437 pm_buffer_append_string(output_buffer,
" nil\n", 5);
439 pm_buffer_append_byte(output_buffer,
' ');
440 prettyprint_location(output_buffer, parser, location);
441 pm_buffer_append_string(output_buffer,
" = \"", 4);
442 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
443 pm_buffer_append_string(output_buffer,
"\"\n", 2);
449 pm_buffer_concat(output_buffer, prefix_buffer);
450 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
452 if (location->
start == NULL) {
453 pm_buffer_append_string(output_buffer,
" nil\n", 5);
455 pm_buffer_append_byte(output_buffer,
' ');
456 prettyprint_location(output_buffer, parser, location);
457 pm_buffer_append_string(output_buffer,
" = \"", 4);
458 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
459 pm_buffer_append_string(output_buffer,
"\"\n", 2);
467 pm_buffer_append_string(output_buffer,
"@ AssocNode (location: ", 23);
468 prettyprint_location(output_buffer, parser, &node->
location);
469 pm_buffer_append_string(output_buffer,
")\n", 2);
473 pm_buffer_concat(output_buffer, prefix_buffer);
474 pm_buffer_append_string(output_buffer,
"+-- key:", 8);
475 pm_buffer_append_byte(output_buffer,
'\n');
477 size_t prefix_length = prefix_buffer->
length;
478 pm_buffer_append_string(prefix_buffer,
"| ", 4);
479 pm_buffer_concat(output_buffer, prefix_buffer);
480 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
key, prefix_buffer);
481 prefix_buffer->
length = prefix_length;
486 pm_buffer_concat(output_buffer, prefix_buffer);
487 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
488 pm_buffer_append_byte(output_buffer,
'\n');
490 size_t prefix_length = prefix_buffer->
length;
491 pm_buffer_append_string(prefix_buffer,
"| ", 4);
492 pm_buffer_concat(output_buffer, prefix_buffer);
493 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
494 prefix_buffer->
length = prefix_length;
499 pm_buffer_concat(output_buffer, prefix_buffer);
500 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
502 if (location->
start == NULL) {
503 pm_buffer_append_string(output_buffer,
" nil\n", 5);
505 pm_buffer_append_byte(output_buffer,
' ');
506 prettyprint_location(output_buffer, parser, location);
507 pm_buffer_append_string(output_buffer,
" = \"", 4);
508 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
509 pm_buffer_append_string(output_buffer,
"\"\n", 2);
517 pm_buffer_append_string(output_buffer,
"@ AssocSplatNode (location: ", 28);
518 prettyprint_location(output_buffer, parser, &node->
location);
519 pm_buffer_append_string(output_buffer,
")\n", 2);
523 pm_buffer_concat(output_buffer, prefix_buffer);
524 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
525 if (cast->
value == NULL) {
526 pm_buffer_append_string(output_buffer,
" nil\n", 5);
528 pm_buffer_append_byte(output_buffer,
'\n');
530 size_t prefix_length = prefix_buffer->
length;
531 pm_buffer_append_string(prefix_buffer,
"| ", 4);
532 pm_buffer_concat(output_buffer, prefix_buffer);
533 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
534 prefix_buffer->
length = prefix_length;
540 pm_buffer_concat(output_buffer, prefix_buffer);
541 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
543 pm_buffer_append_byte(output_buffer,
' ');
544 prettyprint_location(output_buffer, parser, location);
545 pm_buffer_append_string(output_buffer,
" = \"", 4);
546 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
547 pm_buffer_append_string(output_buffer,
"\"\n", 2);
554 pm_buffer_append_string(output_buffer,
"@ BackReferenceReadNode (location: ", 35);
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,
"+-- name:", 9);
562 pm_buffer_append_byte(output_buffer,
' ');
563 prettyprint_constant(output_buffer, parser, cast->
name);
564 pm_buffer_append_byte(output_buffer,
'\n');
571 pm_buffer_append_string(output_buffer,
"@ BeginNode (location: ", 23);
572 prettyprint_location(output_buffer, parser, &node->
location);
573 pm_buffer_append_string(output_buffer,
")\n", 2);
577 pm_buffer_concat(output_buffer, prefix_buffer);
578 pm_buffer_append_string(output_buffer,
"+-- begin_keyword_loc:", 22);
580 if (location->
start == NULL) {
581 pm_buffer_append_string(output_buffer,
" nil\n", 5);
583 pm_buffer_append_byte(output_buffer,
' ');
584 prettyprint_location(output_buffer, parser, location);
585 pm_buffer_append_string(output_buffer,
" = \"", 4);
586 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
587 pm_buffer_append_string(output_buffer,
"\"\n", 2);
593 pm_buffer_concat(output_buffer, prefix_buffer);
594 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
596 pm_buffer_append_string(output_buffer,
" nil\n", 5);
598 pm_buffer_append_byte(output_buffer,
'\n');
600 size_t prefix_length = prefix_buffer->
length;
601 pm_buffer_append_string(prefix_buffer,
"| ", 4);
602 pm_buffer_concat(output_buffer, prefix_buffer);
604 prefix_buffer->
length = prefix_length;
610 pm_buffer_concat(output_buffer, prefix_buffer);
611 pm_buffer_append_string(output_buffer,
"+-- rescue_clause:", 18);
613 pm_buffer_append_string(output_buffer,
" nil\n", 5);
615 pm_buffer_append_byte(output_buffer,
'\n');
617 size_t prefix_length = prefix_buffer->
length;
618 pm_buffer_append_string(prefix_buffer,
"| ", 4);
619 pm_buffer_concat(output_buffer, prefix_buffer);
621 prefix_buffer->
length = prefix_length;
627 pm_buffer_concat(output_buffer, prefix_buffer);
628 pm_buffer_append_string(output_buffer,
"+-- else_clause:", 16);
630 pm_buffer_append_string(output_buffer,
" nil\n", 5);
632 pm_buffer_append_byte(output_buffer,
'\n');
634 size_t prefix_length = prefix_buffer->
length;
635 pm_buffer_append_string(prefix_buffer,
"| ", 4);
636 pm_buffer_concat(output_buffer, prefix_buffer);
638 prefix_buffer->
length = prefix_length;
644 pm_buffer_concat(output_buffer, prefix_buffer);
645 pm_buffer_append_string(output_buffer,
"+-- ensure_clause:", 18);
647 pm_buffer_append_string(output_buffer,
" nil\n", 5);
649 pm_buffer_append_byte(output_buffer,
'\n');
651 size_t prefix_length = prefix_buffer->
length;
652 pm_buffer_append_string(prefix_buffer,
"| ", 4);
653 pm_buffer_concat(output_buffer, prefix_buffer);
655 prefix_buffer->
length = prefix_length;
661 pm_buffer_concat(output_buffer, prefix_buffer);
662 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
664 if (location->
start == NULL) {
665 pm_buffer_append_string(output_buffer,
" nil\n", 5);
667 pm_buffer_append_byte(output_buffer,
' ');
668 prettyprint_location(output_buffer, parser, location);
669 pm_buffer_append_string(output_buffer,
" = \"", 4);
670 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
671 pm_buffer_append_string(output_buffer,
"\"\n", 2);
679 pm_buffer_append_string(output_buffer,
"@ BlockArgumentNode (location: ", 31);
680 prettyprint_location(output_buffer, parser, &node->
location);
681 pm_buffer_append_string(output_buffer,
")\n", 2);
685 pm_buffer_concat(output_buffer, prefix_buffer);
686 pm_buffer_append_string(output_buffer,
"+-- expression:", 15);
688 pm_buffer_append_string(output_buffer,
" nil\n", 5);
690 pm_buffer_append_byte(output_buffer,
'\n');
692 size_t prefix_length = prefix_buffer->
length;
693 pm_buffer_append_string(prefix_buffer,
"| ", 4);
694 pm_buffer_concat(output_buffer, prefix_buffer);
696 prefix_buffer->
length = prefix_length;
702 pm_buffer_concat(output_buffer, prefix_buffer);
703 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
705 pm_buffer_append_byte(output_buffer,
' ');
706 prettyprint_location(output_buffer, parser, location);
707 pm_buffer_append_string(output_buffer,
" = \"", 4);
708 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
709 pm_buffer_append_string(output_buffer,
"\"\n", 2);
716 pm_buffer_append_string(output_buffer,
"@ BlockLocalVariableNode (location: ", 36);
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,
"+-- ParameterFlags:", 19);
726 if (found) pm_buffer_append_byte(output_buffer,
',');
727 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
730 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
731 pm_buffer_append_byte(output_buffer,
'\n');
736 pm_buffer_concat(output_buffer, prefix_buffer);
737 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
738 pm_buffer_append_byte(output_buffer,
' ');
739 prettyprint_constant(output_buffer, parser, cast->
name);
740 pm_buffer_append_byte(output_buffer,
'\n');
747 pm_buffer_append_string(output_buffer,
"@ BlockNode (location: ", 23);
748 prettyprint_location(output_buffer, parser, &node->
location);
749 pm_buffer_append_string(output_buffer,
")\n", 2);
753 pm_buffer_concat(output_buffer, prefix_buffer);
754 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
755 pm_buffer_append_string(output_buffer,
" [", 2);
756 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
757 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
758 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
760 pm_buffer_append_string(output_buffer,
"]\n", 2);
765 pm_buffer_concat(output_buffer, prefix_buffer);
766 pm_buffer_append_string(output_buffer,
"+-- parameters:", 15);
768 pm_buffer_append_string(output_buffer,
" nil\n", 5);
770 pm_buffer_append_byte(output_buffer,
'\n');
772 size_t prefix_length = prefix_buffer->
length;
773 pm_buffer_append_string(prefix_buffer,
"| ", 4);
774 pm_buffer_concat(output_buffer, prefix_buffer);
776 prefix_buffer->
length = prefix_length;
782 pm_buffer_concat(output_buffer, prefix_buffer);
783 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
784 if (cast->
body == NULL) {
785 pm_buffer_append_string(output_buffer,
" nil\n", 5);
787 pm_buffer_append_byte(output_buffer,
'\n');
789 size_t prefix_length = prefix_buffer->
length;
790 pm_buffer_append_string(prefix_buffer,
"| ", 4);
791 pm_buffer_concat(output_buffer, prefix_buffer);
792 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
793 prefix_buffer->
length = prefix_length;
799 pm_buffer_concat(output_buffer, prefix_buffer);
800 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
802 pm_buffer_append_byte(output_buffer,
' ');
803 prettyprint_location(output_buffer, parser, location);
804 pm_buffer_append_string(output_buffer,
" = \"", 4);
805 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
806 pm_buffer_append_string(output_buffer,
"\"\n", 2);
811 pm_buffer_concat(output_buffer, prefix_buffer);
812 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
814 pm_buffer_append_byte(output_buffer,
' ');
815 prettyprint_location(output_buffer, parser, location);
816 pm_buffer_append_string(output_buffer,
" = \"", 4);
817 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
818 pm_buffer_append_string(output_buffer,
"\"\n", 2);
825 pm_buffer_append_string(output_buffer,
"@ BlockParameterNode (location: ", 32);
826 prettyprint_location(output_buffer, parser, &node->
location);
827 pm_buffer_append_string(output_buffer,
")\n", 2);
831 pm_buffer_concat(output_buffer, prefix_buffer);
832 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
835 if (found) pm_buffer_append_byte(output_buffer,
',');
836 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
839 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
840 pm_buffer_append_byte(output_buffer,
'\n');
845 pm_buffer_concat(output_buffer, prefix_buffer);
846 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
847 if (cast->
name == 0) {
848 pm_buffer_append_string(output_buffer,
" nil\n", 5);
850 pm_buffer_append_byte(output_buffer,
' ');
851 prettyprint_constant(output_buffer, parser, cast->
name);
852 pm_buffer_append_byte(output_buffer,
'\n');
858 pm_buffer_concat(output_buffer, prefix_buffer);
859 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
861 if (location->
start == NULL) {
862 pm_buffer_append_string(output_buffer,
" nil\n", 5);
864 pm_buffer_append_byte(output_buffer,
' ');
865 prettyprint_location(output_buffer, parser, location);
866 pm_buffer_append_string(output_buffer,
" = \"", 4);
867 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
868 pm_buffer_append_string(output_buffer,
"\"\n", 2);
874 pm_buffer_concat(output_buffer, prefix_buffer);
875 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
877 pm_buffer_append_byte(output_buffer,
' ');
878 prettyprint_location(output_buffer, parser, location);
879 pm_buffer_append_string(output_buffer,
" = \"", 4);
880 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
881 pm_buffer_append_string(output_buffer,
"\"\n", 2);
888 pm_buffer_append_string(output_buffer,
"@ BlockParametersNode (location: ", 33);
889 prettyprint_location(output_buffer, parser, &node->
location);
890 pm_buffer_append_string(output_buffer,
")\n", 2);
894 pm_buffer_concat(output_buffer, prefix_buffer);
895 pm_buffer_append_string(output_buffer,
"+-- parameters:", 15);
897 pm_buffer_append_string(output_buffer,
" nil\n", 5);
899 pm_buffer_append_byte(output_buffer,
'\n');
901 size_t prefix_length = prefix_buffer->
length;
902 pm_buffer_append_string(prefix_buffer,
"| ", 4);
903 pm_buffer_concat(output_buffer, prefix_buffer);
905 prefix_buffer->
length = prefix_length;
911 pm_buffer_concat(output_buffer, prefix_buffer);
912 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
913 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
locals.
size));
916 for (uint32_t index = 0; index < last_index; index++) {
917 size_t prefix_length = prefix_buffer->
length;
918 pm_buffer_append_string(prefix_buffer,
"| ", 4);
919 pm_buffer_concat(output_buffer, prefix_buffer);
920 pm_buffer_append_string(output_buffer,
"+-- ", 4);
921 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
922 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
locals.
nodes[index], prefix_buffer);
923 prefix_buffer->
length = prefix_length;
929 pm_buffer_concat(output_buffer, prefix_buffer);
930 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
932 if (location->
start == NULL) {
933 pm_buffer_append_string(output_buffer,
" nil\n", 5);
935 pm_buffer_append_byte(output_buffer,
' ');
936 prettyprint_location(output_buffer, parser, location);
937 pm_buffer_append_string(output_buffer,
" = \"", 4);
938 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
939 pm_buffer_append_string(output_buffer,
"\"\n", 2);
945 pm_buffer_concat(output_buffer, prefix_buffer);
946 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
948 if (location->
start == NULL) {
949 pm_buffer_append_string(output_buffer,
" nil\n", 5);
951 pm_buffer_append_byte(output_buffer,
' ');
952 prettyprint_location(output_buffer, parser, location);
953 pm_buffer_append_string(output_buffer,
" = \"", 4);
954 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
955 pm_buffer_append_string(output_buffer,
"\"\n", 2);
963 pm_buffer_append_string(output_buffer,
"@ BreakNode (location: ", 23);
964 prettyprint_location(output_buffer, parser, &node->
location);
965 pm_buffer_append_string(output_buffer,
")\n", 2);
969 pm_buffer_concat(output_buffer, prefix_buffer);
970 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
972 pm_buffer_append_string(output_buffer,
" nil\n", 5);
974 pm_buffer_append_byte(output_buffer,
'\n');
976 size_t prefix_length = prefix_buffer->
length;
977 pm_buffer_append_string(prefix_buffer,
"| ", 4);
978 pm_buffer_concat(output_buffer, prefix_buffer);
979 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
980 prefix_buffer->
length = prefix_length;
986 pm_buffer_concat(output_buffer, prefix_buffer);
987 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
989 pm_buffer_append_byte(output_buffer,
' ');
990 prettyprint_location(output_buffer, parser, location);
991 pm_buffer_append_string(output_buffer,
" = \"", 4);
992 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
993 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1000 pm_buffer_append_string(output_buffer,
"@ CallAndWriteNode (location: ", 30);
1001 prettyprint_location(output_buffer, parser, &node->
location);
1002 pm_buffer_append_string(output_buffer,
")\n", 2);
1006 pm_buffer_concat(output_buffer, prefix_buffer);
1007 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
1010 if (found) pm_buffer_append_byte(output_buffer,
',');
1011 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1015 if (found) pm_buffer_append_byte(output_buffer,
',');
1016 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1020 if (found) pm_buffer_append_byte(output_buffer,
',');
1021 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1025 if (found) pm_buffer_append_byte(output_buffer,
',');
1026 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
1029 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
1030 pm_buffer_append_byte(output_buffer,
'\n');
1035 pm_buffer_concat(output_buffer, prefix_buffer);
1036 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
1038 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1040 pm_buffer_append_byte(output_buffer,
'\n');
1042 size_t prefix_length = prefix_buffer->
length;
1043 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1044 pm_buffer_concat(output_buffer, prefix_buffer);
1045 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1046 prefix_buffer->
length = prefix_length;
1052 pm_buffer_concat(output_buffer, prefix_buffer);
1053 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
1055 if (location->
start == NULL) {
1056 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1058 pm_buffer_append_byte(output_buffer,
' ');
1059 prettyprint_location(output_buffer, parser, location);
1060 pm_buffer_append_string(output_buffer,
" = \"", 4);
1061 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1062 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1068 pm_buffer_concat(output_buffer, prefix_buffer);
1069 pm_buffer_append_string(output_buffer,
"+-- message_loc:", 16);
1071 if (location->
start == NULL) {
1072 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1074 pm_buffer_append_byte(output_buffer,
' ');
1075 prettyprint_location(output_buffer, parser, location);
1076 pm_buffer_append_string(output_buffer,
" = \"", 4);
1077 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1078 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1084 pm_buffer_concat(output_buffer, prefix_buffer);
1085 pm_buffer_append_string(output_buffer,
"+-- read_name:", 14);
1086 pm_buffer_append_byte(output_buffer,
' ');
1087 prettyprint_constant(output_buffer, parser, cast->
read_name);
1088 pm_buffer_append_byte(output_buffer,
'\n');
1093 pm_buffer_concat(output_buffer, prefix_buffer);
1094 pm_buffer_append_string(output_buffer,
"+-- write_name:", 15);
1095 pm_buffer_append_byte(output_buffer,
' ');
1096 prettyprint_constant(output_buffer, parser, cast->
write_name);
1097 pm_buffer_append_byte(output_buffer,
'\n');
1102 pm_buffer_concat(output_buffer, prefix_buffer);
1103 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
1105 pm_buffer_append_byte(output_buffer,
' ');
1106 prettyprint_location(output_buffer, parser, location);
1107 pm_buffer_append_string(output_buffer,
" = \"", 4);
1108 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1109 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1114 pm_buffer_concat(output_buffer, prefix_buffer);
1115 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
1116 pm_buffer_append_byte(output_buffer,
'\n');
1118 size_t prefix_length = prefix_buffer->
length;
1119 pm_buffer_append_string(prefix_buffer,
" ", 4);
1120 pm_buffer_concat(output_buffer, prefix_buffer);
1121 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1122 prefix_buffer->
length = prefix_length;
1129 pm_buffer_append_string(output_buffer,
"@ CallNode (location: ", 22);
1130 prettyprint_location(output_buffer, parser, &node->
location);
1131 pm_buffer_append_string(output_buffer,
")\n", 2);
1135 pm_buffer_concat(output_buffer, prefix_buffer);
1136 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
1139 if (found) pm_buffer_append_byte(output_buffer,
',');
1140 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1144 if (found) pm_buffer_append_byte(output_buffer,
',');
1145 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1149 if (found) pm_buffer_append_byte(output_buffer,
',');
1150 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1154 if (found) pm_buffer_append_byte(output_buffer,
',');
1155 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
1158 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
1159 pm_buffer_append_byte(output_buffer,
'\n');
1164 pm_buffer_concat(output_buffer, prefix_buffer);
1165 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
1167 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1169 pm_buffer_append_byte(output_buffer,
'\n');
1171 size_t prefix_length = prefix_buffer->
length;
1172 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1173 pm_buffer_concat(output_buffer, prefix_buffer);
1174 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1175 prefix_buffer->
length = prefix_length;
1181 pm_buffer_concat(output_buffer, prefix_buffer);
1182 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
1184 if (location->
start == NULL) {
1185 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1187 pm_buffer_append_byte(output_buffer,
' ');
1188 prettyprint_location(output_buffer, parser, location);
1189 pm_buffer_append_string(output_buffer,
" = \"", 4);
1190 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1191 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1197 pm_buffer_concat(output_buffer, prefix_buffer);
1198 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
1199 pm_buffer_append_byte(output_buffer,
' ');
1200 prettyprint_constant(output_buffer, parser, cast->
name);
1201 pm_buffer_append_byte(output_buffer,
'\n');
1206 pm_buffer_concat(output_buffer, prefix_buffer);
1207 pm_buffer_append_string(output_buffer,
"+-- message_loc:", 16);
1209 if (location->
start == NULL) {
1210 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1212 pm_buffer_append_byte(output_buffer,
' ');
1213 prettyprint_location(output_buffer, parser, location);
1214 pm_buffer_append_string(output_buffer,
" = \"", 4);
1215 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1216 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1222 pm_buffer_concat(output_buffer, prefix_buffer);
1223 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
1225 if (location->
start == NULL) {
1226 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1228 pm_buffer_append_byte(output_buffer,
' ');
1229 prettyprint_location(output_buffer, parser, location);
1230 pm_buffer_append_string(output_buffer,
" = \"", 4);
1231 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1232 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1238 pm_buffer_concat(output_buffer, prefix_buffer);
1239 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
1241 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1243 pm_buffer_append_byte(output_buffer,
'\n');
1245 size_t prefix_length = prefix_buffer->
length;
1246 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1247 pm_buffer_concat(output_buffer, prefix_buffer);
1248 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
1249 prefix_buffer->
length = prefix_length;
1255 pm_buffer_concat(output_buffer, prefix_buffer);
1256 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
1258 if (location->
start == NULL) {
1259 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1261 pm_buffer_append_byte(output_buffer,
' ');
1262 prettyprint_location(output_buffer, parser, location);
1263 pm_buffer_append_string(output_buffer,
" = \"", 4);
1264 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1265 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1271 pm_buffer_concat(output_buffer, prefix_buffer);
1272 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
1273 if (cast->
block == NULL) {
1274 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1276 pm_buffer_append_byte(output_buffer,
'\n');
1278 size_t prefix_length = prefix_buffer->
length;
1279 pm_buffer_append_string(prefix_buffer,
" ", 4);
1280 pm_buffer_concat(output_buffer, prefix_buffer);
1281 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
1282 prefix_buffer->
length = prefix_length;
1290 pm_buffer_append_string(output_buffer,
"@ CallOperatorWriteNode (location: ", 35);
1291 prettyprint_location(output_buffer, parser, &node->
location);
1292 pm_buffer_append_string(output_buffer,
")\n", 2);
1296 pm_buffer_concat(output_buffer, prefix_buffer);
1297 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
1300 if (found) pm_buffer_append_byte(output_buffer,
',');
1301 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1305 if (found) pm_buffer_append_byte(output_buffer,
',');
1306 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1310 if (found) pm_buffer_append_byte(output_buffer,
',');
1311 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1315 if (found) pm_buffer_append_byte(output_buffer,
',');
1316 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
1319 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
1320 pm_buffer_append_byte(output_buffer,
'\n');
1325 pm_buffer_concat(output_buffer, prefix_buffer);
1326 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
1328 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1330 pm_buffer_append_byte(output_buffer,
'\n');
1332 size_t prefix_length = prefix_buffer->
length;
1333 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1334 pm_buffer_concat(output_buffer, prefix_buffer);
1335 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1336 prefix_buffer->
length = prefix_length;
1342 pm_buffer_concat(output_buffer, prefix_buffer);
1343 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
1345 if (location->
start == NULL) {
1346 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1348 pm_buffer_append_byte(output_buffer,
' ');
1349 prettyprint_location(output_buffer, parser, location);
1350 pm_buffer_append_string(output_buffer,
" = \"", 4);
1351 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1352 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1358 pm_buffer_concat(output_buffer, prefix_buffer);
1359 pm_buffer_append_string(output_buffer,
"+-- message_loc:", 16);
1361 if (location->
start == NULL) {
1362 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1364 pm_buffer_append_byte(output_buffer,
' ');
1365 prettyprint_location(output_buffer, parser, location);
1366 pm_buffer_append_string(output_buffer,
" = \"", 4);
1367 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1368 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1374 pm_buffer_concat(output_buffer, prefix_buffer);
1375 pm_buffer_append_string(output_buffer,
"+-- read_name:", 14);
1376 pm_buffer_append_byte(output_buffer,
' ');
1377 prettyprint_constant(output_buffer, parser, cast->
read_name);
1378 pm_buffer_append_byte(output_buffer,
'\n');
1383 pm_buffer_concat(output_buffer, prefix_buffer);
1384 pm_buffer_append_string(output_buffer,
"+-- write_name:", 15);
1385 pm_buffer_append_byte(output_buffer,
' ');
1386 prettyprint_constant(output_buffer, parser, cast->
write_name);
1387 pm_buffer_append_byte(output_buffer,
'\n');
1392 pm_buffer_concat(output_buffer, prefix_buffer);
1393 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
1394 pm_buffer_append_byte(output_buffer,
' ');
1396 pm_buffer_append_byte(output_buffer,
'\n');
1401 pm_buffer_concat(output_buffer, prefix_buffer);
1402 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
1404 pm_buffer_append_byte(output_buffer,
' ');
1405 prettyprint_location(output_buffer, parser, location);
1406 pm_buffer_append_string(output_buffer,
" = \"", 4);
1407 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1408 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1413 pm_buffer_concat(output_buffer, prefix_buffer);
1414 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
1415 pm_buffer_append_byte(output_buffer,
'\n');
1417 size_t prefix_length = prefix_buffer->
length;
1418 pm_buffer_append_string(prefix_buffer,
" ", 4);
1419 pm_buffer_concat(output_buffer, prefix_buffer);
1420 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1421 prefix_buffer->
length = prefix_length;
1428 pm_buffer_append_string(output_buffer,
"@ CallOrWriteNode (location: ", 29);
1429 prettyprint_location(output_buffer, parser, &node->
location);
1430 pm_buffer_append_string(output_buffer,
")\n", 2);
1434 pm_buffer_concat(output_buffer, prefix_buffer);
1435 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
1438 if (found) pm_buffer_append_byte(output_buffer,
',');
1439 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1443 if (found) pm_buffer_append_byte(output_buffer,
',');
1444 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1448 if (found) pm_buffer_append_byte(output_buffer,
',');
1449 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1453 if (found) pm_buffer_append_byte(output_buffer,
',');
1454 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
1457 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
1458 pm_buffer_append_byte(output_buffer,
'\n');
1463 pm_buffer_concat(output_buffer, prefix_buffer);
1464 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
1466 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1468 pm_buffer_append_byte(output_buffer,
'\n');
1470 size_t prefix_length = prefix_buffer->
length;
1471 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1472 pm_buffer_concat(output_buffer, prefix_buffer);
1473 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1474 prefix_buffer->
length = prefix_length;
1480 pm_buffer_concat(output_buffer, prefix_buffer);
1481 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
1483 if (location->
start == NULL) {
1484 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1486 pm_buffer_append_byte(output_buffer,
' ');
1487 prettyprint_location(output_buffer, parser, location);
1488 pm_buffer_append_string(output_buffer,
" = \"", 4);
1489 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1490 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1496 pm_buffer_concat(output_buffer, prefix_buffer);
1497 pm_buffer_append_string(output_buffer,
"+-- message_loc:", 16);
1499 if (location->
start == NULL) {
1500 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1502 pm_buffer_append_byte(output_buffer,
' ');
1503 prettyprint_location(output_buffer, parser, location);
1504 pm_buffer_append_string(output_buffer,
" = \"", 4);
1505 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1506 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1512 pm_buffer_concat(output_buffer, prefix_buffer);
1513 pm_buffer_append_string(output_buffer,
"+-- read_name:", 14);
1514 pm_buffer_append_byte(output_buffer,
' ');
1515 prettyprint_constant(output_buffer, parser, cast->
read_name);
1516 pm_buffer_append_byte(output_buffer,
'\n');
1521 pm_buffer_concat(output_buffer, prefix_buffer);
1522 pm_buffer_append_string(output_buffer,
"+-- write_name:", 15);
1523 pm_buffer_append_byte(output_buffer,
' ');
1524 prettyprint_constant(output_buffer, parser, cast->
write_name);
1525 pm_buffer_append_byte(output_buffer,
'\n');
1530 pm_buffer_concat(output_buffer, prefix_buffer);
1531 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
1533 pm_buffer_append_byte(output_buffer,
' ');
1534 prettyprint_location(output_buffer, parser, location);
1535 pm_buffer_append_string(output_buffer,
" = \"", 4);
1536 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1537 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1542 pm_buffer_concat(output_buffer, prefix_buffer);
1543 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
1544 pm_buffer_append_byte(output_buffer,
'\n');
1546 size_t prefix_length = prefix_buffer->
length;
1547 pm_buffer_append_string(prefix_buffer,
" ", 4);
1548 pm_buffer_concat(output_buffer, prefix_buffer);
1549 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1550 prefix_buffer->
length = prefix_length;
1557 pm_buffer_append_string(output_buffer,
"@ CallTargetNode (location: ", 28);
1558 prettyprint_location(output_buffer, parser, &node->
location);
1559 pm_buffer_append_string(output_buffer,
")\n", 2);
1563 pm_buffer_concat(output_buffer, prefix_buffer);
1564 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
1567 if (found) pm_buffer_append_byte(output_buffer,
',');
1568 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
1572 if (found) pm_buffer_append_byte(output_buffer,
',');
1573 pm_buffer_append_string(output_buffer,
" variable_call", 14);
1577 if (found) pm_buffer_append_byte(output_buffer,
',');
1578 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
1582 if (found) pm_buffer_append_byte(output_buffer,
',');
1583 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
1586 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
1587 pm_buffer_append_byte(output_buffer,
'\n');
1592 pm_buffer_concat(output_buffer, prefix_buffer);
1593 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
1594 pm_buffer_append_byte(output_buffer,
'\n');
1596 size_t prefix_length = prefix_buffer->
length;
1597 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1598 pm_buffer_concat(output_buffer, prefix_buffer);
1599 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1600 prefix_buffer->
length = prefix_length;
1605 pm_buffer_concat(output_buffer, prefix_buffer);
1606 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
1608 pm_buffer_append_byte(output_buffer,
' ');
1609 prettyprint_location(output_buffer, parser, location);
1610 pm_buffer_append_string(output_buffer,
" = \"", 4);
1611 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1612 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1617 pm_buffer_concat(output_buffer, prefix_buffer);
1618 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
1619 pm_buffer_append_byte(output_buffer,
' ');
1620 prettyprint_constant(output_buffer, parser, cast->
name);
1621 pm_buffer_append_byte(output_buffer,
'\n');
1626 pm_buffer_concat(output_buffer, prefix_buffer);
1627 pm_buffer_append_string(output_buffer,
"+-- message_loc:", 16);
1629 pm_buffer_append_byte(output_buffer,
' ');
1630 prettyprint_location(output_buffer, parser, location);
1631 pm_buffer_append_string(output_buffer,
" = \"", 4);
1632 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1633 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1640 pm_buffer_append_string(output_buffer,
"@ CapturePatternNode (location: ", 32);
1641 prettyprint_location(output_buffer, parser, &node->
location);
1642 pm_buffer_append_string(output_buffer,
")\n", 2);
1646 pm_buffer_concat(output_buffer, prefix_buffer);
1647 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
1648 pm_buffer_append_byte(output_buffer,
'\n');
1650 size_t prefix_length = prefix_buffer->
length;
1651 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1652 pm_buffer_concat(output_buffer, prefix_buffer);
1653 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1654 prefix_buffer->
length = prefix_length;
1659 pm_buffer_concat(output_buffer, prefix_buffer);
1660 pm_buffer_append_string(output_buffer,
"+-- target:", 11);
1661 pm_buffer_append_byte(output_buffer,
'\n');
1663 size_t prefix_length = prefix_buffer->
length;
1664 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1665 pm_buffer_concat(output_buffer, prefix_buffer);
1666 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
1667 prefix_buffer->
length = prefix_length;
1672 pm_buffer_concat(output_buffer, prefix_buffer);
1673 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
1675 pm_buffer_append_byte(output_buffer,
' ');
1676 prettyprint_location(output_buffer, parser, location);
1677 pm_buffer_append_string(output_buffer,
" = \"", 4);
1678 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1679 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1686 pm_buffer_append_string(output_buffer,
"@ CaseMatchNode (location: ", 27);
1687 prettyprint_location(output_buffer, parser, &node->
location);
1688 pm_buffer_append_string(output_buffer,
")\n", 2);
1692 pm_buffer_concat(output_buffer, prefix_buffer);
1693 pm_buffer_append_string(output_buffer,
"+-- predicate:", 14);
1695 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1697 pm_buffer_append_byte(output_buffer,
'\n');
1699 size_t prefix_length = prefix_buffer->
length;
1700 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1701 pm_buffer_concat(output_buffer, prefix_buffer);
1702 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
1703 prefix_buffer->
length = prefix_length;
1709 pm_buffer_concat(output_buffer, prefix_buffer);
1710 pm_buffer_append_string(output_buffer,
"+-- conditions:", 15);
1711 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
conditions.
size));
1714 for (uint32_t index = 0; index < last_index; index++) {
1715 size_t prefix_length = prefix_buffer->
length;
1716 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1717 pm_buffer_concat(output_buffer, prefix_buffer);
1718 pm_buffer_append_string(output_buffer,
"+-- ", 4);
1719 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
1721 prefix_buffer->
length = prefix_length;
1727 pm_buffer_concat(output_buffer, prefix_buffer);
1728 pm_buffer_append_string(output_buffer,
"+-- else_clause:", 16);
1730 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1732 pm_buffer_append_byte(output_buffer,
'\n');
1734 size_t prefix_length = prefix_buffer->
length;
1735 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1736 pm_buffer_concat(output_buffer, prefix_buffer);
1738 prefix_buffer->
length = prefix_length;
1744 pm_buffer_concat(output_buffer, prefix_buffer);
1745 pm_buffer_append_string(output_buffer,
"+-- case_keyword_loc:", 21);
1747 pm_buffer_append_byte(output_buffer,
' ');
1748 prettyprint_location(output_buffer, parser, location);
1749 pm_buffer_append_string(output_buffer,
" = \"", 4);
1750 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1751 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1756 pm_buffer_concat(output_buffer, prefix_buffer);
1757 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
1759 pm_buffer_append_byte(output_buffer,
' ');
1760 prettyprint_location(output_buffer, parser, location);
1761 pm_buffer_append_string(output_buffer,
" = \"", 4);
1762 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1763 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1770 pm_buffer_append_string(output_buffer,
"@ CaseNode (location: ", 22);
1771 prettyprint_location(output_buffer, parser, &node->
location);
1772 pm_buffer_append_string(output_buffer,
")\n", 2);
1776 pm_buffer_concat(output_buffer, prefix_buffer);
1777 pm_buffer_append_string(output_buffer,
"+-- predicate:", 14);
1779 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1781 pm_buffer_append_byte(output_buffer,
'\n');
1783 size_t prefix_length = prefix_buffer->
length;
1784 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1785 pm_buffer_concat(output_buffer, prefix_buffer);
1786 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
1787 prefix_buffer->
length = prefix_length;
1793 pm_buffer_concat(output_buffer, prefix_buffer);
1794 pm_buffer_append_string(output_buffer,
"+-- conditions:", 15);
1795 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
conditions.
size));
1798 for (uint32_t index = 0; index < last_index; index++) {
1799 size_t prefix_length = prefix_buffer->
length;
1800 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1801 pm_buffer_concat(output_buffer, prefix_buffer);
1802 pm_buffer_append_string(output_buffer,
"+-- ", 4);
1803 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
1805 prefix_buffer->
length = prefix_length;
1811 pm_buffer_concat(output_buffer, prefix_buffer);
1812 pm_buffer_append_string(output_buffer,
"+-- else_clause:", 16);
1814 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1816 pm_buffer_append_byte(output_buffer,
'\n');
1818 size_t prefix_length = prefix_buffer->
length;
1819 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1820 pm_buffer_concat(output_buffer, prefix_buffer);
1822 prefix_buffer->
length = prefix_length;
1828 pm_buffer_concat(output_buffer, prefix_buffer);
1829 pm_buffer_append_string(output_buffer,
"+-- case_keyword_loc:", 21);
1831 pm_buffer_append_byte(output_buffer,
' ');
1832 prettyprint_location(output_buffer, parser, location);
1833 pm_buffer_append_string(output_buffer,
" = \"", 4);
1834 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1835 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1840 pm_buffer_concat(output_buffer, prefix_buffer);
1841 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
1843 pm_buffer_append_byte(output_buffer,
' ');
1844 prettyprint_location(output_buffer, parser, location);
1845 pm_buffer_append_string(output_buffer,
" = \"", 4);
1846 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1847 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1854 pm_buffer_append_string(output_buffer,
"@ ClassNode (location: ", 23);
1855 prettyprint_location(output_buffer, parser, &node->
location);
1856 pm_buffer_append_string(output_buffer,
")\n", 2);
1860 pm_buffer_concat(output_buffer, prefix_buffer);
1861 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
1862 pm_buffer_append_string(output_buffer,
" [", 2);
1863 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
1864 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
1865 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
1867 pm_buffer_append_string(output_buffer,
"]\n", 2);
1872 pm_buffer_concat(output_buffer, prefix_buffer);
1873 pm_buffer_append_string(output_buffer,
"+-- class_keyword_loc:", 22);
1875 pm_buffer_append_byte(output_buffer,
' ');
1876 prettyprint_location(output_buffer, parser, location);
1877 pm_buffer_append_string(output_buffer,
" = \"", 4);
1878 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1879 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1884 pm_buffer_concat(output_buffer, prefix_buffer);
1885 pm_buffer_append_string(output_buffer,
"+-- constant_path:", 18);
1886 pm_buffer_append_byte(output_buffer,
'\n');
1888 size_t prefix_length = prefix_buffer->
length;
1889 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1890 pm_buffer_concat(output_buffer, prefix_buffer);
1892 prefix_buffer->
length = prefix_length;
1897 pm_buffer_concat(output_buffer, prefix_buffer);
1898 pm_buffer_append_string(output_buffer,
"+-- inheritance_operator_loc:", 29);
1900 if (location->
start == NULL) {
1901 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1903 pm_buffer_append_byte(output_buffer,
' ');
1904 prettyprint_location(output_buffer, parser, location);
1905 pm_buffer_append_string(output_buffer,
" = \"", 4);
1906 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1907 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1913 pm_buffer_concat(output_buffer, prefix_buffer);
1914 pm_buffer_append_string(output_buffer,
"+-- superclass:", 15);
1916 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1918 pm_buffer_append_byte(output_buffer,
'\n');
1920 size_t prefix_length = prefix_buffer->
length;
1921 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1922 pm_buffer_concat(output_buffer, prefix_buffer);
1924 prefix_buffer->
length = prefix_length;
1930 pm_buffer_concat(output_buffer, prefix_buffer);
1931 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
1932 if (cast->
body == NULL) {
1933 pm_buffer_append_string(output_buffer,
" nil\n", 5);
1935 pm_buffer_append_byte(output_buffer,
'\n');
1937 size_t prefix_length = prefix_buffer->
length;
1938 pm_buffer_append_string(prefix_buffer,
"| ", 4);
1939 pm_buffer_concat(output_buffer, prefix_buffer);
1940 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
1941 prefix_buffer->
length = prefix_length;
1947 pm_buffer_concat(output_buffer, prefix_buffer);
1948 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
1950 pm_buffer_append_byte(output_buffer,
' ');
1951 prettyprint_location(output_buffer, parser, location);
1952 pm_buffer_append_string(output_buffer,
" = \"", 4);
1953 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1954 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1959 pm_buffer_concat(output_buffer, prefix_buffer);
1960 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
1961 pm_buffer_append_byte(output_buffer,
' ');
1962 prettyprint_constant(output_buffer, parser, cast->
name);
1963 pm_buffer_append_byte(output_buffer,
'\n');
1970 pm_buffer_append_string(output_buffer,
"@ ClassVariableAndWriteNode (location: ", 39);
1971 prettyprint_location(output_buffer, parser, &node->
location);
1972 pm_buffer_append_string(output_buffer,
")\n", 2);
1976 pm_buffer_concat(output_buffer, prefix_buffer);
1977 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
1978 pm_buffer_append_byte(output_buffer,
' ');
1979 prettyprint_constant(output_buffer, parser, cast->
name);
1980 pm_buffer_append_byte(output_buffer,
'\n');
1985 pm_buffer_concat(output_buffer, prefix_buffer);
1986 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
1988 pm_buffer_append_byte(output_buffer,
' ');
1989 prettyprint_location(output_buffer, parser, location);
1990 pm_buffer_append_string(output_buffer,
" = \"", 4);
1991 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
1992 pm_buffer_append_string(output_buffer,
"\"\n", 2);
1997 pm_buffer_concat(output_buffer, prefix_buffer);
1998 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2000 pm_buffer_append_byte(output_buffer,
' ');
2001 prettyprint_location(output_buffer, parser, location);
2002 pm_buffer_append_string(output_buffer,
" = \"", 4);
2003 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2004 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2009 pm_buffer_concat(output_buffer, prefix_buffer);
2010 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2011 pm_buffer_append_byte(output_buffer,
'\n');
2013 size_t prefix_length = prefix_buffer->
length;
2014 pm_buffer_append_string(prefix_buffer,
" ", 4);
2015 pm_buffer_concat(output_buffer, prefix_buffer);
2016 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2017 prefix_buffer->
length = prefix_length;
2024 pm_buffer_append_string(output_buffer,
"@ ClassVariableOperatorWriteNode (location: ", 44);
2025 prettyprint_location(output_buffer, parser, &node->
location);
2026 pm_buffer_append_string(output_buffer,
")\n", 2);
2030 pm_buffer_concat(output_buffer, prefix_buffer);
2031 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2032 pm_buffer_append_byte(output_buffer,
' ');
2033 prettyprint_constant(output_buffer, parser, cast->
name);
2034 pm_buffer_append_byte(output_buffer,
'\n');
2039 pm_buffer_concat(output_buffer, prefix_buffer);
2040 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2042 pm_buffer_append_byte(output_buffer,
' ');
2043 prettyprint_location(output_buffer, parser, location);
2044 pm_buffer_append_string(output_buffer,
" = \"", 4);
2045 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2046 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2051 pm_buffer_concat(output_buffer, prefix_buffer);
2052 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
2054 pm_buffer_append_byte(output_buffer,
' ');
2055 prettyprint_location(output_buffer, parser, location);
2056 pm_buffer_append_string(output_buffer,
" = \"", 4);
2057 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2058 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2063 pm_buffer_concat(output_buffer, prefix_buffer);
2064 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2065 pm_buffer_append_byte(output_buffer,
'\n');
2067 size_t prefix_length = prefix_buffer->
length;
2068 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2069 pm_buffer_concat(output_buffer, prefix_buffer);
2070 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2071 prefix_buffer->
length = prefix_length;
2076 pm_buffer_concat(output_buffer, prefix_buffer);
2077 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
2078 pm_buffer_append_byte(output_buffer,
' ');
2080 pm_buffer_append_byte(output_buffer,
'\n');
2087 pm_buffer_append_string(output_buffer,
"@ ClassVariableOrWriteNode (location: ", 38);
2088 prettyprint_location(output_buffer, parser, &node->
location);
2089 pm_buffer_append_string(output_buffer,
")\n", 2);
2093 pm_buffer_concat(output_buffer, prefix_buffer);
2094 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2095 pm_buffer_append_byte(output_buffer,
' ');
2096 prettyprint_constant(output_buffer, parser, cast->
name);
2097 pm_buffer_append_byte(output_buffer,
'\n');
2102 pm_buffer_concat(output_buffer, prefix_buffer);
2103 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2105 pm_buffer_append_byte(output_buffer,
' ');
2106 prettyprint_location(output_buffer, parser, location);
2107 pm_buffer_append_string(output_buffer,
" = \"", 4);
2108 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2109 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2114 pm_buffer_concat(output_buffer, prefix_buffer);
2115 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2117 pm_buffer_append_byte(output_buffer,
' ');
2118 prettyprint_location(output_buffer, parser, location);
2119 pm_buffer_append_string(output_buffer,
" = \"", 4);
2120 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2121 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2126 pm_buffer_concat(output_buffer, prefix_buffer);
2127 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2128 pm_buffer_append_byte(output_buffer,
'\n');
2130 size_t prefix_length = prefix_buffer->
length;
2131 pm_buffer_append_string(prefix_buffer,
" ", 4);
2132 pm_buffer_concat(output_buffer, prefix_buffer);
2133 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2134 prefix_buffer->
length = prefix_length;
2141 pm_buffer_append_string(output_buffer,
"@ ClassVariableReadNode (location: ", 35);
2142 prettyprint_location(output_buffer, parser, &node->
location);
2143 pm_buffer_append_string(output_buffer,
")\n", 2);
2147 pm_buffer_concat(output_buffer, prefix_buffer);
2148 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2149 pm_buffer_append_byte(output_buffer,
' ');
2150 prettyprint_constant(output_buffer, parser, cast->
name);
2151 pm_buffer_append_byte(output_buffer,
'\n');
2158 pm_buffer_append_string(output_buffer,
"@ ClassVariableTargetNode (location: ", 37);
2159 prettyprint_location(output_buffer, parser, &node->
location);
2160 pm_buffer_append_string(output_buffer,
")\n", 2);
2164 pm_buffer_concat(output_buffer, prefix_buffer);
2165 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2166 pm_buffer_append_byte(output_buffer,
' ');
2167 prettyprint_constant(output_buffer, parser, cast->
name);
2168 pm_buffer_append_byte(output_buffer,
'\n');
2175 pm_buffer_append_string(output_buffer,
"@ ClassVariableWriteNode (location: ", 36);
2176 prettyprint_location(output_buffer, parser, &node->
location);
2177 pm_buffer_append_string(output_buffer,
")\n", 2);
2181 pm_buffer_concat(output_buffer, prefix_buffer);
2182 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2183 pm_buffer_append_byte(output_buffer,
' ');
2184 prettyprint_constant(output_buffer, parser, cast->
name);
2185 pm_buffer_append_byte(output_buffer,
'\n');
2190 pm_buffer_concat(output_buffer, prefix_buffer);
2191 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2193 pm_buffer_append_byte(output_buffer,
' ');
2194 prettyprint_location(output_buffer, parser, location);
2195 pm_buffer_append_string(output_buffer,
" = \"", 4);
2196 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2197 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2202 pm_buffer_concat(output_buffer, prefix_buffer);
2203 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2204 pm_buffer_append_byte(output_buffer,
'\n');
2206 size_t prefix_length = prefix_buffer->
length;
2207 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2208 pm_buffer_concat(output_buffer, prefix_buffer);
2209 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2210 prefix_buffer->
length = prefix_length;
2215 pm_buffer_concat(output_buffer, prefix_buffer);
2216 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2218 pm_buffer_append_byte(output_buffer,
' ');
2219 prettyprint_location(output_buffer, parser, location);
2220 pm_buffer_append_string(output_buffer,
" = \"", 4);
2221 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2222 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2229 pm_buffer_append_string(output_buffer,
"@ ConstantAndWriteNode (location: ", 34);
2230 prettyprint_location(output_buffer, parser, &node->
location);
2231 pm_buffer_append_string(output_buffer,
")\n", 2);
2235 pm_buffer_concat(output_buffer, prefix_buffer);
2236 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2237 pm_buffer_append_byte(output_buffer,
' ');
2238 prettyprint_constant(output_buffer, parser, cast->
name);
2239 pm_buffer_append_byte(output_buffer,
'\n');
2244 pm_buffer_concat(output_buffer, prefix_buffer);
2245 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2247 pm_buffer_append_byte(output_buffer,
' ');
2248 prettyprint_location(output_buffer, parser, location);
2249 pm_buffer_append_string(output_buffer,
" = \"", 4);
2250 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2251 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2256 pm_buffer_concat(output_buffer, prefix_buffer);
2257 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2259 pm_buffer_append_byte(output_buffer,
' ');
2260 prettyprint_location(output_buffer, parser, location);
2261 pm_buffer_append_string(output_buffer,
" = \"", 4);
2262 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2263 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2268 pm_buffer_concat(output_buffer, prefix_buffer);
2269 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2270 pm_buffer_append_byte(output_buffer,
'\n');
2272 size_t prefix_length = prefix_buffer->
length;
2273 pm_buffer_append_string(prefix_buffer,
" ", 4);
2274 pm_buffer_concat(output_buffer, prefix_buffer);
2275 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2276 prefix_buffer->
length = prefix_length;
2283 pm_buffer_append_string(output_buffer,
"@ ConstantOperatorWriteNode (location: ", 39);
2284 prettyprint_location(output_buffer, parser, &node->
location);
2285 pm_buffer_append_string(output_buffer,
")\n", 2);
2289 pm_buffer_concat(output_buffer, prefix_buffer);
2290 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2291 pm_buffer_append_byte(output_buffer,
' ');
2292 prettyprint_constant(output_buffer, parser, cast->
name);
2293 pm_buffer_append_byte(output_buffer,
'\n');
2298 pm_buffer_concat(output_buffer, prefix_buffer);
2299 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2301 pm_buffer_append_byte(output_buffer,
' ');
2302 prettyprint_location(output_buffer, parser, location);
2303 pm_buffer_append_string(output_buffer,
" = \"", 4);
2304 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2305 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2310 pm_buffer_concat(output_buffer, prefix_buffer);
2311 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
2313 pm_buffer_append_byte(output_buffer,
' ');
2314 prettyprint_location(output_buffer, parser, location);
2315 pm_buffer_append_string(output_buffer,
" = \"", 4);
2316 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2317 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2322 pm_buffer_concat(output_buffer, prefix_buffer);
2323 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2324 pm_buffer_append_byte(output_buffer,
'\n');
2326 size_t prefix_length = prefix_buffer->
length;
2327 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2328 pm_buffer_concat(output_buffer, prefix_buffer);
2329 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2330 prefix_buffer->
length = prefix_length;
2335 pm_buffer_concat(output_buffer, prefix_buffer);
2336 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
2337 pm_buffer_append_byte(output_buffer,
' ');
2339 pm_buffer_append_byte(output_buffer,
'\n');
2346 pm_buffer_append_string(output_buffer,
"@ ConstantOrWriteNode (location: ", 33);
2347 prettyprint_location(output_buffer, parser, &node->
location);
2348 pm_buffer_append_string(output_buffer,
")\n", 2);
2352 pm_buffer_concat(output_buffer, prefix_buffer);
2353 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2354 pm_buffer_append_byte(output_buffer,
' ');
2355 prettyprint_constant(output_buffer, parser, cast->
name);
2356 pm_buffer_append_byte(output_buffer,
'\n');
2361 pm_buffer_concat(output_buffer, prefix_buffer);
2362 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2364 pm_buffer_append_byte(output_buffer,
' ');
2365 prettyprint_location(output_buffer, parser, location);
2366 pm_buffer_append_string(output_buffer,
" = \"", 4);
2367 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2368 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2373 pm_buffer_concat(output_buffer, prefix_buffer);
2374 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2376 pm_buffer_append_byte(output_buffer,
' ');
2377 prettyprint_location(output_buffer, parser, location);
2378 pm_buffer_append_string(output_buffer,
" = \"", 4);
2379 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2380 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2385 pm_buffer_concat(output_buffer, prefix_buffer);
2386 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2387 pm_buffer_append_byte(output_buffer,
'\n');
2389 size_t prefix_length = prefix_buffer->
length;
2390 pm_buffer_append_string(prefix_buffer,
" ", 4);
2391 pm_buffer_concat(output_buffer, prefix_buffer);
2392 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2393 prefix_buffer->
length = prefix_length;
2400 pm_buffer_append_string(output_buffer,
"@ ConstantPathAndWriteNode (location: ", 38);
2401 prettyprint_location(output_buffer, parser, &node->
location);
2402 pm_buffer_append_string(output_buffer,
")\n", 2);
2406 pm_buffer_concat(output_buffer, prefix_buffer);
2407 pm_buffer_append_string(output_buffer,
"+-- target:", 11);
2408 pm_buffer_append_byte(output_buffer,
'\n');
2410 size_t prefix_length = prefix_buffer->
length;
2411 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2412 pm_buffer_concat(output_buffer, prefix_buffer);
2413 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2414 prefix_buffer->
length = prefix_length;
2419 pm_buffer_concat(output_buffer, prefix_buffer);
2420 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2422 pm_buffer_append_byte(output_buffer,
' ');
2423 prettyprint_location(output_buffer, parser, location);
2424 pm_buffer_append_string(output_buffer,
" = \"", 4);
2425 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2426 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2431 pm_buffer_concat(output_buffer, prefix_buffer);
2432 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2433 pm_buffer_append_byte(output_buffer,
'\n');
2435 size_t prefix_length = prefix_buffer->
length;
2436 pm_buffer_append_string(prefix_buffer,
" ", 4);
2437 pm_buffer_concat(output_buffer, prefix_buffer);
2438 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2439 prefix_buffer->
length = prefix_length;
2446 pm_buffer_append_string(output_buffer,
"@ ConstantPathNode (location: ", 30);
2447 prettyprint_location(output_buffer, parser, &node->
location);
2448 pm_buffer_append_string(output_buffer,
")\n", 2);
2452 pm_buffer_concat(output_buffer, prefix_buffer);
2453 pm_buffer_append_string(output_buffer,
"+-- parent:", 11);
2454 if (cast->
parent == NULL) {
2455 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2457 pm_buffer_append_byte(output_buffer,
'\n');
2459 size_t prefix_length = prefix_buffer->
length;
2460 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2461 pm_buffer_concat(output_buffer, prefix_buffer);
2462 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parent, prefix_buffer);
2463 prefix_buffer->
length = prefix_length;
2469 pm_buffer_concat(output_buffer, prefix_buffer);
2470 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2471 if (cast->
name == 0) {
2472 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2474 pm_buffer_append_byte(output_buffer,
' ');
2475 prettyprint_constant(output_buffer, parser, cast->
name);
2476 pm_buffer_append_byte(output_buffer,
'\n');
2482 pm_buffer_concat(output_buffer, prefix_buffer);
2483 pm_buffer_append_string(output_buffer,
"+-- delimiter_loc:", 18);
2485 pm_buffer_append_byte(output_buffer,
' ');
2486 prettyprint_location(output_buffer, parser, location);
2487 pm_buffer_append_string(output_buffer,
" = \"", 4);
2488 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2489 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2494 pm_buffer_concat(output_buffer, prefix_buffer);
2495 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2497 pm_buffer_append_byte(output_buffer,
' ');
2498 prettyprint_location(output_buffer, parser, location);
2499 pm_buffer_append_string(output_buffer,
" = \"", 4);
2500 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2501 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2508 pm_buffer_append_string(output_buffer,
"@ ConstantPathOperatorWriteNode (location: ", 43);
2509 prettyprint_location(output_buffer, parser, &node->
location);
2510 pm_buffer_append_string(output_buffer,
")\n", 2);
2514 pm_buffer_concat(output_buffer, prefix_buffer);
2515 pm_buffer_append_string(output_buffer,
"+-- target:", 11);
2516 pm_buffer_append_byte(output_buffer,
'\n');
2518 size_t prefix_length = prefix_buffer->
length;
2519 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2520 pm_buffer_concat(output_buffer, prefix_buffer);
2521 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2522 prefix_buffer->
length = prefix_length;
2527 pm_buffer_concat(output_buffer, prefix_buffer);
2528 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
2530 pm_buffer_append_byte(output_buffer,
' ');
2531 prettyprint_location(output_buffer, parser, location);
2532 pm_buffer_append_string(output_buffer,
" = \"", 4);
2533 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2534 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2539 pm_buffer_concat(output_buffer, prefix_buffer);
2540 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2541 pm_buffer_append_byte(output_buffer,
'\n');
2543 size_t prefix_length = prefix_buffer->
length;
2544 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2545 pm_buffer_concat(output_buffer, prefix_buffer);
2546 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2547 prefix_buffer->
length = prefix_length;
2552 pm_buffer_concat(output_buffer, prefix_buffer);
2553 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
2554 pm_buffer_append_byte(output_buffer,
' ');
2556 pm_buffer_append_byte(output_buffer,
'\n');
2563 pm_buffer_append_string(output_buffer,
"@ ConstantPathOrWriteNode (location: ", 37);
2564 prettyprint_location(output_buffer, parser, &node->
location);
2565 pm_buffer_append_string(output_buffer,
")\n", 2);
2569 pm_buffer_concat(output_buffer, prefix_buffer);
2570 pm_buffer_append_string(output_buffer,
"+-- target:", 11);
2571 pm_buffer_append_byte(output_buffer,
'\n');
2573 size_t prefix_length = prefix_buffer->
length;
2574 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2575 pm_buffer_concat(output_buffer, prefix_buffer);
2576 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2577 prefix_buffer->
length = prefix_length;
2582 pm_buffer_concat(output_buffer, prefix_buffer);
2583 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2585 pm_buffer_append_byte(output_buffer,
' ');
2586 prettyprint_location(output_buffer, parser, location);
2587 pm_buffer_append_string(output_buffer,
" = \"", 4);
2588 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2589 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2594 pm_buffer_concat(output_buffer, prefix_buffer);
2595 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2596 pm_buffer_append_byte(output_buffer,
'\n');
2598 size_t prefix_length = prefix_buffer->
length;
2599 pm_buffer_append_string(prefix_buffer,
" ", 4);
2600 pm_buffer_concat(output_buffer, prefix_buffer);
2601 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2602 prefix_buffer->
length = prefix_length;
2609 pm_buffer_append_string(output_buffer,
"@ ConstantPathTargetNode (location: ", 36);
2610 prettyprint_location(output_buffer, parser, &node->
location);
2611 pm_buffer_append_string(output_buffer,
")\n", 2);
2615 pm_buffer_concat(output_buffer, prefix_buffer);
2616 pm_buffer_append_string(output_buffer,
"+-- parent:", 11);
2617 if (cast->
parent == NULL) {
2618 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2620 pm_buffer_append_byte(output_buffer,
'\n');
2622 size_t prefix_length = prefix_buffer->
length;
2623 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2624 pm_buffer_concat(output_buffer, prefix_buffer);
2625 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parent, prefix_buffer);
2626 prefix_buffer->
length = prefix_length;
2632 pm_buffer_concat(output_buffer, prefix_buffer);
2633 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2634 if (cast->
name == 0) {
2635 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2637 pm_buffer_append_byte(output_buffer,
' ');
2638 prettyprint_constant(output_buffer, parser, cast->
name);
2639 pm_buffer_append_byte(output_buffer,
'\n');
2645 pm_buffer_concat(output_buffer, prefix_buffer);
2646 pm_buffer_append_string(output_buffer,
"+-- delimiter_loc:", 18);
2648 pm_buffer_append_byte(output_buffer,
' ');
2649 prettyprint_location(output_buffer, parser, location);
2650 pm_buffer_append_string(output_buffer,
" = \"", 4);
2651 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2652 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2657 pm_buffer_concat(output_buffer, prefix_buffer);
2658 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2660 pm_buffer_append_byte(output_buffer,
' ');
2661 prettyprint_location(output_buffer, parser, location);
2662 pm_buffer_append_string(output_buffer,
" = \"", 4);
2663 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2664 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2671 pm_buffer_append_string(output_buffer,
"@ ConstantPathWriteNode (location: ", 35);
2672 prettyprint_location(output_buffer, parser, &node->
location);
2673 pm_buffer_append_string(output_buffer,
")\n", 2);
2677 pm_buffer_concat(output_buffer, prefix_buffer);
2678 pm_buffer_append_string(output_buffer,
"+-- target:", 11);
2679 pm_buffer_append_byte(output_buffer,
'\n');
2681 size_t prefix_length = prefix_buffer->
length;
2682 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2683 pm_buffer_concat(output_buffer, prefix_buffer);
2684 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2685 prefix_buffer->
length = prefix_length;
2690 pm_buffer_concat(output_buffer, prefix_buffer);
2691 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2693 pm_buffer_append_byte(output_buffer,
' ');
2694 prettyprint_location(output_buffer, parser, location);
2695 pm_buffer_append_string(output_buffer,
" = \"", 4);
2696 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2697 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2702 pm_buffer_concat(output_buffer, prefix_buffer);
2703 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2704 pm_buffer_append_byte(output_buffer,
'\n');
2706 size_t prefix_length = prefix_buffer->
length;
2707 pm_buffer_append_string(prefix_buffer,
" ", 4);
2708 pm_buffer_concat(output_buffer, prefix_buffer);
2709 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2710 prefix_buffer->
length = prefix_length;
2717 pm_buffer_append_string(output_buffer,
"@ ConstantReadNode (location: ", 30);
2718 prettyprint_location(output_buffer, parser, &node->
location);
2719 pm_buffer_append_string(output_buffer,
")\n", 2);
2723 pm_buffer_concat(output_buffer, prefix_buffer);
2724 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2725 pm_buffer_append_byte(output_buffer,
' ');
2726 prettyprint_constant(output_buffer, parser, cast->
name);
2727 pm_buffer_append_byte(output_buffer,
'\n');
2734 pm_buffer_append_string(output_buffer,
"@ ConstantTargetNode (location: ", 32);
2735 prettyprint_location(output_buffer, parser, &node->
location);
2736 pm_buffer_append_string(output_buffer,
")\n", 2);
2740 pm_buffer_concat(output_buffer, prefix_buffer);
2741 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2742 pm_buffer_append_byte(output_buffer,
' ');
2743 prettyprint_constant(output_buffer, parser, cast->
name);
2744 pm_buffer_append_byte(output_buffer,
'\n');
2751 pm_buffer_append_string(output_buffer,
"@ ConstantWriteNode (location: ", 31);
2752 prettyprint_location(output_buffer, parser, &node->
location);
2753 pm_buffer_append_string(output_buffer,
")\n", 2);
2757 pm_buffer_concat(output_buffer, prefix_buffer);
2758 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2759 pm_buffer_append_byte(output_buffer,
' ');
2760 prettyprint_constant(output_buffer, parser, cast->
name);
2761 pm_buffer_append_byte(output_buffer,
'\n');
2766 pm_buffer_concat(output_buffer, prefix_buffer);
2767 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2769 pm_buffer_append_byte(output_buffer,
' ');
2770 prettyprint_location(output_buffer, parser, location);
2771 pm_buffer_append_string(output_buffer,
" = \"", 4);
2772 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2773 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2778 pm_buffer_concat(output_buffer, prefix_buffer);
2779 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
2780 pm_buffer_append_byte(output_buffer,
'\n');
2782 size_t prefix_length = prefix_buffer->
length;
2783 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2784 pm_buffer_concat(output_buffer, prefix_buffer);
2785 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2786 prefix_buffer->
length = prefix_length;
2791 pm_buffer_concat(output_buffer, prefix_buffer);
2792 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2794 pm_buffer_append_byte(output_buffer,
' ');
2795 prettyprint_location(output_buffer, parser, location);
2796 pm_buffer_append_string(output_buffer,
" = \"", 4);
2797 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2798 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2805 pm_buffer_append_string(output_buffer,
"@ DefNode (location: ", 21);
2806 prettyprint_location(output_buffer, parser, &node->
location);
2807 pm_buffer_append_string(output_buffer,
")\n", 2);
2811 pm_buffer_concat(output_buffer, prefix_buffer);
2812 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
2813 pm_buffer_append_byte(output_buffer,
' ');
2814 prettyprint_constant(output_buffer, parser, cast->
name);
2815 pm_buffer_append_byte(output_buffer,
'\n');
2820 pm_buffer_concat(output_buffer, prefix_buffer);
2821 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
2823 pm_buffer_append_byte(output_buffer,
' ');
2824 prettyprint_location(output_buffer, parser, location);
2825 pm_buffer_append_string(output_buffer,
" = \"", 4);
2826 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2827 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2832 pm_buffer_concat(output_buffer, prefix_buffer);
2833 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
2835 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2837 pm_buffer_append_byte(output_buffer,
'\n');
2839 size_t prefix_length = prefix_buffer->
length;
2840 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2841 pm_buffer_concat(output_buffer, prefix_buffer);
2842 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
2843 prefix_buffer->
length = prefix_length;
2849 pm_buffer_concat(output_buffer, prefix_buffer);
2850 pm_buffer_append_string(output_buffer,
"+-- parameters:", 15);
2852 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2854 pm_buffer_append_byte(output_buffer,
'\n');
2856 size_t prefix_length = prefix_buffer->
length;
2857 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2858 pm_buffer_concat(output_buffer, prefix_buffer);
2860 prefix_buffer->
length = prefix_length;
2866 pm_buffer_concat(output_buffer, prefix_buffer);
2867 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
2868 if (cast->
body == NULL) {
2869 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2871 pm_buffer_append_byte(output_buffer,
'\n');
2873 size_t prefix_length = prefix_buffer->
length;
2874 pm_buffer_append_string(prefix_buffer,
"| ", 4);
2875 pm_buffer_concat(output_buffer, prefix_buffer);
2876 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
2877 prefix_buffer->
length = prefix_length;
2883 pm_buffer_concat(output_buffer, prefix_buffer);
2884 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
2885 pm_buffer_append_string(output_buffer,
" [", 2);
2886 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
2887 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
2888 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
2890 pm_buffer_append_string(output_buffer,
"]\n", 2);
2895 pm_buffer_concat(output_buffer, prefix_buffer);
2896 pm_buffer_append_string(output_buffer,
"+-- def_keyword_loc:", 20);
2898 pm_buffer_append_byte(output_buffer,
' ');
2899 prettyprint_location(output_buffer, parser, location);
2900 pm_buffer_append_string(output_buffer,
" = \"", 4);
2901 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2902 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2907 pm_buffer_concat(output_buffer, prefix_buffer);
2908 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
2910 if (location->
start == NULL) {
2911 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2913 pm_buffer_append_byte(output_buffer,
' ');
2914 prettyprint_location(output_buffer, parser, location);
2915 pm_buffer_append_string(output_buffer,
" = \"", 4);
2916 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2917 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2923 pm_buffer_concat(output_buffer, prefix_buffer);
2924 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
2926 if (location->
start == NULL) {
2927 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2929 pm_buffer_append_byte(output_buffer,
' ');
2930 prettyprint_location(output_buffer, parser, location);
2931 pm_buffer_append_string(output_buffer,
" = \"", 4);
2932 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2933 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2939 pm_buffer_concat(output_buffer, prefix_buffer);
2940 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
2942 if (location->
start == NULL) {
2943 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2945 pm_buffer_append_byte(output_buffer,
' ');
2946 prettyprint_location(output_buffer, parser, location);
2947 pm_buffer_append_string(output_buffer,
" = \"", 4);
2948 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2949 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2955 pm_buffer_concat(output_buffer, prefix_buffer);
2956 pm_buffer_append_string(output_buffer,
"+-- equal_loc:", 14);
2958 if (location->
start == NULL) {
2959 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2961 pm_buffer_append_byte(output_buffer,
' ');
2962 prettyprint_location(output_buffer, parser, location);
2963 pm_buffer_append_string(output_buffer,
" = \"", 4);
2964 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2965 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2971 pm_buffer_concat(output_buffer, prefix_buffer);
2972 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
2974 if (location->
start == NULL) {
2975 pm_buffer_append_string(output_buffer,
" nil\n", 5);
2977 pm_buffer_append_byte(output_buffer,
' ');
2978 prettyprint_location(output_buffer, parser, location);
2979 pm_buffer_append_string(output_buffer,
" = \"", 4);
2980 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
2981 pm_buffer_append_string(output_buffer,
"\"\n", 2);
2989 pm_buffer_append_string(output_buffer,
"@ DefinedNode (location: ", 25);
2990 prettyprint_location(output_buffer, parser, &node->
location);
2991 pm_buffer_append_string(output_buffer,
")\n", 2);
2995 pm_buffer_concat(output_buffer, prefix_buffer);
2996 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
2998 if (location->
start == NULL) {
2999 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3001 pm_buffer_append_byte(output_buffer,
' ');
3002 prettyprint_location(output_buffer, parser, location);
3003 pm_buffer_append_string(output_buffer,
" = \"", 4);
3004 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3005 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3011 pm_buffer_concat(output_buffer, prefix_buffer);
3012 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
3013 pm_buffer_append_byte(output_buffer,
'\n');
3015 size_t prefix_length = prefix_buffer->
length;
3016 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3017 pm_buffer_concat(output_buffer, prefix_buffer);
3018 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3019 prefix_buffer->
length = prefix_length;
3024 pm_buffer_concat(output_buffer, prefix_buffer);
3025 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
3027 if (location->
start == NULL) {
3028 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3030 pm_buffer_append_byte(output_buffer,
' ');
3031 prettyprint_location(output_buffer, parser, location);
3032 pm_buffer_append_string(output_buffer,
" = \"", 4);
3033 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3034 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3040 pm_buffer_concat(output_buffer, prefix_buffer);
3041 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
3043 pm_buffer_append_byte(output_buffer,
' ');
3044 prettyprint_location(output_buffer, parser, location);
3045 pm_buffer_append_string(output_buffer,
" = \"", 4);
3046 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3047 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3054 pm_buffer_append_string(output_buffer,
"@ ElseNode (location: ", 22);
3055 prettyprint_location(output_buffer, parser, &node->
location);
3056 pm_buffer_append_string(output_buffer,
")\n", 2);
3060 pm_buffer_concat(output_buffer, prefix_buffer);
3061 pm_buffer_append_string(output_buffer,
"+-- else_keyword_loc:", 21);
3063 pm_buffer_append_byte(output_buffer,
' ');
3064 prettyprint_location(output_buffer, parser, location);
3065 pm_buffer_append_string(output_buffer,
" = \"", 4);
3066 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3067 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3072 pm_buffer_concat(output_buffer, prefix_buffer);
3073 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
3075 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3077 pm_buffer_append_byte(output_buffer,
'\n');
3079 size_t prefix_length = prefix_buffer->
length;
3080 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3081 pm_buffer_concat(output_buffer, prefix_buffer);
3083 prefix_buffer->
length = prefix_length;
3089 pm_buffer_concat(output_buffer, prefix_buffer);
3090 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
3092 if (location->
start == NULL) {
3093 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3095 pm_buffer_append_byte(output_buffer,
' ');
3096 prettyprint_location(output_buffer, parser, location);
3097 pm_buffer_append_string(output_buffer,
" = \"", 4);
3098 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3099 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3107 pm_buffer_append_string(output_buffer,
"@ EmbeddedStatementsNode (location: ", 36);
3108 prettyprint_location(output_buffer, parser, &node->
location);
3109 pm_buffer_append_string(output_buffer,
")\n", 2);
3113 pm_buffer_concat(output_buffer, prefix_buffer);
3114 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
3116 pm_buffer_append_byte(output_buffer,
' ');
3117 prettyprint_location(output_buffer, parser, location);
3118 pm_buffer_append_string(output_buffer,
" = \"", 4);
3119 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3120 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3125 pm_buffer_concat(output_buffer, prefix_buffer);
3126 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
3128 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3130 pm_buffer_append_byte(output_buffer,
'\n');
3132 size_t prefix_length = prefix_buffer->
length;
3133 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3134 pm_buffer_concat(output_buffer, prefix_buffer);
3136 prefix_buffer->
length = prefix_length;
3142 pm_buffer_concat(output_buffer, prefix_buffer);
3143 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
3145 pm_buffer_append_byte(output_buffer,
' ');
3146 prettyprint_location(output_buffer, parser, location);
3147 pm_buffer_append_string(output_buffer,
" = \"", 4);
3148 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3149 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3156 pm_buffer_append_string(output_buffer,
"@ EmbeddedVariableNode (location: ", 34);
3157 prettyprint_location(output_buffer, parser, &node->
location);
3158 pm_buffer_append_string(output_buffer,
")\n", 2);
3162 pm_buffer_concat(output_buffer, prefix_buffer);
3163 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
3165 pm_buffer_append_byte(output_buffer,
' ');
3166 prettyprint_location(output_buffer, parser, location);
3167 pm_buffer_append_string(output_buffer,
" = \"", 4);
3168 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3169 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3174 pm_buffer_concat(output_buffer, prefix_buffer);
3175 pm_buffer_append_string(output_buffer,
"+-- variable:", 13);
3176 pm_buffer_append_byte(output_buffer,
'\n');
3178 size_t prefix_length = prefix_buffer->
length;
3179 pm_buffer_append_string(prefix_buffer,
" ", 4);
3180 pm_buffer_concat(output_buffer, prefix_buffer);
3181 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
variable, prefix_buffer);
3182 prefix_buffer->
length = prefix_length;
3189 pm_buffer_append_string(output_buffer,
"@ EnsureNode (location: ", 24);
3190 prettyprint_location(output_buffer, parser, &node->
location);
3191 pm_buffer_append_string(output_buffer,
")\n", 2);
3195 pm_buffer_concat(output_buffer, prefix_buffer);
3196 pm_buffer_append_string(output_buffer,
"+-- ensure_keyword_loc:", 23);
3198 pm_buffer_append_byte(output_buffer,
' ');
3199 prettyprint_location(output_buffer, parser, location);
3200 pm_buffer_append_string(output_buffer,
" = \"", 4);
3201 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3202 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3207 pm_buffer_concat(output_buffer, prefix_buffer);
3208 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
3210 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3212 pm_buffer_append_byte(output_buffer,
'\n');
3214 size_t prefix_length = prefix_buffer->
length;
3215 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3216 pm_buffer_concat(output_buffer, prefix_buffer);
3218 prefix_buffer->
length = prefix_length;
3224 pm_buffer_concat(output_buffer, prefix_buffer);
3225 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
3227 pm_buffer_append_byte(output_buffer,
' ');
3228 prettyprint_location(output_buffer, parser, location);
3229 pm_buffer_append_string(output_buffer,
" = \"", 4);
3230 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3231 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3237 pm_buffer_append_string(output_buffer,
"@ FalseNode (location: ", 23);
3238 prettyprint_location(output_buffer, parser, &node->
location);
3239 pm_buffer_append_string(output_buffer,
")\n", 2);
3245 pm_buffer_append_string(output_buffer,
"@ FindPatternNode (location: ", 29);
3246 prettyprint_location(output_buffer, parser, &node->
location);
3247 pm_buffer_append_string(output_buffer,
")\n", 2);
3251 pm_buffer_concat(output_buffer, prefix_buffer);
3252 pm_buffer_append_string(output_buffer,
"+-- constant:", 13);
3254 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3256 pm_buffer_append_byte(output_buffer,
'\n');
3258 size_t prefix_length = prefix_buffer->
length;
3259 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3260 pm_buffer_concat(output_buffer, prefix_buffer);
3261 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
3262 prefix_buffer->
length = prefix_length;
3268 pm_buffer_concat(output_buffer, prefix_buffer);
3269 pm_buffer_append_string(output_buffer,
"+-- left:", 9);
3270 pm_buffer_append_byte(output_buffer,
'\n');
3272 size_t prefix_length = prefix_buffer->
length;
3273 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3274 pm_buffer_concat(output_buffer, prefix_buffer);
3275 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
3276 prefix_buffer->
length = prefix_length;
3281 pm_buffer_concat(output_buffer, prefix_buffer);
3282 pm_buffer_append_string(output_buffer,
"+-- requireds:", 14);
3283 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
requireds.
size));
3286 for (uint32_t index = 0; index < last_index; index++) {
3287 size_t prefix_length = prefix_buffer->
length;
3288 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3289 pm_buffer_concat(output_buffer, prefix_buffer);
3290 pm_buffer_append_string(output_buffer,
"+-- ", 4);
3291 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
3293 prefix_buffer->
length = prefix_length;
3299 pm_buffer_concat(output_buffer, prefix_buffer);
3300 pm_buffer_append_string(output_buffer,
"+-- right:", 10);
3301 pm_buffer_append_byte(output_buffer,
'\n');
3303 size_t prefix_length = prefix_buffer->
length;
3304 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3305 pm_buffer_concat(output_buffer, prefix_buffer);
3306 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
3307 prefix_buffer->
length = prefix_length;
3312 pm_buffer_concat(output_buffer, prefix_buffer);
3313 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
3315 if (location->
start == NULL) {
3316 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3318 pm_buffer_append_byte(output_buffer,
' ');
3319 prettyprint_location(output_buffer, parser, location);
3320 pm_buffer_append_string(output_buffer,
" = \"", 4);
3321 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3322 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3328 pm_buffer_concat(output_buffer, prefix_buffer);
3329 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
3331 if (location->
start == NULL) {
3332 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3334 pm_buffer_append_byte(output_buffer,
' ');
3335 prettyprint_location(output_buffer, parser, location);
3336 pm_buffer_append_string(output_buffer,
" = \"", 4);
3337 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3338 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3346 pm_buffer_append_string(output_buffer,
"@ FlipFlopNode (location: ", 26);
3347 prettyprint_location(output_buffer, parser, &node->
location);
3348 pm_buffer_append_string(output_buffer,
")\n", 2);
3352 pm_buffer_concat(output_buffer, prefix_buffer);
3353 pm_buffer_append_string(output_buffer,
"+-- RangeFlags:", 15);
3356 if (found) pm_buffer_append_byte(output_buffer,
',');
3357 pm_buffer_append_string(output_buffer,
" exclude_end", 12);
3360 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
3361 pm_buffer_append_byte(output_buffer,
'\n');
3366 pm_buffer_concat(output_buffer, prefix_buffer);
3367 pm_buffer_append_string(output_buffer,
"+-- left:", 9);
3368 if (cast->
left == NULL) {
3369 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3371 pm_buffer_append_byte(output_buffer,
'\n');
3373 size_t prefix_length = prefix_buffer->
length;
3374 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3375 pm_buffer_concat(output_buffer, prefix_buffer);
3376 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
3377 prefix_buffer->
length = prefix_length;
3383 pm_buffer_concat(output_buffer, prefix_buffer);
3384 pm_buffer_append_string(output_buffer,
"+-- right:", 10);
3385 if (cast->
right == NULL) {
3386 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3388 pm_buffer_append_byte(output_buffer,
'\n');
3390 size_t prefix_length = prefix_buffer->
length;
3391 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3392 pm_buffer_concat(output_buffer, prefix_buffer);
3393 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
3394 prefix_buffer->
length = prefix_length;
3400 pm_buffer_concat(output_buffer, prefix_buffer);
3401 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
3403 pm_buffer_append_byte(output_buffer,
' ');
3404 prettyprint_location(output_buffer, parser, location);
3405 pm_buffer_append_string(output_buffer,
" = \"", 4);
3406 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3407 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3414 pm_buffer_append_string(output_buffer,
"@ FloatNode (location: ", 23);
3415 prettyprint_location(output_buffer, parser, &node->
location);
3416 pm_buffer_append_string(output_buffer,
")\n", 2);
3420 pm_buffer_concat(output_buffer, prefix_buffer);
3421 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
3422 pm_buffer_append_format(output_buffer,
" %f\n", cast->
value);
3429 pm_buffer_append_string(output_buffer,
"@ ForNode (location: ", 21);
3430 prettyprint_location(output_buffer, parser, &node->
location);
3431 pm_buffer_append_string(output_buffer,
")\n", 2);
3435 pm_buffer_concat(output_buffer, prefix_buffer);
3436 pm_buffer_append_string(output_buffer,
"+-- index:", 10);
3437 pm_buffer_append_byte(output_buffer,
'\n');
3439 size_t prefix_length = prefix_buffer->
length;
3440 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3441 pm_buffer_concat(output_buffer, prefix_buffer);
3442 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
index, prefix_buffer);
3443 prefix_buffer->
length = prefix_length;
3448 pm_buffer_concat(output_buffer, prefix_buffer);
3449 pm_buffer_append_string(output_buffer,
"+-- collection:", 15);
3450 pm_buffer_append_byte(output_buffer,
'\n');
3452 size_t prefix_length = prefix_buffer->
length;
3453 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3454 pm_buffer_concat(output_buffer, prefix_buffer);
3456 prefix_buffer->
length = prefix_length;
3461 pm_buffer_concat(output_buffer, prefix_buffer);
3462 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
3464 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3466 pm_buffer_append_byte(output_buffer,
'\n');
3468 size_t prefix_length = prefix_buffer->
length;
3469 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3470 pm_buffer_concat(output_buffer, prefix_buffer);
3472 prefix_buffer->
length = prefix_length;
3478 pm_buffer_concat(output_buffer, prefix_buffer);
3479 pm_buffer_append_string(output_buffer,
"+-- for_keyword_loc:", 20);
3481 pm_buffer_append_byte(output_buffer,
' ');
3482 prettyprint_location(output_buffer, parser, location);
3483 pm_buffer_append_string(output_buffer,
" = \"", 4);
3484 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3485 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3490 pm_buffer_concat(output_buffer, prefix_buffer);
3491 pm_buffer_append_string(output_buffer,
"+-- in_keyword_loc:", 19);
3493 pm_buffer_append_byte(output_buffer,
' ');
3494 prettyprint_location(output_buffer, parser, location);
3495 pm_buffer_append_string(output_buffer,
" = \"", 4);
3496 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3497 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3502 pm_buffer_concat(output_buffer, prefix_buffer);
3503 pm_buffer_append_string(output_buffer,
"+-- do_keyword_loc:", 19);
3505 if (location->
start == NULL) {
3506 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3508 pm_buffer_append_byte(output_buffer,
' ');
3509 prettyprint_location(output_buffer, parser, location);
3510 pm_buffer_append_string(output_buffer,
" = \"", 4);
3511 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3512 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3518 pm_buffer_concat(output_buffer, prefix_buffer);
3519 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
3521 pm_buffer_append_byte(output_buffer,
' ');
3522 prettyprint_location(output_buffer, parser, location);
3523 pm_buffer_append_string(output_buffer,
" = \"", 4);
3524 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3525 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3531 pm_buffer_append_string(output_buffer,
"@ ForwardingArgumentsNode (location: ", 37);
3532 prettyprint_location(output_buffer, parser, &node->
location);
3533 pm_buffer_append_string(output_buffer,
")\n", 2);
3538 pm_buffer_append_string(output_buffer,
"@ ForwardingParameterNode (location: ", 37);
3539 prettyprint_location(output_buffer, parser, &node->
location);
3540 pm_buffer_append_string(output_buffer,
")\n", 2);
3546 pm_buffer_append_string(output_buffer,
"@ ForwardingSuperNode (location: ", 33);
3547 prettyprint_location(output_buffer, parser, &node->
location);
3548 pm_buffer_append_string(output_buffer,
")\n", 2);
3552 pm_buffer_concat(output_buffer, prefix_buffer);
3553 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
3554 if (cast->
block == NULL) {
3555 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3557 pm_buffer_append_byte(output_buffer,
'\n');
3559 size_t prefix_length = prefix_buffer->
length;
3560 pm_buffer_append_string(prefix_buffer,
" ", 4);
3561 pm_buffer_concat(output_buffer, prefix_buffer);
3562 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
3563 prefix_buffer->
length = prefix_length;
3571 pm_buffer_append_string(output_buffer,
"@ GlobalVariableAndWriteNode (location: ", 40);
3572 prettyprint_location(output_buffer, parser, &node->
location);
3573 pm_buffer_append_string(output_buffer,
")\n", 2);
3577 pm_buffer_concat(output_buffer, prefix_buffer);
3578 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
3579 pm_buffer_append_byte(output_buffer,
' ');
3580 prettyprint_constant(output_buffer, parser, cast->
name);
3581 pm_buffer_append_byte(output_buffer,
'\n');
3586 pm_buffer_concat(output_buffer, prefix_buffer);
3587 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
3589 pm_buffer_append_byte(output_buffer,
' ');
3590 prettyprint_location(output_buffer, parser, location);
3591 pm_buffer_append_string(output_buffer,
" = \"", 4);
3592 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3593 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3598 pm_buffer_concat(output_buffer, prefix_buffer);
3599 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
3601 pm_buffer_append_byte(output_buffer,
' ');
3602 prettyprint_location(output_buffer, parser, location);
3603 pm_buffer_append_string(output_buffer,
" = \"", 4);
3604 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3605 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3610 pm_buffer_concat(output_buffer, prefix_buffer);
3611 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
3612 pm_buffer_append_byte(output_buffer,
'\n');
3614 size_t prefix_length = prefix_buffer->
length;
3615 pm_buffer_append_string(prefix_buffer,
" ", 4);
3616 pm_buffer_concat(output_buffer, prefix_buffer);
3617 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3618 prefix_buffer->
length = prefix_length;
3625 pm_buffer_append_string(output_buffer,
"@ GlobalVariableOperatorWriteNode (location: ", 45);
3626 prettyprint_location(output_buffer, parser, &node->
location);
3627 pm_buffer_append_string(output_buffer,
")\n", 2);
3631 pm_buffer_concat(output_buffer, prefix_buffer);
3632 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
3633 pm_buffer_append_byte(output_buffer,
' ');
3634 prettyprint_constant(output_buffer, parser, cast->
name);
3635 pm_buffer_append_byte(output_buffer,
'\n');
3640 pm_buffer_concat(output_buffer, prefix_buffer);
3641 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
3643 pm_buffer_append_byte(output_buffer,
' ');
3644 prettyprint_location(output_buffer, parser, location);
3645 pm_buffer_append_string(output_buffer,
" = \"", 4);
3646 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3647 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3652 pm_buffer_concat(output_buffer, prefix_buffer);
3653 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
3655 pm_buffer_append_byte(output_buffer,
' ');
3656 prettyprint_location(output_buffer, parser, location);
3657 pm_buffer_append_string(output_buffer,
" = \"", 4);
3658 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3659 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3664 pm_buffer_concat(output_buffer, prefix_buffer);
3665 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
3666 pm_buffer_append_byte(output_buffer,
'\n');
3668 size_t prefix_length = prefix_buffer->
length;
3669 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3670 pm_buffer_concat(output_buffer, prefix_buffer);
3671 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3672 prefix_buffer->
length = prefix_length;
3677 pm_buffer_concat(output_buffer, prefix_buffer);
3678 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
3679 pm_buffer_append_byte(output_buffer,
' ');
3681 pm_buffer_append_byte(output_buffer,
'\n');
3688 pm_buffer_append_string(output_buffer,
"@ GlobalVariableOrWriteNode (location: ", 39);
3689 prettyprint_location(output_buffer, parser, &node->
location);
3690 pm_buffer_append_string(output_buffer,
")\n", 2);
3694 pm_buffer_concat(output_buffer, prefix_buffer);
3695 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
3696 pm_buffer_append_byte(output_buffer,
' ');
3697 prettyprint_constant(output_buffer, parser, cast->
name);
3698 pm_buffer_append_byte(output_buffer,
'\n');
3703 pm_buffer_concat(output_buffer, prefix_buffer);
3704 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
3706 pm_buffer_append_byte(output_buffer,
' ');
3707 prettyprint_location(output_buffer, parser, location);
3708 pm_buffer_append_string(output_buffer,
" = \"", 4);
3709 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3710 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3715 pm_buffer_concat(output_buffer, prefix_buffer);
3716 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
3718 pm_buffer_append_byte(output_buffer,
' ');
3719 prettyprint_location(output_buffer, parser, location);
3720 pm_buffer_append_string(output_buffer,
" = \"", 4);
3721 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3722 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3727 pm_buffer_concat(output_buffer, prefix_buffer);
3728 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
3729 pm_buffer_append_byte(output_buffer,
'\n');
3731 size_t prefix_length = prefix_buffer->
length;
3732 pm_buffer_append_string(prefix_buffer,
" ", 4);
3733 pm_buffer_concat(output_buffer, prefix_buffer);
3734 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3735 prefix_buffer->
length = prefix_length;
3742 pm_buffer_append_string(output_buffer,
"@ GlobalVariableReadNode (location: ", 36);
3743 prettyprint_location(output_buffer, parser, &node->
location);
3744 pm_buffer_append_string(output_buffer,
")\n", 2);
3748 pm_buffer_concat(output_buffer, prefix_buffer);
3749 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
3750 pm_buffer_append_byte(output_buffer,
' ');
3751 prettyprint_constant(output_buffer, parser, cast->
name);
3752 pm_buffer_append_byte(output_buffer,
'\n');
3759 pm_buffer_append_string(output_buffer,
"@ GlobalVariableTargetNode (location: ", 38);
3760 prettyprint_location(output_buffer, parser, &node->
location);
3761 pm_buffer_append_string(output_buffer,
")\n", 2);
3765 pm_buffer_concat(output_buffer, prefix_buffer);
3766 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
3767 pm_buffer_append_byte(output_buffer,
' ');
3768 prettyprint_constant(output_buffer, parser, cast->
name);
3769 pm_buffer_append_byte(output_buffer,
'\n');
3776 pm_buffer_append_string(output_buffer,
"@ GlobalVariableWriteNode (location: ", 37);
3777 prettyprint_location(output_buffer, parser, &node->
location);
3778 pm_buffer_append_string(output_buffer,
")\n", 2);
3782 pm_buffer_concat(output_buffer, prefix_buffer);
3783 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
3784 pm_buffer_append_byte(output_buffer,
' ');
3785 prettyprint_constant(output_buffer, parser, cast->
name);
3786 pm_buffer_append_byte(output_buffer,
'\n');
3791 pm_buffer_concat(output_buffer, prefix_buffer);
3792 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
3794 pm_buffer_append_byte(output_buffer,
' ');
3795 prettyprint_location(output_buffer, parser, location);
3796 pm_buffer_append_string(output_buffer,
" = \"", 4);
3797 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3798 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3803 pm_buffer_concat(output_buffer, prefix_buffer);
3804 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
3805 pm_buffer_append_byte(output_buffer,
'\n');
3807 size_t prefix_length = prefix_buffer->
length;
3808 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3809 pm_buffer_concat(output_buffer, prefix_buffer);
3810 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3811 prefix_buffer->
length = prefix_length;
3816 pm_buffer_concat(output_buffer, prefix_buffer);
3817 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
3819 pm_buffer_append_byte(output_buffer,
' ');
3820 prettyprint_location(output_buffer, parser, location);
3821 pm_buffer_append_string(output_buffer,
" = \"", 4);
3822 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3823 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3830 pm_buffer_append_string(output_buffer,
"@ HashNode (location: ", 22);
3831 prettyprint_location(output_buffer, parser, &node->
location);
3832 pm_buffer_append_string(output_buffer,
")\n", 2);
3836 pm_buffer_concat(output_buffer, prefix_buffer);
3837 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
3839 pm_buffer_append_byte(output_buffer,
' ');
3840 prettyprint_location(output_buffer, parser, location);
3841 pm_buffer_append_string(output_buffer,
" = \"", 4);
3842 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3843 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3848 pm_buffer_concat(output_buffer, prefix_buffer);
3849 pm_buffer_append_string(output_buffer,
"+-- elements:", 13);
3850 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
3853 for (uint32_t index = 0; index < last_index; index++) {
3854 size_t prefix_length = prefix_buffer->
length;
3855 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3856 pm_buffer_concat(output_buffer, prefix_buffer);
3857 pm_buffer_append_string(output_buffer,
"+-- ", 4);
3858 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
3860 prefix_buffer->
length = prefix_length;
3866 pm_buffer_concat(output_buffer, prefix_buffer);
3867 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
3869 pm_buffer_append_byte(output_buffer,
' ');
3870 prettyprint_location(output_buffer, parser, location);
3871 pm_buffer_append_string(output_buffer,
" = \"", 4);
3872 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3873 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3880 pm_buffer_append_string(output_buffer,
"@ HashPatternNode (location: ", 29);
3881 prettyprint_location(output_buffer, parser, &node->
location);
3882 pm_buffer_append_string(output_buffer,
")\n", 2);
3886 pm_buffer_concat(output_buffer, prefix_buffer);
3887 pm_buffer_append_string(output_buffer,
"+-- constant:", 13);
3889 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3891 pm_buffer_append_byte(output_buffer,
'\n');
3893 size_t prefix_length = prefix_buffer->
length;
3894 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3895 pm_buffer_concat(output_buffer, prefix_buffer);
3896 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
3897 prefix_buffer->
length = prefix_length;
3903 pm_buffer_concat(output_buffer, prefix_buffer);
3904 pm_buffer_append_string(output_buffer,
"+-- elements:", 13);
3905 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
3908 for (uint32_t index = 0; index < last_index; index++) {
3909 size_t prefix_length = prefix_buffer->
length;
3910 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3911 pm_buffer_concat(output_buffer, prefix_buffer);
3912 pm_buffer_append_string(output_buffer,
"+-- ", 4);
3913 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
3915 prefix_buffer->
length = prefix_length;
3921 pm_buffer_concat(output_buffer, prefix_buffer);
3922 pm_buffer_append_string(output_buffer,
"+-- rest:", 9);
3923 if (cast->
rest == NULL) {
3924 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3926 pm_buffer_append_byte(output_buffer,
'\n');
3928 size_t prefix_length = prefix_buffer->
length;
3929 pm_buffer_append_string(prefix_buffer,
"| ", 4);
3930 pm_buffer_concat(output_buffer, prefix_buffer);
3931 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
3932 prefix_buffer->
length = prefix_length;
3938 pm_buffer_concat(output_buffer, prefix_buffer);
3939 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
3941 if (location->
start == NULL) {
3942 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3944 pm_buffer_append_byte(output_buffer,
' ');
3945 prettyprint_location(output_buffer, parser, location);
3946 pm_buffer_append_string(output_buffer,
" = \"", 4);
3947 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3948 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3954 pm_buffer_concat(output_buffer, prefix_buffer);
3955 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
3957 if (location->
start == NULL) {
3958 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3960 pm_buffer_append_byte(output_buffer,
' ');
3961 prettyprint_location(output_buffer, parser, location);
3962 pm_buffer_append_string(output_buffer,
" = \"", 4);
3963 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3964 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3972 pm_buffer_append_string(output_buffer,
"@ IfNode (location: ", 20);
3973 prettyprint_location(output_buffer, parser, &node->
location);
3974 pm_buffer_append_string(output_buffer,
")\n", 2);
3978 pm_buffer_concat(output_buffer, prefix_buffer);
3979 pm_buffer_append_string(output_buffer,
"+-- if_keyword_loc:", 19);
3981 if (location->
start == NULL) {
3982 pm_buffer_append_string(output_buffer,
" nil\n", 5);
3984 pm_buffer_append_byte(output_buffer,
' ');
3985 prettyprint_location(output_buffer, parser, location);
3986 pm_buffer_append_string(output_buffer,
" = \"", 4);
3987 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
3988 pm_buffer_append_string(output_buffer,
"\"\n", 2);
3994 pm_buffer_concat(output_buffer, prefix_buffer);
3995 pm_buffer_append_string(output_buffer,
"+-- predicate:", 14);
3996 pm_buffer_append_byte(output_buffer,
'\n');
3998 size_t prefix_length = prefix_buffer->
length;
3999 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4000 pm_buffer_concat(output_buffer, prefix_buffer);
4001 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
4002 prefix_buffer->
length = prefix_length;
4007 pm_buffer_concat(output_buffer, prefix_buffer);
4008 pm_buffer_append_string(output_buffer,
"+-- then_keyword_loc:", 21);
4010 if (location->
start == NULL) {
4011 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4013 pm_buffer_append_byte(output_buffer,
' ');
4014 prettyprint_location(output_buffer, parser, location);
4015 pm_buffer_append_string(output_buffer,
" = \"", 4);
4016 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4017 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4023 pm_buffer_concat(output_buffer, prefix_buffer);
4024 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
4026 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4028 pm_buffer_append_byte(output_buffer,
'\n');
4030 size_t prefix_length = prefix_buffer->
length;
4031 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4032 pm_buffer_concat(output_buffer, prefix_buffer);
4034 prefix_buffer->
length = prefix_length;
4040 pm_buffer_concat(output_buffer, prefix_buffer);
4041 pm_buffer_append_string(output_buffer,
"+-- subsequent:", 15);
4043 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4045 pm_buffer_append_byte(output_buffer,
'\n');
4047 size_t prefix_length = prefix_buffer->
length;
4048 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4049 pm_buffer_concat(output_buffer, prefix_buffer);
4051 prefix_buffer->
length = prefix_length;
4057 pm_buffer_concat(output_buffer, prefix_buffer);
4058 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
4060 if (location->
start == NULL) {
4061 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4063 pm_buffer_append_byte(output_buffer,
' ');
4064 prettyprint_location(output_buffer, parser, location);
4065 pm_buffer_append_string(output_buffer,
" = \"", 4);
4066 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4067 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4075 pm_buffer_append_string(output_buffer,
"@ ImaginaryNode (location: ", 27);
4076 prettyprint_location(output_buffer, parser, &node->
location);
4077 pm_buffer_append_string(output_buffer,
")\n", 2);
4081 pm_buffer_concat(output_buffer, prefix_buffer);
4082 pm_buffer_append_string(output_buffer,
"+-- numeric:", 12);
4083 pm_buffer_append_byte(output_buffer,
'\n');
4085 size_t prefix_length = prefix_buffer->
length;
4086 pm_buffer_append_string(prefix_buffer,
" ", 4);
4087 pm_buffer_concat(output_buffer, prefix_buffer);
4088 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
numeric, prefix_buffer);
4089 prefix_buffer->
length = prefix_length;
4096 pm_buffer_append_string(output_buffer,
"@ ImplicitNode (location: ", 26);
4097 prettyprint_location(output_buffer, parser, &node->
location);
4098 pm_buffer_append_string(output_buffer,
")\n", 2);
4102 pm_buffer_concat(output_buffer, prefix_buffer);
4103 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4104 pm_buffer_append_byte(output_buffer,
'\n');
4106 size_t prefix_length = prefix_buffer->
length;
4107 pm_buffer_append_string(prefix_buffer,
" ", 4);
4108 pm_buffer_concat(output_buffer, prefix_buffer);
4109 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4110 prefix_buffer->
length = prefix_length;
4116 pm_buffer_append_string(output_buffer,
"@ ImplicitRestNode (location: ", 30);
4117 prettyprint_location(output_buffer, parser, &node->
location);
4118 pm_buffer_append_string(output_buffer,
")\n", 2);
4124 pm_buffer_append_string(output_buffer,
"@ InNode (location: ", 20);
4125 prettyprint_location(output_buffer, parser, &node->
location);
4126 pm_buffer_append_string(output_buffer,
")\n", 2);
4130 pm_buffer_concat(output_buffer, prefix_buffer);
4131 pm_buffer_append_string(output_buffer,
"+-- pattern:", 12);
4132 pm_buffer_append_byte(output_buffer,
'\n');
4134 size_t prefix_length = prefix_buffer->
length;
4135 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4136 pm_buffer_concat(output_buffer, prefix_buffer);
4137 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
4138 prefix_buffer->
length = prefix_length;
4143 pm_buffer_concat(output_buffer, prefix_buffer);
4144 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
4146 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4148 pm_buffer_append_byte(output_buffer,
'\n');
4150 size_t prefix_length = prefix_buffer->
length;
4151 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4152 pm_buffer_concat(output_buffer, prefix_buffer);
4154 prefix_buffer->
length = prefix_length;
4160 pm_buffer_concat(output_buffer, prefix_buffer);
4161 pm_buffer_append_string(output_buffer,
"+-- in_loc:", 11);
4163 pm_buffer_append_byte(output_buffer,
' ');
4164 prettyprint_location(output_buffer, parser, location);
4165 pm_buffer_append_string(output_buffer,
" = \"", 4);
4166 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4167 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4172 pm_buffer_concat(output_buffer, prefix_buffer);
4173 pm_buffer_append_string(output_buffer,
"+-- then_loc:", 13);
4175 if (location->
start == NULL) {
4176 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4178 pm_buffer_append_byte(output_buffer,
' ');
4179 prettyprint_location(output_buffer, parser, location);
4180 pm_buffer_append_string(output_buffer,
" = \"", 4);
4181 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4182 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4190 pm_buffer_append_string(output_buffer,
"@ IndexAndWriteNode (location: ", 31);
4191 prettyprint_location(output_buffer, parser, &node->
location);
4192 pm_buffer_append_string(output_buffer,
")\n", 2);
4196 pm_buffer_concat(output_buffer, prefix_buffer);
4197 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
4200 if (found) pm_buffer_append_byte(output_buffer,
',');
4201 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4205 if (found) pm_buffer_append_byte(output_buffer,
',');
4206 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4210 if (found) pm_buffer_append_byte(output_buffer,
',');
4211 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4215 if (found) pm_buffer_append_byte(output_buffer,
',');
4216 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
4219 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
4220 pm_buffer_append_byte(output_buffer,
'\n');
4225 pm_buffer_concat(output_buffer, prefix_buffer);
4226 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
4228 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4230 pm_buffer_append_byte(output_buffer,
'\n');
4232 size_t prefix_length = prefix_buffer->
length;
4233 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4234 pm_buffer_concat(output_buffer, prefix_buffer);
4235 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4236 prefix_buffer->
length = prefix_length;
4242 pm_buffer_concat(output_buffer, prefix_buffer);
4243 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
4245 if (location->
start == NULL) {
4246 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4248 pm_buffer_append_byte(output_buffer,
' ');
4249 prettyprint_location(output_buffer, parser, location);
4250 pm_buffer_append_string(output_buffer,
" = \"", 4);
4251 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4252 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4258 pm_buffer_concat(output_buffer, prefix_buffer);
4259 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
4261 pm_buffer_append_byte(output_buffer,
' ');
4262 prettyprint_location(output_buffer, parser, location);
4263 pm_buffer_append_string(output_buffer,
" = \"", 4);
4264 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4265 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4270 pm_buffer_concat(output_buffer, prefix_buffer);
4271 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
4273 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4275 pm_buffer_append_byte(output_buffer,
'\n');
4277 size_t prefix_length = prefix_buffer->
length;
4278 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4279 pm_buffer_concat(output_buffer, prefix_buffer);
4280 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4281 prefix_buffer->
length = prefix_length;
4287 pm_buffer_concat(output_buffer, prefix_buffer);
4288 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
4290 pm_buffer_append_byte(output_buffer,
' ');
4291 prettyprint_location(output_buffer, parser, location);
4292 pm_buffer_append_string(output_buffer,
" = \"", 4);
4293 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4294 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4299 pm_buffer_concat(output_buffer, prefix_buffer);
4300 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
4301 if (cast->
block == NULL) {
4302 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4304 pm_buffer_append_byte(output_buffer,
'\n');
4306 size_t prefix_length = prefix_buffer->
length;
4307 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4308 pm_buffer_concat(output_buffer, prefix_buffer);
4309 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4310 prefix_buffer->
length = prefix_length;
4316 pm_buffer_concat(output_buffer, prefix_buffer);
4317 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
4319 pm_buffer_append_byte(output_buffer,
' ');
4320 prettyprint_location(output_buffer, parser, location);
4321 pm_buffer_append_string(output_buffer,
" = \"", 4);
4322 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4323 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4328 pm_buffer_concat(output_buffer, prefix_buffer);
4329 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4330 pm_buffer_append_byte(output_buffer,
'\n');
4332 size_t prefix_length = prefix_buffer->
length;
4333 pm_buffer_append_string(prefix_buffer,
" ", 4);
4334 pm_buffer_concat(output_buffer, prefix_buffer);
4335 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4336 prefix_buffer->
length = prefix_length;
4343 pm_buffer_append_string(output_buffer,
"@ IndexOperatorWriteNode (location: ", 36);
4344 prettyprint_location(output_buffer, parser, &node->
location);
4345 pm_buffer_append_string(output_buffer,
")\n", 2);
4349 pm_buffer_concat(output_buffer, prefix_buffer);
4350 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
4353 if (found) pm_buffer_append_byte(output_buffer,
',');
4354 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4358 if (found) pm_buffer_append_byte(output_buffer,
',');
4359 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4363 if (found) pm_buffer_append_byte(output_buffer,
',');
4364 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4368 if (found) pm_buffer_append_byte(output_buffer,
',');
4369 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
4372 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
4373 pm_buffer_append_byte(output_buffer,
'\n');
4378 pm_buffer_concat(output_buffer, prefix_buffer);
4379 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
4381 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4383 pm_buffer_append_byte(output_buffer,
'\n');
4385 size_t prefix_length = prefix_buffer->
length;
4386 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4387 pm_buffer_concat(output_buffer, prefix_buffer);
4388 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4389 prefix_buffer->
length = prefix_length;
4395 pm_buffer_concat(output_buffer, prefix_buffer);
4396 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
4398 if (location->
start == NULL) {
4399 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4401 pm_buffer_append_byte(output_buffer,
' ');
4402 prettyprint_location(output_buffer, parser, location);
4403 pm_buffer_append_string(output_buffer,
" = \"", 4);
4404 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4405 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4411 pm_buffer_concat(output_buffer, prefix_buffer);
4412 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
4414 pm_buffer_append_byte(output_buffer,
' ');
4415 prettyprint_location(output_buffer, parser, location);
4416 pm_buffer_append_string(output_buffer,
" = \"", 4);
4417 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4418 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4423 pm_buffer_concat(output_buffer, prefix_buffer);
4424 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
4426 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4428 pm_buffer_append_byte(output_buffer,
'\n');
4430 size_t prefix_length = prefix_buffer->
length;
4431 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4432 pm_buffer_concat(output_buffer, prefix_buffer);
4433 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4434 prefix_buffer->
length = prefix_length;
4440 pm_buffer_concat(output_buffer, prefix_buffer);
4441 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
4443 pm_buffer_append_byte(output_buffer,
' ');
4444 prettyprint_location(output_buffer, parser, location);
4445 pm_buffer_append_string(output_buffer,
" = \"", 4);
4446 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4447 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4452 pm_buffer_concat(output_buffer, prefix_buffer);
4453 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
4454 if (cast->
block == NULL) {
4455 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4457 pm_buffer_append_byte(output_buffer,
'\n');
4459 size_t prefix_length = prefix_buffer->
length;
4460 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4461 pm_buffer_concat(output_buffer, prefix_buffer);
4462 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4463 prefix_buffer->
length = prefix_length;
4469 pm_buffer_concat(output_buffer, prefix_buffer);
4470 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
4471 pm_buffer_append_byte(output_buffer,
' ');
4473 pm_buffer_append_byte(output_buffer,
'\n');
4478 pm_buffer_concat(output_buffer, prefix_buffer);
4479 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
4481 pm_buffer_append_byte(output_buffer,
' ');
4482 prettyprint_location(output_buffer, parser, location);
4483 pm_buffer_append_string(output_buffer,
" = \"", 4);
4484 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4485 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4490 pm_buffer_concat(output_buffer, prefix_buffer);
4491 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4492 pm_buffer_append_byte(output_buffer,
'\n');
4494 size_t prefix_length = prefix_buffer->
length;
4495 pm_buffer_append_string(prefix_buffer,
" ", 4);
4496 pm_buffer_concat(output_buffer, prefix_buffer);
4497 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4498 prefix_buffer->
length = prefix_length;
4505 pm_buffer_append_string(output_buffer,
"@ IndexOrWriteNode (location: ", 30);
4506 prettyprint_location(output_buffer, parser, &node->
location);
4507 pm_buffer_append_string(output_buffer,
")\n", 2);
4511 pm_buffer_concat(output_buffer, prefix_buffer);
4512 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
4515 if (found) pm_buffer_append_byte(output_buffer,
',');
4516 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4520 if (found) pm_buffer_append_byte(output_buffer,
',');
4521 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4525 if (found) pm_buffer_append_byte(output_buffer,
',');
4526 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4530 if (found) pm_buffer_append_byte(output_buffer,
',');
4531 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
4534 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
4535 pm_buffer_append_byte(output_buffer,
'\n');
4540 pm_buffer_concat(output_buffer, prefix_buffer);
4541 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
4543 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4545 pm_buffer_append_byte(output_buffer,
'\n');
4547 size_t prefix_length = prefix_buffer->
length;
4548 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4549 pm_buffer_concat(output_buffer, prefix_buffer);
4550 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4551 prefix_buffer->
length = prefix_length;
4557 pm_buffer_concat(output_buffer, prefix_buffer);
4558 pm_buffer_append_string(output_buffer,
"+-- call_operator_loc:", 22);
4560 if (location->
start == NULL) {
4561 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4563 pm_buffer_append_byte(output_buffer,
' ');
4564 prettyprint_location(output_buffer, parser, location);
4565 pm_buffer_append_string(output_buffer,
" = \"", 4);
4566 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4567 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4573 pm_buffer_concat(output_buffer, prefix_buffer);
4574 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
4576 pm_buffer_append_byte(output_buffer,
' ');
4577 prettyprint_location(output_buffer, parser, location);
4578 pm_buffer_append_string(output_buffer,
" = \"", 4);
4579 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4580 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4585 pm_buffer_concat(output_buffer, prefix_buffer);
4586 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
4588 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4590 pm_buffer_append_byte(output_buffer,
'\n');
4592 size_t prefix_length = prefix_buffer->
length;
4593 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4594 pm_buffer_concat(output_buffer, prefix_buffer);
4595 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4596 prefix_buffer->
length = prefix_length;
4602 pm_buffer_concat(output_buffer, prefix_buffer);
4603 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
4605 pm_buffer_append_byte(output_buffer,
' ');
4606 prettyprint_location(output_buffer, parser, location);
4607 pm_buffer_append_string(output_buffer,
" = \"", 4);
4608 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4609 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4614 pm_buffer_concat(output_buffer, prefix_buffer);
4615 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
4616 if (cast->
block == NULL) {
4617 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4619 pm_buffer_append_byte(output_buffer,
'\n');
4621 size_t prefix_length = prefix_buffer->
length;
4622 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4623 pm_buffer_concat(output_buffer, prefix_buffer);
4624 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4625 prefix_buffer->
length = prefix_length;
4631 pm_buffer_concat(output_buffer, prefix_buffer);
4632 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
4634 pm_buffer_append_byte(output_buffer,
' ');
4635 prettyprint_location(output_buffer, parser, location);
4636 pm_buffer_append_string(output_buffer,
" = \"", 4);
4637 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4638 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4643 pm_buffer_concat(output_buffer, prefix_buffer);
4644 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4645 pm_buffer_append_byte(output_buffer,
'\n');
4647 size_t prefix_length = prefix_buffer->
length;
4648 pm_buffer_append_string(prefix_buffer,
" ", 4);
4649 pm_buffer_concat(output_buffer, prefix_buffer);
4650 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4651 prefix_buffer->
length = prefix_length;
4658 pm_buffer_append_string(output_buffer,
"@ IndexTargetNode (location: ", 29);
4659 prettyprint_location(output_buffer, parser, &node->
location);
4660 pm_buffer_append_string(output_buffer,
")\n", 2);
4664 pm_buffer_concat(output_buffer, prefix_buffer);
4665 pm_buffer_append_string(output_buffer,
"+-- CallNodeFlags:", 18);
4668 if (found) pm_buffer_append_byte(output_buffer,
',');
4669 pm_buffer_append_string(output_buffer,
" safe_navigation", 16);
4673 if (found) pm_buffer_append_byte(output_buffer,
',');
4674 pm_buffer_append_string(output_buffer,
" variable_call", 14);
4678 if (found) pm_buffer_append_byte(output_buffer,
',');
4679 pm_buffer_append_string(output_buffer,
" attribute_write", 16);
4683 if (found) pm_buffer_append_byte(output_buffer,
',');
4684 pm_buffer_append_string(output_buffer,
" ignore_visibility", 18);
4687 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
4688 pm_buffer_append_byte(output_buffer,
'\n');
4693 pm_buffer_concat(output_buffer, prefix_buffer);
4694 pm_buffer_append_string(output_buffer,
"+-- receiver:", 13);
4695 pm_buffer_append_byte(output_buffer,
'\n');
4697 size_t prefix_length = prefix_buffer->
length;
4698 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4699 pm_buffer_concat(output_buffer, prefix_buffer);
4700 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4701 prefix_buffer->
length = prefix_length;
4706 pm_buffer_concat(output_buffer, prefix_buffer);
4707 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
4709 pm_buffer_append_byte(output_buffer,
' ');
4710 prettyprint_location(output_buffer, parser, location);
4711 pm_buffer_append_string(output_buffer,
" = \"", 4);
4712 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4713 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4718 pm_buffer_concat(output_buffer, prefix_buffer);
4719 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
4721 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4723 pm_buffer_append_byte(output_buffer,
'\n');
4725 size_t prefix_length = prefix_buffer->
length;
4726 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4727 pm_buffer_concat(output_buffer, prefix_buffer);
4728 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4729 prefix_buffer->
length = prefix_length;
4735 pm_buffer_concat(output_buffer, prefix_buffer);
4736 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
4738 pm_buffer_append_byte(output_buffer,
' ');
4739 prettyprint_location(output_buffer, parser, location);
4740 pm_buffer_append_string(output_buffer,
" = \"", 4);
4741 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4742 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4747 pm_buffer_concat(output_buffer, prefix_buffer);
4748 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
4749 if (cast->
block == NULL) {
4750 pm_buffer_append_string(output_buffer,
" nil\n", 5);
4752 pm_buffer_append_byte(output_buffer,
'\n');
4754 size_t prefix_length = prefix_buffer->
length;
4755 pm_buffer_append_string(prefix_buffer,
" ", 4);
4756 pm_buffer_concat(output_buffer, prefix_buffer);
4757 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4758 prefix_buffer->
length = prefix_length;
4766 pm_buffer_append_string(output_buffer,
"@ InstanceVariableAndWriteNode (location: ", 42);
4767 prettyprint_location(output_buffer, parser, &node->
location);
4768 pm_buffer_append_string(output_buffer,
")\n", 2);
4772 pm_buffer_concat(output_buffer, prefix_buffer);
4773 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
4774 pm_buffer_append_byte(output_buffer,
' ');
4775 prettyprint_constant(output_buffer, parser, cast->
name);
4776 pm_buffer_append_byte(output_buffer,
'\n');
4781 pm_buffer_concat(output_buffer, prefix_buffer);
4782 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
4784 pm_buffer_append_byte(output_buffer,
' ');
4785 prettyprint_location(output_buffer, parser, location);
4786 pm_buffer_append_string(output_buffer,
" = \"", 4);
4787 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4788 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4793 pm_buffer_concat(output_buffer, prefix_buffer);
4794 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
4796 pm_buffer_append_byte(output_buffer,
' ');
4797 prettyprint_location(output_buffer, parser, location);
4798 pm_buffer_append_string(output_buffer,
" = \"", 4);
4799 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4800 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4805 pm_buffer_concat(output_buffer, prefix_buffer);
4806 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4807 pm_buffer_append_byte(output_buffer,
'\n');
4809 size_t prefix_length = prefix_buffer->
length;
4810 pm_buffer_append_string(prefix_buffer,
" ", 4);
4811 pm_buffer_concat(output_buffer, prefix_buffer);
4812 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4813 prefix_buffer->
length = prefix_length;
4820 pm_buffer_append_string(output_buffer,
"@ InstanceVariableOperatorWriteNode (location: ", 47);
4821 prettyprint_location(output_buffer, parser, &node->
location);
4822 pm_buffer_append_string(output_buffer,
")\n", 2);
4826 pm_buffer_concat(output_buffer, prefix_buffer);
4827 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
4828 pm_buffer_append_byte(output_buffer,
' ');
4829 prettyprint_constant(output_buffer, parser, cast->
name);
4830 pm_buffer_append_byte(output_buffer,
'\n');
4835 pm_buffer_concat(output_buffer, prefix_buffer);
4836 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
4838 pm_buffer_append_byte(output_buffer,
' ');
4839 prettyprint_location(output_buffer, parser, location);
4840 pm_buffer_append_string(output_buffer,
" = \"", 4);
4841 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4842 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4847 pm_buffer_concat(output_buffer, prefix_buffer);
4848 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
4850 pm_buffer_append_byte(output_buffer,
' ');
4851 prettyprint_location(output_buffer, parser, location);
4852 pm_buffer_append_string(output_buffer,
" = \"", 4);
4853 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4854 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4859 pm_buffer_concat(output_buffer, prefix_buffer);
4860 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4861 pm_buffer_append_byte(output_buffer,
'\n');
4863 size_t prefix_length = prefix_buffer->
length;
4864 pm_buffer_append_string(prefix_buffer,
"| ", 4);
4865 pm_buffer_concat(output_buffer, prefix_buffer);
4866 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4867 prefix_buffer->
length = prefix_length;
4872 pm_buffer_concat(output_buffer, prefix_buffer);
4873 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
4874 pm_buffer_append_byte(output_buffer,
' ');
4876 pm_buffer_append_byte(output_buffer,
'\n');
4883 pm_buffer_append_string(output_buffer,
"@ InstanceVariableOrWriteNode (location: ", 41);
4884 prettyprint_location(output_buffer, parser, &node->
location);
4885 pm_buffer_append_string(output_buffer,
")\n", 2);
4889 pm_buffer_concat(output_buffer, prefix_buffer);
4890 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
4891 pm_buffer_append_byte(output_buffer,
' ');
4892 prettyprint_constant(output_buffer, parser, cast->
name);
4893 pm_buffer_append_byte(output_buffer,
'\n');
4898 pm_buffer_concat(output_buffer, prefix_buffer);
4899 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
4901 pm_buffer_append_byte(output_buffer,
' ');
4902 prettyprint_location(output_buffer, parser, location);
4903 pm_buffer_append_string(output_buffer,
" = \"", 4);
4904 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4905 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4910 pm_buffer_concat(output_buffer, prefix_buffer);
4911 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
4913 pm_buffer_append_byte(output_buffer,
' ');
4914 prettyprint_location(output_buffer, parser, location);
4915 pm_buffer_append_string(output_buffer,
" = \"", 4);
4916 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4917 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4922 pm_buffer_concat(output_buffer, prefix_buffer);
4923 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
4924 pm_buffer_append_byte(output_buffer,
'\n');
4926 size_t prefix_length = prefix_buffer->
length;
4927 pm_buffer_append_string(prefix_buffer,
" ", 4);
4928 pm_buffer_concat(output_buffer, prefix_buffer);
4929 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4930 prefix_buffer->
length = prefix_length;
4937 pm_buffer_append_string(output_buffer,
"@ InstanceVariableReadNode (location: ", 38);
4938 prettyprint_location(output_buffer, parser, &node->
location);
4939 pm_buffer_append_string(output_buffer,
")\n", 2);
4943 pm_buffer_concat(output_buffer, prefix_buffer);
4944 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
4945 pm_buffer_append_byte(output_buffer,
' ');
4946 prettyprint_constant(output_buffer, parser, cast->
name);
4947 pm_buffer_append_byte(output_buffer,
'\n');
4954 pm_buffer_append_string(output_buffer,
"@ InstanceVariableTargetNode (location: ", 40);
4955 prettyprint_location(output_buffer, parser, &node->
location);
4956 pm_buffer_append_string(output_buffer,
")\n", 2);
4960 pm_buffer_concat(output_buffer, prefix_buffer);
4961 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
4962 pm_buffer_append_byte(output_buffer,
' ');
4963 prettyprint_constant(output_buffer, parser, cast->
name);
4964 pm_buffer_append_byte(output_buffer,
'\n');
4971 pm_buffer_append_string(output_buffer,
"@ InstanceVariableWriteNode (location: ", 39);
4972 prettyprint_location(output_buffer, parser, &node->
location);
4973 pm_buffer_append_string(output_buffer,
")\n", 2);
4977 pm_buffer_concat(output_buffer, prefix_buffer);
4978 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
4979 pm_buffer_append_byte(output_buffer,
' ');
4980 prettyprint_constant(output_buffer, parser, cast->
name);
4981 pm_buffer_append_byte(output_buffer,
'\n');
4986 pm_buffer_concat(output_buffer, prefix_buffer);
4987 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
4989 pm_buffer_append_byte(output_buffer,
' ');
4990 prettyprint_location(output_buffer, parser, location);
4991 pm_buffer_append_string(output_buffer,
" = \"", 4);
4992 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
4993 pm_buffer_append_string(output_buffer,
"\"\n", 2);
4998 pm_buffer_concat(output_buffer, prefix_buffer);
4999 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
5000 pm_buffer_append_byte(output_buffer,
'\n');
5002 size_t prefix_length = prefix_buffer->
length;
5003 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5004 pm_buffer_concat(output_buffer, prefix_buffer);
5005 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5006 prefix_buffer->
length = prefix_length;
5011 pm_buffer_concat(output_buffer, prefix_buffer);
5012 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
5014 pm_buffer_append_byte(output_buffer,
' ');
5015 prettyprint_location(output_buffer, parser, location);
5016 pm_buffer_append_string(output_buffer,
" = \"", 4);
5017 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5018 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5025 pm_buffer_append_string(output_buffer,
"@ IntegerNode (location: ", 25);
5026 prettyprint_location(output_buffer, parser, &node->
location);
5027 pm_buffer_append_string(output_buffer,
")\n", 2);
5031 pm_buffer_concat(output_buffer, prefix_buffer);
5032 pm_buffer_append_string(output_buffer,
"+-- IntegerBaseFlags:", 21);
5035 if (found) pm_buffer_append_byte(output_buffer,
',');
5036 pm_buffer_append_string(output_buffer,
" binary", 7);
5040 if (found) pm_buffer_append_byte(output_buffer,
',');
5041 pm_buffer_append_string(output_buffer,
" decimal", 8);
5045 if (found) pm_buffer_append_byte(output_buffer,
',');
5046 pm_buffer_append_string(output_buffer,
" octal", 6);
5050 if (found) pm_buffer_append_byte(output_buffer,
',');
5051 pm_buffer_append_string(output_buffer,
" hexadecimal", 12);
5054 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
5055 pm_buffer_append_byte(output_buffer,
'\n');
5060 pm_buffer_concat(output_buffer, prefix_buffer);
5061 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
5063 pm_buffer_append_byte(output_buffer,
' ');
5064 pm_integer_string(output_buffer, integer);
5065 pm_buffer_append_byte(output_buffer,
'\n');
5072 pm_buffer_append_string(output_buffer,
"@ InterpolatedMatchLastLineNode (location: ", 43);
5073 prettyprint_location(output_buffer, parser, &node->
location);
5074 pm_buffer_append_string(output_buffer,
")\n", 2);
5078 pm_buffer_concat(output_buffer, prefix_buffer);
5079 pm_buffer_append_string(output_buffer,
"+-- RegularExpressionFlags:", 27);
5082 if (found) pm_buffer_append_byte(output_buffer,
',');
5083 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
5087 if (found) pm_buffer_append_byte(output_buffer,
',');
5088 pm_buffer_append_string(output_buffer,
" extended", 9);
5092 if (found) pm_buffer_append_byte(output_buffer,
',');
5093 pm_buffer_append_string(output_buffer,
" multi_line", 11);
5097 if (found) pm_buffer_append_byte(output_buffer,
',');
5098 pm_buffer_append_string(output_buffer,
" once", 5);
5102 if (found) pm_buffer_append_byte(output_buffer,
',');
5103 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
5107 if (found) pm_buffer_append_byte(output_buffer,
',');
5108 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
5112 if (found) pm_buffer_append_byte(output_buffer,
',');
5113 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
5117 if (found) pm_buffer_append_byte(output_buffer,
',');
5118 pm_buffer_append_string(output_buffer,
" utf_8", 6);
5122 if (found) pm_buffer_append_byte(output_buffer,
',');
5123 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
5127 if (found) pm_buffer_append_byte(output_buffer,
',');
5128 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
5132 if (found) pm_buffer_append_byte(output_buffer,
',');
5133 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
5136 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
5137 pm_buffer_append_byte(output_buffer,
'\n');
5142 pm_buffer_concat(output_buffer, prefix_buffer);
5143 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
5145 pm_buffer_append_byte(output_buffer,
' ');
5146 prettyprint_location(output_buffer, parser, location);
5147 pm_buffer_append_string(output_buffer,
" = \"", 4);
5148 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5149 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5154 pm_buffer_concat(output_buffer, prefix_buffer);
5155 pm_buffer_append_string(output_buffer,
"+-- parts:", 10);
5156 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5159 for (uint32_t index = 0; index < last_index; index++) {
5160 size_t prefix_length = prefix_buffer->
length;
5161 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5162 pm_buffer_concat(output_buffer, prefix_buffer);
5163 pm_buffer_append_string(output_buffer,
"+-- ", 4);
5164 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
5165 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5166 prefix_buffer->
length = prefix_length;
5172 pm_buffer_concat(output_buffer, prefix_buffer);
5173 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
5175 pm_buffer_append_byte(output_buffer,
' ');
5176 prettyprint_location(output_buffer, parser, location);
5177 pm_buffer_append_string(output_buffer,
" = \"", 4);
5178 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5179 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5186 pm_buffer_append_string(output_buffer,
"@ InterpolatedRegularExpressionNode (location: ", 47);
5187 prettyprint_location(output_buffer, parser, &node->
location);
5188 pm_buffer_append_string(output_buffer,
")\n", 2);
5192 pm_buffer_concat(output_buffer, prefix_buffer);
5193 pm_buffer_append_string(output_buffer,
"+-- RegularExpressionFlags:", 27);
5196 if (found) pm_buffer_append_byte(output_buffer,
',');
5197 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
5201 if (found) pm_buffer_append_byte(output_buffer,
',');
5202 pm_buffer_append_string(output_buffer,
" extended", 9);
5206 if (found) pm_buffer_append_byte(output_buffer,
',');
5207 pm_buffer_append_string(output_buffer,
" multi_line", 11);
5211 if (found) pm_buffer_append_byte(output_buffer,
',');
5212 pm_buffer_append_string(output_buffer,
" once", 5);
5216 if (found) pm_buffer_append_byte(output_buffer,
',');
5217 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
5221 if (found) pm_buffer_append_byte(output_buffer,
',');
5222 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
5226 if (found) pm_buffer_append_byte(output_buffer,
',');
5227 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
5231 if (found) pm_buffer_append_byte(output_buffer,
',');
5232 pm_buffer_append_string(output_buffer,
" utf_8", 6);
5236 if (found) pm_buffer_append_byte(output_buffer,
',');
5237 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
5241 if (found) pm_buffer_append_byte(output_buffer,
',');
5242 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
5246 if (found) pm_buffer_append_byte(output_buffer,
',');
5247 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
5250 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
5251 pm_buffer_append_byte(output_buffer,
'\n');
5256 pm_buffer_concat(output_buffer, prefix_buffer);
5257 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
5259 pm_buffer_append_byte(output_buffer,
' ');
5260 prettyprint_location(output_buffer, parser, location);
5261 pm_buffer_append_string(output_buffer,
" = \"", 4);
5262 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5263 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5268 pm_buffer_concat(output_buffer, prefix_buffer);
5269 pm_buffer_append_string(output_buffer,
"+-- parts:", 10);
5270 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5273 for (uint32_t index = 0; index < last_index; index++) {
5274 size_t prefix_length = prefix_buffer->
length;
5275 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5276 pm_buffer_concat(output_buffer, prefix_buffer);
5277 pm_buffer_append_string(output_buffer,
"+-- ", 4);
5278 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
5279 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5280 prefix_buffer->
length = prefix_length;
5286 pm_buffer_concat(output_buffer, prefix_buffer);
5287 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
5289 pm_buffer_append_byte(output_buffer,
' ');
5290 prettyprint_location(output_buffer, parser, location);
5291 pm_buffer_append_string(output_buffer,
" = \"", 4);
5292 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5293 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5300 pm_buffer_append_string(output_buffer,
"@ InterpolatedStringNode (location: ", 36);
5301 prettyprint_location(output_buffer, parser, &node->
location);
5302 pm_buffer_append_string(output_buffer,
")\n", 2);
5306 pm_buffer_concat(output_buffer, prefix_buffer);
5307 pm_buffer_append_string(output_buffer,
"+-- InterpolatedStringNodeFlags:", 32);
5310 if (found) pm_buffer_append_byte(output_buffer,
',');
5311 pm_buffer_append_string(output_buffer,
" frozen", 7);
5315 if (found) pm_buffer_append_byte(output_buffer,
',');
5316 pm_buffer_append_string(output_buffer,
" mutable", 8);
5319 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
5320 pm_buffer_append_byte(output_buffer,
'\n');
5325 pm_buffer_concat(output_buffer, prefix_buffer);
5326 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
5328 if (location->
start == NULL) {
5329 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5331 pm_buffer_append_byte(output_buffer,
' ');
5332 prettyprint_location(output_buffer, parser, location);
5333 pm_buffer_append_string(output_buffer,
" = \"", 4);
5334 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5335 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5341 pm_buffer_concat(output_buffer, prefix_buffer);
5342 pm_buffer_append_string(output_buffer,
"+-- parts:", 10);
5343 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5346 for (uint32_t index = 0; index < last_index; index++) {
5347 size_t prefix_length = prefix_buffer->
length;
5348 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5349 pm_buffer_concat(output_buffer, prefix_buffer);
5350 pm_buffer_append_string(output_buffer,
"+-- ", 4);
5351 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
5352 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5353 prefix_buffer->
length = prefix_length;
5359 pm_buffer_concat(output_buffer, prefix_buffer);
5360 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
5362 if (location->
start == NULL) {
5363 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5365 pm_buffer_append_byte(output_buffer,
' ');
5366 prettyprint_location(output_buffer, parser, location);
5367 pm_buffer_append_string(output_buffer,
" = \"", 4);
5368 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5369 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5377 pm_buffer_append_string(output_buffer,
"@ InterpolatedSymbolNode (location: ", 36);
5378 prettyprint_location(output_buffer, parser, &node->
location);
5379 pm_buffer_append_string(output_buffer,
")\n", 2);
5383 pm_buffer_concat(output_buffer, prefix_buffer);
5384 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
5386 if (location->
start == NULL) {
5387 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5389 pm_buffer_append_byte(output_buffer,
' ');
5390 prettyprint_location(output_buffer, parser, location);
5391 pm_buffer_append_string(output_buffer,
" = \"", 4);
5392 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5393 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5399 pm_buffer_concat(output_buffer, prefix_buffer);
5400 pm_buffer_append_string(output_buffer,
"+-- parts:", 10);
5401 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5404 for (uint32_t index = 0; index < last_index; index++) {
5405 size_t prefix_length = prefix_buffer->
length;
5406 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5407 pm_buffer_concat(output_buffer, prefix_buffer);
5408 pm_buffer_append_string(output_buffer,
"+-- ", 4);
5409 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
5410 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5411 prefix_buffer->
length = prefix_length;
5417 pm_buffer_concat(output_buffer, prefix_buffer);
5418 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
5420 if (location->
start == NULL) {
5421 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5423 pm_buffer_append_byte(output_buffer,
' ');
5424 prettyprint_location(output_buffer, parser, location);
5425 pm_buffer_append_string(output_buffer,
" = \"", 4);
5426 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5427 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5435 pm_buffer_append_string(output_buffer,
"@ InterpolatedXStringNode (location: ", 37);
5436 prettyprint_location(output_buffer, parser, &node->
location);
5437 pm_buffer_append_string(output_buffer,
")\n", 2);
5441 pm_buffer_concat(output_buffer, prefix_buffer);
5442 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
5444 pm_buffer_append_byte(output_buffer,
' ');
5445 prettyprint_location(output_buffer, parser, location);
5446 pm_buffer_append_string(output_buffer,
" = \"", 4);
5447 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5448 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5453 pm_buffer_concat(output_buffer, prefix_buffer);
5454 pm_buffer_append_string(output_buffer,
"+-- parts:", 10);
5455 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
parts.
size));
5458 for (uint32_t index = 0; index < last_index; index++) {
5459 size_t prefix_length = prefix_buffer->
length;
5460 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5461 pm_buffer_concat(output_buffer, prefix_buffer);
5462 pm_buffer_append_string(output_buffer,
"+-- ", 4);
5463 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
5464 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5465 prefix_buffer->
length = prefix_length;
5471 pm_buffer_concat(output_buffer, prefix_buffer);
5472 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
5474 pm_buffer_append_byte(output_buffer,
' ');
5475 prettyprint_location(output_buffer, parser, location);
5476 pm_buffer_append_string(output_buffer,
" = \"", 4);
5477 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5478 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5484 pm_buffer_append_string(output_buffer,
"@ ItLocalVariableReadNode (location: ", 37);
5485 prettyprint_location(output_buffer, parser, &node->
location);
5486 pm_buffer_append_string(output_buffer,
")\n", 2);
5491 pm_buffer_append_string(output_buffer,
"@ ItParametersNode (location: ", 30);
5492 prettyprint_location(output_buffer, parser, &node->
location);
5493 pm_buffer_append_string(output_buffer,
")\n", 2);
5499 pm_buffer_append_string(output_buffer,
"@ KeywordHashNode (location: ", 29);
5500 prettyprint_location(output_buffer, parser, &node->
location);
5501 pm_buffer_append_string(output_buffer,
")\n", 2);
5505 pm_buffer_concat(output_buffer, prefix_buffer);
5506 pm_buffer_append_string(output_buffer,
"+-- KeywordHashNodeFlags:", 25);
5509 if (found) pm_buffer_append_byte(output_buffer,
',');
5510 pm_buffer_append_string(output_buffer,
" symbol_keys", 12);
5513 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
5514 pm_buffer_append_byte(output_buffer,
'\n');
5519 pm_buffer_concat(output_buffer, prefix_buffer);
5520 pm_buffer_append_string(output_buffer,
"+-- elements:", 13);
5521 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
elements.
size));
5524 for (uint32_t index = 0; index < last_index; index++) {
5525 size_t prefix_length = prefix_buffer->
length;
5526 pm_buffer_append_string(prefix_buffer,
" ", 4);
5527 pm_buffer_concat(output_buffer, prefix_buffer);
5528 pm_buffer_append_string(output_buffer,
"+-- ", 4);
5529 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
5531 prefix_buffer->
length = prefix_length;
5539 pm_buffer_append_string(output_buffer,
"@ KeywordRestParameterNode (location: ", 38);
5540 prettyprint_location(output_buffer, parser, &node->
location);
5541 pm_buffer_append_string(output_buffer,
")\n", 2);
5545 pm_buffer_concat(output_buffer, prefix_buffer);
5546 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
5549 if (found) pm_buffer_append_byte(output_buffer,
',');
5550 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
5553 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
5554 pm_buffer_append_byte(output_buffer,
'\n');
5559 pm_buffer_concat(output_buffer, prefix_buffer);
5560 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5561 if (cast->
name == 0) {
5562 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5564 pm_buffer_append_byte(output_buffer,
' ');
5565 prettyprint_constant(output_buffer, parser, cast->
name);
5566 pm_buffer_append_byte(output_buffer,
'\n');
5572 pm_buffer_concat(output_buffer, prefix_buffer);
5573 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
5575 if (location->
start == NULL) {
5576 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5578 pm_buffer_append_byte(output_buffer,
' ');
5579 prettyprint_location(output_buffer, parser, location);
5580 pm_buffer_append_string(output_buffer,
" = \"", 4);
5581 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5582 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5588 pm_buffer_concat(output_buffer, prefix_buffer);
5589 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
5591 pm_buffer_append_byte(output_buffer,
' ');
5592 prettyprint_location(output_buffer, parser, location);
5593 pm_buffer_append_string(output_buffer,
" = \"", 4);
5594 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5595 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5602 pm_buffer_append_string(output_buffer,
"@ LambdaNode (location: ", 24);
5603 prettyprint_location(output_buffer, parser, &node->
location);
5604 pm_buffer_append_string(output_buffer,
")\n", 2);
5608 pm_buffer_concat(output_buffer, prefix_buffer);
5609 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
5610 pm_buffer_append_string(output_buffer,
" [", 2);
5611 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
5612 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
5613 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
5615 pm_buffer_append_string(output_buffer,
"]\n", 2);
5620 pm_buffer_concat(output_buffer, prefix_buffer);
5621 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
5623 pm_buffer_append_byte(output_buffer,
' ');
5624 prettyprint_location(output_buffer, parser, location);
5625 pm_buffer_append_string(output_buffer,
" = \"", 4);
5626 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5627 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5632 pm_buffer_concat(output_buffer, prefix_buffer);
5633 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
5635 pm_buffer_append_byte(output_buffer,
' ');
5636 prettyprint_location(output_buffer, parser, location);
5637 pm_buffer_append_string(output_buffer,
" = \"", 4);
5638 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5639 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5644 pm_buffer_concat(output_buffer, prefix_buffer);
5645 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
5647 pm_buffer_append_byte(output_buffer,
' ');
5648 prettyprint_location(output_buffer, parser, location);
5649 pm_buffer_append_string(output_buffer,
" = \"", 4);
5650 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5651 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5656 pm_buffer_concat(output_buffer, prefix_buffer);
5657 pm_buffer_append_string(output_buffer,
"+-- parameters:", 15);
5659 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5661 pm_buffer_append_byte(output_buffer,
'\n');
5663 size_t prefix_length = prefix_buffer->
length;
5664 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5665 pm_buffer_concat(output_buffer, prefix_buffer);
5667 prefix_buffer->
length = prefix_length;
5673 pm_buffer_concat(output_buffer, prefix_buffer);
5674 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
5675 if (cast->
body == NULL) {
5676 pm_buffer_append_string(output_buffer,
" nil\n", 5);
5678 pm_buffer_append_byte(output_buffer,
'\n');
5680 size_t prefix_length = prefix_buffer->
length;
5681 pm_buffer_append_string(prefix_buffer,
" ", 4);
5682 pm_buffer_concat(output_buffer, prefix_buffer);
5683 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
5684 prefix_buffer->
length = prefix_length;
5692 pm_buffer_append_string(output_buffer,
"@ LocalVariableAndWriteNode (location: ", 39);
5693 prettyprint_location(output_buffer, parser, &node->
location);
5694 pm_buffer_append_string(output_buffer,
")\n", 2);
5698 pm_buffer_concat(output_buffer, prefix_buffer);
5699 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
5701 pm_buffer_append_byte(output_buffer,
' ');
5702 prettyprint_location(output_buffer, parser, location);
5703 pm_buffer_append_string(output_buffer,
" = \"", 4);
5704 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5705 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5710 pm_buffer_concat(output_buffer, prefix_buffer);
5711 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
5713 pm_buffer_append_byte(output_buffer,
' ');
5714 prettyprint_location(output_buffer, parser, location);
5715 pm_buffer_append_string(output_buffer,
" = \"", 4);
5716 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5717 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5722 pm_buffer_concat(output_buffer, prefix_buffer);
5723 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
5724 pm_buffer_append_byte(output_buffer,
'\n');
5726 size_t prefix_length = prefix_buffer->
length;
5727 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5728 pm_buffer_concat(output_buffer, prefix_buffer);
5729 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5730 prefix_buffer->
length = prefix_length;
5735 pm_buffer_concat(output_buffer, prefix_buffer);
5736 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5737 pm_buffer_append_byte(output_buffer,
' ');
5738 prettyprint_constant(output_buffer, parser, cast->
name);
5739 pm_buffer_append_byte(output_buffer,
'\n');
5744 pm_buffer_concat(output_buffer, prefix_buffer);
5745 pm_buffer_append_string(output_buffer,
"+-- depth:", 10);
5746 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
depth);
5753 pm_buffer_append_string(output_buffer,
"@ LocalVariableOperatorWriteNode (location: ", 44);
5754 prettyprint_location(output_buffer, parser, &node->
location);
5755 pm_buffer_append_string(output_buffer,
")\n", 2);
5759 pm_buffer_concat(output_buffer, prefix_buffer);
5760 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
5762 pm_buffer_append_byte(output_buffer,
' ');
5763 prettyprint_location(output_buffer, parser, location);
5764 pm_buffer_append_string(output_buffer,
" = \"", 4);
5765 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5766 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5771 pm_buffer_concat(output_buffer, prefix_buffer);
5772 pm_buffer_append_string(output_buffer,
"+-- binary_operator_loc:", 24);
5774 pm_buffer_append_byte(output_buffer,
' ');
5775 prettyprint_location(output_buffer, parser, location);
5776 pm_buffer_append_string(output_buffer,
" = \"", 4);
5777 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5778 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5783 pm_buffer_concat(output_buffer, prefix_buffer);
5784 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
5785 pm_buffer_append_byte(output_buffer,
'\n');
5787 size_t prefix_length = prefix_buffer->
length;
5788 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5789 pm_buffer_concat(output_buffer, prefix_buffer);
5790 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5791 prefix_buffer->
length = prefix_length;
5796 pm_buffer_concat(output_buffer, prefix_buffer);
5797 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5798 pm_buffer_append_byte(output_buffer,
' ');
5799 prettyprint_constant(output_buffer, parser, cast->
name);
5800 pm_buffer_append_byte(output_buffer,
'\n');
5805 pm_buffer_concat(output_buffer, prefix_buffer);
5806 pm_buffer_append_string(output_buffer,
"+-- binary_operator:", 20);
5807 pm_buffer_append_byte(output_buffer,
' ');
5809 pm_buffer_append_byte(output_buffer,
'\n');
5814 pm_buffer_concat(output_buffer, prefix_buffer);
5815 pm_buffer_append_string(output_buffer,
"+-- depth:", 10);
5816 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
depth);
5823 pm_buffer_append_string(output_buffer,
"@ LocalVariableOrWriteNode (location: ", 38);
5824 prettyprint_location(output_buffer, parser, &node->
location);
5825 pm_buffer_append_string(output_buffer,
")\n", 2);
5829 pm_buffer_concat(output_buffer, prefix_buffer);
5830 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
5832 pm_buffer_append_byte(output_buffer,
' ');
5833 prettyprint_location(output_buffer, parser, location);
5834 pm_buffer_append_string(output_buffer,
" = \"", 4);
5835 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5836 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5841 pm_buffer_concat(output_buffer, prefix_buffer);
5842 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
5844 pm_buffer_append_byte(output_buffer,
' ');
5845 prettyprint_location(output_buffer, parser, location);
5846 pm_buffer_append_string(output_buffer,
" = \"", 4);
5847 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5848 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5853 pm_buffer_concat(output_buffer, prefix_buffer);
5854 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
5855 pm_buffer_append_byte(output_buffer,
'\n');
5857 size_t prefix_length = prefix_buffer->
length;
5858 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5859 pm_buffer_concat(output_buffer, prefix_buffer);
5860 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5861 prefix_buffer->
length = prefix_length;
5866 pm_buffer_concat(output_buffer, prefix_buffer);
5867 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5868 pm_buffer_append_byte(output_buffer,
' ');
5869 prettyprint_constant(output_buffer, parser, cast->
name);
5870 pm_buffer_append_byte(output_buffer,
'\n');
5875 pm_buffer_concat(output_buffer, prefix_buffer);
5876 pm_buffer_append_string(output_buffer,
"+-- depth:", 10);
5877 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
depth);
5884 pm_buffer_append_string(output_buffer,
"@ LocalVariableReadNode (location: ", 35);
5885 prettyprint_location(output_buffer, parser, &node->
location);
5886 pm_buffer_append_string(output_buffer,
")\n", 2);
5890 pm_buffer_concat(output_buffer, prefix_buffer);
5891 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5892 pm_buffer_append_byte(output_buffer,
' ');
5893 prettyprint_constant(output_buffer, parser, cast->
name);
5894 pm_buffer_append_byte(output_buffer,
'\n');
5899 pm_buffer_concat(output_buffer, prefix_buffer);
5900 pm_buffer_append_string(output_buffer,
"+-- depth:", 10);
5901 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
depth);
5908 pm_buffer_append_string(output_buffer,
"@ LocalVariableTargetNode (location: ", 37);
5909 prettyprint_location(output_buffer, parser, &node->
location);
5910 pm_buffer_append_string(output_buffer,
")\n", 2);
5914 pm_buffer_concat(output_buffer, prefix_buffer);
5915 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5916 pm_buffer_append_byte(output_buffer,
' ');
5917 prettyprint_constant(output_buffer, parser, cast->
name);
5918 pm_buffer_append_byte(output_buffer,
'\n');
5923 pm_buffer_concat(output_buffer, prefix_buffer);
5924 pm_buffer_append_string(output_buffer,
"+-- depth:", 10);
5925 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
depth);
5932 pm_buffer_append_string(output_buffer,
"@ LocalVariableWriteNode (location: ", 36);
5933 prettyprint_location(output_buffer, parser, &node->
location);
5934 pm_buffer_append_string(output_buffer,
")\n", 2);
5938 pm_buffer_concat(output_buffer, prefix_buffer);
5939 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
5940 pm_buffer_append_byte(output_buffer,
' ');
5941 prettyprint_constant(output_buffer, parser, cast->
name);
5942 pm_buffer_append_byte(output_buffer,
'\n');
5947 pm_buffer_concat(output_buffer, prefix_buffer);
5948 pm_buffer_append_string(output_buffer,
"+-- depth:", 10);
5949 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
depth);
5954 pm_buffer_concat(output_buffer, prefix_buffer);
5955 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
5957 pm_buffer_append_byte(output_buffer,
' ');
5958 prettyprint_location(output_buffer, parser, location);
5959 pm_buffer_append_string(output_buffer,
" = \"", 4);
5960 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5961 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5966 pm_buffer_concat(output_buffer, prefix_buffer);
5967 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
5968 pm_buffer_append_byte(output_buffer,
'\n');
5970 size_t prefix_length = prefix_buffer->
length;
5971 pm_buffer_append_string(prefix_buffer,
"| ", 4);
5972 pm_buffer_concat(output_buffer, prefix_buffer);
5973 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5974 prefix_buffer->
length = prefix_length;
5979 pm_buffer_concat(output_buffer, prefix_buffer);
5980 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
5982 pm_buffer_append_byte(output_buffer,
' ');
5983 prettyprint_location(output_buffer, parser, location);
5984 pm_buffer_append_string(output_buffer,
" = \"", 4);
5985 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
5986 pm_buffer_append_string(output_buffer,
"\"\n", 2);
5993 pm_buffer_append_string(output_buffer,
"@ MatchLastLineNode (location: ", 31);
5994 prettyprint_location(output_buffer, parser, &node->
location);
5995 pm_buffer_append_string(output_buffer,
")\n", 2);
5999 pm_buffer_concat(output_buffer, prefix_buffer);
6000 pm_buffer_append_string(output_buffer,
"+-- RegularExpressionFlags:", 27);
6003 if (found) pm_buffer_append_byte(output_buffer,
',');
6004 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
6008 if (found) pm_buffer_append_byte(output_buffer,
',');
6009 pm_buffer_append_string(output_buffer,
" extended", 9);
6013 if (found) pm_buffer_append_byte(output_buffer,
',');
6014 pm_buffer_append_string(output_buffer,
" multi_line", 11);
6018 if (found) pm_buffer_append_byte(output_buffer,
',');
6019 pm_buffer_append_string(output_buffer,
" once", 5);
6023 if (found) pm_buffer_append_byte(output_buffer,
',');
6024 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
6028 if (found) pm_buffer_append_byte(output_buffer,
',');
6029 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
6033 if (found) pm_buffer_append_byte(output_buffer,
',');
6034 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
6038 if (found) pm_buffer_append_byte(output_buffer,
',');
6039 pm_buffer_append_string(output_buffer,
" utf_8", 6);
6043 if (found) pm_buffer_append_byte(output_buffer,
',');
6044 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
6048 if (found) pm_buffer_append_byte(output_buffer,
',');
6049 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
6053 if (found) pm_buffer_append_byte(output_buffer,
',');
6054 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
6057 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
6058 pm_buffer_append_byte(output_buffer,
'\n');
6063 pm_buffer_concat(output_buffer, prefix_buffer);
6064 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
6066 pm_buffer_append_byte(output_buffer,
' ');
6067 prettyprint_location(output_buffer, parser, location);
6068 pm_buffer_append_string(output_buffer,
" = \"", 4);
6069 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6070 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6075 pm_buffer_concat(output_buffer, prefix_buffer);
6076 pm_buffer_append_string(output_buffer,
"+-- content_loc:", 16);
6078 pm_buffer_append_byte(output_buffer,
' ');
6079 prettyprint_location(output_buffer, parser, location);
6080 pm_buffer_append_string(output_buffer,
" = \"", 4);
6081 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6082 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6087 pm_buffer_concat(output_buffer, prefix_buffer);
6088 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
6090 pm_buffer_append_byte(output_buffer,
' ');
6091 prettyprint_location(output_buffer, parser, location);
6092 pm_buffer_append_string(output_buffer,
" = \"", 4);
6093 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6094 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6099 pm_buffer_concat(output_buffer, prefix_buffer);
6100 pm_buffer_append_string(output_buffer,
"+-- unescaped:", 14);
6101 pm_buffer_append_string(output_buffer,
" \"", 2);
6102 pm_buffer_append_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped), PM_BUFFER_ESCAPING_RUBY);
6103 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6110 pm_buffer_append_string(output_buffer,
"@ MatchPredicateNode (location: ", 32);
6111 prettyprint_location(output_buffer, parser, &node->
location);
6112 pm_buffer_append_string(output_buffer,
")\n", 2);
6116 pm_buffer_concat(output_buffer, prefix_buffer);
6117 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
6118 pm_buffer_append_byte(output_buffer,
'\n');
6120 size_t prefix_length = prefix_buffer->
length;
6121 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6122 pm_buffer_concat(output_buffer, prefix_buffer);
6123 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6124 prefix_buffer->
length = prefix_length;
6129 pm_buffer_concat(output_buffer, prefix_buffer);
6130 pm_buffer_append_string(output_buffer,
"+-- pattern:", 12);
6131 pm_buffer_append_byte(output_buffer,
'\n');
6133 size_t prefix_length = prefix_buffer->
length;
6134 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6135 pm_buffer_concat(output_buffer, prefix_buffer);
6136 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
6137 prefix_buffer->
length = prefix_length;
6142 pm_buffer_concat(output_buffer, prefix_buffer);
6143 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
6145 pm_buffer_append_byte(output_buffer,
' ');
6146 prettyprint_location(output_buffer, parser, location);
6147 pm_buffer_append_string(output_buffer,
" = \"", 4);
6148 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6149 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6156 pm_buffer_append_string(output_buffer,
"@ MatchRequiredNode (location: ", 31);
6157 prettyprint_location(output_buffer, parser, &node->
location);
6158 pm_buffer_append_string(output_buffer,
")\n", 2);
6162 pm_buffer_concat(output_buffer, prefix_buffer);
6163 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
6164 pm_buffer_append_byte(output_buffer,
'\n');
6166 size_t prefix_length = prefix_buffer->
length;
6167 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6168 pm_buffer_concat(output_buffer, prefix_buffer);
6169 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6170 prefix_buffer->
length = prefix_length;
6175 pm_buffer_concat(output_buffer, prefix_buffer);
6176 pm_buffer_append_string(output_buffer,
"+-- pattern:", 12);
6177 pm_buffer_append_byte(output_buffer,
'\n');
6179 size_t prefix_length = prefix_buffer->
length;
6180 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6181 pm_buffer_concat(output_buffer, prefix_buffer);
6182 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
6183 prefix_buffer->
length = prefix_length;
6188 pm_buffer_concat(output_buffer, prefix_buffer);
6189 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
6191 pm_buffer_append_byte(output_buffer,
' ');
6192 prettyprint_location(output_buffer, parser, location);
6193 pm_buffer_append_string(output_buffer,
" = \"", 4);
6194 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6195 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6202 pm_buffer_append_string(output_buffer,
"@ MatchWriteNode (location: ", 28);
6203 prettyprint_location(output_buffer, parser, &node->
location);
6204 pm_buffer_append_string(output_buffer,
")\n", 2);
6208 pm_buffer_concat(output_buffer, prefix_buffer);
6209 pm_buffer_append_string(output_buffer,
"+-- call:", 9);
6210 pm_buffer_append_byte(output_buffer,
'\n');
6212 size_t prefix_length = prefix_buffer->
length;
6213 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6214 pm_buffer_concat(output_buffer, prefix_buffer);
6215 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
call, prefix_buffer);
6216 prefix_buffer->
length = prefix_length;
6221 pm_buffer_concat(output_buffer, prefix_buffer);
6222 pm_buffer_append_string(output_buffer,
"+-- targets:", 12);
6223 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
targets.
size));
6226 for (uint32_t index = 0; index < last_index; index++) {
6227 size_t prefix_length = prefix_buffer->
length;
6228 pm_buffer_append_string(prefix_buffer,
" ", 4);
6229 pm_buffer_concat(output_buffer, prefix_buffer);
6230 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6231 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6233 prefix_buffer->
length = prefix_length;
6240 pm_buffer_append_string(output_buffer,
"@ MissingNode (location: ", 25);
6241 prettyprint_location(output_buffer, parser, &node->
location);
6242 pm_buffer_append_string(output_buffer,
")\n", 2);
6248 pm_buffer_append_string(output_buffer,
"@ ModuleNode (location: ", 24);
6249 prettyprint_location(output_buffer, parser, &node->
location);
6250 pm_buffer_append_string(output_buffer,
")\n", 2);
6254 pm_buffer_concat(output_buffer, prefix_buffer);
6255 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
6256 pm_buffer_append_string(output_buffer,
" [", 2);
6257 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
6258 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
6259 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
6261 pm_buffer_append_string(output_buffer,
"]\n", 2);
6266 pm_buffer_concat(output_buffer, prefix_buffer);
6267 pm_buffer_append_string(output_buffer,
"+-- module_keyword_loc:", 23);
6269 pm_buffer_append_byte(output_buffer,
' ');
6270 prettyprint_location(output_buffer, parser, location);
6271 pm_buffer_append_string(output_buffer,
" = \"", 4);
6272 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6273 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6278 pm_buffer_concat(output_buffer, prefix_buffer);
6279 pm_buffer_append_string(output_buffer,
"+-- constant_path:", 18);
6280 pm_buffer_append_byte(output_buffer,
'\n');
6282 size_t prefix_length = prefix_buffer->
length;
6283 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6284 pm_buffer_concat(output_buffer, prefix_buffer);
6286 prefix_buffer->
length = prefix_length;
6291 pm_buffer_concat(output_buffer, prefix_buffer);
6292 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
6293 if (cast->
body == NULL) {
6294 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6296 pm_buffer_append_byte(output_buffer,
'\n');
6298 size_t prefix_length = prefix_buffer->
length;
6299 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6300 pm_buffer_concat(output_buffer, prefix_buffer);
6301 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
6302 prefix_buffer->
length = prefix_length;
6308 pm_buffer_concat(output_buffer, prefix_buffer);
6309 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
6311 pm_buffer_append_byte(output_buffer,
' ');
6312 prettyprint_location(output_buffer, parser, location);
6313 pm_buffer_append_string(output_buffer,
" = \"", 4);
6314 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6315 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6320 pm_buffer_concat(output_buffer, prefix_buffer);
6321 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
6322 pm_buffer_append_byte(output_buffer,
' ');
6323 prettyprint_constant(output_buffer, parser, cast->
name);
6324 pm_buffer_append_byte(output_buffer,
'\n');
6331 pm_buffer_append_string(output_buffer,
"@ MultiTargetNode (location: ", 29);
6332 prettyprint_location(output_buffer, parser, &node->
location);
6333 pm_buffer_append_string(output_buffer,
")\n", 2);
6337 pm_buffer_concat(output_buffer, prefix_buffer);
6338 pm_buffer_append_string(output_buffer,
"+-- lefts:", 10);
6339 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
lefts.
size));
6342 for (uint32_t index = 0; index < last_index; index++) {
6343 size_t prefix_length = prefix_buffer->
length;
6344 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6345 pm_buffer_concat(output_buffer, prefix_buffer);
6346 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6347 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6348 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
lefts.
nodes[index], prefix_buffer);
6349 prefix_buffer->
length = prefix_length;
6355 pm_buffer_concat(output_buffer, prefix_buffer);
6356 pm_buffer_append_string(output_buffer,
"+-- rest:", 9);
6357 if (cast->
rest == NULL) {
6358 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6360 pm_buffer_append_byte(output_buffer,
'\n');
6362 size_t prefix_length = prefix_buffer->
length;
6363 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6364 pm_buffer_concat(output_buffer, prefix_buffer);
6365 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6366 prefix_buffer->
length = prefix_length;
6372 pm_buffer_concat(output_buffer, prefix_buffer);
6373 pm_buffer_append_string(output_buffer,
"+-- rights:", 11);
6374 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
rights.
size));
6377 for (uint32_t index = 0; index < last_index; index++) {
6378 size_t prefix_length = prefix_buffer->
length;
6379 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6380 pm_buffer_concat(output_buffer, prefix_buffer);
6381 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6382 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6383 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rights.
nodes[index], prefix_buffer);
6384 prefix_buffer->
length = prefix_length;
6390 pm_buffer_concat(output_buffer, prefix_buffer);
6391 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
6393 if (location->
start == NULL) {
6394 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6396 pm_buffer_append_byte(output_buffer,
' ');
6397 prettyprint_location(output_buffer, parser, location);
6398 pm_buffer_append_string(output_buffer,
" = \"", 4);
6399 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6400 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6406 pm_buffer_concat(output_buffer, prefix_buffer);
6407 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
6409 if (location->
start == NULL) {
6410 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6412 pm_buffer_append_byte(output_buffer,
' ');
6413 prettyprint_location(output_buffer, parser, location);
6414 pm_buffer_append_string(output_buffer,
" = \"", 4);
6415 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6416 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6424 pm_buffer_append_string(output_buffer,
"@ MultiWriteNode (location: ", 28);
6425 prettyprint_location(output_buffer, parser, &node->
location);
6426 pm_buffer_append_string(output_buffer,
")\n", 2);
6430 pm_buffer_concat(output_buffer, prefix_buffer);
6431 pm_buffer_append_string(output_buffer,
"+-- lefts:", 10);
6432 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
lefts.
size));
6435 for (uint32_t index = 0; index < last_index; index++) {
6436 size_t prefix_length = prefix_buffer->
length;
6437 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6438 pm_buffer_concat(output_buffer, prefix_buffer);
6439 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6440 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6441 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
lefts.
nodes[index], prefix_buffer);
6442 prefix_buffer->
length = prefix_length;
6448 pm_buffer_concat(output_buffer, prefix_buffer);
6449 pm_buffer_append_string(output_buffer,
"+-- rest:", 9);
6450 if (cast->
rest == NULL) {
6451 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6453 pm_buffer_append_byte(output_buffer,
'\n');
6455 size_t prefix_length = prefix_buffer->
length;
6456 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6457 pm_buffer_concat(output_buffer, prefix_buffer);
6458 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6459 prefix_buffer->
length = prefix_length;
6465 pm_buffer_concat(output_buffer, prefix_buffer);
6466 pm_buffer_append_string(output_buffer,
"+-- rights:", 11);
6467 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
rights.
size));
6470 for (uint32_t index = 0; index < last_index; index++) {
6471 size_t prefix_length = prefix_buffer->
length;
6472 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6473 pm_buffer_concat(output_buffer, prefix_buffer);
6474 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6475 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6476 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rights.
nodes[index], prefix_buffer);
6477 prefix_buffer->
length = prefix_length;
6483 pm_buffer_concat(output_buffer, prefix_buffer);
6484 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
6486 if (location->
start == NULL) {
6487 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6489 pm_buffer_append_byte(output_buffer,
' ');
6490 prettyprint_location(output_buffer, parser, location);
6491 pm_buffer_append_string(output_buffer,
" = \"", 4);
6492 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6493 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6499 pm_buffer_concat(output_buffer, prefix_buffer);
6500 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
6502 if (location->
start == NULL) {
6503 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6505 pm_buffer_append_byte(output_buffer,
' ');
6506 prettyprint_location(output_buffer, parser, location);
6507 pm_buffer_append_string(output_buffer,
" = \"", 4);
6508 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6509 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6515 pm_buffer_concat(output_buffer, prefix_buffer);
6516 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
6518 pm_buffer_append_byte(output_buffer,
' ');
6519 prettyprint_location(output_buffer, parser, location);
6520 pm_buffer_append_string(output_buffer,
" = \"", 4);
6521 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6522 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6527 pm_buffer_concat(output_buffer, prefix_buffer);
6528 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
6529 pm_buffer_append_byte(output_buffer,
'\n');
6531 size_t prefix_length = prefix_buffer->
length;
6532 pm_buffer_append_string(prefix_buffer,
" ", 4);
6533 pm_buffer_concat(output_buffer, prefix_buffer);
6534 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6535 prefix_buffer->
length = prefix_length;
6542 pm_buffer_append_string(output_buffer,
"@ NextNode (location: ", 22);
6543 prettyprint_location(output_buffer, parser, &node->
location);
6544 pm_buffer_append_string(output_buffer,
")\n", 2);
6548 pm_buffer_concat(output_buffer, prefix_buffer);
6549 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
6551 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6553 pm_buffer_append_byte(output_buffer,
'\n');
6555 size_t prefix_length = prefix_buffer->
length;
6556 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6557 pm_buffer_concat(output_buffer, prefix_buffer);
6558 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
6559 prefix_buffer->
length = prefix_length;
6565 pm_buffer_concat(output_buffer, prefix_buffer);
6566 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
6568 pm_buffer_append_byte(output_buffer,
' ');
6569 prettyprint_location(output_buffer, parser, location);
6570 pm_buffer_append_string(output_buffer,
" = \"", 4);
6571 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6572 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6578 pm_buffer_append_string(output_buffer,
"@ NilNode (location: ", 21);
6579 prettyprint_location(output_buffer, parser, &node->
location);
6580 pm_buffer_append_string(output_buffer,
")\n", 2);
6586 pm_buffer_append_string(output_buffer,
"@ NoKeywordsParameterNode (location: ", 37);
6587 prettyprint_location(output_buffer, parser, &node->
location);
6588 pm_buffer_append_string(output_buffer,
")\n", 2);
6592 pm_buffer_concat(output_buffer, prefix_buffer);
6593 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
6595 pm_buffer_append_byte(output_buffer,
' ');
6596 prettyprint_location(output_buffer, parser, location);
6597 pm_buffer_append_string(output_buffer,
" = \"", 4);
6598 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6599 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6604 pm_buffer_concat(output_buffer, prefix_buffer);
6605 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
6607 pm_buffer_append_byte(output_buffer,
' ');
6608 prettyprint_location(output_buffer, parser, location);
6609 pm_buffer_append_string(output_buffer,
" = \"", 4);
6610 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6611 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6618 pm_buffer_append_string(output_buffer,
"@ NumberedParametersNode (location: ", 36);
6619 prettyprint_location(output_buffer, parser, &node->
location);
6620 pm_buffer_append_string(output_buffer,
")\n", 2);
6624 pm_buffer_concat(output_buffer, prefix_buffer);
6625 pm_buffer_append_string(output_buffer,
"+-- maximum:", 12);
6626 pm_buffer_append_format(output_buffer,
" %" PRIu8
"\n", cast->
maximum);
6633 pm_buffer_append_string(output_buffer,
"@ NumberedReferenceReadNode (location: ", 39);
6634 prettyprint_location(output_buffer, parser, &node->
location);
6635 pm_buffer_append_string(output_buffer,
")\n", 2);
6639 pm_buffer_concat(output_buffer, prefix_buffer);
6640 pm_buffer_append_string(output_buffer,
"+-- number:", 11);
6641 pm_buffer_append_format(output_buffer,
" %" PRIu32
"\n", cast->
number);
6648 pm_buffer_append_string(output_buffer,
"@ OptionalKeywordParameterNode (location: ", 42);
6649 prettyprint_location(output_buffer, parser, &node->
location);
6650 pm_buffer_append_string(output_buffer,
")\n", 2);
6654 pm_buffer_concat(output_buffer, prefix_buffer);
6655 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
6658 if (found) pm_buffer_append_byte(output_buffer,
',');
6659 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
6662 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
6663 pm_buffer_append_byte(output_buffer,
'\n');
6668 pm_buffer_concat(output_buffer, prefix_buffer);
6669 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
6670 pm_buffer_append_byte(output_buffer,
' ');
6671 prettyprint_constant(output_buffer, parser, cast->
name);
6672 pm_buffer_append_byte(output_buffer,
'\n');
6677 pm_buffer_concat(output_buffer, prefix_buffer);
6678 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
6680 pm_buffer_append_byte(output_buffer,
' ');
6681 prettyprint_location(output_buffer, parser, location);
6682 pm_buffer_append_string(output_buffer,
" = \"", 4);
6683 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6684 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6689 pm_buffer_concat(output_buffer, prefix_buffer);
6690 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
6691 pm_buffer_append_byte(output_buffer,
'\n');
6693 size_t prefix_length = prefix_buffer->
length;
6694 pm_buffer_append_string(prefix_buffer,
" ", 4);
6695 pm_buffer_concat(output_buffer, prefix_buffer);
6696 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6697 prefix_buffer->
length = prefix_length;
6704 pm_buffer_append_string(output_buffer,
"@ OptionalParameterNode (location: ", 35);
6705 prettyprint_location(output_buffer, parser, &node->
location);
6706 pm_buffer_append_string(output_buffer,
")\n", 2);
6710 pm_buffer_concat(output_buffer, prefix_buffer);
6711 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
6714 if (found) pm_buffer_append_byte(output_buffer,
',');
6715 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
6718 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
6719 pm_buffer_append_byte(output_buffer,
'\n');
6724 pm_buffer_concat(output_buffer, prefix_buffer);
6725 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
6726 pm_buffer_append_byte(output_buffer,
' ');
6727 prettyprint_constant(output_buffer, parser, cast->
name);
6728 pm_buffer_append_byte(output_buffer,
'\n');
6733 pm_buffer_concat(output_buffer, prefix_buffer);
6734 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
6736 pm_buffer_append_byte(output_buffer,
' ');
6737 prettyprint_location(output_buffer, parser, location);
6738 pm_buffer_append_string(output_buffer,
" = \"", 4);
6739 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6740 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6745 pm_buffer_concat(output_buffer, prefix_buffer);
6746 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
6748 pm_buffer_append_byte(output_buffer,
' ');
6749 prettyprint_location(output_buffer, parser, location);
6750 pm_buffer_append_string(output_buffer,
" = \"", 4);
6751 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6752 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6757 pm_buffer_concat(output_buffer, prefix_buffer);
6758 pm_buffer_append_string(output_buffer,
"+-- value:", 10);
6759 pm_buffer_append_byte(output_buffer,
'\n');
6761 size_t prefix_length = prefix_buffer->
length;
6762 pm_buffer_append_string(prefix_buffer,
" ", 4);
6763 pm_buffer_concat(output_buffer, prefix_buffer);
6764 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6765 prefix_buffer->
length = prefix_length;
6772 pm_buffer_append_string(output_buffer,
"@ OrNode (location: ", 20);
6773 prettyprint_location(output_buffer, parser, &node->
location);
6774 pm_buffer_append_string(output_buffer,
")\n", 2);
6778 pm_buffer_concat(output_buffer, prefix_buffer);
6779 pm_buffer_append_string(output_buffer,
"+-- left:", 9);
6780 pm_buffer_append_byte(output_buffer,
'\n');
6782 size_t prefix_length = prefix_buffer->
length;
6783 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6784 pm_buffer_concat(output_buffer, prefix_buffer);
6785 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
6786 prefix_buffer->
length = prefix_length;
6791 pm_buffer_concat(output_buffer, prefix_buffer);
6792 pm_buffer_append_string(output_buffer,
"+-- right:", 10);
6793 pm_buffer_append_byte(output_buffer,
'\n');
6795 size_t prefix_length = prefix_buffer->
length;
6796 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6797 pm_buffer_concat(output_buffer, prefix_buffer);
6798 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
6799 prefix_buffer->
length = prefix_length;
6804 pm_buffer_concat(output_buffer, prefix_buffer);
6805 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
6807 pm_buffer_append_byte(output_buffer,
' ');
6808 prettyprint_location(output_buffer, parser, location);
6809 pm_buffer_append_string(output_buffer,
" = \"", 4);
6810 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6811 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6818 pm_buffer_append_string(output_buffer,
"@ ParametersNode (location: ", 28);
6819 prettyprint_location(output_buffer, parser, &node->
location);
6820 pm_buffer_append_string(output_buffer,
")\n", 2);
6824 pm_buffer_concat(output_buffer, prefix_buffer);
6825 pm_buffer_append_string(output_buffer,
"+-- requireds:", 14);
6826 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
requireds.
size));
6829 for (uint32_t index = 0; index < last_index; index++) {
6830 size_t prefix_length = prefix_buffer->
length;
6831 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6832 pm_buffer_concat(output_buffer, prefix_buffer);
6833 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6834 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6836 prefix_buffer->
length = prefix_length;
6842 pm_buffer_concat(output_buffer, prefix_buffer);
6843 pm_buffer_append_string(output_buffer,
"+-- optionals:", 14);
6844 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
optionals.
size));
6847 for (uint32_t index = 0; index < last_index; index++) {
6848 size_t prefix_length = prefix_buffer->
length;
6849 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6850 pm_buffer_concat(output_buffer, prefix_buffer);
6851 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6852 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6854 prefix_buffer->
length = prefix_length;
6860 pm_buffer_concat(output_buffer, prefix_buffer);
6861 pm_buffer_append_string(output_buffer,
"+-- rest:", 9);
6862 if (cast->
rest == NULL) {
6863 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6865 pm_buffer_append_byte(output_buffer,
'\n');
6867 size_t prefix_length = prefix_buffer->
length;
6868 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6869 pm_buffer_concat(output_buffer, prefix_buffer);
6870 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6871 prefix_buffer->
length = prefix_length;
6877 pm_buffer_concat(output_buffer, prefix_buffer);
6878 pm_buffer_append_string(output_buffer,
"+-- posts:", 10);
6879 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
posts.
size));
6882 for (uint32_t index = 0; index < last_index; index++) {
6883 size_t prefix_length = prefix_buffer->
length;
6884 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6885 pm_buffer_concat(output_buffer, prefix_buffer);
6886 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6887 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6888 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
posts.
nodes[index], prefix_buffer);
6889 prefix_buffer->
length = prefix_length;
6895 pm_buffer_concat(output_buffer, prefix_buffer);
6896 pm_buffer_append_string(output_buffer,
"+-- keywords:", 13);
6897 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
keywords.
size));
6900 for (uint32_t index = 0; index < last_index; index++) {
6901 size_t prefix_length = prefix_buffer->
length;
6902 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6903 pm_buffer_concat(output_buffer, prefix_buffer);
6904 pm_buffer_append_string(output_buffer,
"+-- ", 4);
6905 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
6907 prefix_buffer->
length = prefix_length;
6913 pm_buffer_concat(output_buffer, prefix_buffer);
6914 pm_buffer_append_string(output_buffer,
"+-- keyword_rest:", 17);
6916 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6918 pm_buffer_append_byte(output_buffer,
'\n');
6920 size_t prefix_length = prefix_buffer->
length;
6921 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6922 pm_buffer_concat(output_buffer, prefix_buffer);
6924 prefix_buffer->
length = prefix_length;
6930 pm_buffer_concat(output_buffer, prefix_buffer);
6931 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
6932 if (cast->
block == NULL) {
6933 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6935 pm_buffer_append_byte(output_buffer,
'\n');
6937 size_t prefix_length = prefix_buffer->
length;
6938 pm_buffer_append_string(prefix_buffer,
" ", 4);
6939 pm_buffer_concat(output_buffer, prefix_buffer);
6940 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
6941 prefix_buffer->
length = prefix_length;
6949 pm_buffer_append_string(output_buffer,
"@ ParenthesesNode (location: ", 29);
6950 prettyprint_location(output_buffer, parser, &node->
location);
6951 pm_buffer_append_string(output_buffer,
")\n", 2);
6955 pm_buffer_concat(output_buffer, prefix_buffer);
6956 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
6957 if (cast->
body == NULL) {
6958 pm_buffer_append_string(output_buffer,
" nil\n", 5);
6960 pm_buffer_append_byte(output_buffer,
'\n');
6962 size_t prefix_length = prefix_buffer->
length;
6963 pm_buffer_append_string(prefix_buffer,
"| ", 4);
6964 pm_buffer_concat(output_buffer, prefix_buffer);
6965 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
6966 prefix_buffer->
length = prefix_length;
6972 pm_buffer_concat(output_buffer, prefix_buffer);
6973 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
6975 pm_buffer_append_byte(output_buffer,
' ');
6976 prettyprint_location(output_buffer, parser, location);
6977 pm_buffer_append_string(output_buffer,
" = \"", 4);
6978 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6979 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6984 pm_buffer_concat(output_buffer, prefix_buffer);
6985 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
6987 pm_buffer_append_byte(output_buffer,
' ');
6988 prettyprint_location(output_buffer, parser, location);
6989 pm_buffer_append_string(output_buffer,
" = \"", 4);
6990 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
6991 pm_buffer_append_string(output_buffer,
"\"\n", 2);
6998 pm_buffer_append_string(output_buffer,
"@ PinnedExpressionNode (location: ", 34);
6999 prettyprint_location(output_buffer, parser, &node->
location);
7000 pm_buffer_append_string(output_buffer,
")\n", 2);
7004 pm_buffer_concat(output_buffer, prefix_buffer);
7005 pm_buffer_append_string(output_buffer,
"+-- expression:", 15);
7006 pm_buffer_append_byte(output_buffer,
'\n');
7008 size_t prefix_length = prefix_buffer->
length;
7009 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7010 pm_buffer_concat(output_buffer, prefix_buffer);
7012 prefix_buffer->
length = prefix_length;
7017 pm_buffer_concat(output_buffer, prefix_buffer);
7018 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
7020 pm_buffer_append_byte(output_buffer,
' ');
7021 prettyprint_location(output_buffer, parser, location);
7022 pm_buffer_append_string(output_buffer,
" = \"", 4);
7023 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7024 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7029 pm_buffer_concat(output_buffer, prefix_buffer);
7030 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
7032 pm_buffer_append_byte(output_buffer,
' ');
7033 prettyprint_location(output_buffer, parser, location);
7034 pm_buffer_append_string(output_buffer,
" = \"", 4);
7035 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7036 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7041 pm_buffer_concat(output_buffer, prefix_buffer);
7042 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
7044 pm_buffer_append_byte(output_buffer,
' ');
7045 prettyprint_location(output_buffer, parser, location);
7046 pm_buffer_append_string(output_buffer,
" = \"", 4);
7047 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7048 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7055 pm_buffer_append_string(output_buffer,
"@ PinnedVariableNode (location: ", 32);
7056 prettyprint_location(output_buffer, parser, &node->
location);
7057 pm_buffer_append_string(output_buffer,
")\n", 2);
7061 pm_buffer_concat(output_buffer, prefix_buffer);
7062 pm_buffer_append_string(output_buffer,
"+-- variable:", 13);
7063 pm_buffer_append_byte(output_buffer,
'\n');
7065 size_t prefix_length = prefix_buffer->
length;
7066 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7067 pm_buffer_concat(output_buffer, prefix_buffer);
7068 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
variable, prefix_buffer);
7069 prefix_buffer->
length = prefix_length;
7074 pm_buffer_concat(output_buffer, prefix_buffer);
7075 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
7077 pm_buffer_append_byte(output_buffer,
' ');
7078 prettyprint_location(output_buffer, parser, location);
7079 pm_buffer_append_string(output_buffer,
" = \"", 4);
7080 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7081 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7088 pm_buffer_append_string(output_buffer,
"@ PostExecutionNode (location: ", 31);
7089 prettyprint_location(output_buffer, parser, &node->
location);
7090 pm_buffer_append_string(output_buffer,
")\n", 2);
7094 pm_buffer_concat(output_buffer, prefix_buffer);
7095 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
7097 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7099 pm_buffer_append_byte(output_buffer,
'\n');
7101 size_t prefix_length = prefix_buffer->
length;
7102 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7103 pm_buffer_concat(output_buffer, prefix_buffer);
7105 prefix_buffer->
length = prefix_length;
7111 pm_buffer_concat(output_buffer, prefix_buffer);
7112 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
7114 pm_buffer_append_byte(output_buffer,
' ');
7115 prettyprint_location(output_buffer, parser, location);
7116 pm_buffer_append_string(output_buffer,
" = \"", 4);
7117 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7118 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7123 pm_buffer_concat(output_buffer, prefix_buffer);
7124 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
7126 pm_buffer_append_byte(output_buffer,
' ');
7127 prettyprint_location(output_buffer, parser, location);
7128 pm_buffer_append_string(output_buffer,
" = \"", 4);
7129 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7130 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7135 pm_buffer_concat(output_buffer, prefix_buffer);
7136 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
7138 pm_buffer_append_byte(output_buffer,
' ');
7139 prettyprint_location(output_buffer, parser, location);
7140 pm_buffer_append_string(output_buffer,
" = \"", 4);
7141 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7142 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7149 pm_buffer_append_string(output_buffer,
"@ PreExecutionNode (location: ", 30);
7150 prettyprint_location(output_buffer, parser, &node->
location);
7151 pm_buffer_append_string(output_buffer,
")\n", 2);
7155 pm_buffer_concat(output_buffer, prefix_buffer);
7156 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
7158 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7160 pm_buffer_append_byte(output_buffer,
'\n');
7162 size_t prefix_length = prefix_buffer->
length;
7163 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7164 pm_buffer_concat(output_buffer, prefix_buffer);
7166 prefix_buffer->
length = prefix_length;
7172 pm_buffer_concat(output_buffer, prefix_buffer);
7173 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
7175 pm_buffer_append_byte(output_buffer,
' ');
7176 prettyprint_location(output_buffer, parser, location);
7177 pm_buffer_append_string(output_buffer,
" = \"", 4);
7178 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7179 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7184 pm_buffer_concat(output_buffer, prefix_buffer);
7185 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
7187 pm_buffer_append_byte(output_buffer,
' ');
7188 prettyprint_location(output_buffer, parser, location);
7189 pm_buffer_append_string(output_buffer,
" = \"", 4);
7190 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7191 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7196 pm_buffer_concat(output_buffer, prefix_buffer);
7197 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
7199 pm_buffer_append_byte(output_buffer,
' ');
7200 prettyprint_location(output_buffer, parser, location);
7201 pm_buffer_append_string(output_buffer,
" = \"", 4);
7202 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7203 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7210 pm_buffer_append_string(output_buffer,
"@ ProgramNode (location: ", 25);
7211 prettyprint_location(output_buffer, parser, &node->
location);
7212 pm_buffer_append_string(output_buffer,
")\n", 2);
7216 pm_buffer_concat(output_buffer, prefix_buffer);
7217 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
7218 pm_buffer_append_string(output_buffer,
" [", 2);
7219 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
7220 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
7221 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
7223 pm_buffer_append_string(output_buffer,
"]\n", 2);
7228 pm_buffer_concat(output_buffer, prefix_buffer);
7229 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
7230 pm_buffer_append_byte(output_buffer,
'\n');
7232 size_t prefix_length = prefix_buffer->
length;
7233 pm_buffer_append_string(prefix_buffer,
" ", 4);
7234 pm_buffer_concat(output_buffer, prefix_buffer);
7236 prefix_buffer->
length = prefix_length;
7243 pm_buffer_append_string(output_buffer,
"@ RangeNode (location: ", 23);
7244 prettyprint_location(output_buffer, parser, &node->
location);
7245 pm_buffer_append_string(output_buffer,
")\n", 2);
7249 pm_buffer_concat(output_buffer, prefix_buffer);
7250 pm_buffer_append_string(output_buffer,
"+-- RangeFlags:", 15);
7253 if (found) pm_buffer_append_byte(output_buffer,
',');
7254 pm_buffer_append_string(output_buffer,
" exclude_end", 12);
7257 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7258 pm_buffer_append_byte(output_buffer,
'\n');
7263 pm_buffer_concat(output_buffer, prefix_buffer);
7264 pm_buffer_append_string(output_buffer,
"+-- left:", 9);
7265 if (cast->
left == NULL) {
7266 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7268 pm_buffer_append_byte(output_buffer,
'\n');
7270 size_t prefix_length = prefix_buffer->
length;
7271 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7272 pm_buffer_concat(output_buffer, prefix_buffer);
7273 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
7274 prefix_buffer->
length = prefix_length;
7280 pm_buffer_concat(output_buffer, prefix_buffer);
7281 pm_buffer_append_string(output_buffer,
"+-- right:", 10);
7282 if (cast->
right == NULL) {
7283 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7285 pm_buffer_append_byte(output_buffer,
'\n');
7287 size_t prefix_length = prefix_buffer->
length;
7288 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7289 pm_buffer_concat(output_buffer, prefix_buffer);
7290 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
7291 prefix_buffer->
length = prefix_length;
7297 pm_buffer_concat(output_buffer, prefix_buffer);
7298 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
7300 pm_buffer_append_byte(output_buffer,
' ');
7301 prettyprint_location(output_buffer, parser, location);
7302 pm_buffer_append_string(output_buffer,
" = \"", 4);
7303 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7304 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7311 pm_buffer_append_string(output_buffer,
"@ RationalNode (location: ", 26);
7312 prettyprint_location(output_buffer, parser, &node->
location);
7313 pm_buffer_append_string(output_buffer,
")\n", 2);
7317 pm_buffer_concat(output_buffer, prefix_buffer);
7318 pm_buffer_append_string(output_buffer,
"+-- IntegerBaseFlags:", 21);
7321 if (found) pm_buffer_append_byte(output_buffer,
',');
7322 pm_buffer_append_string(output_buffer,
" binary", 7);
7326 if (found) pm_buffer_append_byte(output_buffer,
',');
7327 pm_buffer_append_string(output_buffer,
" decimal", 8);
7331 if (found) pm_buffer_append_byte(output_buffer,
',');
7332 pm_buffer_append_string(output_buffer,
" octal", 6);
7336 if (found) pm_buffer_append_byte(output_buffer,
',');
7337 pm_buffer_append_string(output_buffer,
" hexadecimal", 12);
7340 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7341 pm_buffer_append_byte(output_buffer,
'\n');
7346 pm_buffer_concat(output_buffer, prefix_buffer);
7347 pm_buffer_append_string(output_buffer,
"+-- numerator:", 14);
7349 pm_buffer_append_byte(output_buffer,
' ');
7350 pm_integer_string(output_buffer, integer);
7351 pm_buffer_append_byte(output_buffer,
'\n');
7356 pm_buffer_concat(output_buffer, prefix_buffer);
7357 pm_buffer_append_string(output_buffer,
"+-- denominator:", 16);
7359 pm_buffer_append_byte(output_buffer,
' ');
7360 pm_integer_string(output_buffer, integer);
7361 pm_buffer_append_byte(output_buffer,
'\n');
7367 pm_buffer_append_string(output_buffer,
"@ RedoNode (location: ", 22);
7368 prettyprint_location(output_buffer, parser, &node->
location);
7369 pm_buffer_append_string(output_buffer,
")\n", 2);
7375 pm_buffer_append_string(output_buffer,
"@ RegularExpressionNode (location: ", 35);
7376 prettyprint_location(output_buffer, parser, &node->
location);
7377 pm_buffer_append_string(output_buffer,
")\n", 2);
7381 pm_buffer_concat(output_buffer, prefix_buffer);
7382 pm_buffer_append_string(output_buffer,
"+-- RegularExpressionFlags:", 27);
7385 if (found) pm_buffer_append_byte(output_buffer,
',');
7386 pm_buffer_append_string(output_buffer,
" ignore_case", 12);
7390 if (found) pm_buffer_append_byte(output_buffer,
',');
7391 pm_buffer_append_string(output_buffer,
" extended", 9);
7395 if (found) pm_buffer_append_byte(output_buffer,
',');
7396 pm_buffer_append_string(output_buffer,
" multi_line", 11);
7400 if (found) pm_buffer_append_byte(output_buffer,
',');
7401 pm_buffer_append_string(output_buffer,
" once", 5);
7405 if (found) pm_buffer_append_byte(output_buffer,
',');
7406 pm_buffer_append_string(output_buffer,
" euc_jp", 7);
7410 if (found) pm_buffer_append_byte(output_buffer,
',');
7411 pm_buffer_append_string(output_buffer,
" ascii_8bit", 11);
7415 if (found) pm_buffer_append_byte(output_buffer,
',');
7416 pm_buffer_append_string(output_buffer,
" windows_31j", 12);
7420 if (found) pm_buffer_append_byte(output_buffer,
',');
7421 pm_buffer_append_string(output_buffer,
" utf_8", 6);
7425 if (found) pm_buffer_append_byte(output_buffer,
',');
7426 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
7430 if (found) pm_buffer_append_byte(output_buffer,
',');
7431 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
7435 if (found) pm_buffer_append_byte(output_buffer,
',');
7436 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
7439 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7440 pm_buffer_append_byte(output_buffer,
'\n');
7445 pm_buffer_concat(output_buffer, prefix_buffer);
7446 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
7448 pm_buffer_append_byte(output_buffer,
' ');
7449 prettyprint_location(output_buffer, parser, location);
7450 pm_buffer_append_string(output_buffer,
" = \"", 4);
7451 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7452 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7457 pm_buffer_concat(output_buffer, prefix_buffer);
7458 pm_buffer_append_string(output_buffer,
"+-- content_loc:", 16);
7460 pm_buffer_append_byte(output_buffer,
' ');
7461 prettyprint_location(output_buffer, parser, location);
7462 pm_buffer_append_string(output_buffer,
" = \"", 4);
7463 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7464 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7469 pm_buffer_concat(output_buffer, prefix_buffer);
7470 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
7472 pm_buffer_append_byte(output_buffer,
' ');
7473 prettyprint_location(output_buffer, parser, location);
7474 pm_buffer_append_string(output_buffer,
" = \"", 4);
7475 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7476 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7481 pm_buffer_concat(output_buffer, prefix_buffer);
7482 pm_buffer_append_string(output_buffer,
"+-- unescaped:", 14);
7483 pm_buffer_append_string(output_buffer,
" \"", 2);
7484 pm_buffer_append_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped), PM_BUFFER_ESCAPING_RUBY);
7485 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7492 pm_buffer_append_string(output_buffer,
"@ RequiredKeywordParameterNode (location: ", 42);
7493 prettyprint_location(output_buffer, parser, &node->
location);
7494 pm_buffer_append_string(output_buffer,
")\n", 2);
7498 pm_buffer_concat(output_buffer, prefix_buffer);
7499 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
7502 if (found) pm_buffer_append_byte(output_buffer,
',');
7503 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
7506 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7507 pm_buffer_append_byte(output_buffer,
'\n');
7512 pm_buffer_concat(output_buffer, prefix_buffer);
7513 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
7514 pm_buffer_append_byte(output_buffer,
' ');
7515 prettyprint_constant(output_buffer, parser, cast->
name);
7516 pm_buffer_append_byte(output_buffer,
'\n');
7521 pm_buffer_concat(output_buffer, prefix_buffer);
7522 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
7524 pm_buffer_append_byte(output_buffer,
' ');
7525 prettyprint_location(output_buffer, parser, location);
7526 pm_buffer_append_string(output_buffer,
" = \"", 4);
7527 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7528 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7535 pm_buffer_append_string(output_buffer,
"@ RequiredParameterNode (location: ", 35);
7536 prettyprint_location(output_buffer, parser, &node->
location);
7537 pm_buffer_append_string(output_buffer,
")\n", 2);
7541 pm_buffer_concat(output_buffer, prefix_buffer);
7542 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
7545 if (found) pm_buffer_append_byte(output_buffer,
',');
7546 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
7549 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7550 pm_buffer_append_byte(output_buffer,
'\n');
7555 pm_buffer_concat(output_buffer, prefix_buffer);
7556 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
7557 pm_buffer_append_byte(output_buffer,
' ');
7558 prettyprint_constant(output_buffer, parser, cast->
name);
7559 pm_buffer_append_byte(output_buffer,
'\n');
7566 pm_buffer_append_string(output_buffer,
"@ RescueModifierNode (location: ", 32);
7567 prettyprint_location(output_buffer, parser, &node->
location);
7568 pm_buffer_append_string(output_buffer,
")\n", 2);
7572 pm_buffer_concat(output_buffer, prefix_buffer);
7573 pm_buffer_append_string(output_buffer,
"+-- expression:", 15);
7574 pm_buffer_append_byte(output_buffer,
'\n');
7576 size_t prefix_length = prefix_buffer->
length;
7577 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7578 pm_buffer_concat(output_buffer, prefix_buffer);
7580 prefix_buffer->
length = prefix_length;
7585 pm_buffer_concat(output_buffer, prefix_buffer);
7586 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
7588 pm_buffer_append_byte(output_buffer,
' ');
7589 prettyprint_location(output_buffer, parser, location);
7590 pm_buffer_append_string(output_buffer,
" = \"", 4);
7591 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7592 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7597 pm_buffer_concat(output_buffer, prefix_buffer);
7598 pm_buffer_append_string(output_buffer,
"+-- rescue_expression:", 22);
7599 pm_buffer_append_byte(output_buffer,
'\n');
7601 size_t prefix_length = prefix_buffer->
length;
7602 pm_buffer_append_string(prefix_buffer,
" ", 4);
7603 pm_buffer_concat(output_buffer, prefix_buffer);
7605 prefix_buffer->
length = prefix_length;
7612 pm_buffer_append_string(output_buffer,
"@ RescueNode (location: ", 24);
7613 prettyprint_location(output_buffer, parser, &node->
location);
7614 pm_buffer_append_string(output_buffer,
")\n", 2);
7618 pm_buffer_concat(output_buffer, prefix_buffer);
7619 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
7621 pm_buffer_append_byte(output_buffer,
' ');
7622 prettyprint_location(output_buffer, parser, location);
7623 pm_buffer_append_string(output_buffer,
" = \"", 4);
7624 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7625 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7630 pm_buffer_concat(output_buffer, prefix_buffer);
7631 pm_buffer_append_string(output_buffer,
"+-- exceptions:", 15);
7632 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
exceptions.
size));
7635 for (uint32_t index = 0; index < last_index; index++) {
7636 size_t prefix_length = prefix_buffer->
length;
7637 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7638 pm_buffer_concat(output_buffer, prefix_buffer);
7639 pm_buffer_append_string(output_buffer,
"+-- ", 4);
7640 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
7642 prefix_buffer->
length = prefix_length;
7648 pm_buffer_concat(output_buffer, prefix_buffer);
7649 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
7651 if (location->
start == NULL) {
7652 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7654 pm_buffer_append_byte(output_buffer,
' ');
7655 prettyprint_location(output_buffer, parser, location);
7656 pm_buffer_append_string(output_buffer,
" = \"", 4);
7657 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7658 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7664 pm_buffer_concat(output_buffer, prefix_buffer);
7665 pm_buffer_append_string(output_buffer,
"+-- reference:", 14);
7667 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7669 pm_buffer_append_byte(output_buffer,
'\n');
7671 size_t prefix_length = prefix_buffer->
length;
7672 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7673 pm_buffer_concat(output_buffer, prefix_buffer);
7674 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
reference, prefix_buffer);
7675 prefix_buffer->
length = prefix_length;
7681 pm_buffer_concat(output_buffer, prefix_buffer);
7682 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
7684 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7686 pm_buffer_append_byte(output_buffer,
'\n');
7688 size_t prefix_length = prefix_buffer->
length;
7689 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7690 pm_buffer_concat(output_buffer, prefix_buffer);
7692 prefix_buffer->
length = prefix_length;
7698 pm_buffer_concat(output_buffer, prefix_buffer);
7699 pm_buffer_append_string(output_buffer,
"+-- subsequent:", 15);
7701 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7703 pm_buffer_append_byte(output_buffer,
'\n');
7705 size_t prefix_length = prefix_buffer->
length;
7706 pm_buffer_append_string(prefix_buffer,
" ", 4);
7707 pm_buffer_concat(output_buffer, prefix_buffer);
7709 prefix_buffer->
length = prefix_length;
7717 pm_buffer_append_string(output_buffer,
"@ RestParameterNode (location: ", 31);
7718 prettyprint_location(output_buffer, parser, &node->
location);
7719 pm_buffer_append_string(output_buffer,
")\n", 2);
7723 pm_buffer_concat(output_buffer, prefix_buffer);
7724 pm_buffer_append_string(output_buffer,
"+-- ParameterFlags:", 19);
7727 if (found) pm_buffer_append_byte(output_buffer,
',');
7728 pm_buffer_append_string(output_buffer,
" repeated_parameter", 19);
7731 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7732 pm_buffer_append_byte(output_buffer,
'\n');
7737 pm_buffer_concat(output_buffer, prefix_buffer);
7738 pm_buffer_append_string(output_buffer,
"+-- name:", 9);
7739 if (cast->
name == 0) {
7740 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7742 pm_buffer_append_byte(output_buffer,
' ');
7743 prettyprint_constant(output_buffer, parser, cast->
name);
7744 pm_buffer_append_byte(output_buffer,
'\n');
7750 pm_buffer_concat(output_buffer, prefix_buffer);
7751 pm_buffer_append_string(output_buffer,
"+-- name_loc:", 13);
7753 if (location->
start == NULL) {
7754 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7756 pm_buffer_append_byte(output_buffer,
' ');
7757 prettyprint_location(output_buffer, parser, location);
7758 pm_buffer_append_string(output_buffer,
" = \"", 4);
7759 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7760 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7766 pm_buffer_concat(output_buffer, prefix_buffer);
7767 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
7769 pm_buffer_append_byte(output_buffer,
' ');
7770 prettyprint_location(output_buffer, parser, location);
7771 pm_buffer_append_string(output_buffer,
" = \"", 4);
7772 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7773 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7779 pm_buffer_append_string(output_buffer,
"@ RetryNode (location: ", 23);
7780 prettyprint_location(output_buffer, parser, &node->
location);
7781 pm_buffer_append_string(output_buffer,
")\n", 2);
7787 pm_buffer_append_string(output_buffer,
"@ ReturnNode (location: ", 24);
7788 prettyprint_location(output_buffer, parser, &node->
location);
7789 pm_buffer_append_string(output_buffer,
")\n", 2);
7793 pm_buffer_concat(output_buffer, prefix_buffer);
7794 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
7796 pm_buffer_append_byte(output_buffer,
' ');
7797 prettyprint_location(output_buffer, parser, location);
7798 pm_buffer_append_string(output_buffer,
" = \"", 4);
7799 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7800 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7805 pm_buffer_concat(output_buffer, prefix_buffer);
7806 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
7808 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7810 pm_buffer_append_byte(output_buffer,
'\n');
7812 size_t prefix_length = prefix_buffer->
length;
7813 pm_buffer_append_string(prefix_buffer,
" ", 4);
7814 pm_buffer_concat(output_buffer, prefix_buffer);
7815 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
7816 prefix_buffer->
length = prefix_length;
7823 pm_buffer_append_string(output_buffer,
"@ SelfNode (location: ", 22);
7824 prettyprint_location(output_buffer, parser, &node->
location);
7825 pm_buffer_append_string(output_buffer,
")\n", 2);
7831 pm_buffer_append_string(output_buffer,
"@ ShareableConstantNode (location: ", 35);
7832 prettyprint_location(output_buffer, parser, &node->
location);
7833 pm_buffer_append_string(output_buffer,
")\n", 2);
7837 pm_buffer_concat(output_buffer, prefix_buffer);
7838 pm_buffer_append_string(output_buffer,
"+-- ShareableConstantNodeFlags:", 31);
7841 if (found) pm_buffer_append_byte(output_buffer,
',');
7842 pm_buffer_append_string(output_buffer,
" literal", 8);
7846 if (found) pm_buffer_append_byte(output_buffer,
',');
7847 pm_buffer_append_string(output_buffer,
" experimental_everything", 24);
7851 if (found) pm_buffer_append_byte(output_buffer,
',');
7852 pm_buffer_append_string(output_buffer,
" experimental_copy", 18);
7855 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7856 pm_buffer_append_byte(output_buffer,
'\n');
7861 pm_buffer_concat(output_buffer, prefix_buffer);
7862 pm_buffer_append_string(output_buffer,
"+-- write:", 10);
7863 pm_buffer_append_byte(output_buffer,
'\n');
7865 size_t prefix_length = prefix_buffer->
length;
7866 pm_buffer_append_string(prefix_buffer,
" ", 4);
7867 pm_buffer_concat(output_buffer, prefix_buffer);
7868 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
write, prefix_buffer);
7869 prefix_buffer->
length = prefix_length;
7876 pm_buffer_append_string(output_buffer,
"@ SingletonClassNode (location: ", 32);
7877 prettyprint_location(output_buffer, parser, &node->
location);
7878 pm_buffer_append_string(output_buffer,
")\n", 2);
7882 pm_buffer_concat(output_buffer, prefix_buffer);
7883 pm_buffer_append_string(output_buffer,
"+-- locals:", 11);
7884 pm_buffer_append_string(output_buffer,
" [", 2);
7885 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
7886 if (index != 0) pm_buffer_append_string(output_buffer,
", ", 2);
7887 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
7889 pm_buffer_append_string(output_buffer,
"]\n", 2);
7894 pm_buffer_concat(output_buffer, prefix_buffer);
7895 pm_buffer_append_string(output_buffer,
"+-- class_keyword_loc:", 22);
7897 pm_buffer_append_byte(output_buffer,
' ');
7898 prettyprint_location(output_buffer, parser, location);
7899 pm_buffer_append_string(output_buffer,
" = \"", 4);
7900 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7901 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7906 pm_buffer_concat(output_buffer, prefix_buffer);
7907 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
7909 pm_buffer_append_byte(output_buffer,
' ');
7910 prettyprint_location(output_buffer, parser, location);
7911 pm_buffer_append_string(output_buffer,
" = \"", 4);
7912 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7913 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7918 pm_buffer_concat(output_buffer, prefix_buffer);
7919 pm_buffer_append_string(output_buffer,
"+-- expression:", 15);
7920 pm_buffer_append_byte(output_buffer,
'\n');
7922 size_t prefix_length = prefix_buffer->
length;
7923 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7924 pm_buffer_concat(output_buffer, prefix_buffer);
7926 prefix_buffer->
length = prefix_length;
7931 pm_buffer_concat(output_buffer, prefix_buffer);
7932 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
7933 if (cast->
body == NULL) {
7934 pm_buffer_append_string(output_buffer,
" nil\n", 5);
7936 pm_buffer_append_byte(output_buffer,
'\n');
7938 size_t prefix_length = prefix_buffer->
length;
7939 pm_buffer_append_string(prefix_buffer,
"| ", 4);
7940 pm_buffer_concat(output_buffer, prefix_buffer);
7941 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
7942 prefix_buffer->
length = prefix_length;
7948 pm_buffer_concat(output_buffer, prefix_buffer);
7949 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
7951 pm_buffer_append_byte(output_buffer,
' ');
7952 prettyprint_location(output_buffer, parser, location);
7953 pm_buffer_append_string(output_buffer,
" = \"", 4);
7954 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
7955 pm_buffer_append_string(output_buffer,
"\"\n", 2);
7961 pm_buffer_append_string(output_buffer,
"@ SourceEncodingNode (location: ", 32);
7962 prettyprint_location(output_buffer, parser, &node->
location);
7963 pm_buffer_append_string(output_buffer,
")\n", 2);
7969 pm_buffer_append_string(output_buffer,
"@ SourceFileNode (location: ", 28);
7970 prettyprint_location(output_buffer, parser, &node->
location);
7971 pm_buffer_append_string(output_buffer,
")\n", 2);
7975 pm_buffer_concat(output_buffer, prefix_buffer);
7976 pm_buffer_append_string(output_buffer,
"+-- StringFlags:", 16);
7979 if (found) pm_buffer_append_byte(output_buffer,
',');
7980 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
7984 if (found) pm_buffer_append_byte(output_buffer,
',');
7985 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
7989 if (found) pm_buffer_append_byte(output_buffer,
',');
7990 pm_buffer_append_string(output_buffer,
" frozen", 7);
7994 if (found) pm_buffer_append_byte(output_buffer,
',');
7995 pm_buffer_append_string(output_buffer,
" mutable", 8);
7998 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
7999 pm_buffer_append_byte(output_buffer,
'\n');
8004 pm_buffer_concat(output_buffer, prefix_buffer);
8005 pm_buffer_append_string(output_buffer,
"+-- filepath:", 13);
8006 pm_buffer_append_string(output_buffer,
" \"", 2);
8007 pm_buffer_append_source(output_buffer, pm_string_source(&cast->
filepath), pm_string_length(&cast->
filepath), PM_BUFFER_ESCAPING_RUBY);
8008 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8014 pm_buffer_append_string(output_buffer,
"@ SourceLineNode (location: ", 28);
8015 prettyprint_location(output_buffer, parser, &node->
location);
8016 pm_buffer_append_string(output_buffer,
")\n", 2);
8022 pm_buffer_append_string(output_buffer,
"@ SplatNode (location: ", 23);
8023 prettyprint_location(output_buffer, parser, &node->
location);
8024 pm_buffer_append_string(output_buffer,
")\n", 2);
8028 pm_buffer_concat(output_buffer, prefix_buffer);
8029 pm_buffer_append_string(output_buffer,
"+-- operator_loc:", 17);
8031 pm_buffer_append_byte(output_buffer,
' ');
8032 prettyprint_location(output_buffer, parser, location);
8033 pm_buffer_append_string(output_buffer,
" = \"", 4);
8034 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8035 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8040 pm_buffer_concat(output_buffer, prefix_buffer);
8041 pm_buffer_append_string(output_buffer,
"+-- expression:", 15);
8043 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8045 pm_buffer_append_byte(output_buffer,
'\n');
8047 size_t prefix_length = prefix_buffer->
length;
8048 pm_buffer_append_string(prefix_buffer,
" ", 4);
8049 pm_buffer_concat(output_buffer, prefix_buffer);
8051 prefix_buffer->
length = prefix_length;
8059 pm_buffer_append_string(output_buffer,
"@ StatementsNode (location: ", 28);
8060 prettyprint_location(output_buffer, parser, &node->
location);
8061 pm_buffer_append_string(output_buffer,
")\n", 2);
8065 pm_buffer_concat(output_buffer, prefix_buffer);
8066 pm_buffer_append_string(output_buffer,
"+-- body:", 9);
8067 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
body.
size));
8069 size_t last_index = cast->
body.
size;
8070 for (uint32_t index = 0; index < last_index; index++) {
8071 size_t prefix_length = prefix_buffer->
length;
8072 pm_buffer_append_string(prefix_buffer,
" ", 4);
8073 pm_buffer_concat(output_buffer, prefix_buffer);
8074 pm_buffer_append_string(output_buffer,
"+-- ", 4);
8075 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
8076 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body.
nodes[index], prefix_buffer);
8077 prefix_buffer->
length = prefix_length;
8085 pm_buffer_append_string(output_buffer,
"@ StringNode (location: ", 24);
8086 prettyprint_location(output_buffer, parser, &node->
location);
8087 pm_buffer_append_string(output_buffer,
")\n", 2);
8091 pm_buffer_concat(output_buffer, prefix_buffer);
8092 pm_buffer_append_string(output_buffer,
"+-- StringFlags:", 16);
8095 if (found) pm_buffer_append_byte(output_buffer,
',');
8096 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
8100 if (found) pm_buffer_append_byte(output_buffer,
',');
8101 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
8105 if (found) pm_buffer_append_byte(output_buffer,
',');
8106 pm_buffer_append_string(output_buffer,
" frozen", 7);
8110 if (found) pm_buffer_append_byte(output_buffer,
',');
8111 pm_buffer_append_string(output_buffer,
" mutable", 8);
8114 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
8115 pm_buffer_append_byte(output_buffer,
'\n');
8120 pm_buffer_concat(output_buffer, prefix_buffer);
8121 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
8123 if (location->
start == NULL) {
8124 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8126 pm_buffer_append_byte(output_buffer,
' ');
8127 prettyprint_location(output_buffer, parser, location);
8128 pm_buffer_append_string(output_buffer,
" = \"", 4);
8129 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8130 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8136 pm_buffer_concat(output_buffer, prefix_buffer);
8137 pm_buffer_append_string(output_buffer,
"+-- content_loc:", 16);
8139 pm_buffer_append_byte(output_buffer,
' ');
8140 prettyprint_location(output_buffer, parser, location);
8141 pm_buffer_append_string(output_buffer,
" = \"", 4);
8142 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8143 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8148 pm_buffer_concat(output_buffer, prefix_buffer);
8149 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
8151 if (location->
start == NULL) {
8152 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8154 pm_buffer_append_byte(output_buffer,
' ');
8155 prettyprint_location(output_buffer, parser, location);
8156 pm_buffer_append_string(output_buffer,
" = \"", 4);
8157 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8158 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8164 pm_buffer_concat(output_buffer, prefix_buffer);
8165 pm_buffer_append_string(output_buffer,
"+-- unescaped:", 14);
8166 pm_buffer_append_string(output_buffer,
" \"", 2);
8167 pm_buffer_append_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped), PM_BUFFER_ESCAPING_RUBY);
8168 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8175 pm_buffer_append_string(output_buffer,
"@ SuperNode (location: ", 23);
8176 prettyprint_location(output_buffer, parser, &node->
location);
8177 pm_buffer_append_string(output_buffer,
")\n", 2);
8181 pm_buffer_concat(output_buffer, prefix_buffer);
8182 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8184 pm_buffer_append_byte(output_buffer,
' ');
8185 prettyprint_location(output_buffer, parser, location);
8186 pm_buffer_append_string(output_buffer,
" = \"", 4);
8187 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8188 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8193 pm_buffer_concat(output_buffer, prefix_buffer);
8194 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
8196 if (location->
start == NULL) {
8197 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8199 pm_buffer_append_byte(output_buffer,
' ');
8200 prettyprint_location(output_buffer, parser, location);
8201 pm_buffer_append_string(output_buffer,
" = \"", 4);
8202 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8203 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8209 pm_buffer_concat(output_buffer, prefix_buffer);
8210 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
8212 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8214 pm_buffer_append_byte(output_buffer,
'\n');
8216 size_t prefix_length = prefix_buffer->
length;
8217 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8218 pm_buffer_concat(output_buffer, prefix_buffer);
8219 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
8220 prefix_buffer->
length = prefix_length;
8226 pm_buffer_concat(output_buffer, prefix_buffer);
8227 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
8229 if (location->
start == NULL) {
8230 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8232 pm_buffer_append_byte(output_buffer,
' ');
8233 prettyprint_location(output_buffer, parser, location);
8234 pm_buffer_append_string(output_buffer,
" = \"", 4);
8235 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8236 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8242 pm_buffer_concat(output_buffer, prefix_buffer);
8243 pm_buffer_append_string(output_buffer,
"+-- block:", 10);
8244 if (cast->
block == NULL) {
8245 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8247 pm_buffer_append_byte(output_buffer,
'\n');
8249 size_t prefix_length = prefix_buffer->
length;
8250 pm_buffer_append_string(prefix_buffer,
" ", 4);
8251 pm_buffer_concat(output_buffer, prefix_buffer);
8252 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
8253 prefix_buffer->
length = prefix_length;
8261 pm_buffer_append_string(output_buffer,
"@ SymbolNode (location: ", 24);
8262 prettyprint_location(output_buffer, parser, &node->
location);
8263 pm_buffer_append_string(output_buffer,
")\n", 2);
8267 pm_buffer_concat(output_buffer, prefix_buffer);
8268 pm_buffer_append_string(output_buffer,
"+-- SymbolFlags:", 16);
8271 if (found) pm_buffer_append_byte(output_buffer,
',');
8272 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
8276 if (found) pm_buffer_append_byte(output_buffer,
',');
8277 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
8281 if (found) pm_buffer_append_byte(output_buffer,
',');
8282 pm_buffer_append_string(output_buffer,
" forced_us_ascii_encoding", 25);
8285 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
8286 pm_buffer_append_byte(output_buffer,
'\n');
8291 pm_buffer_concat(output_buffer, prefix_buffer);
8292 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
8294 if (location->
start == NULL) {
8295 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8297 pm_buffer_append_byte(output_buffer,
' ');
8298 prettyprint_location(output_buffer, parser, location);
8299 pm_buffer_append_string(output_buffer,
" = \"", 4);
8300 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8301 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8307 pm_buffer_concat(output_buffer, prefix_buffer);
8308 pm_buffer_append_string(output_buffer,
"+-- value_loc:", 14);
8310 if (location->
start == NULL) {
8311 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8313 pm_buffer_append_byte(output_buffer,
' ');
8314 prettyprint_location(output_buffer, parser, location);
8315 pm_buffer_append_string(output_buffer,
" = \"", 4);
8316 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8317 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8323 pm_buffer_concat(output_buffer, prefix_buffer);
8324 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
8326 if (location->
start == NULL) {
8327 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8329 pm_buffer_append_byte(output_buffer,
' ');
8330 prettyprint_location(output_buffer, parser, location);
8331 pm_buffer_append_string(output_buffer,
" = \"", 4);
8332 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8333 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8339 pm_buffer_concat(output_buffer, prefix_buffer);
8340 pm_buffer_append_string(output_buffer,
"+-- unescaped:", 14);
8341 pm_buffer_append_string(output_buffer,
" \"", 2);
8342 pm_buffer_append_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped), PM_BUFFER_ESCAPING_RUBY);
8343 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8349 pm_buffer_append_string(output_buffer,
"@ TrueNode (location: ", 22);
8350 prettyprint_location(output_buffer, parser, &node->
location);
8351 pm_buffer_append_string(output_buffer,
")\n", 2);
8357 pm_buffer_append_string(output_buffer,
"@ UndefNode (location: ", 23);
8358 prettyprint_location(output_buffer, parser, &node->
location);
8359 pm_buffer_append_string(output_buffer,
")\n", 2);
8363 pm_buffer_concat(output_buffer, prefix_buffer);
8364 pm_buffer_append_string(output_buffer,
"+-- names:", 10);
8365 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
names.
size));
8368 for (uint32_t index = 0; index < last_index; index++) {
8369 size_t prefix_length = prefix_buffer->
length;
8370 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8371 pm_buffer_concat(output_buffer, prefix_buffer);
8372 pm_buffer_append_string(output_buffer,
"+-- ", 4);
8373 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
8374 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
names.
nodes[index], prefix_buffer);
8375 prefix_buffer->
length = prefix_length;
8381 pm_buffer_concat(output_buffer, prefix_buffer);
8382 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8384 pm_buffer_append_byte(output_buffer,
' ');
8385 prettyprint_location(output_buffer, parser, location);
8386 pm_buffer_append_string(output_buffer,
" = \"", 4);
8387 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8388 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8395 pm_buffer_append_string(output_buffer,
"@ UnlessNode (location: ", 24);
8396 prettyprint_location(output_buffer, parser, &node->
location);
8397 pm_buffer_append_string(output_buffer,
")\n", 2);
8401 pm_buffer_concat(output_buffer, prefix_buffer);
8402 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8404 pm_buffer_append_byte(output_buffer,
' ');
8405 prettyprint_location(output_buffer, parser, location);
8406 pm_buffer_append_string(output_buffer,
" = \"", 4);
8407 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8408 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8413 pm_buffer_concat(output_buffer, prefix_buffer);
8414 pm_buffer_append_string(output_buffer,
"+-- predicate:", 14);
8415 pm_buffer_append_byte(output_buffer,
'\n');
8417 size_t prefix_length = prefix_buffer->
length;
8418 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8419 pm_buffer_concat(output_buffer, prefix_buffer);
8420 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8421 prefix_buffer->
length = prefix_length;
8426 pm_buffer_concat(output_buffer, prefix_buffer);
8427 pm_buffer_append_string(output_buffer,
"+-- then_keyword_loc:", 21);
8429 if (location->
start == NULL) {
8430 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8432 pm_buffer_append_byte(output_buffer,
' ');
8433 prettyprint_location(output_buffer, parser, location);
8434 pm_buffer_append_string(output_buffer,
" = \"", 4);
8435 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8436 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8442 pm_buffer_concat(output_buffer, prefix_buffer);
8443 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
8445 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8447 pm_buffer_append_byte(output_buffer,
'\n');
8449 size_t prefix_length = prefix_buffer->
length;
8450 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8451 pm_buffer_concat(output_buffer, prefix_buffer);
8453 prefix_buffer->
length = prefix_length;
8459 pm_buffer_concat(output_buffer, prefix_buffer);
8460 pm_buffer_append_string(output_buffer,
"+-- else_clause:", 16);
8462 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8464 pm_buffer_append_byte(output_buffer,
'\n');
8466 size_t prefix_length = prefix_buffer->
length;
8467 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8468 pm_buffer_concat(output_buffer, prefix_buffer);
8470 prefix_buffer->
length = prefix_length;
8476 pm_buffer_concat(output_buffer, prefix_buffer);
8477 pm_buffer_append_string(output_buffer,
"+-- end_keyword_loc:", 20);
8479 if (location->
start == NULL) {
8480 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8482 pm_buffer_append_byte(output_buffer,
' ');
8483 prettyprint_location(output_buffer, parser, location);
8484 pm_buffer_append_string(output_buffer,
" = \"", 4);
8485 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8486 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8494 pm_buffer_append_string(output_buffer,
"@ UntilNode (location: ", 23);
8495 prettyprint_location(output_buffer, parser, &node->
location);
8496 pm_buffer_append_string(output_buffer,
")\n", 2);
8500 pm_buffer_concat(output_buffer, prefix_buffer);
8501 pm_buffer_append_string(output_buffer,
"+-- LoopFlags:", 14);
8504 if (found) pm_buffer_append_byte(output_buffer,
',');
8505 pm_buffer_append_string(output_buffer,
" begin_modifier", 15);
8508 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
8509 pm_buffer_append_byte(output_buffer,
'\n');
8514 pm_buffer_concat(output_buffer, prefix_buffer);
8515 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8517 pm_buffer_append_byte(output_buffer,
' ');
8518 prettyprint_location(output_buffer, parser, location);
8519 pm_buffer_append_string(output_buffer,
" = \"", 4);
8520 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8521 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8526 pm_buffer_concat(output_buffer, prefix_buffer);
8527 pm_buffer_append_string(output_buffer,
"+-- do_keyword_loc:", 19);
8529 if (location->
start == NULL) {
8530 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8532 pm_buffer_append_byte(output_buffer,
' ');
8533 prettyprint_location(output_buffer, parser, location);
8534 pm_buffer_append_string(output_buffer,
" = \"", 4);
8535 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8536 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8542 pm_buffer_concat(output_buffer, prefix_buffer);
8543 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
8545 if (location->
start == NULL) {
8546 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8548 pm_buffer_append_byte(output_buffer,
' ');
8549 prettyprint_location(output_buffer, parser, location);
8550 pm_buffer_append_string(output_buffer,
" = \"", 4);
8551 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8552 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8558 pm_buffer_concat(output_buffer, prefix_buffer);
8559 pm_buffer_append_string(output_buffer,
"+-- predicate:", 14);
8560 pm_buffer_append_byte(output_buffer,
'\n');
8562 size_t prefix_length = prefix_buffer->
length;
8563 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8564 pm_buffer_concat(output_buffer, prefix_buffer);
8565 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8566 prefix_buffer->
length = prefix_length;
8571 pm_buffer_concat(output_buffer, prefix_buffer);
8572 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
8574 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8576 pm_buffer_append_byte(output_buffer,
'\n');
8578 size_t prefix_length = prefix_buffer->
length;
8579 pm_buffer_append_string(prefix_buffer,
" ", 4);
8580 pm_buffer_concat(output_buffer, prefix_buffer);
8582 prefix_buffer->
length = prefix_length;
8590 pm_buffer_append_string(output_buffer,
"@ WhenNode (location: ", 22);
8591 prettyprint_location(output_buffer, parser, &node->
location);
8592 pm_buffer_append_string(output_buffer,
")\n", 2);
8596 pm_buffer_concat(output_buffer, prefix_buffer);
8597 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8599 pm_buffer_append_byte(output_buffer,
' ');
8600 prettyprint_location(output_buffer, parser, location);
8601 pm_buffer_append_string(output_buffer,
" = \"", 4);
8602 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8603 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8608 pm_buffer_concat(output_buffer, prefix_buffer);
8609 pm_buffer_append_string(output_buffer,
"+-- conditions:", 15);
8610 pm_buffer_append_format(output_buffer,
" (length: %lu)\n", (
unsigned long) (cast->
conditions.
size));
8613 for (uint32_t index = 0; index < last_index; index++) {
8614 size_t prefix_length = prefix_buffer->
length;
8615 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8616 pm_buffer_concat(output_buffer, prefix_buffer);
8617 pm_buffer_append_string(output_buffer,
"+-- ", 4);
8618 pm_buffer_append_string(prefix_buffer, (index == last_index - 1) ?
" " :
"| ", 4);
8620 prefix_buffer->
length = prefix_length;
8626 pm_buffer_concat(output_buffer, prefix_buffer);
8627 pm_buffer_append_string(output_buffer,
"+-- then_keyword_loc:", 21);
8629 if (location->
start == NULL) {
8630 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8632 pm_buffer_append_byte(output_buffer,
' ');
8633 prettyprint_location(output_buffer, parser, location);
8634 pm_buffer_append_string(output_buffer,
" = \"", 4);
8635 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8636 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8642 pm_buffer_concat(output_buffer, prefix_buffer);
8643 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
8645 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8647 pm_buffer_append_byte(output_buffer,
'\n');
8649 size_t prefix_length = prefix_buffer->
length;
8650 pm_buffer_append_string(prefix_buffer,
" ", 4);
8651 pm_buffer_concat(output_buffer, prefix_buffer);
8653 prefix_buffer->
length = prefix_length;
8661 pm_buffer_append_string(output_buffer,
"@ WhileNode (location: ", 23);
8662 prettyprint_location(output_buffer, parser, &node->
location);
8663 pm_buffer_append_string(output_buffer,
")\n", 2);
8667 pm_buffer_concat(output_buffer, prefix_buffer);
8668 pm_buffer_append_string(output_buffer,
"+-- LoopFlags:", 14);
8671 if (found) pm_buffer_append_byte(output_buffer,
',');
8672 pm_buffer_append_string(output_buffer,
" begin_modifier", 15);
8675 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
8676 pm_buffer_append_byte(output_buffer,
'\n');
8681 pm_buffer_concat(output_buffer, prefix_buffer);
8682 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8684 pm_buffer_append_byte(output_buffer,
' ');
8685 prettyprint_location(output_buffer, parser, location);
8686 pm_buffer_append_string(output_buffer,
" = \"", 4);
8687 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8688 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8693 pm_buffer_concat(output_buffer, prefix_buffer);
8694 pm_buffer_append_string(output_buffer,
"+-- do_keyword_loc:", 19);
8696 if (location->
start == NULL) {
8697 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8699 pm_buffer_append_byte(output_buffer,
' ');
8700 prettyprint_location(output_buffer, parser, location);
8701 pm_buffer_append_string(output_buffer,
" = \"", 4);
8702 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8703 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8709 pm_buffer_concat(output_buffer, prefix_buffer);
8710 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
8712 if (location->
start == NULL) {
8713 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8715 pm_buffer_append_byte(output_buffer,
' ');
8716 prettyprint_location(output_buffer, parser, location);
8717 pm_buffer_append_string(output_buffer,
" = \"", 4);
8718 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8719 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8725 pm_buffer_concat(output_buffer, prefix_buffer);
8726 pm_buffer_append_string(output_buffer,
"+-- predicate:", 14);
8727 pm_buffer_append_byte(output_buffer,
'\n');
8729 size_t prefix_length = prefix_buffer->
length;
8730 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8731 pm_buffer_concat(output_buffer, prefix_buffer);
8732 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8733 prefix_buffer->
length = prefix_length;
8738 pm_buffer_concat(output_buffer, prefix_buffer);
8739 pm_buffer_append_string(output_buffer,
"+-- statements:", 15);
8741 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8743 pm_buffer_append_byte(output_buffer,
'\n');
8745 size_t prefix_length = prefix_buffer->
length;
8746 pm_buffer_append_string(prefix_buffer,
" ", 4);
8747 pm_buffer_concat(output_buffer, prefix_buffer);
8749 prefix_buffer->
length = prefix_length;
8757 pm_buffer_append_string(output_buffer,
"@ XStringNode (location: ", 25);
8758 prettyprint_location(output_buffer, parser, &node->
location);
8759 pm_buffer_append_string(output_buffer,
")\n", 2);
8763 pm_buffer_concat(output_buffer, prefix_buffer);
8764 pm_buffer_append_string(output_buffer,
"+-- EncodingFlags:", 18);
8767 if (found) pm_buffer_append_byte(output_buffer,
',');
8768 pm_buffer_append_string(output_buffer,
" forced_utf8_encoding", 21);
8772 if (found) pm_buffer_append_byte(output_buffer,
',');
8773 pm_buffer_append_string(output_buffer,
" forced_binary_encoding", 23);
8776 if (!found) pm_buffer_append_string(output_buffer,
" nil", 4);
8777 pm_buffer_append_byte(output_buffer,
'\n');
8782 pm_buffer_concat(output_buffer, prefix_buffer);
8783 pm_buffer_append_string(output_buffer,
"+-- opening_loc:", 16);
8785 pm_buffer_append_byte(output_buffer,
' ');
8786 prettyprint_location(output_buffer, parser, location);
8787 pm_buffer_append_string(output_buffer,
" = \"", 4);
8788 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8789 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8794 pm_buffer_concat(output_buffer, prefix_buffer);
8795 pm_buffer_append_string(output_buffer,
"+-- content_loc:", 16);
8797 pm_buffer_append_byte(output_buffer,
' ');
8798 prettyprint_location(output_buffer, parser, location);
8799 pm_buffer_append_string(output_buffer,
" = \"", 4);
8800 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8801 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8806 pm_buffer_concat(output_buffer, prefix_buffer);
8807 pm_buffer_append_string(output_buffer,
"+-- closing_loc:", 16);
8809 pm_buffer_append_byte(output_buffer,
' ');
8810 prettyprint_location(output_buffer, parser, location);
8811 pm_buffer_append_string(output_buffer,
" = \"", 4);
8812 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8813 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8818 pm_buffer_concat(output_buffer, prefix_buffer);
8819 pm_buffer_append_string(output_buffer,
"+-- unescaped:", 14);
8820 pm_buffer_append_string(output_buffer,
" \"", 2);
8821 pm_buffer_append_source(output_buffer, pm_string_source(&cast->
unescaped), pm_string_length(&cast->
unescaped), PM_BUFFER_ESCAPING_RUBY);
8822 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8829 pm_buffer_append_string(output_buffer,
"@ YieldNode (location: ", 23);
8830 prettyprint_location(output_buffer, parser, &node->
location);
8831 pm_buffer_append_string(output_buffer,
")\n", 2);
8835 pm_buffer_concat(output_buffer, prefix_buffer);
8836 pm_buffer_append_string(output_buffer,
"+-- keyword_loc:", 16);
8838 pm_buffer_append_byte(output_buffer,
' ');
8839 prettyprint_location(output_buffer, parser, location);
8840 pm_buffer_append_string(output_buffer,
" = \"", 4);
8841 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8842 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8847 pm_buffer_concat(output_buffer, prefix_buffer);
8848 pm_buffer_append_string(output_buffer,
"+-- lparen_loc:", 15);
8850 if (location->
start == NULL) {
8851 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8853 pm_buffer_append_byte(output_buffer,
' ');
8854 prettyprint_location(output_buffer, parser, location);
8855 pm_buffer_append_string(output_buffer,
" = \"", 4);
8856 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8857 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8863 pm_buffer_concat(output_buffer, prefix_buffer);
8864 pm_buffer_append_string(output_buffer,
"+-- arguments:", 14);
8866 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8868 pm_buffer_append_byte(output_buffer,
'\n');
8870 size_t prefix_length = prefix_buffer->
length;
8871 pm_buffer_append_string(prefix_buffer,
"| ", 4);
8872 pm_buffer_concat(output_buffer, prefix_buffer);
8873 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
8874 prefix_buffer->
length = prefix_length;
8880 pm_buffer_concat(output_buffer, prefix_buffer);
8881 pm_buffer_append_string(output_buffer,
"+-- rparen_loc:", 15);
8883 if (location->
start == NULL) {
8884 pm_buffer_append_string(output_buffer,
" nil\n", 5);
8886 pm_buffer_append_byte(output_buffer,
' ');
8887 prettyprint_location(output_buffer, parser, location);
8888 pm_buffer_append_string(output_buffer,
" = \"", 4);
8889 pm_buffer_append_source(output_buffer, location->
start, (
size_t) (location->
end - location->
start), PM_BUFFER_ESCAPING_RUBY);
8890 pm_buffer_append_string(output_buffer,
"\"\n", 2);
8905 prettyprint_node(output_buffer, parser, node, &prefix_buffer);
8906 pm_buffer_free(&prefix_buffer);
@ PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal; only ...
@ PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal; only for...
@ 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_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
@ 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_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
@ 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_IT_PARAMETERS_NODE
ItParametersNode.
@ 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: true comment or --enable-frozen-string-literal
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
#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_IGNORE_VISIBILITY
a call that ignores method visibility
@ 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_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
@ PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS
a keyword hash which only has AssocNode elements all with symbol keys, which means the elements can b...
@ 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_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
@ 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_node_t base
The embedded base node.
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.
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.
pm_node_t base
The embedded base node.
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.
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
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.
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_local_variable_target_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.
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
struct pm_node * predicate
CaseMatchNode::predicate.
struct pm_node * predicate
CaseNode::predicate.
struct pm_else_node * else_clause
CaseNode::else_clause.
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_constant_id_t name
ClassVariableOperatorWriteNode::name.
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
struct pm_node * value
ClassVariableOperatorWriteNode::value.
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
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 binary_operator
ConstantOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
struct pm_node * value
ConstantOperatorWriteNode::value.
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.
pm_location_t name_loc
ConstantPathNode::name_loc.
pm_constant_id_t name
ConstantPathNode::name.
struct pm_node * parent
ConstantPathNode::parent.
ConstantPathOperatorWriteNode.
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
struct pm_node * value
ConstantPathOperatorWriteNode::value.
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_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.
pm_constant_id_t name
ConstantPathTargetNode::name.
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
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.
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 * constant
FindPatternNode::constant.
struct pm_node * right
FindPatternNode::right.
pm_location_t opening_loc
FindPatternNode::opening_loc.
struct pm_node_list requireds
FindPatternNode::requireds.
struct pm_splat_node * left
FindPatternNode::left.
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.
double value
FloatNode::value.
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 binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_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 * 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.
struct pm_node * subsequent
IfNode::subsequent.
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_block_argument_node * block
IndexAndWriteNode::block.
struct pm_node * value
IndexAndWriteNode::value.
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
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.
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
struct pm_node * value
IndexOperatorWriteNode::value.
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
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.
struct pm_block_argument_node * block
IndexOrWriteNode::block.
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.
pm_node_t base
The embedded base node.
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.
struct pm_block_argument_node * block
IndexTargetNode::block.
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_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
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_integer_t value
IntegerNode::value.
pm_node_t base
The embedded base node.
A structure represents an arbitrary-sized integer.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
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.
uint32_t column
The column number.
int32_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.
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
struct pm_node * value
LocalVariableOperatorWriteNode::value.
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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...
int32_t start_line
The line number at the start of the parse.
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.
pm_node_t base
The embedded base node.
pm_integer_t denominator
RationalNode::denominator.
pm_integer_t numerator
RationalNode::numerator.
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_node_t base
The embedded base node.
pm_constant_id_t name
RequiredKeywordParameterNode::name.
pm_constant_id_t name
RequiredParameterNode::name.
pm_node_t base
The embedded base node.
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 * subsequent
RescueNode::subsequent.
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_node_t base
The embedded base node.
pm_location_t operator_loc
RestParameterNode::operator_loc.
pm_location_t keyword_loc
ReturnNode::keyword_loc.
struct pm_arguments_node * arguments
ReturnNode::arguments.
struct pm_node * write
ShareableConstantNode::write.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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.
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_else_node * else_clause
UnlessNode::else_clause.
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.
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
struct pm_statements_node * statements
WhenNode::statements.
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
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.
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
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.