14 #ifdef PRISM_EXCLUDE_PRETTYPRINT
42 prettyprint_location(output_buffer, parser, &node->
location);
51 size_t prefix_length = prefix_buffer->
length;
54 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
new_name, prefix_buffer);
55 prefix_buffer->
length = prefix_length;
64 size_t prefix_length = prefix_buffer->
length;
67 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
old_name, prefix_buffer);
68 prefix_buffer->
length = prefix_length;
77 prettyprint_location(output_buffer, parser, location);
88 prettyprint_location(output_buffer, parser, &node->
location);
97 size_t prefix_length = prefix_buffer->
length;
100 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
new_name, prefix_buffer);
101 prefix_buffer->
length = prefix_length;
110 size_t prefix_length = prefix_buffer->
length;
113 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
old_name, prefix_buffer);
114 prefix_buffer->
length = prefix_length;
123 prettyprint_location(output_buffer, parser, location);
134 prettyprint_location(output_buffer, parser, &node->
location);
143 size_t prefix_length = prefix_buffer->
length;
146 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
147 prefix_buffer->
length = prefix_length;
156 size_t prefix_length = prefix_buffer->
length;
159 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
160 prefix_buffer->
length = prefix_length;
169 prettyprint_location(output_buffer, parser, location);
180 prettyprint_location(output_buffer, parser, &node->
location);
189 size_t prefix_length = prefix_buffer->
length;
192 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
193 prefix_buffer->
length = prefix_length;
202 size_t prefix_length = prefix_buffer->
length;
205 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
206 prefix_buffer->
length = prefix_length;
215 prettyprint_location(output_buffer, parser, location);
226 prettyprint_location(output_buffer, parser, &node->
location);
270 for (uint32_t index = 0; index < last_index; index++) {
271 size_t prefix_length = prefix_buffer->
length;
277 prefix_buffer->
length = prefix_length;
286 prettyprint_location(output_buffer, parser, &node->
location);
310 for (uint32_t index = 0; index < last_index; index++) {
311 size_t prefix_length = prefix_buffer->
length;
317 prefix_buffer->
length = prefix_length;
326 if (location->
start == NULL) {
330 prettyprint_location(output_buffer, parser, location);
342 if (location->
start == NULL) {
346 prettyprint_location(output_buffer, parser, location);
358 prettyprint_location(output_buffer, parser, &node->
location);
370 size_t prefix_length = prefix_buffer->
length;
373 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
374 prefix_buffer->
length = prefix_length;
385 for (uint32_t index = 0; index < last_index; index++) {
386 size_t prefix_length = prefix_buffer->
length;
392 prefix_buffer->
length = prefix_length;
400 if (cast->
rest == NULL) {
405 size_t prefix_length = prefix_buffer->
length;
408 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
409 prefix_buffer->
length = prefix_length;
420 for (uint32_t index = 0; index < last_index; index++) {
421 size_t prefix_length = prefix_buffer->
length;
426 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
posts.
nodes[index], prefix_buffer);
427 prefix_buffer->
length = prefix_length;
436 if (location->
start == NULL) {
440 prettyprint_location(output_buffer, parser, location);
452 if (location->
start == NULL) {
456 prettyprint_location(output_buffer, parser, location);
468 prettyprint_location(output_buffer, parser, &node->
location);
477 size_t prefix_length = prefix_buffer->
length;
480 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
key, prefix_buffer);
481 prefix_buffer->
length = prefix_length;
490 size_t prefix_length = prefix_buffer->
length;
493 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
494 prefix_buffer->
length = prefix_length;
502 if (location->
start == NULL) {
506 prettyprint_location(output_buffer, parser, location);
518 prettyprint_location(output_buffer, parser, &node->
location);
525 if (cast->
value == NULL) {
530 size_t prefix_length = prefix_buffer->
length;
533 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
534 prefix_buffer->
length = prefix_length;
544 prettyprint_location(output_buffer, parser, location);
555 prettyprint_location(output_buffer, parser, &node->
location);
563 prettyprint_constant(output_buffer, parser, cast->
name);
572 prettyprint_location(output_buffer, parser, &node->
location);
580 if (location->
start == NULL) {
584 prettyprint_location(output_buffer, parser, location);
600 size_t prefix_length = prefix_buffer->
length;
604 prefix_buffer->
length = prefix_length;
617 size_t prefix_length = prefix_buffer->
length;
621 prefix_buffer->
length = prefix_length;
634 size_t prefix_length = prefix_buffer->
length;
638 prefix_buffer->
length = prefix_length;
651 size_t prefix_length = prefix_buffer->
length;
655 prefix_buffer->
length = prefix_length;
664 if (location->
start == NULL) {
668 prettyprint_location(output_buffer, parser, location);
680 prettyprint_location(output_buffer, parser, &node->
location);
692 size_t prefix_length = prefix_buffer->
length;
696 prefix_buffer->
length = prefix_length;
706 prettyprint_location(output_buffer, parser, location);
717 prettyprint_location(output_buffer, parser, &node->
location);
739 prettyprint_constant(output_buffer, parser, cast->
name);
748 prettyprint_location(output_buffer, parser, &node->
location);
756 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
758 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
772 size_t prefix_length = prefix_buffer->
length;
776 prefix_buffer->
length = prefix_length;
784 if (cast->
body == NULL) {
789 size_t prefix_length = prefix_buffer->
length;
792 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
793 prefix_buffer->
length = prefix_length;
803 prettyprint_location(output_buffer, parser, location);
815 prettyprint_location(output_buffer, parser, location);
826 prettyprint_location(output_buffer, parser, &node->
location);
847 if (cast->
name == 0) {
851 prettyprint_constant(output_buffer, parser, cast->
name);
861 if (location->
start == NULL) {
865 prettyprint_location(output_buffer, parser, location);
878 prettyprint_location(output_buffer, parser, location);
889 prettyprint_location(output_buffer, parser, &node->
location);
901 size_t prefix_length = prefix_buffer->
length;
905 prefix_buffer->
length = prefix_length;
916 for (uint32_t index = 0; index < last_index; index++) {
917 size_t prefix_length = prefix_buffer->
length;
922 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
locals.
nodes[index], prefix_buffer);
923 prefix_buffer->
length = prefix_length;
932 if (location->
start == NULL) {
936 prettyprint_location(output_buffer, parser, location);
948 if (location->
start == NULL) {
952 prettyprint_location(output_buffer, parser, location);
964 prettyprint_location(output_buffer, parser, &node->
location);
976 size_t prefix_length = prefix_buffer->
length;
979 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
980 prefix_buffer->
length = prefix_length;
990 prettyprint_location(output_buffer, parser, location);
1001 prettyprint_location(output_buffer, parser, &node->
location);
1042 size_t prefix_length = prefix_buffer->
length;
1045 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1046 prefix_buffer->
length = prefix_length;
1055 if (location->
start == NULL) {
1059 prettyprint_location(output_buffer, parser, location);
1071 if (location->
start == NULL) {
1075 prettyprint_location(output_buffer, parser, location);
1087 prettyprint_constant(output_buffer, parser, cast->
read_name);
1096 prettyprint_constant(output_buffer, parser, cast->
write_name);
1106 prettyprint_location(output_buffer, parser, location);
1118 size_t prefix_length = prefix_buffer->
length;
1121 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1122 prefix_buffer->
length = prefix_length;
1130 prettyprint_location(output_buffer, parser, &node->
location);
1171 size_t prefix_length = prefix_buffer->
length;
1174 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1175 prefix_buffer->
length = prefix_length;
1184 if (location->
start == NULL) {
1188 prettyprint_location(output_buffer, parser, location);
1200 prettyprint_constant(output_buffer, parser, cast->
name);
1209 if (location->
start == NULL) {
1213 prettyprint_location(output_buffer, parser, location);
1225 if (location->
start == NULL) {
1229 prettyprint_location(output_buffer, parser, location);
1245 size_t prefix_length = prefix_buffer->
length;
1248 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
1249 prefix_buffer->
length = prefix_length;
1258 if (location->
start == NULL) {
1262 prettyprint_location(output_buffer, parser, location);
1273 if (cast->
block == NULL) {
1278 size_t prefix_length = prefix_buffer->
length;
1281 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
1282 prefix_buffer->
length = prefix_length;
1291 prettyprint_location(output_buffer, parser, &node->
location);
1332 size_t prefix_length = prefix_buffer->
length;
1335 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1336 prefix_buffer->
length = prefix_length;
1345 if (location->
start == NULL) {
1349 prettyprint_location(output_buffer, parser, location);
1361 if (location->
start == NULL) {
1365 prettyprint_location(output_buffer, parser, location);
1377 prettyprint_constant(output_buffer, parser, cast->
read_name);
1386 prettyprint_constant(output_buffer, parser, cast->
write_name);
1405 prettyprint_location(output_buffer, parser, location);
1417 size_t prefix_length = prefix_buffer->
length;
1420 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1421 prefix_buffer->
length = prefix_length;
1429 prettyprint_location(output_buffer, parser, &node->
location);
1470 size_t prefix_length = prefix_buffer->
length;
1473 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1474 prefix_buffer->
length = prefix_length;
1483 if (location->
start == NULL) {
1487 prettyprint_location(output_buffer, parser, location);
1499 if (location->
start == NULL) {
1503 prettyprint_location(output_buffer, parser, location);
1515 prettyprint_constant(output_buffer, parser, cast->
read_name);
1524 prettyprint_constant(output_buffer, parser, cast->
write_name);
1534 prettyprint_location(output_buffer, parser, location);
1546 size_t prefix_length = prefix_buffer->
length;
1549 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1550 prefix_buffer->
length = prefix_length;
1558 prettyprint_location(output_buffer, parser, &node->
location);
1596 size_t prefix_length = prefix_buffer->
length;
1599 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
1600 prefix_buffer->
length = prefix_length;
1609 prettyprint_location(output_buffer, parser, location);
1620 prettyprint_constant(output_buffer, parser, cast->
name);
1630 prettyprint_location(output_buffer, parser, location);
1641 prettyprint_location(output_buffer, parser, &node->
location);
1650 size_t prefix_length = prefix_buffer->
length;
1653 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
1654 prefix_buffer->
length = prefix_length;
1663 size_t prefix_length = prefix_buffer->
length;
1666 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
1667 prefix_buffer->
length = prefix_length;
1676 prettyprint_location(output_buffer, parser, location);
1687 prettyprint_location(output_buffer, parser, &node->
location);
1699 size_t prefix_length = prefix_buffer->
length;
1702 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
1703 prefix_buffer->
length = prefix_length;
1714 for (uint32_t index = 0; index < last_index; index++) {
1715 size_t prefix_length = prefix_buffer->
length;
1721 prefix_buffer->
length = prefix_length;
1734 size_t prefix_length = prefix_buffer->
length;
1738 prefix_buffer->
length = prefix_length;
1748 prettyprint_location(output_buffer, parser, location);
1760 prettyprint_location(output_buffer, parser, location);
1771 prettyprint_location(output_buffer, parser, &node->
location);
1783 size_t prefix_length = prefix_buffer->
length;
1786 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
1787 prefix_buffer->
length = prefix_length;
1798 for (uint32_t index = 0; index < last_index; index++) {
1799 size_t prefix_length = prefix_buffer->
length;
1805 prefix_buffer->
length = prefix_length;
1818 size_t prefix_length = prefix_buffer->
length;
1822 prefix_buffer->
length = prefix_length;
1832 prettyprint_location(output_buffer, parser, location);
1844 prettyprint_location(output_buffer, parser, location);
1855 prettyprint_location(output_buffer, parser, &node->
location);
1863 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
1865 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
1876 prettyprint_location(output_buffer, parser, location);
1888 size_t prefix_length = prefix_buffer->
length;
1892 prefix_buffer->
length = prefix_length;
1900 if (location->
start == NULL) {
1904 prettyprint_location(output_buffer, parser, location);
1920 size_t prefix_length = prefix_buffer->
length;
1924 prefix_buffer->
length = prefix_length;
1932 if (cast->
body == NULL) {
1937 size_t prefix_length = prefix_buffer->
length;
1940 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
1941 prefix_buffer->
length = prefix_length;
1951 prettyprint_location(output_buffer, parser, location);
1962 prettyprint_constant(output_buffer, parser, cast->
name);
1971 prettyprint_location(output_buffer, parser, &node->
location);
1979 prettyprint_constant(output_buffer, parser, cast->
name);
1989 prettyprint_location(output_buffer, parser, location);
2001 prettyprint_location(output_buffer, parser, location);
2013 size_t prefix_length = prefix_buffer->
length;
2016 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2017 prefix_buffer->
length = prefix_length;
2025 prettyprint_location(output_buffer, parser, &node->
location);
2033 prettyprint_constant(output_buffer, parser, cast->
name);
2043 prettyprint_location(output_buffer, parser, location);
2055 prettyprint_location(output_buffer, parser, location);
2067 size_t prefix_length = prefix_buffer->
length;
2070 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2071 prefix_buffer->
length = prefix_length;
2088 prettyprint_location(output_buffer, parser, &node->
location);
2096 prettyprint_constant(output_buffer, parser, cast->
name);
2106 prettyprint_location(output_buffer, parser, location);
2118 prettyprint_location(output_buffer, parser, location);
2130 size_t prefix_length = prefix_buffer->
length;
2133 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2134 prefix_buffer->
length = prefix_length;
2142 prettyprint_location(output_buffer, parser, &node->
location);
2150 prettyprint_constant(output_buffer, parser, cast->
name);
2159 prettyprint_location(output_buffer, parser, &node->
location);
2167 prettyprint_constant(output_buffer, parser, cast->
name);
2176 prettyprint_location(output_buffer, parser, &node->
location);
2184 prettyprint_constant(output_buffer, parser, cast->
name);
2194 prettyprint_location(output_buffer, parser, location);
2206 size_t prefix_length = prefix_buffer->
length;
2209 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2210 prefix_buffer->
length = prefix_length;
2219 prettyprint_location(output_buffer, parser, location);
2230 prettyprint_location(output_buffer, parser, &node->
location);
2238 prettyprint_constant(output_buffer, parser, cast->
name);
2248 prettyprint_location(output_buffer, parser, location);
2260 prettyprint_location(output_buffer, parser, location);
2272 size_t prefix_length = prefix_buffer->
length;
2275 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2276 prefix_buffer->
length = prefix_length;
2284 prettyprint_location(output_buffer, parser, &node->
location);
2292 prettyprint_constant(output_buffer, parser, cast->
name);
2302 prettyprint_location(output_buffer, parser, location);
2314 prettyprint_location(output_buffer, parser, location);
2326 size_t prefix_length = prefix_buffer->
length;
2329 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2330 prefix_buffer->
length = prefix_length;
2347 prettyprint_location(output_buffer, parser, &node->
location);
2355 prettyprint_constant(output_buffer, parser, cast->
name);
2365 prettyprint_location(output_buffer, parser, location);
2377 prettyprint_location(output_buffer, parser, location);
2389 size_t prefix_length = prefix_buffer->
length;
2392 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2393 prefix_buffer->
length = prefix_length;
2401 prettyprint_location(output_buffer, parser, &node->
location);
2410 size_t prefix_length = prefix_buffer->
length;
2413 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2414 prefix_buffer->
length = prefix_length;
2423 prettyprint_location(output_buffer, parser, location);
2435 size_t prefix_length = prefix_buffer->
length;
2438 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2439 prefix_buffer->
length = prefix_length;
2447 prettyprint_location(output_buffer, parser, &node->
location);
2454 if (cast->
parent == NULL) {
2459 size_t prefix_length = prefix_buffer->
length;
2462 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parent, prefix_buffer);
2463 prefix_buffer->
length = prefix_length;
2471 if (cast->
name == 0) {
2475 prettyprint_constant(output_buffer, parser, cast->
name);
2486 prettyprint_location(output_buffer, parser, location);
2498 prettyprint_location(output_buffer, parser, location);
2509 prettyprint_location(output_buffer, parser, &node->
location);
2518 size_t prefix_length = prefix_buffer->
length;
2521 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2522 prefix_buffer->
length = prefix_length;
2531 prettyprint_location(output_buffer, parser, location);
2543 size_t prefix_length = prefix_buffer->
length;
2546 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2547 prefix_buffer->
length = prefix_length;
2564 prettyprint_location(output_buffer, parser, &node->
location);
2573 size_t prefix_length = prefix_buffer->
length;
2576 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2577 prefix_buffer->
length = prefix_length;
2586 prettyprint_location(output_buffer, parser, location);
2598 size_t prefix_length = prefix_buffer->
length;
2601 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2602 prefix_buffer->
length = prefix_length;
2610 prettyprint_location(output_buffer, parser, &node->
location);
2617 if (cast->
parent == NULL) {
2622 size_t prefix_length = prefix_buffer->
length;
2625 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parent, prefix_buffer);
2626 prefix_buffer->
length = prefix_length;
2634 if (cast->
name == 0) {
2638 prettyprint_constant(output_buffer, parser, cast->
name);
2649 prettyprint_location(output_buffer, parser, location);
2661 prettyprint_location(output_buffer, parser, location);
2672 prettyprint_location(output_buffer, parser, &node->
location);
2681 size_t prefix_length = prefix_buffer->
length;
2684 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
target, prefix_buffer);
2685 prefix_buffer->
length = prefix_length;
2694 prettyprint_location(output_buffer, parser, location);
2706 size_t prefix_length = prefix_buffer->
length;
2709 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2710 prefix_buffer->
length = prefix_length;
2718 prettyprint_location(output_buffer, parser, &node->
location);
2726 prettyprint_constant(output_buffer, parser, cast->
name);
2735 prettyprint_location(output_buffer, parser, &node->
location);
2743 prettyprint_constant(output_buffer, parser, cast->
name);
2752 prettyprint_location(output_buffer, parser, &node->
location);
2760 prettyprint_constant(output_buffer, parser, cast->
name);
2770 prettyprint_location(output_buffer, parser, location);
2782 size_t prefix_length = prefix_buffer->
length;
2785 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
2786 prefix_buffer->
length = prefix_length;
2795 prettyprint_location(output_buffer, parser, location);
2806 prettyprint_location(output_buffer, parser, &node->
location);
2814 prettyprint_constant(output_buffer, parser, cast->
name);
2824 prettyprint_location(output_buffer, parser, location);
2839 size_t prefix_length = prefix_buffer->
length;
2842 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
2843 prefix_buffer->
length = prefix_length;
2856 size_t prefix_length = prefix_buffer->
length;
2860 prefix_buffer->
length = prefix_length;
2868 if (cast->
body == NULL) {
2873 size_t prefix_length = prefix_buffer->
length;
2876 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
2877 prefix_buffer->
length = prefix_length;
2886 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
2888 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
2899 prettyprint_location(output_buffer, parser, location);
2910 if (location->
start == NULL) {
2914 prettyprint_location(output_buffer, parser, location);
2926 if (location->
start == NULL) {
2930 prettyprint_location(output_buffer, parser, location);
2942 if (location->
start == NULL) {
2946 prettyprint_location(output_buffer, parser, location);
2958 if (location->
start == NULL) {
2962 prettyprint_location(output_buffer, parser, location);
2974 if (location->
start == NULL) {
2978 prettyprint_location(output_buffer, parser, location);
2990 prettyprint_location(output_buffer, parser, &node->
location);
2998 if (location->
start == NULL) {
3002 prettyprint_location(output_buffer, parser, location);
3015 size_t prefix_length = prefix_buffer->
length;
3018 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3019 prefix_buffer->
length = prefix_length;
3027 if (location->
start == NULL) {
3031 prettyprint_location(output_buffer, parser, location);
3044 prettyprint_location(output_buffer, parser, location);
3055 prettyprint_location(output_buffer, parser, &node->
location);
3064 prettyprint_location(output_buffer, parser, location);
3079 size_t prefix_length = prefix_buffer->
length;
3083 prefix_buffer->
length = prefix_length;
3092 if (location->
start == NULL) {
3096 prettyprint_location(output_buffer, parser, location);
3108 prettyprint_location(output_buffer, parser, &node->
location);
3117 prettyprint_location(output_buffer, parser, location);
3132 size_t prefix_length = prefix_buffer->
length;
3136 prefix_buffer->
length = prefix_length;
3146 prettyprint_location(output_buffer, parser, location);
3157 prettyprint_location(output_buffer, parser, &node->
location);
3166 prettyprint_location(output_buffer, parser, location);
3178 size_t prefix_length = prefix_buffer->
length;
3181 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
variable, prefix_buffer);
3182 prefix_buffer->
length = prefix_length;
3190 prettyprint_location(output_buffer, parser, &node->
location);
3199 prettyprint_location(output_buffer, parser, location);
3214 size_t prefix_length = prefix_buffer->
length;
3218 prefix_buffer->
length = prefix_length;
3228 prettyprint_location(output_buffer, parser, location);
3238 prettyprint_location(output_buffer, parser, &node->
location);
3246 prettyprint_location(output_buffer, parser, &node->
location);
3258 size_t prefix_length = prefix_buffer->
length;
3261 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
3262 prefix_buffer->
length = prefix_length;
3272 size_t prefix_length = prefix_buffer->
length;
3275 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
3276 prefix_buffer->
length = prefix_length;
3286 for (uint32_t index = 0; index < last_index; index++) {
3287 size_t prefix_length = prefix_buffer->
length;
3293 prefix_buffer->
length = prefix_length;
3303 size_t prefix_length = prefix_buffer->
length;
3306 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
3307 prefix_buffer->
length = prefix_length;
3315 if (location->
start == NULL) {
3319 prettyprint_location(output_buffer, parser, location);
3331 if (location->
start == NULL) {
3335 prettyprint_location(output_buffer, parser, location);
3347 prettyprint_location(output_buffer, parser, &node->
location);
3368 if (cast->
left == NULL) {
3373 size_t prefix_length = prefix_buffer->
length;
3376 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
3377 prefix_buffer->
length = prefix_length;
3385 if (cast->
right == NULL) {
3390 size_t prefix_length = prefix_buffer->
length;
3393 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
3394 prefix_buffer->
length = prefix_length;
3404 prettyprint_location(output_buffer, parser, location);
3415 prettyprint_location(output_buffer, parser, &node->
location);
3430 prettyprint_location(output_buffer, parser, &node->
location);
3439 size_t prefix_length = prefix_buffer->
length;
3442 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
index, prefix_buffer);
3443 prefix_buffer->
length = prefix_length;
3452 size_t prefix_length = prefix_buffer->
length;
3456 prefix_buffer->
length = prefix_length;
3468 size_t prefix_length = prefix_buffer->
length;
3472 prefix_buffer->
length = prefix_length;
3482 prettyprint_location(output_buffer, parser, location);
3494 prettyprint_location(output_buffer, parser, location);
3505 if (location->
start == NULL) {
3509 prettyprint_location(output_buffer, parser, location);
3522 prettyprint_location(output_buffer, parser, location);
3532 prettyprint_location(output_buffer, parser, &node->
location);
3539 prettyprint_location(output_buffer, parser, &node->
location);
3547 prettyprint_location(output_buffer, parser, &node->
location);
3554 if (cast->
block == NULL) {
3559 size_t prefix_length = prefix_buffer->
length;
3562 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
3563 prefix_buffer->
length = prefix_length;
3572 prettyprint_location(output_buffer, parser, &node->
location);
3580 prettyprint_constant(output_buffer, parser, cast->
name);
3590 prettyprint_location(output_buffer, parser, location);
3602 prettyprint_location(output_buffer, parser, location);
3614 size_t prefix_length = prefix_buffer->
length;
3617 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3618 prefix_buffer->
length = prefix_length;
3626 prettyprint_location(output_buffer, parser, &node->
location);
3634 prettyprint_constant(output_buffer, parser, cast->
name);
3644 prettyprint_location(output_buffer, parser, location);
3656 prettyprint_location(output_buffer, parser, location);
3668 size_t prefix_length = prefix_buffer->
length;
3671 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3672 prefix_buffer->
length = prefix_length;
3689 prettyprint_location(output_buffer, parser, &node->
location);
3697 prettyprint_constant(output_buffer, parser, cast->
name);
3707 prettyprint_location(output_buffer, parser, location);
3719 prettyprint_location(output_buffer, parser, location);
3731 size_t prefix_length = prefix_buffer->
length;
3734 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3735 prefix_buffer->
length = prefix_length;
3743 prettyprint_location(output_buffer, parser, &node->
location);
3751 prettyprint_constant(output_buffer, parser, cast->
name);
3760 prettyprint_location(output_buffer, parser, &node->
location);
3768 prettyprint_constant(output_buffer, parser, cast->
name);
3777 prettyprint_location(output_buffer, parser, &node->
location);
3785 prettyprint_constant(output_buffer, parser, cast->
name);
3795 prettyprint_location(output_buffer, parser, location);
3807 size_t prefix_length = prefix_buffer->
length;
3810 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
3811 prefix_buffer->
length = prefix_length;
3820 prettyprint_location(output_buffer, parser, location);
3831 prettyprint_location(output_buffer, parser, &node->
location);
3840 prettyprint_location(output_buffer, parser, location);
3853 for (uint32_t index = 0; index < last_index; index++) {
3854 size_t prefix_length = prefix_buffer->
length;
3860 prefix_buffer->
length = prefix_length;
3870 prettyprint_location(output_buffer, parser, location);
3881 prettyprint_location(output_buffer, parser, &node->
location);
3893 size_t prefix_length = prefix_buffer->
length;
3896 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
constant, prefix_buffer);
3897 prefix_buffer->
length = prefix_length;
3908 for (uint32_t index = 0; index < last_index; index++) {
3909 size_t prefix_length = prefix_buffer->
length;
3915 prefix_buffer->
length = prefix_length;
3923 if (cast->
rest == NULL) {
3928 size_t prefix_length = prefix_buffer->
length;
3931 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
3932 prefix_buffer->
length = prefix_length;
3941 if (location->
start == NULL) {
3945 prettyprint_location(output_buffer, parser, location);
3957 if (location->
start == NULL) {
3961 prettyprint_location(output_buffer, parser, location);
3973 prettyprint_location(output_buffer, parser, &node->
location);
3981 if (location->
start == NULL) {
3985 prettyprint_location(output_buffer, parser, location);
3998 size_t prefix_length = prefix_buffer->
length;
4001 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
4002 prefix_buffer->
length = prefix_length;
4010 if (location->
start == NULL) {
4014 prettyprint_location(output_buffer, parser, location);
4030 size_t prefix_length = prefix_buffer->
length;
4034 prefix_buffer->
length = prefix_length;
4047 size_t prefix_length = prefix_buffer->
length;
4051 prefix_buffer->
length = prefix_length;
4060 if (location->
start == NULL) {
4064 prettyprint_location(output_buffer, parser, location);
4076 prettyprint_location(output_buffer, parser, &node->
location);
4085 size_t prefix_length = prefix_buffer->
length;
4088 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
numeric, prefix_buffer);
4089 prefix_buffer->
length = prefix_length;
4097 prettyprint_location(output_buffer, parser, &node->
location);
4106 size_t prefix_length = prefix_buffer->
length;
4109 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4110 prefix_buffer->
length = prefix_length;
4117 prettyprint_location(output_buffer, parser, &node->
location);
4125 prettyprint_location(output_buffer, parser, &node->
location);
4134 size_t prefix_length = prefix_buffer->
length;
4137 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
4138 prefix_buffer->
length = prefix_length;
4150 size_t prefix_length = prefix_buffer->
length;
4154 prefix_buffer->
length = prefix_length;
4164 prettyprint_location(output_buffer, parser, location);
4175 if (location->
start == NULL) {
4179 prettyprint_location(output_buffer, parser, location);
4191 prettyprint_location(output_buffer, parser, &node->
location);
4232 size_t prefix_length = prefix_buffer->
length;
4235 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4236 prefix_buffer->
length = prefix_length;
4245 if (location->
start == NULL) {
4249 prettyprint_location(output_buffer, parser, location);
4262 prettyprint_location(output_buffer, parser, location);
4277 size_t prefix_length = prefix_buffer->
length;
4280 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4281 prefix_buffer->
length = prefix_length;
4291 prettyprint_location(output_buffer, parser, location);
4301 if (cast->
block == NULL) {
4306 size_t prefix_length = prefix_buffer->
length;
4309 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4310 prefix_buffer->
length = prefix_length;
4320 prettyprint_location(output_buffer, parser, location);
4332 size_t prefix_length = prefix_buffer->
length;
4335 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4336 prefix_buffer->
length = prefix_length;
4344 prettyprint_location(output_buffer, parser, &node->
location);
4385 size_t prefix_length = prefix_buffer->
length;
4388 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4389 prefix_buffer->
length = prefix_length;
4398 if (location->
start == NULL) {
4402 prettyprint_location(output_buffer, parser, location);
4415 prettyprint_location(output_buffer, parser, location);
4430 size_t prefix_length = prefix_buffer->
length;
4433 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4434 prefix_buffer->
length = prefix_length;
4444 prettyprint_location(output_buffer, parser, location);
4454 if (cast->
block == NULL) {
4459 size_t prefix_length = prefix_buffer->
length;
4462 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4463 prefix_buffer->
length = prefix_length;
4482 prettyprint_location(output_buffer, parser, location);
4494 size_t prefix_length = prefix_buffer->
length;
4497 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4498 prefix_buffer->
length = prefix_length;
4506 prettyprint_location(output_buffer, parser, &node->
location);
4547 size_t prefix_length = prefix_buffer->
length;
4550 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4551 prefix_buffer->
length = prefix_length;
4560 if (location->
start == NULL) {
4564 prettyprint_location(output_buffer, parser, location);
4577 prettyprint_location(output_buffer, parser, location);
4592 size_t prefix_length = prefix_buffer->
length;
4595 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4596 prefix_buffer->
length = prefix_length;
4606 prettyprint_location(output_buffer, parser, location);
4616 if (cast->
block == NULL) {
4621 size_t prefix_length = prefix_buffer->
length;
4624 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4625 prefix_buffer->
length = prefix_length;
4635 prettyprint_location(output_buffer, parser, location);
4647 size_t prefix_length = prefix_buffer->
length;
4650 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4651 prefix_buffer->
length = prefix_length;
4659 prettyprint_location(output_buffer, parser, &node->
location);
4697 size_t prefix_length = prefix_buffer->
length;
4700 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
receiver, prefix_buffer);
4701 prefix_buffer->
length = prefix_length;
4710 prettyprint_location(output_buffer, parser, location);
4725 size_t prefix_length = prefix_buffer->
length;
4728 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
4729 prefix_buffer->
length = prefix_length;
4739 prettyprint_location(output_buffer, parser, location);
4749 if (cast->
block == NULL) {
4754 size_t prefix_length = prefix_buffer->
length;
4757 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
4758 prefix_buffer->
length = prefix_length;
4767 prettyprint_location(output_buffer, parser, &node->
location);
4775 prettyprint_constant(output_buffer, parser, cast->
name);
4785 prettyprint_location(output_buffer, parser, location);
4797 prettyprint_location(output_buffer, parser, location);
4809 size_t prefix_length = prefix_buffer->
length;
4812 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4813 prefix_buffer->
length = prefix_length;
4821 prettyprint_location(output_buffer, parser, &node->
location);
4829 prettyprint_constant(output_buffer, parser, cast->
name);
4839 prettyprint_location(output_buffer, parser, location);
4851 prettyprint_location(output_buffer, parser, location);
4863 size_t prefix_length = prefix_buffer->
length;
4866 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4867 prefix_buffer->
length = prefix_length;
4884 prettyprint_location(output_buffer, parser, &node->
location);
4892 prettyprint_constant(output_buffer, parser, cast->
name);
4902 prettyprint_location(output_buffer, parser, location);
4914 prettyprint_location(output_buffer, parser, location);
4926 size_t prefix_length = prefix_buffer->
length;
4929 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
4930 prefix_buffer->
length = prefix_length;
4938 prettyprint_location(output_buffer, parser, &node->
location);
4946 prettyprint_constant(output_buffer, parser, cast->
name);
4955 prettyprint_location(output_buffer, parser, &node->
location);
4963 prettyprint_constant(output_buffer, parser, cast->
name);
4972 prettyprint_location(output_buffer, parser, &node->
location);
4980 prettyprint_constant(output_buffer, parser, cast->
name);
4990 prettyprint_location(output_buffer, parser, location);
5002 size_t prefix_length = prefix_buffer->
length;
5005 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5006 prefix_buffer->
length = prefix_length;
5015 prettyprint_location(output_buffer, parser, location);
5026 prettyprint_location(output_buffer, parser, &node->
location);
5073 prettyprint_location(output_buffer, parser, &node->
location);
5146 prettyprint_location(output_buffer, parser, location);
5159 for (uint32_t index = 0; index < last_index; index++) {
5160 size_t prefix_length = prefix_buffer->
length;
5165 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5166 prefix_buffer->
length = prefix_length;
5176 prettyprint_location(output_buffer, parser, location);
5187 prettyprint_location(output_buffer, parser, &node->
location);
5260 prettyprint_location(output_buffer, parser, location);
5273 for (uint32_t index = 0; index < last_index; index++) {
5274 size_t prefix_length = prefix_buffer->
length;
5279 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5280 prefix_buffer->
length = prefix_length;
5290 prettyprint_location(output_buffer, parser, location);
5301 prettyprint_location(output_buffer, parser, &node->
location);
5328 if (location->
start == NULL) {
5332 prettyprint_location(output_buffer, parser, location);
5346 for (uint32_t index = 0; index < last_index; index++) {
5347 size_t prefix_length = prefix_buffer->
length;
5352 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5353 prefix_buffer->
length = prefix_length;
5362 if (location->
start == NULL) {
5366 prettyprint_location(output_buffer, parser, location);
5378 prettyprint_location(output_buffer, parser, &node->
location);
5386 if (location->
start == NULL) {
5390 prettyprint_location(output_buffer, parser, location);
5404 for (uint32_t index = 0; index < last_index; index++) {
5405 size_t prefix_length = prefix_buffer->
length;
5410 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5411 prefix_buffer->
length = prefix_length;
5420 if (location->
start == NULL) {
5424 prettyprint_location(output_buffer, parser, location);
5436 prettyprint_location(output_buffer, parser, &node->
location);
5445 prettyprint_location(output_buffer, parser, location);
5458 for (uint32_t index = 0; index < last_index; index++) {
5459 size_t prefix_length = prefix_buffer->
length;
5464 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
parts.
nodes[index], prefix_buffer);
5465 prefix_buffer->
length = prefix_length;
5475 prettyprint_location(output_buffer, parser, location);
5485 prettyprint_location(output_buffer, parser, &node->
location);
5492 prettyprint_location(output_buffer, parser, &node->
location);
5500 prettyprint_location(output_buffer, parser, &node->
location);
5524 for (uint32_t index = 0; index < last_index; index++) {
5525 size_t prefix_length = prefix_buffer->
length;
5531 prefix_buffer->
length = prefix_length;
5540 prettyprint_location(output_buffer, parser, &node->
location);
5561 if (cast->
name == 0) {
5565 prettyprint_constant(output_buffer, parser, cast->
name);
5575 if (location->
start == NULL) {
5579 prettyprint_location(output_buffer, parser, location);
5592 prettyprint_location(output_buffer, parser, location);
5603 prettyprint_location(output_buffer, parser, &node->
location);
5611 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
5613 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
5624 prettyprint_location(output_buffer, parser, location);
5636 prettyprint_location(output_buffer, parser, location);
5648 prettyprint_location(output_buffer, parser, location);
5663 size_t prefix_length = prefix_buffer->
length;
5667 prefix_buffer->
length = prefix_length;
5675 if (cast->
body == NULL) {
5680 size_t prefix_length = prefix_buffer->
length;
5683 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
5684 prefix_buffer->
length = prefix_length;
5693 prettyprint_location(output_buffer, parser, &node->
location);
5702 prettyprint_location(output_buffer, parser, location);
5714 prettyprint_location(output_buffer, parser, location);
5726 size_t prefix_length = prefix_buffer->
length;
5729 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5730 prefix_buffer->
length = prefix_length;
5738 prettyprint_constant(output_buffer, parser, cast->
name);
5754 prettyprint_location(output_buffer, parser, &node->
location);
5763 prettyprint_location(output_buffer, parser, location);
5775 prettyprint_location(output_buffer, parser, location);
5787 size_t prefix_length = prefix_buffer->
length;
5790 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5791 prefix_buffer->
length = prefix_length;
5799 prettyprint_constant(output_buffer, parser, cast->
name);
5824 prettyprint_location(output_buffer, parser, &node->
location);
5833 prettyprint_location(output_buffer, parser, location);
5845 prettyprint_location(output_buffer, parser, location);
5857 size_t prefix_length = prefix_buffer->
length;
5860 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5861 prefix_buffer->
length = prefix_length;
5869 prettyprint_constant(output_buffer, parser, cast->
name);
5885 prettyprint_location(output_buffer, parser, &node->
location);
5893 prettyprint_constant(output_buffer, parser, cast->
name);
5909 prettyprint_location(output_buffer, parser, &node->
location);
5917 prettyprint_constant(output_buffer, parser, cast->
name);
5933 prettyprint_location(output_buffer, parser, &node->
location);
5941 prettyprint_constant(output_buffer, parser, cast->
name);
5958 prettyprint_location(output_buffer, parser, location);
5970 size_t prefix_length = prefix_buffer->
length;
5973 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
5974 prefix_buffer->
length = prefix_length;
5983 prettyprint_location(output_buffer, parser, location);
5994 prettyprint_location(output_buffer, parser, &node->
location);
6067 prettyprint_location(output_buffer, parser, location);
6079 prettyprint_location(output_buffer, parser, location);
6091 prettyprint_location(output_buffer, parser, location);
6111 prettyprint_location(output_buffer, parser, &node->
location);
6120 size_t prefix_length = prefix_buffer->
length;
6123 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6124 prefix_buffer->
length = prefix_length;
6133 size_t prefix_length = prefix_buffer->
length;
6136 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
6137 prefix_buffer->
length = prefix_length;
6146 prettyprint_location(output_buffer, parser, location);
6157 prettyprint_location(output_buffer, parser, &node->
location);
6166 size_t prefix_length = prefix_buffer->
length;
6169 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6170 prefix_buffer->
length = prefix_length;
6179 size_t prefix_length = prefix_buffer->
length;
6182 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
pattern, prefix_buffer);
6183 prefix_buffer->
length = prefix_length;
6192 prettyprint_location(output_buffer, parser, location);
6203 prettyprint_location(output_buffer, parser, &node->
location);
6212 size_t prefix_length = prefix_buffer->
length;
6215 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
call, prefix_buffer);
6216 prefix_buffer->
length = prefix_length;
6226 for (uint32_t index = 0; index < last_index; index++) {
6227 size_t prefix_length = prefix_buffer->
length;
6233 prefix_buffer->
length = prefix_length;
6241 prettyprint_location(output_buffer, parser, &node->
location);
6249 prettyprint_location(output_buffer, parser, &node->
location);
6257 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
6259 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
6270 prettyprint_location(output_buffer, parser, location);
6282 size_t prefix_length = prefix_buffer->
length;
6286 prefix_buffer->
length = prefix_length;
6293 if (cast->
body == NULL) {
6298 size_t prefix_length = prefix_buffer->
length;
6301 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
6302 prefix_buffer->
length = prefix_length;
6312 prettyprint_location(output_buffer, parser, location);
6323 prettyprint_constant(output_buffer, parser, cast->
name);
6332 prettyprint_location(output_buffer, parser, &node->
location);
6342 for (uint32_t index = 0; index < last_index; index++) {
6343 size_t prefix_length = prefix_buffer->
length;
6348 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
lefts.
nodes[index], prefix_buffer);
6349 prefix_buffer->
length = prefix_length;
6357 if (cast->
rest == NULL) {
6362 size_t prefix_length = prefix_buffer->
length;
6365 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6366 prefix_buffer->
length = prefix_length;
6377 for (uint32_t index = 0; index < last_index; index++) {
6378 size_t prefix_length = prefix_buffer->
length;
6383 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rights.
nodes[index], prefix_buffer);
6384 prefix_buffer->
length = prefix_length;
6393 if (location->
start == NULL) {
6397 prettyprint_location(output_buffer, parser, location);
6409 if (location->
start == NULL) {
6413 prettyprint_location(output_buffer, parser, location);
6425 prettyprint_location(output_buffer, parser, &node->
location);
6435 for (uint32_t index = 0; index < last_index; index++) {
6436 size_t prefix_length = prefix_buffer->
length;
6441 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
lefts.
nodes[index], prefix_buffer);
6442 prefix_buffer->
length = prefix_length;
6450 if (cast->
rest == NULL) {
6455 size_t prefix_length = prefix_buffer->
length;
6458 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6459 prefix_buffer->
length = prefix_length;
6470 for (uint32_t index = 0; index < last_index; index++) {
6471 size_t prefix_length = prefix_buffer->
length;
6476 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rights.
nodes[index], prefix_buffer);
6477 prefix_buffer->
length = prefix_length;
6486 if (location->
start == NULL) {
6490 prettyprint_location(output_buffer, parser, location);
6502 if (location->
start == NULL) {
6506 prettyprint_location(output_buffer, parser, location);
6519 prettyprint_location(output_buffer, parser, location);
6531 size_t prefix_length = prefix_buffer->
length;
6534 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6535 prefix_buffer->
length = prefix_length;
6543 prettyprint_location(output_buffer, parser, &node->
location);
6555 size_t prefix_length = prefix_buffer->
length;
6558 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
6559 prefix_buffer->
length = prefix_length;
6569 prettyprint_location(output_buffer, parser, location);
6579 prettyprint_location(output_buffer, parser, &node->
location);
6587 prettyprint_location(output_buffer, parser, &node->
location);
6596 prettyprint_location(output_buffer, parser, location);
6608 prettyprint_location(output_buffer, parser, location);
6619 prettyprint_location(output_buffer, parser, &node->
location);
6634 prettyprint_location(output_buffer, parser, &node->
location);
6649 prettyprint_location(output_buffer, parser, &node->
location);
6671 prettyprint_constant(output_buffer, parser, cast->
name);
6681 prettyprint_location(output_buffer, parser, location);
6693 size_t prefix_length = prefix_buffer->
length;
6696 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6697 prefix_buffer->
length = prefix_length;
6705 prettyprint_location(output_buffer, parser, &node->
location);
6727 prettyprint_constant(output_buffer, parser, cast->
name);
6737 prettyprint_location(output_buffer, parser, location);
6749 prettyprint_location(output_buffer, parser, location);
6761 size_t prefix_length = prefix_buffer->
length;
6764 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
value, prefix_buffer);
6765 prefix_buffer->
length = prefix_length;
6773 prettyprint_location(output_buffer, parser, &node->
location);
6782 size_t prefix_length = prefix_buffer->
length;
6785 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
6786 prefix_buffer->
length = prefix_length;
6795 size_t prefix_length = prefix_buffer->
length;
6798 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
6799 prefix_buffer->
length = prefix_length;
6808 prettyprint_location(output_buffer, parser, location);
6819 prettyprint_location(output_buffer, parser, &node->
location);
6829 for (uint32_t index = 0; index < last_index; index++) {
6830 size_t prefix_length = prefix_buffer->
length;
6836 prefix_buffer->
length = prefix_length;
6847 for (uint32_t index = 0; index < last_index; index++) {
6848 size_t prefix_length = prefix_buffer->
length;
6854 prefix_buffer->
length = prefix_length;
6862 if (cast->
rest == NULL) {
6867 size_t prefix_length = prefix_buffer->
length;
6870 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
rest, prefix_buffer);
6871 prefix_buffer->
length = prefix_length;
6882 for (uint32_t index = 0; index < last_index; index++) {
6883 size_t prefix_length = prefix_buffer->
length;
6888 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
posts.
nodes[index], prefix_buffer);
6889 prefix_buffer->
length = prefix_length;
6900 for (uint32_t index = 0; index < last_index; index++) {
6901 size_t prefix_length = prefix_buffer->
length;
6907 prefix_buffer->
length = prefix_length;
6920 size_t prefix_length = prefix_buffer->
length;
6924 prefix_buffer->
length = prefix_length;
6932 if (cast->
block == NULL) {
6937 size_t prefix_length = prefix_buffer->
length;
6940 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
6941 prefix_buffer->
length = prefix_length;
6950 prettyprint_location(output_buffer, parser, &node->
location);
6957 if (cast->
body == NULL) {
6962 size_t prefix_length = prefix_buffer->
length;
6965 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
6966 prefix_buffer->
length = prefix_length;
6976 prettyprint_location(output_buffer, parser, location);
6988 prettyprint_location(output_buffer, parser, location);
6999 prettyprint_location(output_buffer, parser, &node->
location);
7008 size_t prefix_length = prefix_buffer->
length;
7012 prefix_buffer->
length = prefix_length;
7021 prettyprint_location(output_buffer, parser, location);
7033 prettyprint_location(output_buffer, parser, location);
7045 prettyprint_location(output_buffer, parser, location);
7056 prettyprint_location(output_buffer, parser, &node->
location);
7065 size_t prefix_length = prefix_buffer->
length;
7068 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
variable, prefix_buffer);
7069 prefix_buffer->
length = prefix_length;
7078 prettyprint_location(output_buffer, parser, location);
7089 prettyprint_location(output_buffer, parser, &node->
location);
7101 size_t prefix_length = prefix_buffer->
length;
7105 prefix_buffer->
length = prefix_length;
7115 prettyprint_location(output_buffer, parser, location);
7127 prettyprint_location(output_buffer, parser, location);
7139 prettyprint_location(output_buffer, parser, location);
7150 prettyprint_location(output_buffer, parser, &node->
location);
7162 size_t prefix_length = prefix_buffer->
length;
7166 prefix_buffer->
length = prefix_length;
7176 prettyprint_location(output_buffer, parser, location);
7188 prettyprint_location(output_buffer, parser, location);
7200 prettyprint_location(output_buffer, parser, location);
7211 prettyprint_location(output_buffer, parser, &node->
location);
7219 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
7221 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
7232 size_t prefix_length = prefix_buffer->
length;
7236 prefix_buffer->
length = prefix_length;
7244 prettyprint_location(output_buffer, parser, &node->
location);
7265 if (cast->
left == NULL) {
7270 size_t prefix_length = prefix_buffer->
length;
7273 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
left, prefix_buffer);
7274 prefix_buffer->
length = prefix_length;
7282 if (cast->
right == NULL) {
7287 size_t prefix_length = prefix_buffer->
length;
7290 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
right, prefix_buffer);
7291 prefix_buffer->
length = prefix_length;
7301 prettyprint_location(output_buffer, parser, location);
7312 prettyprint_location(output_buffer, parser, &node->
location);
7368 prettyprint_location(output_buffer, parser, &node->
location);
7376 prettyprint_location(output_buffer, parser, &node->
location);
7449 prettyprint_location(output_buffer, parser, location);
7461 prettyprint_location(output_buffer, parser, location);
7473 prettyprint_location(output_buffer, parser, location);
7493 prettyprint_location(output_buffer, parser, &node->
location);
7515 prettyprint_constant(output_buffer, parser, cast->
name);
7525 prettyprint_location(output_buffer, parser, location);
7536 prettyprint_location(output_buffer, parser, &node->
location);
7558 prettyprint_constant(output_buffer, parser, cast->
name);
7567 prettyprint_location(output_buffer, parser, &node->
location);
7576 size_t prefix_length = prefix_buffer->
length;
7580 prefix_buffer->
length = prefix_length;
7589 prettyprint_location(output_buffer, parser, location);
7601 size_t prefix_length = prefix_buffer->
length;
7605 prefix_buffer->
length = prefix_length;
7613 prettyprint_location(output_buffer, parser, &node->
location);
7622 prettyprint_location(output_buffer, parser, location);
7635 for (uint32_t index = 0; index < last_index; index++) {
7636 size_t prefix_length = prefix_buffer->
length;
7642 prefix_buffer->
length = prefix_length;
7651 if (location->
start == NULL) {
7655 prettyprint_location(output_buffer, parser, location);
7671 size_t prefix_length = prefix_buffer->
length;
7674 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
reference, prefix_buffer);
7675 prefix_buffer->
length = prefix_length;
7688 size_t prefix_length = prefix_buffer->
length;
7692 prefix_buffer->
length = prefix_length;
7705 size_t prefix_length = prefix_buffer->
length;
7709 prefix_buffer->
length = prefix_length;
7718 prettyprint_location(output_buffer, parser, &node->
location);
7739 if (cast->
name == 0) {
7743 prettyprint_constant(output_buffer, parser, cast->
name);
7753 if (location->
start == NULL) {
7757 prettyprint_location(output_buffer, parser, location);
7770 prettyprint_location(output_buffer, parser, location);
7780 prettyprint_location(output_buffer, parser, &node->
location);
7788 prettyprint_location(output_buffer, parser, &node->
location);
7797 prettyprint_location(output_buffer, parser, location);
7812 size_t prefix_length = prefix_buffer->
length;
7815 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
7816 prefix_buffer->
length = prefix_length;
7824 prettyprint_location(output_buffer, parser, &node->
location);
7832 prettyprint_location(output_buffer, parser, &node->
location);
7865 size_t prefix_length = prefix_buffer->
length;
7868 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
write, prefix_buffer);
7869 prefix_buffer->
length = prefix_length;
7877 prettyprint_location(output_buffer, parser, &node->
location);
7885 for (uint32_t index = 0; index < cast->
locals.
size; index++) {
7887 prettyprint_constant(output_buffer, parser, cast->
locals.
ids[index]);
7898 prettyprint_location(output_buffer, parser, location);
7910 prettyprint_location(output_buffer, parser, location);
7922 size_t prefix_length = prefix_buffer->
length;
7926 prefix_buffer->
length = prefix_length;
7933 if (cast->
body == NULL) {
7938 size_t prefix_length = prefix_buffer->
length;
7941 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body, prefix_buffer);
7942 prefix_buffer->
length = prefix_length;
7952 prettyprint_location(output_buffer, parser, location);
7962 prettyprint_location(output_buffer, parser, &node->
location);
7970 prettyprint_location(output_buffer, parser, &node->
location);
8015 prettyprint_location(output_buffer, parser, &node->
location);
8023 prettyprint_location(output_buffer, parser, &node->
location);
8032 prettyprint_location(output_buffer, parser, location);
8047 size_t prefix_length = prefix_buffer->
length;
8051 prefix_buffer->
length = prefix_length;
8060 prettyprint_location(output_buffer, parser, &node->
location);
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;
8076 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
body.
nodes[index], prefix_buffer);
8077 prefix_buffer->
length = prefix_length;
8086 prettyprint_location(output_buffer, parser, &node->
location);
8123 if (location->
start == NULL) {
8127 prettyprint_location(output_buffer, parser, location);
8140 prettyprint_location(output_buffer, parser, location);
8151 if (location->
start == NULL) {
8155 prettyprint_location(output_buffer, parser, location);
8176 prettyprint_location(output_buffer, parser, &node->
location);
8185 prettyprint_location(output_buffer, parser, location);
8196 if (location->
start == NULL) {
8200 prettyprint_location(output_buffer, parser, location);
8216 size_t prefix_length = prefix_buffer->
length;
8219 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
8220 prefix_buffer->
length = prefix_length;
8229 if (location->
start == NULL) {
8233 prettyprint_location(output_buffer, parser, location);
8244 if (cast->
block == NULL) {
8249 size_t prefix_length = prefix_buffer->
length;
8252 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
block, prefix_buffer);
8253 prefix_buffer->
length = prefix_length;
8262 prettyprint_location(output_buffer, parser, &node->
location);
8294 if (location->
start == NULL) {
8298 prettyprint_location(output_buffer, parser, location);
8310 if (location->
start == NULL) {
8314 prettyprint_location(output_buffer, parser, location);
8326 if (location->
start == NULL) {
8330 prettyprint_location(output_buffer, parser, location);
8350 prettyprint_location(output_buffer, parser, &node->
location);
8358 prettyprint_location(output_buffer, parser, &node->
location);
8368 for (uint32_t index = 0; index < last_index; index++) {
8369 size_t prefix_length = prefix_buffer->
length;
8374 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
names.
nodes[index], prefix_buffer);
8375 prefix_buffer->
length = prefix_length;
8385 prettyprint_location(output_buffer, parser, location);
8396 prettyprint_location(output_buffer, parser, &node->
location);
8405 prettyprint_location(output_buffer, parser, location);
8417 size_t prefix_length = prefix_buffer->
length;
8420 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8421 prefix_buffer->
length = prefix_length;
8429 if (location->
start == NULL) {
8433 prettyprint_location(output_buffer, parser, location);
8449 size_t prefix_length = prefix_buffer->
length;
8453 prefix_buffer->
length = prefix_length;
8466 size_t prefix_length = prefix_buffer->
length;
8470 prefix_buffer->
length = prefix_length;
8479 if (location->
start == NULL) {
8483 prettyprint_location(output_buffer, parser, location);
8495 prettyprint_location(output_buffer, parser, &node->
location);
8518 prettyprint_location(output_buffer, parser, location);
8529 if (location->
start == NULL) {
8533 prettyprint_location(output_buffer, parser, location);
8546 size_t prefix_length = prefix_buffer->
length;
8549 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8550 prefix_buffer->
length = prefix_length;
8562 size_t prefix_length = prefix_buffer->
length;
8566 prefix_buffer->
length = prefix_length;
8575 prettyprint_location(output_buffer, parser, &node->
location);
8584 prettyprint_location(output_buffer, parser, location);
8597 for (uint32_t index = 0; index < last_index; index++) {
8598 size_t prefix_length = prefix_buffer->
length;
8604 prefix_buffer->
length = prefix_length;
8613 if (location->
start == NULL) {
8617 prettyprint_location(output_buffer, parser, location);
8633 size_t prefix_length = prefix_buffer->
length;
8637 prefix_buffer->
length = prefix_length;
8646 prettyprint_location(output_buffer, parser, &node->
location);
8669 prettyprint_location(output_buffer, parser, location);
8680 if (location->
start == NULL) {
8684 prettyprint_location(output_buffer, parser, location);
8697 size_t prefix_length = prefix_buffer->
length;
8700 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
predicate, prefix_buffer);
8701 prefix_buffer->
length = prefix_length;
8713 size_t prefix_length = prefix_buffer->
length;
8717 prefix_buffer->
length = prefix_length;
8726 prettyprint_location(output_buffer, parser, &node->
location);
8754 prettyprint_location(output_buffer, parser, location);
8766 prettyprint_location(output_buffer, parser, location);
8778 prettyprint_location(output_buffer, parser, location);
8798 prettyprint_location(output_buffer, parser, &node->
location);
8807 prettyprint_location(output_buffer, parser, location);
8818 if (location->
start == NULL) {
8822 prettyprint_location(output_buffer, parser, location);
8838 size_t prefix_length = prefix_buffer->
length;
8841 prettyprint_node(output_buffer, parser, (
pm_node_t *) cast->
arguments, prefix_buffer);
8842 prefix_buffer->
length = prefix_length;
8851 if (location->
start == NULL) {
8855 prettyprint_location(output_buffer, parser, location);
8873 prettyprint_node(output_buffer, parser, node, &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
...
@ 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
void pm_buffer_append_format(pm_buffer_t *buffer, const char *format,...) PRISM_ATTRIBUTE_FORMAT(2
Append a formatted string to the buffer.
void void pm_buffer_append_string(pm_buffer_t *buffer, const char *value, size_t length)
Append a string to the buffer.
void pm_buffer_append_source(pm_buffer_t *buffer, const uint8_t *source, size_t length, pm_buffer_escaping_t escaping)
Append a slice of source code to the buffer.
void pm_buffer_append_byte(pm_buffer_t *buffer, uint8_t value)
Append a single byte to the buffer.
PRISM_EXPORTED_FUNCTION void pm_buffer_free(pm_buffer_t *buffer)
Free the memory associated with the buffer.
void pm_buffer_concat(pm_buffer_t *destination, const pm_buffer_t *source)
Concatenate one buffer onto another.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
pm_constant_t * pm_constant_pool_id_to_constant(const pm_constant_pool_t *pool, pm_constant_id_t constant_id)
Return a pointer to the constant indicated by the given constant id.
PRISM_EXPORTED_FUNCTION void pm_integer_string(pm_buffer_t *buffer, const pm_integer_t *integer)
Convert an integer to a decimal string.
pm_line_column_t pm_newline_list_line_column(const pm_newline_list_t *list, const uint8_t *cursor, int32_t start_line)
Returns the line and column of the given offset.
PRISM_EXPORTED_FUNCTION size_t pm_string_length(const pm_string_t *string)
Returns the length associated with the string.
PRISM_EXPORTED_FUNCTION const uint8_t * pm_string_source(const pm_string_t *string)
Returns the start pointer associated with the string.
An AST node pretty-printer.
PRISM_EXPORTED_FUNCTION void pm_prettyprint(pm_buffer_t *output_buffer, const pm_parser_t *parser, const pm_node_t *node)
Pretty-prints the AST represented by the given node to the given buffer.
#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.
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.
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.