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");
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);
1196#line 103 "node.c.erb"
1199 memsize->
memsize +=
sizeof(*cast);
1205#line 103 "node.c.erb"
1208 memsize->
memsize +=
sizeof(*cast);
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);
1396#line 103 "node.c.erb"
1399 memsize->
memsize +=
sizeof(*cast);
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);
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);
1737#line 103 "node.c.erb"
1740 memsize->
memsize +=
sizeof(*cast);
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);
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);
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);
2159 if (cast->
rest != NULL) {
2162 memsize->
memsize += pm_node_list_memsize(&cast->
posts, 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);
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);
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);
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);
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);
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);
2446#line 103 "node.c.erb"
2449 memsize->
memsize +=
sizeof(*cast);
2456#line 103 "node.c.erb"
2459 memsize->
memsize +=
sizeof(*cast);
2463#line 103 "node.c.erb"
2466 memsize->
memsize +=
sizeof(*cast);
2472#line 137 "node.c.erb"
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";
@ 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.
#define PM_NODE_TYPE(node)
Cast the type to an enum to allow the compiler to provide exhaustiveness checking.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
struct pm_node_list pm_node_list_t
A list of nodes in the source, most often used for lists of children.
#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.
ClassVariableAndWriteNode.
struct pm_node * value
ClassVariableAndWriteNode::value.
ClassVariableOperatorWriteNode.
struct pm_node * value
ClassVariableOperatorWriteNode::value.
ClassVariableOrWriteNode.
struct pm_node * value
ClassVariableOrWriteNode::value.
struct pm_node * value
ClassVariableWriteNode::value.
struct pm_node * value
ConstantAndWriteNode::value.
ConstantOperatorWriteNode.
struct pm_node * value
ConstantOperatorWriteNode::value.
struct pm_node * value
ConstantOrWriteNode::value.
ConstantPathAndWriteNode.
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.
ConstantPathOperatorWriteNode.
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.
GlobalVariableAndWriteNode.
struct pm_node * value
GlobalVariableAndWriteNode::value.
GlobalVariableOperatorWriteNode.
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
GlobalVariableOrWriteNode.
struct pm_node * value
GlobalVariableOrWriteNode::value.
GlobalVariableTargetNode.
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.
InstanceVariableAndWriteNode.
struct pm_node * value
InstanceVariableAndWriteNode::value.
InstanceVariableOperatorWriteNode.
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
InstanceVariableOrWriteNode.
struct pm_node * value
InstanceVariableOrWriteNode::value.
InstanceVariableReadNode.
InstanceVariableTargetNode.
InstanceVariableWriteNode.
struct pm_node * value
InstanceVariableWriteNode::value.
InterpolatedMatchLastLineNode.
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
InterpolatedRegularExpressionNode.
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.
KeywordRestParameterNode.
struct pm_node * body
LambdaNode::body.
struct pm_node * parameters
LambdaNode::parameters.
pm_constant_id_list_t locals
LambdaNode::locals.
LocalVariableAndWriteNode.
struct pm_node * value
LocalVariableAndWriteNode::value.
LocalVariableOperatorWriteNode.
struct pm_node * value
LocalVariableOperatorWriteNode::value.
LocalVariableOrWriteNode.
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.
size_t memsize
The total memory footprint of the node and all of its children.
size_t node_count
The number of children the node has.
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.
A list of nodes in the source, most often used for lists of children.
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.
This is the base structure that represents a node in the syntax tree.
NumberedReferenceReadNode.
OptionalKeywordParameterNode.
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.
This struct represents the overall parser.
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.
RequiredKeywordParameterNode.
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.