20 for (
size_t index = 0; index < node_list->
size; index++) {
21 pm_node_memsize_node(node_list->
nodes[index], memsize);
48 for (
size_t index = 0; index < list->
size; index++) {
49 pm_node_destroy(parser, list->
nodes[index]);
94 pm_node_list_free(parser, &cast->
arguments);
100 pm_node_list_free(parser, &cast->
elements);
109 pm_node_list_free(parser, &cast->
requireds);
110 if (cast->
rest != NULL) {
113 pm_node_list_free(parser, &cast->
posts);
120 if (cast->
value != NULL) {
128 if (cast->
value != NULL) {
169 pm_constant_id_list_free(&cast->
locals);
173 if (cast->
body != NULL) {
188 pm_node_list_free(parser, &cast->
locals);
217 if (cast->
block != NULL) {
280 pm_constant_id_list_free(&cast->
locals);
285 if (cast->
body != NULL) {
350 if (cast->
parent != NULL) {
373 if (cast->
parent != NULL) {
409 if (cast->
body != NULL) {
412 pm_constant_id_list_free(&cast->
locals);
462 pm_node_list_free(parser, &cast->
requireds);
469 if (cast->
left != NULL) {
472 if (cast->
right != NULL) {
502 if (cast->
block != NULL) {
542 pm_node_list_free(parser, &cast->
elements);
551 pm_node_list_free(parser, &cast->
elements);
552 if (cast->
rest != NULL) {
603 if (cast->
block != NULL) {
618 if (cast->
block != NULL) {
633 if (cast->
block != NULL) {
646 if (cast->
block != NULL) {
690 pm_node_list_free(parser, &cast->
parts);
696 pm_node_list_free(parser, &cast->
parts);
702 pm_node_list_free(parser, &cast->
parts);
708 pm_node_list_free(parser, &cast->
parts);
714 pm_node_list_free(parser, &cast->
parts);
720 pm_node_list_free(parser, &cast->
elements);
730 pm_constant_id_list_free(&cast->
locals);
734 if (cast->
body != NULL) {
795 pm_node_list_free(parser, &cast->
targets);
805 pm_constant_id_list_free(&cast->
locals);
807 if (cast->
body != NULL) {
815 pm_node_list_free(parser, &cast->
lefts);
816 if (cast->
rest != NULL) {
819 pm_node_list_free(parser, &cast->
rights);
825 pm_node_list_free(parser, &cast->
lefts);
826 if (cast->
rest != NULL) {
829 pm_node_list_free(parser, &cast->
rights);
879 pm_node_list_free(parser, &cast->
requireds);
880 pm_node_list_free(parser, &cast->
optionals);
881 if (cast->
rest != NULL) {
884 pm_node_list_free(parser, &cast->
posts);
885 pm_node_list_free(parser, &cast->
keywords);
889 if (cast->
block != NULL) {
897 if (cast->
body != NULL) {
933 pm_constant_id_list_free(&cast->
locals);
940 if (cast->
left != NULL) {
943 if (cast->
right != NULL) {
1002#line 58 "node.c.erb"
1010#line 58 "node.c.erb"
1014#line 58 "node.c.erb"
1017 pm_constant_id_list_free(&cast->
locals);
1019 if (cast->
body != NULL) {
1024#line 58 "node.c.erb"
1028#line 58 "node.c.erb"
1034#line 58 "node.c.erb"
1038#line 58 "node.c.erb"
1046#line 58 "node.c.erb"
1049 pm_node_list_free(parser, &cast->
body);
1052#line 58 "node.c.erb"
1058#line 58 "node.c.erb"
1064 if (cast->
block != NULL) {
1069#line 58 "node.c.erb"
1075#line 58 "node.c.erb"
1079#line 58 "node.c.erb"
1082 pm_node_list_free(parser, &cast->
names);
1085#line 58 "node.c.erb"
1097#line 58 "node.c.erb"
1106#line 58 "node.c.erb"
1109 pm_node_list_free(parser, &cast->
conditions);
1115#line 58 "node.c.erb"
1124#line 58 "node.c.erb"
1130#line 58 "node.c.erb"
1138#line 85 "node.c.erb"
1140 assert(
false &&
"unreachable");
1148 memsize->node_count++;
1155#line 103 "node.c.erb"
1158 memsize->memsize +=
sizeof(*cast);
1163#line 103 "node.c.erb"
1166 memsize->memsize +=
sizeof(*cast);
1171#line 103 "node.c.erb"
1174 memsize->memsize +=
sizeof(*cast);
1179#line 103 "node.c.erb"
1182 memsize->memsize +=
sizeof(*cast);
1187#line 103 "node.c.erb"
1190 memsize->memsize +=
sizeof(*cast);
1193 memsize->memsize += pm_node_list_memsize(&cast->
arguments, memsize);
1196#line 103 "node.c.erb"
1199 memsize->memsize +=
sizeof(*cast);
1202 memsize->memsize += pm_node_list_memsize(&cast->
elements, memsize);
1205#line 103 "node.c.erb"
1208 memsize->memsize +=
sizeof(*cast);
1214 memsize->memsize += pm_node_list_memsize(&cast->
requireds, memsize);
1215 if (cast->
rest != NULL) {
1218 memsize->memsize += pm_node_list_memsize(&cast->
posts, memsize);
1221#line 103 "node.c.erb"
1224 memsize->memsize +=
sizeof(*cast);
1226 if (cast->
value != NULL) {
1231#line 103 "node.c.erb"
1234 memsize->memsize +=
sizeof(*cast);
1235 if (cast->
value != NULL) {
1240#line 103 "node.c.erb"
1243 memsize->memsize +=
sizeof(*cast);
1246#line 103 "node.c.erb"
1249 memsize->memsize +=
sizeof(*cast);
1264#line 103 "node.c.erb"
1267 memsize->memsize +=
sizeof(*cast);
1273#line 103 "node.c.erb"
1276 memsize->memsize +=
sizeof(*cast);
1279#line 103 "node.c.erb"
1282 memsize->memsize +=
sizeof(*cast);
1285 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
1289 if (cast->
body != NULL) {
1294#line 103 "node.c.erb"
1297 memsize->memsize +=
sizeof(*cast);
1300#line 103 "node.c.erb"
1303 memsize->memsize +=
sizeof(*cast);
1309 memsize->memsize += pm_node_list_memsize(&cast->
locals, memsize);
1312#line 103 "node.c.erb"
1315 memsize->memsize +=
sizeof(*cast);
1321#line 103 "node.c.erb"
1324 memsize->memsize +=
sizeof(*cast);
1331#line 103 "node.c.erb"
1334 memsize->memsize +=
sizeof(*cast);
1341 if (cast->
block != NULL) {
1346#line 103 "node.c.erb"
1349 memsize->memsize +=
sizeof(*cast);
1356#line 103 "node.c.erb"
1359 memsize->memsize +=
sizeof(*cast);
1366#line 103 "node.c.erb"
1369 memsize->memsize +=
sizeof(*cast);
1373#line 103 "node.c.erb"
1376 memsize->memsize +=
sizeof(*cast);
1381#line 103 "node.c.erb"
1384 memsize->memsize +=
sizeof(*cast);
1390 memsize->memsize += pm_node_list_memsize(&cast->
conditions, memsize);
1396#line 103 "node.c.erb"
1399 memsize->memsize +=
sizeof(*cast);
1405 memsize->memsize += pm_node_list_memsize(&cast->
conditions, memsize);
1411#line 103 "node.c.erb"
1414 memsize->memsize +=
sizeof(*cast);
1417 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
1422 if (cast->
body != NULL) {
1427#line 103 "node.c.erb"
1430 memsize->memsize +=
sizeof(*cast);
1434#line 103 "node.c.erb"
1437 memsize->memsize +=
sizeof(*cast);
1441#line 103 "node.c.erb"
1444 memsize->memsize +=
sizeof(*cast);
1448#line 103 "node.c.erb"
1451 memsize->memsize +=
sizeof(*cast);
1454#line 103 "node.c.erb"
1457 memsize->memsize +=
sizeof(*cast);
1460#line 103 "node.c.erb"
1463 memsize->memsize +=
sizeof(*cast);
1467#line 103 "node.c.erb"
1470 memsize->memsize +=
sizeof(*cast);
1474#line 103 "node.c.erb"
1477 memsize->memsize +=
sizeof(*cast);
1481#line 103 "node.c.erb"
1484 memsize->memsize +=
sizeof(*cast);
1488#line 103 "node.c.erb"
1491 memsize->memsize +=
sizeof(*cast);
1496#line 103 "node.c.erb"
1499 memsize->memsize +=
sizeof(*cast);
1500 if (cast->
parent != NULL) {
1506#line 103 "node.c.erb"
1509 memsize->memsize +=
sizeof(*cast);
1514#line 103 "node.c.erb"
1517 memsize->memsize +=
sizeof(*cast);
1522#line 103 "node.c.erb"
1525 memsize->memsize +=
sizeof(*cast);
1526 if (cast->
parent != NULL) {
1532#line 103 "node.c.erb"
1535 memsize->memsize +=
sizeof(*cast);
1540#line 103 "node.c.erb"
1543 memsize->memsize +=
sizeof(*cast);
1546#line 103 "node.c.erb"
1549 memsize->memsize +=
sizeof(*cast);
1552#line 103 "node.c.erb"
1555 memsize->memsize +=
sizeof(*cast);
1559#line 103 "node.c.erb"
1562 memsize->memsize +=
sizeof(*cast);
1571 if (cast->
body != NULL) {
1574 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
1577#line 103 "node.c.erb"
1580 memsize->memsize +=
sizeof(*cast);
1584#line 103 "node.c.erb"
1587 memsize->memsize +=
sizeof(*cast);
1593#line 103 "node.c.erb"
1596 memsize->memsize +=
sizeof(*cast);
1602#line 103 "node.c.erb"
1605 memsize->memsize +=
sizeof(*cast);
1609#line 103 "node.c.erb"
1612 memsize->memsize +=
sizeof(*cast);
1618#line 103 "node.c.erb"
1621 memsize->memsize +=
sizeof(*cast);
1624#line 103 "node.c.erb"
1627 memsize->memsize +=
sizeof(*cast);
1634 memsize->memsize += pm_node_list_memsize(&cast->
requireds, memsize);
1638#line 103 "node.c.erb"
1641 memsize->memsize +=
sizeof(*cast);
1642 if (cast->
left != NULL) {
1645 if (cast->
right != NULL) {
1650#line 103 "node.c.erb"
1653 memsize->memsize +=
sizeof(*cast);
1656#line 103 "node.c.erb"
1659 memsize->memsize +=
sizeof(*cast);
1667#line 103 "node.c.erb"
1670 memsize->memsize +=
sizeof(*cast);
1673#line 103 "node.c.erb"
1676 memsize->memsize +=
sizeof(*cast);
1679#line 103 "node.c.erb"
1682 memsize->memsize +=
sizeof(*cast);
1683 if (cast->
block != NULL) {
1688#line 103 "node.c.erb"
1691 memsize->memsize +=
sizeof(*cast);
1695#line 103 "node.c.erb"
1698 memsize->memsize +=
sizeof(*cast);
1702#line 103 "node.c.erb"
1705 memsize->memsize +=
sizeof(*cast);
1709#line 103 "node.c.erb"
1712 memsize->memsize +=
sizeof(*cast);
1715#line 103 "node.c.erb"
1718 memsize->memsize +=
sizeof(*cast);
1721#line 103 "node.c.erb"
1724 memsize->memsize +=
sizeof(*cast);
1728#line 103 "node.c.erb"
1731 memsize->memsize +=
sizeof(*cast);
1734 memsize->memsize += pm_node_list_memsize(&cast->
elements, memsize);
1737#line 103 "node.c.erb"
1740 memsize->memsize +=
sizeof(*cast);
1746 memsize->memsize += pm_node_list_memsize(&cast->
elements, memsize);
1747 if (cast->
rest != NULL) {
1752#line 103 "node.c.erb"
1755 memsize->memsize +=
sizeof(*cast);
1765#line 103 "node.c.erb"
1768 memsize->memsize +=
sizeof(*cast);
1772#line 103 "node.c.erb"
1775 memsize->memsize +=
sizeof(*cast);
1779#line 103 "node.c.erb"
1782 memsize->memsize +=
sizeof(*cast);
1785#line 103 "node.c.erb"
1788 memsize->memsize +=
sizeof(*cast);
1795#line 103 "node.c.erb"
1798 memsize->memsize +=
sizeof(*cast);
1805 if (cast->
block != NULL) {
1811#line 103 "node.c.erb"
1814 memsize->memsize +=
sizeof(*cast);
1821 if (cast->
block != NULL) {
1827#line 103 "node.c.erb"
1830 memsize->memsize +=
sizeof(*cast);
1837 if (cast->
block != NULL) {
1843#line 103 "node.c.erb"
1846 memsize->memsize +=
sizeof(*cast);
1851 if (cast->
block != NULL) {
1856#line 103 "node.c.erb"
1859 memsize->memsize +=
sizeof(*cast);
1863#line 103 "node.c.erb"
1866 memsize->memsize +=
sizeof(*cast);
1870#line 103 "node.c.erb"
1873 memsize->memsize +=
sizeof(*cast);
1877#line 103 "node.c.erb"
1880 memsize->memsize +=
sizeof(*cast);
1883#line 103 "node.c.erb"
1886 memsize->memsize +=
sizeof(*cast);
1889#line 103 "node.c.erb"
1892 memsize->memsize +=
sizeof(*cast);
1896#line 103 "node.c.erb"
1899 memsize->memsize +=
sizeof(*cast);
1902#line 103 "node.c.erb"
1905 memsize->memsize +=
sizeof(*cast);
1908 memsize->memsize += pm_node_list_memsize(&cast->
parts, memsize);
1911#line 103 "node.c.erb"
1914 memsize->memsize +=
sizeof(*cast);
1917 memsize->memsize += pm_node_list_memsize(&cast->
parts, memsize);
1920#line 103 "node.c.erb"
1923 memsize->memsize +=
sizeof(*cast);
1926 memsize->memsize += pm_node_list_memsize(&cast->
parts, memsize);
1929#line 103 "node.c.erb"
1932 memsize->memsize +=
sizeof(*cast);
1935 memsize->memsize += pm_node_list_memsize(&cast->
parts, memsize);
1938#line 103 "node.c.erb"
1941 memsize->memsize +=
sizeof(*cast);
1944 memsize->memsize += pm_node_list_memsize(&cast->
parts, memsize);
1947#line 103 "node.c.erb"
1950 memsize->memsize +=
sizeof(*cast);
1953 memsize->memsize += pm_node_list_memsize(&cast->
elements, memsize);
1956#line 103 "node.c.erb"
1959 memsize->memsize +=
sizeof(*cast);
1962#line 103 "node.c.erb"
1965 memsize->memsize +=
sizeof(*cast);
1968 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
1972 if (cast->
body != NULL) {
1977#line 103 "node.c.erb"
1980 memsize->memsize +=
sizeof(*cast);
1984#line 103 "node.c.erb"
1987 memsize->memsize +=
sizeof(*cast);
1991#line 103 "node.c.erb"
1994 memsize->memsize +=
sizeof(*cast);
1998#line 103 "node.c.erb"
2001 memsize->memsize +=
sizeof(*cast);
2004#line 103 "node.c.erb"
2007 memsize->memsize +=
sizeof(*cast);
2010#line 103 "node.c.erb"
2013 memsize->memsize +=
sizeof(*cast);
2017#line 103 "node.c.erb"
2020 memsize->memsize +=
sizeof(*cast);
2021 memsize->memsize += pm_string_memsize(&cast->
unescaped);
2024#line 103 "node.c.erb"
2027 memsize->memsize +=
sizeof(*cast);
2032#line 103 "node.c.erb"
2035 memsize->memsize +=
sizeof(*cast);
2040#line 103 "node.c.erb"
2043 memsize->memsize +=
sizeof(*cast);
2047 memsize->memsize += pm_node_list_memsize(&cast->
targets, memsize);
2050#line 103 "node.c.erb"
2053 memsize->memsize +=
sizeof(*cast);
2056#line 103 "node.c.erb"
2059 memsize->memsize +=
sizeof(*cast);
2062 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
2064 if (cast->
body != NULL) {
2069#line 103 "node.c.erb"
2072 memsize->memsize +=
sizeof(*cast);
2075 memsize->memsize += pm_node_list_memsize(&cast->
lefts, memsize);
2076 if (cast->
rest != NULL) {
2079 memsize->memsize += pm_node_list_memsize(&cast->
rights, memsize);
2082#line 103 "node.c.erb"
2085 memsize->memsize +=
sizeof(*cast);
2088 memsize->memsize += pm_node_list_memsize(&cast->
lefts, memsize);
2089 if (cast->
rest != NULL) {
2092 memsize->memsize += pm_node_list_memsize(&cast->
rights, memsize);
2096#line 103 "node.c.erb"
2099 memsize->memsize +=
sizeof(*cast);
2105#line 103 "node.c.erb"
2108 memsize->memsize +=
sizeof(*cast);
2111#line 103 "node.c.erb"
2114 memsize->memsize +=
sizeof(*cast);
2117#line 103 "node.c.erb"
2120 memsize->memsize +=
sizeof(*cast);
2123#line 103 "node.c.erb"
2126 memsize->memsize +=
sizeof(*cast);
2129#line 103 "node.c.erb"
2132 memsize->memsize +=
sizeof(*cast);
2136#line 103 "node.c.erb"
2139 memsize->memsize +=
sizeof(*cast);
2143#line 103 "node.c.erb"
2146 memsize->memsize +=
sizeof(*cast);
2151#line 103 "node.c.erb"
2154 memsize->memsize +=
sizeof(*cast);
2157 memsize->memsize += pm_node_list_memsize(&cast->
requireds, memsize);
2158 memsize->memsize += pm_node_list_memsize(&cast->
optionals, memsize);
2159 if (cast->
rest != NULL) {
2162 memsize->memsize += pm_node_list_memsize(&cast->
posts, memsize);
2163 memsize->memsize += pm_node_list_memsize(&cast->
keywords, memsize);
2167 if (cast->
block != NULL) {
2172#line 103 "node.c.erb"
2175 memsize->memsize +=
sizeof(*cast);
2176 if (cast->
body != NULL) {
2181#line 103 "node.c.erb"
2184 memsize->memsize +=
sizeof(*cast);
2188#line 103 "node.c.erb"
2191 memsize->memsize +=
sizeof(*cast);
2195#line 103 "node.c.erb"
2198 memsize->memsize +=
sizeof(*cast);
2204#line 103 "node.c.erb"
2207 memsize->memsize +=
sizeof(*cast);
2213#line 103 "node.c.erb"
2216 memsize->memsize +=
sizeof(*cast);
2219 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
2223#line 103 "node.c.erb"
2226 memsize->memsize +=
sizeof(*cast);
2227 if (cast->
left != NULL) {
2230 if (cast->
right != NULL) {
2235#line 103 "node.c.erb"
2238 memsize->memsize +=
sizeof(*cast);
2242#line 103 "node.c.erb"
2245 memsize->memsize +=
sizeof(*cast);
2248#line 103 "node.c.erb"
2251 memsize->memsize +=
sizeof(*cast);
2252 memsize->memsize += pm_string_memsize(&cast->
unescaped);
2255#line 103 "node.c.erb"
2258 memsize->memsize +=
sizeof(*cast);
2261#line 103 "node.c.erb"
2264 memsize->memsize +=
sizeof(*cast);
2267#line 103 "node.c.erb"
2270 memsize->memsize +=
sizeof(*cast);
2275#line 103 "node.c.erb"
2278 memsize->memsize +=
sizeof(*cast);
2281 memsize->memsize += pm_node_list_memsize(&cast->
exceptions, memsize);
2293#line 103 "node.c.erb"
2296 memsize->memsize +=
sizeof(*cast);
2299#line 103 "node.c.erb"
2302 memsize->memsize +=
sizeof(*cast);
2305#line 103 "node.c.erb"
2308 memsize->memsize +=
sizeof(*cast);
2314#line 103 "node.c.erb"
2317 memsize->memsize +=
sizeof(*cast);
2320#line 103 "node.c.erb"
2323 memsize->memsize +=
sizeof(*cast);
2326 memsize->memsize += pm_constant_id_list_memsize(&cast->
locals);
2328 if (cast->
body != NULL) {
2333#line 103 "node.c.erb"
2336 memsize->memsize +=
sizeof(*cast);
2339#line 103 "node.c.erb"
2342 memsize->memsize +=
sizeof(*cast);
2343 memsize->memsize += pm_string_memsize(&cast->
filepath);
2346#line 103 "node.c.erb"
2349 memsize->memsize +=
sizeof(*cast);
2352#line 103 "node.c.erb"
2355 memsize->memsize +=
sizeof(*cast);
2361#line 103 "node.c.erb"
2364 memsize->memsize +=
sizeof(*cast);
2367 memsize->memsize += pm_node_list_memsize(&cast->
body, memsize);
2370#line 103 "node.c.erb"
2373 memsize->memsize +=
sizeof(*cast);
2374 memsize->memsize += pm_string_memsize(&cast->
unescaped);
2377#line 103 "node.c.erb"
2380 memsize->memsize +=
sizeof(*cast);
2384 if (cast->
block != NULL) {
2389#line 103 "node.c.erb"
2392 memsize->memsize +=
sizeof(*cast);
2393 memsize->memsize += pm_string_memsize(&cast->
unescaped);
2396#line 103 "node.c.erb"
2399 memsize->memsize +=
sizeof(*cast);
2402#line 103 "node.c.erb"
2405 memsize->memsize +=
sizeof(*cast);
2408 memsize->memsize += pm_node_list_memsize(&cast->
names, memsize);
2411#line 103 "node.c.erb"
2414 memsize->memsize +=
sizeof(*cast);
2424#line 103 "node.c.erb"
2427 memsize->memsize +=
sizeof(*cast);
2434#line 103 "node.c.erb"
2437 memsize->memsize +=
sizeof(*cast);
2440 memsize->memsize += pm_node_list_memsize(&cast->
conditions, memsize);
2446#line 103 "node.c.erb"
2449 memsize->memsize +=
sizeof(*cast);
2456#line 103 "node.c.erb"
2459 memsize->memsize +=
sizeof(*cast);
2460 memsize->memsize += pm_string_memsize(&cast->
unescaped);
2463#line 103 "node.c.erb"
2466 memsize->memsize +=
sizeof(*cast);
2472#line 137 "node.c.erb"
2481 *memsize = (
pm_memsize_t) { .memsize = 0, .node_count = 0 };
2482 pm_node_memsize_node(node, memsize);
2491 switch (node_type) {
2493 return "PM_ALIAS_GLOBAL_VARIABLE_NODE";
2495 return "PM_ALIAS_METHOD_NODE";
2497 return "PM_ALTERNATION_PATTERN_NODE";
2499 return "PM_AND_NODE";
2501 return "PM_ARGUMENTS_NODE";
2503 return "PM_ARRAY_NODE";
2505 return "PM_ARRAY_PATTERN_NODE";
2507 return "PM_ASSOC_NODE";
2509 return "PM_ASSOC_SPLAT_NODE";
2511 return "PM_BACK_REFERENCE_READ_NODE";
2513 return "PM_BEGIN_NODE";
2515 return "PM_BLOCK_ARGUMENT_NODE";
2517 return "PM_BLOCK_LOCAL_VARIABLE_NODE";
2519 return "PM_BLOCK_NODE";
2521 return "PM_BLOCK_PARAMETER_NODE";
2523 return "PM_BLOCK_PARAMETERS_NODE";
2525 return "PM_BREAK_NODE";
2527 return "PM_CALL_AND_WRITE_NODE";
2529 return "PM_CALL_NODE";
2531 return "PM_CALL_OPERATOR_WRITE_NODE";
2533 return "PM_CALL_OR_WRITE_NODE";
2535 return "PM_CALL_TARGET_NODE";
2537 return "PM_CAPTURE_PATTERN_NODE";
2539 return "PM_CASE_MATCH_NODE";
2541 return "PM_CASE_NODE";
2543 return "PM_CLASS_NODE";
2545 return "PM_CLASS_VARIABLE_AND_WRITE_NODE";
2547 return "PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE";
2549 return "PM_CLASS_VARIABLE_OR_WRITE_NODE";
2551 return "PM_CLASS_VARIABLE_READ_NODE";
2553 return "PM_CLASS_VARIABLE_TARGET_NODE";
2555 return "PM_CLASS_VARIABLE_WRITE_NODE";
2557 return "PM_CONSTANT_AND_WRITE_NODE";
2559 return "PM_CONSTANT_OPERATOR_WRITE_NODE";
2561 return "PM_CONSTANT_OR_WRITE_NODE";
2563 return "PM_CONSTANT_PATH_AND_WRITE_NODE";
2565 return "PM_CONSTANT_PATH_NODE";
2567 return "PM_CONSTANT_PATH_OPERATOR_WRITE_NODE";
2569 return "PM_CONSTANT_PATH_OR_WRITE_NODE";
2571 return "PM_CONSTANT_PATH_TARGET_NODE";
2573 return "PM_CONSTANT_PATH_WRITE_NODE";
2575 return "PM_CONSTANT_READ_NODE";
2577 return "PM_CONSTANT_TARGET_NODE";
2579 return "PM_CONSTANT_WRITE_NODE";
2581 return "PM_DEF_NODE";
2583 return "PM_DEFINED_NODE";
2585 return "PM_ELSE_NODE";
2587 return "PM_EMBEDDED_STATEMENTS_NODE";
2589 return "PM_EMBEDDED_VARIABLE_NODE";
2591 return "PM_ENSURE_NODE";
2593 return "PM_FALSE_NODE";
2595 return "PM_FIND_PATTERN_NODE";
2597 return "PM_FLIP_FLOP_NODE";
2599 return "PM_FLOAT_NODE";
2601 return "PM_FOR_NODE";
2603 return "PM_FORWARDING_ARGUMENTS_NODE";
2605 return "PM_FORWARDING_PARAMETER_NODE";
2607 return "PM_FORWARDING_SUPER_NODE";
2609 return "PM_GLOBAL_VARIABLE_AND_WRITE_NODE";
2611 return "PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE";
2613 return "PM_GLOBAL_VARIABLE_OR_WRITE_NODE";
2615 return "PM_GLOBAL_VARIABLE_READ_NODE";
2617 return "PM_GLOBAL_VARIABLE_TARGET_NODE";
2619 return "PM_GLOBAL_VARIABLE_WRITE_NODE";
2621 return "PM_HASH_NODE";
2623 return "PM_HASH_PATTERN_NODE";
2625 return "PM_IF_NODE";
2627 return "PM_IMAGINARY_NODE";
2629 return "PM_IMPLICIT_NODE";
2631 return "PM_IMPLICIT_REST_NODE";
2633 return "PM_IN_NODE";
2635 return "PM_INDEX_AND_WRITE_NODE";
2637 return "PM_INDEX_OPERATOR_WRITE_NODE";
2639 return "PM_INDEX_OR_WRITE_NODE";
2641 return "PM_INDEX_TARGET_NODE";
2643 return "PM_INSTANCE_VARIABLE_AND_WRITE_NODE";
2645 return "PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE";
2647 return "PM_INSTANCE_VARIABLE_OR_WRITE_NODE";
2649 return "PM_INSTANCE_VARIABLE_READ_NODE";
2651 return "PM_INSTANCE_VARIABLE_TARGET_NODE";
2653 return "PM_INSTANCE_VARIABLE_WRITE_NODE";
2655 return "PM_INTEGER_NODE";
2657 return "PM_INTERPOLATED_MATCH_LAST_LINE_NODE";
2659 return "PM_INTERPOLATED_REGULAR_EXPRESSION_NODE";
2661 return "PM_INTERPOLATED_STRING_NODE";
2663 return "PM_INTERPOLATED_SYMBOL_NODE";
2665 return "PM_INTERPOLATED_X_STRING_NODE";
2667 return "PM_KEYWORD_HASH_NODE";
2669 return "PM_KEYWORD_REST_PARAMETER_NODE";
2671 return "PM_LAMBDA_NODE";
2673 return "PM_LOCAL_VARIABLE_AND_WRITE_NODE";
2675 return "PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE";
2677 return "PM_LOCAL_VARIABLE_OR_WRITE_NODE";
2679 return "PM_LOCAL_VARIABLE_READ_NODE";
2681 return "PM_LOCAL_VARIABLE_TARGET_NODE";
2683 return "PM_LOCAL_VARIABLE_WRITE_NODE";
2685 return "PM_MATCH_LAST_LINE_NODE";
2687 return "PM_MATCH_PREDICATE_NODE";
2689 return "PM_MATCH_REQUIRED_NODE";
2691 return "PM_MATCH_WRITE_NODE";
2693 return "PM_MISSING_NODE";
2695 return "PM_MODULE_NODE";
2697 return "PM_MULTI_TARGET_NODE";
2699 return "PM_MULTI_WRITE_NODE";
2701 return "PM_NEXT_NODE";
2703 return "PM_NIL_NODE";
2705 return "PM_NO_KEYWORDS_PARAMETER_NODE";
2707 return "PM_NUMBERED_PARAMETERS_NODE";
2709 return "PM_NUMBERED_REFERENCE_READ_NODE";
2711 return "PM_OPTIONAL_KEYWORD_PARAMETER_NODE";
2713 return "PM_OPTIONAL_PARAMETER_NODE";
2715 return "PM_OR_NODE";
2717 return "PM_PARAMETERS_NODE";
2719 return "PM_PARENTHESES_NODE";
2721 return "PM_PINNED_EXPRESSION_NODE";
2723 return "PM_PINNED_VARIABLE_NODE";
2725 return "PM_POST_EXECUTION_NODE";
2727 return "PM_PRE_EXECUTION_NODE";
2729 return "PM_PROGRAM_NODE";
2731 return "PM_RANGE_NODE";
2733 return "PM_RATIONAL_NODE";
2735 return "PM_REDO_NODE";
2737 return "PM_REGULAR_EXPRESSION_NODE";
2739 return "PM_REQUIRED_KEYWORD_PARAMETER_NODE";
2741 return "PM_REQUIRED_PARAMETER_NODE";
2743 return "PM_RESCUE_MODIFIER_NODE";
2745 return "PM_RESCUE_NODE";
2747 return "PM_REST_PARAMETER_NODE";
2749 return "PM_RETRY_NODE";
2751 return "PM_RETURN_NODE";
2753 return "PM_SELF_NODE";
2755 return "PM_SINGLETON_CLASS_NODE";
2757 return "PM_SOURCE_ENCODING_NODE";
2759 return "PM_SOURCE_FILE_NODE";
2761 return "PM_SOURCE_LINE_NODE";
2763 return "PM_SPLAT_NODE";
2765 return "PM_STATEMENTS_NODE";
2767 return "PM_STRING_NODE";
2769 return "PM_SUPER_NODE";
2771 return "PM_SYMBOL_NODE";
2773 return "PM_TRUE_NODE";
2775 return "PM_UNDEF_NODE";
2777 return "PM_UNLESS_NODE";
2779 return "PM_UNTIL_NODE";
2781 return "PM_WHEN_NODE";
2783 return "PM_WHILE_NODE";
2785 return "PM_X_STRING_NODE";
2787 return "PM_YIELD_NODE";
struct pm_block_parameter_node pm_block_parameter_node_t
BlockParameterNode.
struct pm_call_target_node pm_call_target_node_t
CallTargetNode.
struct pm_else_node pm_else_node_t
ElseNode.
struct pm_assoc_node pm_assoc_node_t
AssocNode.
struct pm_undef_node pm_undef_node_t
UndefNode.
struct pm_class_variable_and_write_node pm_class_variable_and_write_node_t
ClassVariableAndWriteNode.
struct pm_index_and_write_node pm_index_and_write_node_t
IndexAndWriteNode.
struct pm_index_target_node pm_index_target_node_t
IndexTargetNode.
struct pm_local_variable_target_node pm_local_variable_target_node_t
LocalVariableTargetNode.
struct pm_constant_path_or_write_node pm_constant_path_or_write_node_t
ConstantPathOrWriteNode.
struct pm_missing_node pm_missing_node_t
MissingNode.
struct pm_embedded_statements_node pm_embedded_statements_node_t
EmbeddedStatementsNode.
struct pm_block_node pm_block_node_t
BlockNode.
struct pm_hash_pattern_node pm_hash_pattern_node_t
HashPatternNode.
struct pm_optional_parameter_node pm_optional_parameter_node_t
OptionalParameterNode.
struct pm_x_string_node pm_x_string_node_t
XStringNode.
struct pm_forwarding_super_node pm_forwarding_super_node_t
ForwardingSuperNode.
struct pm_self_node pm_self_node_t
SelfNode.
struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t
NumberedReferenceReadNode.
struct pm_embedded_variable_node pm_embedded_variable_node_t
EmbeddedVariableNode.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
struct pm_optional_keyword_parameter_node pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode.
struct pm_call_or_write_node pm_call_or_write_node_t
CallOrWriteNode.
struct pm_call_node pm_call_node_t
CallNode.
struct pm_class_variable_read_node pm_class_variable_read_node_t
ClassVariableReadNode.
struct pm_match_required_node pm_match_required_node_t
MatchRequiredNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
struct pm_constant_path_operator_write_node pm_constant_path_operator_write_node_t
ConstantPathOperatorWriteNode.
struct pm_implicit_rest_node pm_implicit_rest_node_t
ImplicitRestNode.
struct pm_local_variable_or_write_node pm_local_variable_or_write_node_t
LocalVariableOrWriteNode.
struct pm_local_variable_read_node pm_local_variable_read_node_t
LocalVariableReadNode.
struct pm_global_variable_and_write_node pm_global_variable_and_write_node_t
GlobalVariableAndWriteNode.
struct pm_arguments_node pm_arguments_node_t
ArgumentsNode.
@ PM_DEFINED_NODE
DefinedNode.
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
@ PM_RETRY_NODE
RetryNode.
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
@ PM_SOURCE_LINE_NODE
SourceLineNode.
@ PM_UNLESS_NODE
UnlessNode.
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
@ PM_RATIONAL_NODE
RationalNode.
@ PM_YIELD_NODE
YieldNode.
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
@ PM_CLASS_NODE
ClassNode.
@ PM_FIND_PATTERN_NODE
FindPatternNode.
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
@ PM_ARRAY_NODE
ArrayNode.
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
@ PM_PROGRAM_NODE
ProgramNode.
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
@ PM_IMPLICIT_NODE
ImplicitNode.
@ PM_ARGUMENTS_NODE
ArgumentsNode.
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
@ PM_WHILE_NODE
WhileNode.
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
@ PM_FALSE_NODE
FalseNode.
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
@ PM_UNTIL_NODE
UntilNode.
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
@ PM_X_STRING_NODE
XStringNode.
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
@ PM_SOURCE_FILE_NODE
SourceFileNode.
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
@ PM_SPLAT_NODE
SplatNode.
@ PM_LAMBDA_NODE
LambdaNode.
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
@ PM_CALL_TARGET_NODE
CallTargetNode.
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
@ PM_SYMBOL_NODE
SymbolNode.
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
@ PM_SCOPE_NODE
A special kind of node used for compilation.
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
@ PM_MISSING_NODE
MissingNode.
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
@ PM_RANGE_NODE
RangeNode.
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
@ PM_HASH_PATTERN_NODE
HashPatternNode.
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
@ PM_UNDEF_NODE
UndefNode.
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
@ PM_ENSURE_NODE
EnsureNode.
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
@ PM_PARENTHESES_NODE
ParenthesesNode.
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
@ PM_RETURN_NODE
ReturnNode.
@ PM_MODULE_NODE
ModuleNode.
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
@ PM_SUPER_NODE
SuperNode.
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
@ PM_CASE_MATCH_NODE
CaseMatchNode.
@ PM_BREAK_NODE
BreakNode.
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
@ PM_IMAGINARY_NODE
ImaginaryNode.
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
@ PM_BEGIN_NODE
BeginNode.
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
@ PM_RESCUE_NODE
RescueNode.
@ PM_FLOAT_NODE
FloatNode.
@ PM_ASSOC_NODE
AssocNode.
@ PM_INTEGER_NODE
IntegerNode.
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
@ PM_STRING_NODE
StringNode.
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
@ PM_PARAMETERS_NODE
ParametersNode.
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
@ PM_STATEMENTS_NODE
StatementsNode.
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
@ PM_BLOCK_NODE
BlockNode.
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
@ PM_REST_PARAMETER_NODE
RestParameterNode.
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
struct pm_nil_node pm_nil_node_t
NilNode.
struct pm_begin_node pm_begin_node_t
BeginNode.
struct pm_statements_node pm_statements_node_t
StatementsNode.
struct pm_instance_variable_write_node pm_instance_variable_write_node_t
InstanceVariableWriteNode.
struct pm_false_node pm_false_node_t
FalseNode.
struct pm_keyword_hash_node pm_keyword_hash_node_t
KeywordHashNode.
struct pm_return_node pm_return_node_t
ReturnNode.
struct pm_constant_path_node pm_constant_path_node_t
ConstantPathNode.
struct pm_local_variable_write_node pm_local_variable_write_node_t
LocalVariableWriteNode.
struct pm_implicit_node pm_implicit_node_t
ImplicitNode.
struct pm_yield_node pm_yield_node_t
YieldNode.
struct pm_local_variable_and_write_node pm_local_variable_and_write_node_t
LocalVariableAndWriteNode.
struct pm_parameters_node pm_parameters_node_t
ParametersNode.
struct pm_lambda_node pm_lambda_node_t
LambdaNode.
struct pm_module_node pm_module_node_t
ModuleNode.
struct pm_case_node pm_case_node_t
CaseNode.
struct pm_in_node pm_in_node_t
InNode.
struct pm_if_node pm_if_node_t
IfNode.
struct pm_constant_path_write_node pm_constant_path_write_node_t
ConstantPathWriteNode.
struct pm_pre_execution_node pm_pre_execution_node_t
PreExecutionNode.
struct pm_rescue_modifier_node pm_rescue_modifier_node_t
RescueModifierNode.
struct pm_splat_node pm_splat_node_t
SplatNode.
struct pm_match_write_node pm_match_write_node_t
MatchWriteNode.
struct pm_multi_write_node pm_multi_write_node_t
MultiWriteNode.
struct pm_local_variable_operator_write_node pm_local_variable_operator_write_node_t
LocalVariableOperatorWriteNode.
struct pm_block_argument_node pm_block_argument_node_t
BlockArgumentNode.
struct pm_interpolated_x_string_node pm_interpolated_x_string_node_t
InterpolatedXStringNode.
struct pm_constant_write_node pm_constant_write_node_t
ConstantWriteNode.
struct pm_flip_flop_node pm_flip_flop_node_t
FlipFlopNode.
struct pm_required_keyword_parameter_node pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode.
#define PM_NODE_TYPE(node)
Cast the type to an enum to allow the compiler to provide exhaustiveness checking.
struct pm_no_keywords_parameter_node pm_no_keywords_parameter_node_t
NoKeywordsParameterNode.
struct pm_alias_global_variable_node pm_alias_global_variable_node_t
AliasGlobalVariableNode.
struct pm_post_execution_node pm_post_execution_node_t
PostExecutionNode.
struct pm_alias_method_node pm_alias_method_node_t
AliasMethodNode.
struct pm_keyword_rest_parameter_node pm_keyword_rest_parameter_node_t
KeywordRestParameterNode.
struct pm_global_variable_read_node pm_global_variable_read_node_t
GlobalVariableReadNode.
struct pm_back_reference_read_node pm_back_reference_read_node_t
BackReferenceReadNode.
struct pm_match_last_line_node pm_match_last_line_node_t
MatchLastLineNode.
struct pm_hash_node pm_hash_node_t
HashNode.
struct pm_block_local_variable_node pm_block_local_variable_node_t
BlockLocalVariableNode.
struct pm_multi_target_node pm_multi_target_node_t
MultiTargetNode.
struct pm_rational_node pm_rational_node_t
RationalNode.
struct pm_class_node pm_class_node_t
ClassNode.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
struct pm_ensure_node pm_ensure_node_t
EnsureNode.
struct pm_index_or_write_node pm_index_or_write_node_t
IndexOrWriteNode.
struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t
ForwardingParameterNode.
struct pm_constant_or_write_node pm_constant_or_write_node_t
ConstantOrWriteNode.
struct pm_index_operator_write_node pm_index_operator_write_node_t
IndexOperatorWriteNode.
struct pm_when_node pm_when_node_t
WhenNode.
struct pm_super_node pm_super_node_t
SuperNode.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
struct pm_rest_parameter_node pm_rest_parameter_node_t
RestParameterNode.
struct pm_assoc_splat_node pm_assoc_splat_node_t
AssocSplatNode.
struct pm_constant_read_node pm_constant_read_node_t
ConstantReadNode.
struct pm_match_predicate_node pm_match_predicate_node_t
MatchPredicateNode.
struct pm_or_node pm_or_node_t
OrNode.
struct pm_case_match_node pm_case_match_node_t
CaseMatchNode.
struct pm_call_and_write_node pm_call_and_write_node_t
CallAndWriteNode.
struct pm_until_node pm_until_node_t
UntilNode.
struct pm_retry_node pm_retry_node_t
RetryNode.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
struct pm_imaginary_node pm_imaginary_node_t
ImaginaryNode.
struct pm_array_pattern_node pm_array_pattern_node_t
ArrayPatternNode.
struct pm_redo_node pm_redo_node_t
RedoNode.
struct pm_source_encoding_node pm_source_encoding_node_t
SourceEncodingNode.
struct pm_true_node pm_true_node_t
TrueNode.
struct pm_break_node pm_break_node_t
BreakNode.
struct pm_integer_node pm_integer_node_t
IntegerNode.
struct pm_constant_path_target_node pm_constant_path_target_node_t
ConstantPathTargetNode.
struct pm_call_operator_write_node pm_call_operator_write_node_t
CallOperatorWriteNode.
struct pm_for_node pm_for_node_t
ForNode.
struct pm_global_variable_target_node pm_global_variable_target_node_t
GlobalVariableTargetNode.
struct pm_node_list pm_node_list_t
A list of nodes in the source, most often used for lists of children.
struct pm_required_parameter_node pm_required_parameter_node_t
RequiredParameterNode.
struct pm_symbol_node pm_symbol_node_t
SymbolNode.
struct pm_block_parameters_node pm_block_parameters_node_t
BlockParametersNode.
struct pm_alternation_pattern_node pm_alternation_pattern_node_t
AlternationPatternNode.
struct pm_parentheses_node pm_parentheses_node_t
ParenthesesNode.
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
struct pm_defined_node pm_defined_node_t
DefinedNode.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
struct pm_capture_pattern_node pm_capture_pattern_node_t
CapturePatternNode.
struct pm_source_file_node pm_source_file_node_t
SourceFileNode.
struct pm_regular_expression_node pm_regular_expression_node_t
RegularExpressionNode.
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
struct pm_array_node pm_array_node_t
ArrayNode.
struct pm_while_node pm_while_node_t
WhileNode.
struct pm_global_variable_write_node pm_global_variable_write_node_t
GlobalVariableWriteNode.
struct pm_instance_variable_or_write_node pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode.
struct pm_source_line_node pm_source_line_node_t
SourceLineNode.
struct pm_interpolated_match_last_line_node pm_interpolated_match_last_line_node_t
InterpolatedMatchLastLineNode.
struct pm_numbered_parameters_node pm_numbered_parameters_node_t
NumberedParametersNode.
struct pm_class_variable_operator_write_node pm_class_variable_operator_write_node_t
ClassVariableOperatorWriteNode.
struct pm_next_node pm_next_node_t
NextNode.
struct pm_unless_node pm_unless_node_t
UnlessNode.
struct pm_interpolated_regular_expression_node pm_interpolated_regular_expression_node_t
InterpolatedRegularExpressionNode.
struct pm_instance_variable_target_node pm_instance_variable_target_node_t
InstanceVariableTargetNode.
struct pm_string_node pm_string_node_t
StringNode.
struct pm_float_node pm_float_node_t
FloatNode.
struct pm_global_variable_operator_write_node pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode.
struct pm_instance_variable_operator_write_node pm_instance_variable_operator_write_node_t
InstanceVariableOperatorWriteNode.
struct pm_pinned_variable_node pm_pinned_variable_node_t
PinnedVariableNode.
struct pm_instance_variable_and_write_node pm_instance_variable_and_write_node_t
InstanceVariableAndWriteNode.
struct pm_program_node pm_program_node_t
ProgramNode.
struct pm_find_pattern_node pm_find_pattern_node_t
FindPatternNode.
struct pm_parser pm_parser_t
The parser used to parse Ruby source.
#define PRISM_EXPORTED_FUNCTION
By default, we compile with -fvisibility=hidden.
Functions related to nodes in the AST.
struct pm_node * old_name
AliasGlobalVariableNode#old_name.
struct pm_node * new_name
AliasGlobalVariableNode#new_name.
struct pm_node * old_name
AliasMethodNode#old_name.
struct pm_node * new_name
AliasMethodNode#new_name.
struct pm_node * left
AlternationPatternNode#left.
struct pm_node * right
AlternationPatternNode#right.
struct pm_node * left
AndNode#left.
struct pm_node * right
AndNode#right.
struct pm_node_list arguments
ArgumentsNode#arguments.
struct pm_node_list elements
ArrayNode#elements.
struct pm_node_list requireds
ArrayPatternNode#requireds.
struct pm_node * rest
ArrayPatternNode#rest.
struct pm_node * constant
ArrayPatternNode#constant.
struct pm_node_list posts
ArrayPatternNode#posts.
struct pm_node * value
AssocNode#value.
struct pm_node * key
AssocNode#key.
struct pm_node * value
AssocSplatNode#value.
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.
struct pm_else_node * else_clause
BeginNode#else_clause.
struct pm_node * expression
BlockArgumentNode#expression.
struct pm_node * parameters
BlockNode#parameters.
struct pm_node * body
BlockNode#body.
pm_constant_id_list_t locals
BlockNode#locals.
struct pm_parameters_node * parameters
BlockParametersNode#parameters.
struct pm_node_list locals
BlockParametersNode#locals.
struct pm_arguments_node * arguments
BreakNode#arguments.
struct pm_node * value
CallAndWriteNode#value.
struct pm_node * receiver
CallAndWriteNode#receiver.
struct pm_node * receiver
CallNode#receiver.
struct pm_arguments_node * arguments
CallNode#arguments.
struct pm_node * block
CallNode#block.
struct pm_node * receiver
CallOperatorWriteNode#receiver.
struct pm_node * value
CallOperatorWriteNode#value.
struct pm_node * receiver
CallOrWriteNode#receiver.
struct pm_node * value
CallOrWriteNode#value.
struct pm_node * receiver
CallTargetNode#receiver.
struct pm_node * target
CapturePatternNode#target.
struct pm_node * value
CapturePatternNode#value.
struct pm_node_list conditions
CaseMatchNode#conditions.
struct pm_else_node * consequent
CaseMatchNode#consequent.
struct pm_node * predicate
CaseMatchNode#predicate.
struct pm_node * predicate
CaseNode#predicate.
struct pm_else_node * consequent
CaseNode#consequent.
struct pm_node_list conditions
CaseNode#conditions.
struct pm_node * constant_path
ClassNode#constant_path.
pm_constant_id_list_t locals
ClassNode#locals.
struct pm_node * body
ClassNode#body.
struct pm_node * superclass
ClassNode#superclass.
struct pm_node * value
ClassVariableAndWriteNode#value.
struct pm_node * value
ClassVariableOperatorWriteNode#value.
struct pm_node * value
ClassVariableOrWriteNode#value.
struct pm_node * value
ClassVariableWriteNode#value.
struct pm_node * value
ConstantAndWriteNode#value.
struct pm_node * value
ConstantOperatorWriteNode#value.
struct pm_node * value
ConstantOrWriteNode#value.
struct pm_constant_path_node * target
ConstantPathAndWriteNode#target.
struct pm_node * value
ConstantPathAndWriteNode#value.
struct pm_node * child
ConstantPathNode#child.
struct pm_node * parent
ConstantPathNode#parent.
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode#target.
struct pm_node * value
ConstantPathOperatorWriteNode#value.
struct pm_node * value
ConstantPathOrWriteNode#value.
struct pm_constant_path_node * target
ConstantPathOrWriteNode#target.
struct pm_node * parent
ConstantPathTargetNode#parent.
struct pm_node * child
ConstantPathTargetNode#child.
struct pm_constant_path_node * target
ConstantPathWriteNode#target.
struct pm_node * value
ConstantPathWriteNode#value.
struct pm_node * value
ConstantWriteNode#value.
struct pm_parameters_node * parameters
DefNode#parameters.
struct pm_node * body
DefNode#body.
struct pm_node * receiver
DefNode#receiver.
pm_constant_id_list_t locals
DefNode#locals.
struct pm_node * value
DefinedNode#value.
struct pm_statements_node * statements
ElseNode#statements.
struct pm_statements_node * statements
EmbeddedStatementsNode#statements.
struct pm_node * variable
EmbeddedVariableNode#variable.
struct pm_statements_node * statements
EnsureNode#statements.
struct pm_node * left
FindPatternNode#left.
struct pm_node * constant
FindPatternNode#constant.
struct pm_node * right
FindPatternNode#right.
struct pm_node_list requireds
FindPatternNode#requireds.
struct pm_node * left
FlipFlopNode#left.
struct pm_node * right
FlipFlopNode#right.
struct pm_statements_node * statements
ForNode#statements.
struct pm_node * index
ForNode#index.
struct pm_node * collection
ForNode#collection.
struct pm_block_node * block
ForwardingSuperNode#block.
struct pm_node * value
GlobalVariableAndWriteNode#value.
struct pm_node * value
GlobalVariableOperatorWriteNode#value.
struct pm_node * value
GlobalVariableOrWriteNode#value.
struct pm_node * value
GlobalVariableWriteNode#value.
struct pm_node_list elements
HashNode#elements.
struct pm_node_list elements
HashPatternNode#elements.
struct pm_node * rest
HashPatternNode#rest.
struct pm_node * constant
HashPatternNode#constant.
struct pm_node * consequent
IfNode#consequent.
struct pm_node * predicate
IfNode#predicate.
struct pm_statements_node * statements
IfNode#statements.
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.
struct pm_arguments_node * arguments
IndexAndWriteNode#arguments.
struct pm_node * receiver
IndexAndWriteNode#receiver.
struct pm_node * value
IndexAndWriteNode#value.
struct pm_node * block
IndexAndWriteNode#block.
struct pm_node * value
IndexOperatorWriteNode#value.
struct pm_node * block
IndexOperatorWriteNode#block.
struct pm_arguments_node * arguments
IndexOperatorWriteNode#arguments.
struct pm_node * receiver
IndexOperatorWriteNode#receiver.
struct pm_node * receiver
IndexOrWriteNode#receiver.
struct pm_node * value
IndexOrWriteNode#value.
struct pm_arguments_node * arguments
IndexOrWriteNode#arguments.
struct pm_node * block
IndexOrWriteNode#block.
struct pm_node * block
IndexTargetNode#block.
struct pm_node * receiver
IndexTargetNode#receiver.
struct pm_arguments_node * arguments
IndexTargetNode#arguments.
struct pm_node * value
InstanceVariableAndWriteNode#value.
struct pm_node * value
InstanceVariableOperatorWriteNode#value.
struct pm_node * value
InstanceVariableOrWriteNode#value.
struct pm_node * value
InstanceVariableWriteNode#value.
struct pm_node_list parts
InterpolatedMatchLastLineNode#parts.
struct pm_node_list parts
InterpolatedRegularExpressionNode#parts.
struct pm_node_list parts
InterpolatedStringNode#parts.
struct pm_node_list parts
InterpolatedSymbolNode#parts.
struct pm_node_list parts
InterpolatedXStringNode#parts.
struct pm_node_list elements
KeywordHashNode#elements.
struct pm_node * body
LambdaNode#body.
struct pm_node * parameters
LambdaNode#parameters.
pm_constant_id_list_t locals
LambdaNode#locals.
struct pm_node * value
LocalVariableAndWriteNode#value.
struct pm_node * value
LocalVariableOperatorWriteNode#value.
struct pm_node * value
LocalVariableOrWriteNode#value.
struct pm_node * value
LocalVariableWriteNode#value.
pm_string_t unescaped
MatchLastLineNode#unescaped.
struct pm_node * pattern
MatchPredicateNode#pattern.
struct pm_node * value
MatchPredicateNode#value.
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.
This struct stores the information gathered by the pm_node_memsize function.
struct pm_node * constant_path
ModuleNode#constant_path.
struct pm_node * body
ModuleNode#body.
pm_constant_id_list_t locals
ModuleNode#locals.
struct pm_node_list lefts
MultiTargetNode#lefts.
struct pm_node * rest
MultiTargetNode#rest.
struct pm_node_list rights
MultiTargetNode#rights.
struct pm_node * value
MultiWriteNode#value.
struct pm_node * rest
MultiWriteNode#rest.
struct pm_node_list rights
MultiWriteNode#rights.
struct pm_node_list lefts
MultiWriteNode#lefts.
struct pm_arguments_node * arguments
NextNode#arguments.
size_t size
The number of nodes in the list.
struct pm_node ** nodes
The nodes in the list.
size_t capacity
The capacity of the list that has been allocated.
struct pm_node * value
OptionalKeywordParameterNode#value.
struct pm_node * value
OptionalParameterNode#value.
struct pm_node * left
OrNode#left.
struct pm_node * right
OrNode#right.
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.
struct pm_node * expression
PinnedExpressionNode#expression.
struct pm_node * variable
PinnedVariableNode#variable.
struct pm_statements_node * statements
PostExecutionNode#statements.
struct pm_statements_node * statements
PreExecutionNode#statements.
struct pm_statements_node * statements
ProgramNode#statements.
pm_constant_id_list_t locals
ProgramNode#locals.
struct pm_node * right
RangeNode#right.
struct pm_node * left
RangeNode#left.
struct pm_node * numeric
RationalNode#numeric.
pm_string_t unescaped
RegularExpressionNode#unescaped.
struct pm_node * rescue_expression
RescueModifierNode#rescue_expression.
struct pm_node * expression
RescueModifierNode#expression.
struct pm_rescue_node * consequent
RescueNode#consequent.
struct pm_node * reference
RescueNode#reference.
struct pm_node_list exceptions
RescueNode#exceptions.
struct pm_statements_node * statements
RescueNode#statements.
struct pm_arguments_node * arguments
ReturnNode#arguments.
pm_constant_id_list_t locals
SingletonClassNode#locals.
struct pm_node * expression
SingletonClassNode#expression.
struct pm_node * body
SingletonClassNode#body.
pm_string_t filepath
SourceFileNode#filepath.
struct pm_node * expression
SplatNode#expression.
struct pm_node_list body
StatementsNode#body.
pm_string_t unescaped
StringNode#unescaped.
struct pm_arguments_node * arguments
SuperNode#arguments.
struct pm_node * block
SuperNode#block.
pm_string_t unescaped
SymbolNode#unescaped.
struct pm_node_list names
UndefNode#names.
struct pm_else_node * consequent
UnlessNode#consequent.
struct pm_statements_node * statements
UnlessNode#statements.
struct pm_node * predicate
UnlessNode#predicate.
struct pm_statements_node * statements
UntilNode#statements.
struct pm_node * predicate
UntilNode#predicate.
struct pm_statements_node * statements
WhenNode#statements.
struct pm_node_list conditions
WhenNode#conditions.
struct pm_statements_node * statements
WhileNode#statements.
struct pm_node * predicate
WhileNode#predicate.
pm_string_t unescaped
XStringNode#unescaped.
struct pm_arguments_node * arguments
YieldNode#arguments.