9 #line 2 "prism/templates/src/node.c.erb"
20 size_t requested_size = list->
size + size;
23 if (requested_size < list->size)
return false;
26 if (requested_size < list->capacity)
return true;
32 if (next_capacity < list->capacity)
return false;
35 while (requested_size > next_capacity) {
36 size_t double_capacity = next_capacity * 2;
39 if (double_capacity < next_capacity)
return false;
40 next_capacity = double_capacity;
44 if (nodes == NULL)
return false;
56 if (pm_node_list_grow(list, 1)) {
66 if (pm_node_list_grow(list, 1)) {
68 list->
nodes[0] = node;
78 if (other->
size > 0 && pm_node_list_grow(list, other->
size)) {
116 #line 110 "prism/templates/src/node.c.erb"
123 #line 110 "prism/templates/src/node.c.erb"
130 #line 110 "prism/templates/src/node.c.erb"
137 #line 110 "prism/templates/src/node.c.erb"
144 #line 110 "prism/templates/src/node.c.erb"
147 pm_node_list_destroy(parser, &cast->
arguments);
150 #line 110 "prism/templates/src/node.c.erb"
153 pm_node_list_destroy(parser, &cast->
elements);
156 #line 110 "prism/templates/src/node.c.erb"
162 pm_node_list_destroy(parser, &cast->
requireds);
163 if (cast->
rest != NULL) {
166 pm_node_list_destroy(parser, &cast->
posts);
169 #line 110 "prism/templates/src/node.c.erb"
176 #line 110 "prism/templates/src/node.c.erb"
179 if (cast->
value != NULL) {
184 #line 110 "prism/templates/src/node.c.erb"
188 #line 110 "prism/templates/src/node.c.erb"
205 #line 110 "prism/templates/src/node.c.erb"
213 #line 110 "prism/templates/src/node.c.erb"
217 #line 110 "prism/templates/src/node.c.erb"
224 if (cast->
body != NULL) {
229 #line 110 "prism/templates/src/node.c.erb"
233 #line 110 "prism/templates/src/node.c.erb"
239 pm_node_list_destroy(parser, &cast->
locals);
242 #line 110 "prism/templates/src/node.c.erb"
250 #line 110 "prism/templates/src/node.c.erb"
259 #line 110 "prism/templates/src/node.c.erb"
268 if (cast->
block != NULL) {
273 #line 110 "prism/templates/src/node.c.erb"
282 #line 110 "prism/templates/src/node.c.erb"
291 #line 110 "prism/templates/src/node.c.erb"
297 #line 110 "prism/templates/src/node.c.erb"
304 #line 110 "prism/templates/src/node.c.erb"
310 pm_node_list_destroy(parser, &cast->
conditions);
316 #line 110 "prism/templates/src/node.c.erb"
322 pm_node_list_destroy(parser, &cast->
conditions);
328 #line 110 "prism/templates/src/node.c.erb"
336 if (cast->
body != NULL) {
341 #line 110 "prism/templates/src/node.c.erb"
347 #line 110 "prism/templates/src/node.c.erb"
353 #line 110 "prism/templates/src/node.c.erb"
359 #line 110 "prism/templates/src/node.c.erb"
363 #line 110 "prism/templates/src/node.c.erb"
367 #line 110 "prism/templates/src/node.c.erb"
373 #line 110 "prism/templates/src/node.c.erb"
379 #line 110 "prism/templates/src/node.c.erb"
385 #line 110 "prism/templates/src/node.c.erb"
391 #line 110 "prism/templates/src/node.c.erb"
398 #line 110 "prism/templates/src/node.c.erb"
401 if (cast->
parent != NULL) {
406 #line 110 "prism/templates/src/node.c.erb"
413 #line 110 "prism/templates/src/node.c.erb"
420 #line 110 "prism/templates/src/node.c.erb"
423 if (cast->
parent != NULL) {
428 #line 110 "prism/templates/src/node.c.erb"
435 #line 110 "prism/templates/src/node.c.erb"
439 #line 110 "prism/templates/src/node.c.erb"
443 #line 110 "prism/templates/src/node.c.erb"
449 #line 110 "prism/templates/src/node.c.erb"
458 if (cast->
body != NULL) {
464 #line 110 "prism/templates/src/node.c.erb"
470 #line 110 "prism/templates/src/node.c.erb"
478 #line 110 "prism/templates/src/node.c.erb"
486 #line 110 "prism/templates/src/node.c.erb"
492 #line 110 "prism/templates/src/node.c.erb"
500 #line 110 "prism/templates/src/node.c.erb"
504 #line 110 "prism/templates/src/node.c.erb"
511 pm_node_list_destroy(parser, &cast->
requireds);
515 #line 110 "prism/templates/src/node.c.erb"
518 if (cast->
left != NULL) {
521 if (cast->
right != NULL) {
526 #line 110 "prism/templates/src/node.c.erb"
530 #line 110 "prism/templates/src/node.c.erb"
540 #line 110 "prism/templates/src/node.c.erb"
544 #line 110 "prism/templates/src/node.c.erb"
548 #line 110 "prism/templates/src/node.c.erb"
551 if (cast->
block != NULL) {
556 #line 110 "prism/templates/src/node.c.erb"
562 #line 110 "prism/templates/src/node.c.erb"
568 #line 110 "prism/templates/src/node.c.erb"
574 #line 110 "prism/templates/src/node.c.erb"
578 #line 110 "prism/templates/src/node.c.erb"
582 #line 110 "prism/templates/src/node.c.erb"
588 #line 110 "prism/templates/src/node.c.erb"
591 pm_node_list_destroy(parser, &cast->
elements);
594 #line 110 "prism/templates/src/node.c.erb"
600 pm_node_list_destroy(parser, &cast->
elements);
601 if (cast->
rest != NULL) {
606 #line 110 "prism/templates/src/node.c.erb"
618 #line 110 "prism/templates/src/node.c.erb"
624 #line 110 "prism/templates/src/node.c.erb"
630 #line 110 "prism/templates/src/node.c.erb"
634 #line 110 "prism/templates/src/node.c.erb"
643 #line 110 "prism/templates/src/node.c.erb"
652 if (cast->
block != NULL) {
658 #line 110 "prism/templates/src/node.c.erb"
667 if (cast->
block != NULL) {
673 #line 110 "prism/templates/src/node.c.erb"
682 if (cast->
block != NULL) {
688 #line 110 "prism/templates/src/node.c.erb"
695 if (cast->
block != NULL) {
700 #line 110 "prism/templates/src/node.c.erb"
706 #line 110 "prism/templates/src/node.c.erb"
712 #line 110 "prism/templates/src/node.c.erb"
718 #line 110 "prism/templates/src/node.c.erb"
722 #line 110 "prism/templates/src/node.c.erb"
726 #line 110 "prism/templates/src/node.c.erb"
732 #line 110 "prism/templates/src/node.c.erb"
738 #line 110 "prism/templates/src/node.c.erb"
741 pm_node_list_destroy(parser, &cast->
parts);
744 #line 110 "prism/templates/src/node.c.erb"
747 pm_node_list_destroy(parser, &cast->
parts);
750 #line 110 "prism/templates/src/node.c.erb"
753 pm_node_list_destroy(parser, &cast->
parts);
756 #line 110 "prism/templates/src/node.c.erb"
759 pm_node_list_destroy(parser, &cast->
parts);
762 #line 110 "prism/templates/src/node.c.erb"
765 pm_node_list_destroy(parser, &cast->
parts);
768 #line 110 "prism/templates/src/node.c.erb"
772 #line 110 "prism/templates/src/node.c.erb"
776 #line 110 "prism/templates/src/node.c.erb"
779 pm_node_list_destroy(parser, &cast->
elements);
782 #line 110 "prism/templates/src/node.c.erb"
786 #line 110 "prism/templates/src/node.c.erb"
793 if (cast->
body != NULL) {
798 #line 110 "prism/templates/src/node.c.erb"
804 #line 110 "prism/templates/src/node.c.erb"
810 #line 110 "prism/templates/src/node.c.erb"
816 #line 110 "prism/templates/src/node.c.erb"
820 #line 110 "prism/templates/src/node.c.erb"
824 #line 110 "prism/templates/src/node.c.erb"
830 #line 110 "prism/templates/src/node.c.erb"
836 #line 110 "prism/templates/src/node.c.erb"
843 #line 110 "prism/templates/src/node.c.erb"
850 #line 110 "prism/templates/src/node.c.erb"
854 pm_node_list_destroy(parser, &cast->
targets);
857 #line 110 "prism/templates/src/node.c.erb"
861 #line 110 "prism/templates/src/node.c.erb"
866 if (cast->
body != NULL) {
871 #line 110 "prism/templates/src/node.c.erb"
874 pm_node_list_destroy(parser, &cast->
lefts);
875 if (cast->
rest != NULL) {
878 pm_node_list_destroy(parser, &cast->
rights);
881 #line 110 "prism/templates/src/node.c.erb"
884 pm_node_list_destroy(parser, &cast->
lefts);
885 if (cast->
rest != NULL) {
888 pm_node_list_destroy(parser, &cast->
rights);
892 #line 110 "prism/templates/src/node.c.erb"
900 #line 110 "prism/templates/src/node.c.erb"
904 #line 110 "prism/templates/src/node.c.erb"
908 #line 110 "prism/templates/src/node.c.erb"
912 #line 110 "prism/templates/src/node.c.erb"
916 #line 110 "prism/templates/src/node.c.erb"
922 #line 110 "prism/templates/src/node.c.erb"
928 #line 110 "prism/templates/src/node.c.erb"
935 #line 110 "prism/templates/src/node.c.erb"
938 pm_node_list_destroy(parser, &cast->
requireds);
939 pm_node_list_destroy(parser, &cast->
optionals);
940 if (cast->
rest != NULL) {
943 pm_node_list_destroy(parser, &cast->
posts);
944 pm_node_list_destroy(parser, &cast->
keywords);
948 if (cast->
block != NULL) {
953 #line 110 "prism/templates/src/node.c.erb"
956 if (cast->
body != NULL) {
961 #line 110 "prism/templates/src/node.c.erb"
967 #line 110 "prism/templates/src/node.c.erb"
973 #line 110 "prism/templates/src/node.c.erb"
981 #line 110 "prism/templates/src/node.c.erb"
989 #line 110 "prism/templates/src/node.c.erb"
996 #line 110 "prism/templates/src/node.c.erb"
999 if (cast->
left != NULL) {
1002 if (cast->
right != NULL) {
1007 #line 110 "prism/templates/src/node.c.erb"
1014 #line 110 "prism/templates/src/node.c.erb"
1018 #line 110 "prism/templates/src/node.c.erb"
1024 #line 110 "prism/templates/src/node.c.erb"
1028 #line 110 "prism/templates/src/node.c.erb"
1032 #line 110 "prism/templates/src/node.c.erb"
1039 #line 110 "prism/templates/src/node.c.erb"
1042 pm_node_list_destroy(parser, &cast->
exceptions);
1054 #line 110 "prism/templates/src/node.c.erb"
1058 #line 110 "prism/templates/src/node.c.erb"
1062 #line 110 "prism/templates/src/node.c.erb"
1070 #line 110 "prism/templates/src/node.c.erb"
1074 #line 110 "prism/templates/src/node.c.erb"
1080 #line 110 "prism/templates/src/node.c.erb"
1085 if (cast->
body != NULL) {
1090 #line 110 "prism/templates/src/node.c.erb"
1094 #line 110 "prism/templates/src/node.c.erb"
1100 #line 110 "prism/templates/src/node.c.erb"
1104 #line 110 "prism/templates/src/node.c.erb"
1112 #line 110 "prism/templates/src/node.c.erb"
1115 pm_node_list_destroy(parser, &cast->
body);
1118 #line 110 "prism/templates/src/node.c.erb"
1124 #line 110 "prism/templates/src/node.c.erb"
1130 if (cast->
block != NULL) {
1135 #line 110 "prism/templates/src/node.c.erb"
1141 #line 110 "prism/templates/src/node.c.erb"
1145 #line 110 "prism/templates/src/node.c.erb"
1148 pm_node_list_destroy(parser, &cast->
names);
1151 #line 110 "prism/templates/src/node.c.erb"
1163 #line 110 "prism/templates/src/node.c.erb"
1172 #line 110 "prism/templates/src/node.c.erb"
1175 pm_node_list_destroy(parser, &cast->
conditions);
1181 #line 110 "prism/templates/src/node.c.erb"
1190 #line 110 "prism/templates/src/node.c.erb"
1196 #line 110 "prism/templates/src/node.c.erb"
1204 #line 139 "prism/templates/src/node.c.erb"
1206 assert(
false &&
"unreachable");
1218 switch (node_type) {
1220 return "PM_ALIAS_GLOBAL_VARIABLE_NODE";
1222 return "PM_ALIAS_METHOD_NODE";
1224 return "PM_ALTERNATION_PATTERN_NODE";
1226 return "PM_AND_NODE";
1228 return "PM_ARGUMENTS_NODE";
1230 return "PM_ARRAY_NODE";
1232 return "PM_ARRAY_PATTERN_NODE";
1234 return "PM_ASSOC_NODE";
1236 return "PM_ASSOC_SPLAT_NODE";
1238 return "PM_BACK_REFERENCE_READ_NODE";
1240 return "PM_BEGIN_NODE";
1242 return "PM_BLOCK_ARGUMENT_NODE";
1244 return "PM_BLOCK_LOCAL_VARIABLE_NODE";
1246 return "PM_BLOCK_NODE";
1248 return "PM_BLOCK_PARAMETER_NODE";
1250 return "PM_BLOCK_PARAMETERS_NODE";
1252 return "PM_BREAK_NODE";
1254 return "PM_CALL_AND_WRITE_NODE";
1256 return "PM_CALL_NODE";
1258 return "PM_CALL_OPERATOR_WRITE_NODE";
1260 return "PM_CALL_OR_WRITE_NODE";
1262 return "PM_CALL_TARGET_NODE";
1264 return "PM_CAPTURE_PATTERN_NODE";
1266 return "PM_CASE_MATCH_NODE";
1268 return "PM_CASE_NODE";
1270 return "PM_CLASS_NODE";
1272 return "PM_CLASS_VARIABLE_AND_WRITE_NODE";
1274 return "PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE";
1276 return "PM_CLASS_VARIABLE_OR_WRITE_NODE";
1278 return "PM_CLASS_VARIABLE_READ_NODE";
1280 return "PM_CLASS_VARIABLE_TARGET_NODE";
1282 return "PM_CLASS_VARIABLE_WRITE_NODE";
1284 return "PM_CONSTANT_AND_WRITE_NODE";
1286 return "PM_CONSTANT_OPERATOR_WRITE_NODE";
1288 return "PM_CONSTANT_OR_WRITE_NODE";
1290 return "PM_CONSTANT_PATH_AND_WRITE_NODE";
1292 return "PM_CONSTANT_PATH_NODE";
1294 return "PM_CONSTANT_PATH_OPERATOR_WRITE_NODE";
1296 return "PM_CONSTANT_PATH_OR_WRITE_NODE";
1298 return "PM_CONSTANT_PATH_TARGET_NODE";
1300 return "PM_CONSTANT_PATH_WRITE_NODE";
1302 return "PM_CONSTANT_READ_NODE";
1304 return "PM_CONSTANT_TARGET_NODE";
1306 return "PM_CONSTANT_WRITE_NODE";
1308 return "PM_DEF_NODE";
1310 return "PM_DEFINED_NODE";
1312 return "PM_ELSE_NODE";
1314 return "PM_EMBEDDED_STATEMENTS_NODE";
1316 return "PM_EMBEDDED_VARIABLE_NODE";
1318 return "PM_ENSURE_NODE";
1320 return "PM_FALSE_NODE";
1322 return "PM_FIND_PATTERN_NODE";
1324 return "PM_FLIP_FLOP_NODE";
1326 return "PM_FLOAT_NODE";
1328 return "PM_FOR_NODE";
1330 return "PM_FORWARDING_ARGUMENTS_NODE";
1332 return "PM_FORWARDING_PARAMETER_NODE";
1334 return "PM_FORWARDING_SUPER_NODE";
1336 return "PM_GLOBAL_VARIABLE_AND_WRITE_NODE";
1338 return "PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE";
1340 return "PM_GLOBAL_VARIABLE_OR_WRITE_NODE";
1342 return "PM_GLOBAL_VARIABLE_READ_NODE";
1344 return "PM_GLOBAL_VARIABLE_TARGET_NODE";
1346 return "PM_GLOBAL_VARIABLE_WRITE_NODE";
1348 return "PM_HASH_NODE";
1350 return "PM_HASH_PATTERN_NODE";
1352 return "PM_IF_NODE";
1354 return "PM_IMAGINARY_NODE";
1356 return "PM_IMPLICIT_NODE";
1358 return "PM_IMPLICIT_REST_NODE";
1360 return "PM_IN_NODE";
1362 return "PM_INDEX_AND_WRITE_NODE";
1364 return "PM_INDEX_OPERATOR_WRITE_NODE";
1366 return "PM_INDEX_OR_WRITE_NODE";
1368 return "PM_INDEX_TARGET_NODE";
1370 return "PM_INSTANCE_VARIABLE_AND_WRITE_NODE";
1372 return "PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE";
1374 return "PM_INSTANCE_VARIABLE_OR_WRITE_NODE";
1376 return "PM_INSTANCE_VARIABLE_READ_NODE";
1378 return "PM_INSTANCE_VARIABLE_TARGET_NODE";
1380 return "PM_INSTANCE_VARIABLE_WRITE_NODE";
1382 return "PM_INTEGER_NODE";
1384 return "PM_INTERPOLATED_MATCH_LAST_LINE_NODE";
1386 return "PM_INTERPOLATED_REGULAR_EXPRESSION_NODE";
1388 return "PM_INTERPOLATED_STRING_NODE";
1390 return "PM_INTERPOLATED_SYMBOL_NODE";
1392 return "PM_INTERPOLATED_X_STRING_NODE";
1394 return "PM_IT_LOCAL_VARIABLE_READ_NODE";
1396 return "PM_IT_PARAMETERS_NODE";
1398 return "PM_KEYWORD_HASH_NODE";
1400 return "PM_KEYWORD_REST_PARAMETER_NODE";
1402 return "PM_LAMBDA_NODE";
1404 return "PM_LOCAL_VARIABLE_AND_WRITE_NODE";
1406 return "PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE";
1408 return "PM_LOCAL_VARIABLE_OR_WRITE_NODE";
1410 return "PM_LOCAL_VARIABLE_READ_NODE";
1412 return "PM_LOCAL_VARIABLE_TARGET_NODE";
1414 return "PM_LOCAL_VARIABLE_WRITE_NODE";
1416 return "PM_MATCH_LAST_LINE_NODE";
1418 return "PM_MATCH_PREDICATE_NODE";
1420 return "PM_MATCH_REQUIRED_NODE";
1422 return "PM_MATCH_WRITE_NODE";
1424 return "PM_MISSING_NODE";
1426 return "PM_MODULE_NODE";
1428 return "PM_MULTI_TARGET_NODE";
1430 return "PM_MULTI_WRITE_NODE";
1432 return "PM_NEXT_NODE";
1434 return "PM_NIL_NODE";
1436 return "PM_NO_KEYWORDS_PARAMETER_NODE";
1438 return "PM_NUMBERED_PARAMETERS_NODE";
1440 return "PM_NUMBERED_REFERENCE_READ_NODE";
1442 return "PM_OPTIONAL_KEYWORD_PARAMETER_NODE";
1444 return "PM_OPTIONAL_PARAMETER_NODE";
1446 return "PM_OR_NODE";
1448 return "PM_PARAMETERS_NODE";
1450 return "PM_PARENTHESES_NODE";
1452 return "PM_PINNED_EXPRESSION_NODE";
1454 return "PM_PINNED_VARIABLE_NODE";
1456 return "PM_POST_EXECUTION_NODE";
1458 return "PM_PRE_EXECUTION_NODE";
1460 return "PM_PROGRAM_NODE";
1462 return "PM_RANGE_NODE";
1464 return "PM_RATIONAL_NODE";
1466 return "PM_REDO_NODE";
1468 return "PM_REGULAR_EXPRESSION_NODE";
1470 return "PM_REQUIRED_KEYWORD_PARAMETER_NODE";
1472 return "PM_REQUIRED_PARAMETER_NODE";
1474 return "PM_RESCUE_MODIFIER_NODE";
1476 return "PM_RESCUE_NODE";
1478 return "PM_REST_PARAMETER_NODE";
1480 return "PM_RETRY_NODE";
1482 return "PM_RETURN_NODE";
1484 return "PM_SELF_NODE";
1486 return "PM_SHAREABLE_CONSTANT_NODE";
1488 return "PM_SINGLETON_CLASS_NODE";
1490 return "PM_SOURCE_ENCODING_NODE";
1492 return "PM_SOURCE_FILE_NODE";
1494 return "PM_SOURCE_LINE_NODE";
1496 return "PM_SPLAT_NODE";
1498 return "PM_STATEMENTS_NODE";
1500 return "PM_STRING_NODE";
1502 return "PM_SUPER_NODE";
1504 return "PM_SYMBOL_NODE";
1506 return "PM_TRUE_NODE";
1508 return "PM_UNDEF_NODE";
1510 return "PM_UNLESS_NODE";
1512 return "PM_UNTIL_NODE";
1514 return "PM_WHEN_NODE";
1516 return "PM_WHILE_NODE";
1518 return "PM_X_STRING_NODE";
1520 return "PM_YIELD_NODE";
1595 for (
size_t index = 0; index < arguments->
size; index++) {
1606 for (
size_t index = 0; index < elements->
size; index++) {
1622 for (
size_t index = 0; index < requireds->
size; index++) {
1627 if (cast->
rest != NULL) {
1633 for (
size_t index = 0; index < posts->
size; index++) {
1654 if (cast->
value != NULL) {
1708 if (cast->
body != NULL) {
1726 for (
size_t index = 0; index < locals->
size; index++) {
1769 if (cast->
block != NULL) {
1830 for (
size_t index = 0; index < conditions->
size; index++) {
1851 for (
size_t index = 0; index < conditions->
size; index++) {
1874 if (cast->
body != NULL) {
1955 if (cast->
parent != NULL) {
1987 if (cast->
parent != NULL) {
2030 if (cast->
body != NULL) {
2097 for (
size_t index = 0; index < requireds->
size; index++) {
2110 if (cast->
left != NULL) {
2115 if (cast->
right != NULL) {
2147 if (cast->
block != NULL) {
2194 for (
size_t index = 0; index < elements->
size; index++) {
2210 for (
size_t index = 0; index < elements->
size; index++) {
2215 if (cast->
rest != NULL) {
2284 if (cast->
block != NULL) {
2307 if (cast->
block != NULL) {
2330 if (cast->
block != NULL) {
2351 if (cast->
block != NULL) {
2400 for (
size_t index = 0; index < parts->
size; index++) {
2411 for (
size_t index = 0; index < parts->
size; index++) {
2422 for (
size_t index = 0; index < parts->
size; index++) {
2433 for (
size_t index = 0; index < parts->
size; index++) {
2444 for (
size_t index = 0; index < parts->
size; index++) {
2459 for (
size_t index = 0; index < elements->
size; index++) {
2476 if (cast->
body != NULL) {
2550 for (
size_t index = 0; index < targets->
size; index++) {
2565 if (cast->
body != NULL) {
2576 for (
size_t index = 0; index < lefts->
size; index++) {
2581 if (cast->
rest != NULL) {
2587 for (
size_t index = 0; index < rights->
size; index++) {
2598 for (
size_t index = 0; index < lefts->
size; index++) {
2603 if (cast->
rest != NULL) {
2609 for (
size_t index = 0; index < rights->
size; index++) {
2668 for (
size_t index = 0; index < requireds->
size; index++) {
2674 for (
size_t index = 0; index < optionals->
size; index++) {
2679 if (cast->
rest != NULL) {
2685 for (
size_t index = 0; index < posts->
size; index++) {
2691 for (
size_t index = 0; index < keywords->
size; index++) {
2701 if (cast->
block != NULL) {
2711 if (cast->
body != NULL) {
2765 if (cast->
left != NULL) {
2770 if (cast->
right != NULL) {
2802 for (
size_t index = 0; index < exceptions->
size; index++) {
2854 if (cast->
body != NULL) {
2881 for (
size_t index = 0; index < body->
size; index++) {
2898 if (cast->
block != NULL) {
2913 for (
size_t index = 0; index < names->
size; index++) {
2955 for (
size_t index = 0; index < conditions->
size; index++) {
2998 #ifndef PRISM_EXCLUDE_JSON
3010 uint32_t start = (uint32_t) (location->
start - parser->
start);
3011 uint32_t end = (uint32_t) (location->
end - parser->
start);
3025 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3040 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
3049 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3064 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
3073 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3088 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3097 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3112 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3121 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3161 for (
size_t index = 0; index < arguments->
size; index++) {
3174 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3194 for (
size_t index = 0; index < elements->
size; index++) {
3204 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
3213 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
3225 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3242 for (
size_t index = 0; index < requireds->
size; index++) {
3251 if (cast->
rest != NULL) {
3263 for (
size_t index = 0; index < posts->
size; index++) {
3273 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
3282 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
3294 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3310 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3322 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3327 if (cast->
value != NULL) {
3336 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3345 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3350 pm_dump_json_constant(buffer, parser, cast->
name);
3359 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3422 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3436 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3445 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3462 pm_dump_json_constant(buffer, parser, cast->
name);
3471 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3479 for (
size_t index = 0; index < locals->
size; index++) {
3481 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
3497 if (cast->
body != NULL) {
3506 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
3511 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
3520 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3538 pm_dump_json_constant(buffer, parser, cast->
name);
3547 pm_dump_json_location(buffer, parser, &cast->
name_loc);
3555 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3564 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3581 for (
size_t index = 0; index < locals->
size; index++) {
3591 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
3600 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
3612 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3626 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
3635 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3686 pm_dump_json_location(buffer, parser, &cast->
message_loc);
3694 pm_dump_json_constant(buffer, parser, cast->
read_name);
3699 pm_dump_json_constant(buffer, parser, cast->
write_name);
3704 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3718 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3768 pm_dump_json_constant(buffer, parser, cast->
name);
3774 pm_dump_json_location(buffer, parser, &cast->
message_loc);
3783 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
3801 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
3809 if (cast->
block != NULL) {
3822 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3873 pm_dump_json_location(buffer, parser, &cast->
message_loc);
3881 pm_dump_json_constant(buffer, parser, cast->
read_name);
3886 pm_dump_json_constant(buffer, parser, cast->
write_name);
3910 pm_dump_json_location(buffer, parser, &cast->
base.
location);
3961 pm_dump_json_location(buffer, parser, &cast->
message_loc);
3969 pm_dump_json_constant(buffer, parser, cast->
read_name);
3974 pm_dump_json_constant(buffer, parser, cast->
write_name);
3979 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
3993 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4035 pm_dump_json_constant(buffer, parser, cast->
name);
4040 pm_dump_json_location(buffer, parser, &cast->
message_loc);
4049 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4064 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4073 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4090 for (
size_t index = 0; index < conditions->
size; index++) {
4122 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4139 for (
size_t index = 0; index < conditions->
size; index++) {
4171 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4179 for (
size_t index = 0; index < locals->
size; index++) {
4181 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
4216 if (cast->
body != NULL) {
4230 pm_dump_json_constant(buffer, parser, cast->
name);
4239 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4244 pm_dump_json_constant(buffer, parser, cast->
name);
4249 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4254 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4268 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4273 pm_dump_json_constant(buffer, parser, cast->
name);
4278 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4302 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4307 pm_dump_json_constant(buffer, parser, cast->
name);
4312 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4317 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4331 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4336 pm_dump_json_constant(buffer, parser, cast->
name);
4345 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4350 pm_dump_json_constant(buffer, parser, cast->
name);
4359 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4364 pm_dump_json_constant(buffer, parser, cast->
name);
4369 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4379 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4388 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4393 pm_dump_json_constant(buffer, parser, cast->
name);
4398 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4403 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4417 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4422 pm_dump_json_constant(buffer, parser, cast->
name);
4427 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4451 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4456 pm_dump_json_constant(buffer, parser, cast->
name);
4461 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4466 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4480 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4490 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4504 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4509 if (cast->
parent != NULL) {
4519 pm_dump_json_constant(buffer, parser, cast->
name);
4527 pm_dump_json_location(buffer, parser, &cast->
delimiter_loc);
4532 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4541 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4570 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4580 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4594 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4599 if (cast->
parent != NULL) {
4609 pm_dump_json_constant(buffer, parser, cast->
name);
4617 pm_dump_json_location(buffer, parser, &cast->
delimiter_loc);
4622 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4631 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4641 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4655 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4660 pm_dump_json_constant(buffer, parser, cast->
name);
4669 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4674 pm_dump_json_constant(buffer, parser, cast->
name);
4683 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4688 pm_dump_json_constant(buffer, parser, cast->
name);
4693 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4703 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4712 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4717 pm_dump_json_constant(buffer, parser, cast->
name);
4722 pm_dump_json_location(buffer, parser, &cast->
name_loc);
4745 if (cast->
body != NULL) {
4757 for (
size_t index = 0; index < locals->
size; index++) {
4759 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
4772 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4781 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
4790 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
4799 pm_dump_json_location(buffer, parser, &cast->
equal_loc);
4820 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4826 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
4840 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
4848 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
4857 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4889 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4894 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
4908 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
4917 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4922 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
4936 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4964 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4973 pm_dump_json_location(buffer, parser, &cast->
base.
location);
4995 for (
size_t index = 0; index < requireds->
size; index++) {
5010 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5019 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5031 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5048 if (cast->
left != NULL) {
5057 if (cast->
right != NULL) {
5066 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5075 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5089 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5141 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5150 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5159 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5164 if (cast->
block != NULL) {
5177 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5182 pm_dump_json_constant(buffer, parser, cast->
name);
5187 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5192 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5206 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5211 pm_dump_json_constant(buffer, parser, cast->
name);
5216 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5240 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5245 pm_dump_json_constant(buffer, parser, cast->
name);
5250 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5255 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5269 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5274 pm_dump_json_constant(buffer, parser, cast->
name);
5283 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5288 pm_dump_json_constant(buffer, parser, cast->
name);
5297 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5302 pm_dump_json_constant(buffer, parser, cast->
name);
5307 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5317 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5326 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5331 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5339 for (
size_t index = 0; index < elements->
size; index++) {
5348 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5357 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5374 for (
size_t index = 0; index < elements->
size; index++) {
5383 if (cast->
rest != NULL) {
5393 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5402 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5414 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5473 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5487 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5501 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5510 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5529 pm_dump_json_location(buffer, parser, &cast->
in_loc);
5535 pm_dump_json_location(buffer, parser, &cast->
then_loc);
5547 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5597 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5611 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5616 if (cast->
block != NULL) {
5625 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5639 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5689 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5703 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5708 if (cast->
block != NULL) {
5736 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5786 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5800 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5805 if (cast->
block != NULL) {
5814 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5828 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5865 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
5879 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
5884 if (cast->
block != NULL) {
5897 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5902 pm_dump_json_constant(buffer, parser, cast->
name);
5907 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5912 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5926 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5931 pm_dump_json_constant(buffer, parser, cast->
name);
5936 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5960 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5965 pm_dump_json_constant(buffer, parser, cast->
name);
5970 pm_dump_json_location(buffer, parser, &cast->
name_loc);
5975 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
5989 pm_dump_json_location(buffer, parser, &cast->
base.
location);
5994 pm_dump_json_constant(buffer, parser, cast->
name);
6003 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6008 pm_dump_json_constant(buffer, parser, cast->
name);
6017 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6022 pm_dump_json_constant(buffer, parser, cast->
name);
6027 pm_dump_json_location(buffer, parser, &cast->
name_loc);
6037 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6046 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6087 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6154 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6162 for (
size_t index = 0; index < parts->
size; index++) {
6171 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6180 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6247 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6255 for (
size_t index = 0; index < parts->
size; index++) {
6264 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6273 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6296 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6307 for (
size_t index = 0; index < parts->
size; index++) {
6317 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6329 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6335 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6346 for (
size_t index = 0; index < parts->
size; index++) {
6356 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6368 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6373 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6381 for (
size_t index = 0; index < parts->
size; index++) {
6390 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6399 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6408 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6417 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6437 for (
size_t index = 0; index < elements->
size; index++) {
6450 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6468 pm_dump_json_constant(buffer, parser, cast->
name);
6477 pm_dump_json_location(buffer, parser, &cast->
name_loc);
6485 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6494 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6502 for (
size_t index = 0; index < locals->
size; index++) {
6504 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
6511 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6516 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6521 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6535 if (cast->
body != NULL) {
6548 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6553 pm_dump_json_location(buffer, parser, &cast->
name_loc);
6558 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6568 pm_dump_json_constant(buffer, parser, cast->
name);
6582 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6587 pm_dump_json_location(buffer, parser, &cast->
name_loc);
6602 pm_dump_json_constant(buffer, parser, cast->
name);
6621 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6626 pm_dump_json_location(buffer, parser, &cast->
name_loc);
6631 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6641 pm_dump_json_constant(buffer, parser, cast->
name);
6655 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6660 pm_dump_json_constant(buffer, parser, cast->
name);
6674 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6679 pm_dump_json_constant(buffer, parser, cast->
name);
6693 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6698 pm_dump_json_constant(buffer, parser, cast->
name);
6708 pm_dump_json_location(buffer, parser, &cast->
name_loc);
6718 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6727 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6794 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
6799 pm_dump_json_location(buffer, parser, &cast->
content_loc);
6804 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
6821 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6836 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6845 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6860 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
6869 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6882 for (
size_t index = 0; index < targets->
size; index++) {
6895 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6904 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6912 for (
size_t index = 0; index < locals->
size; index++) {
6914 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
6931 if (cast->
body != NULL) {
6945 pm_dump_json_constant(buffer, parser, cast->
name);
6954 pm_dump_json_location(buffer, parser, &cast->
base.
location);
6962 for (
size_t index = 0; index < lefts->
size; index++) {
6971 if (cast->
rest != NULL) {
6983 for (
size_t index = 0; index < rights->
size; index++) {
6993 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
7002 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
7014 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7022 for (
size_t index = 0; index < lefts->
size; index++) {
7031 if (cast->
rest != NULL) {
7043 for (
size_t index = 0; index < rights->
size; index++) {
7053 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
7062 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
7070 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7084 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7098 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7107 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7116 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7121 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7126 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7135 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7149 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7163 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7180 pm_dump_json_constant(buffer, parser, cast->
name);
7185 pm_dump_json_location(buffer, parser, &cast->
name_loc);
7199 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7216 pm_dump_json_constant(buffer, parser, cast->
name);
7221 pm_dump_json_location(buffer, parser, &cast->
name_loc);
7226 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7240 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7255 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7264 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7272 for (
size_t index = 0; index < requireds->
size; index++) {
7284 for (
size_t index = 0; index < optionals->
size; index++) {
7293 if (cast->
rest != NULL) {
7305 for (
size_t index = 0; index < posts->
size; index++) {
7317 for (
size_t index = 0; index < keywords->
size; index++) {
7335 if (cast->
block != NULL) {
7348 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7353 if (cast->
body != NULL) {
7362 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
7367 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
7376 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7386 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7391 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
7396 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
7405 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7415 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7424 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7438 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7443 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
7448 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
7457 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7471 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7476 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
7481 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
7490 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7498 for (
size_t index = 0; index < locals->
size; index++) {
7500 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
7516 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7533 if (cast->
left != NULL) {
7542 if (cast->
right != NULL) {
7551 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7560 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7606 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7615 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7682 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
7687 pm_dump_json_location(buffer, parser, &cast->
content_loc);
7692 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
7709 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7726 pm_dump_json_constant(buffer, parser, cast->
name);
7731 pm_dump_json_location(buffer, parser, &cast->
name_loc);
7740 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7757 pm_dump_json_constant(buffer, parser, cast->
name);
7766 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7776 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7790 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7795 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7803 for (
size_t index = 0; index < exceptions->
size; index++) {
7813 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7852 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7870 pm_dump_json_constant(buffer, parser, cast->
name);
7879 pm_dump_json_location(buffer, parser, &cast->
name_loc);
7887 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
7896 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7905 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7910 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
7928 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7937 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7973 pm_dump_json_location(buffer, parser, &cast->
base.
location);
7981 for (
size_t index = 0; index < locals->
size; index++) {
7983 pm_dump_json_constant(buffer, parser, locals->
ids[index]);
7995 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
8005 if (cast->
body != NULL) {
8023 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8032 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8076 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8085 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8090 pm_dump_json_location(buffer, parser, &cast->
operator_loc);
8108 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8116 for (
size_t index = 0; index < body->
size; index++) {
8129 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8162 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
8170 pm_dump_json_location(buffer, parser, &cast->
content_loc);
8176 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
8196 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8201 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8207 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
8225 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
8233 if (cast->
block != NULL) {
8246 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8274 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
8283 pm_dump_json_location(buffer, parser, &cast->
value_loc);
8292 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
8312 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8321 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8329 for (
size_t index = 0; index < names->
size; index++) {
8338 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8347 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8352 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8402 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8419 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8425 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
8451 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8456 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8464 for (
size_t index = 0; index < conditions->
size; index++) {
8495 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8512 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8518 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
8544 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8566 pm_dump_json_location(buffer, parser, &cast->
opening_loc);
8571 pm_dump_json_location(buffer, parser, &cast->
content_loc);
8576 pm_dump_json_location(buffer, parser, &cast->
closing_loc);
8593 pm_dump_json_location(buffer, parser, &cast->
base.
location);
8598 pm_dump_json_location(buffer, parser, &cast->
keyword_loc);
8604 pm_dump_json_location(buffer, parser, &cast->
lparen_loc);
8622 pm_dump_json_location(buffer, parser, &cast->
rparen_loc);
@ 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_FLAG_P(node, flag)
Return true if the given flag is set on the given node.
#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
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
@ 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...
struct pm_node_list pm_node_list_t
A list of nodes in the source, most often used for lists of children.
@ 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
#define xfree
Old name of ruby_xfree.
#define xrealloc
Old name of ruby_xrealloc.
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.
#define PM_CONSTANT_ID_UNSET
When we allocate constants into the pool, we reserve 0 to mean that the slot is not yet filled.
void pm_constant_id_list_free(pm_constant_id_list_t *list)
Free the memory associated with a list of constant ids.
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_free(pm_integer_t *integer)
Free the internal memory of an integer.
PRISM_EXPORTED_FUNCTION void pm_integer_string(pm_buffer_t *buffer, const pm_integer_t *integer)
Convert an integer to a decimal string.
PRISM_EXPORTED_FUNCTION size_t pm_string_length(const pm_string_t *string)
Returns the length associated with the string.
PRISM_EXPORTED_FUNCTION void pm_string_free(pm_string_t *string)
Free the associated memory of the given string.
PRISM_EXPORTED_FUNCTION const uint8_t * pm_string_source(const pm_string_t *string)
Returns the start pointer associated with the string.
#define PRISM_EXPORTED_FUNCTION
By default, we compile with -fvisibility=hidden.
Functions related to nodes in the AST.
PRISM_EXPORTED_FUNCTION const char * pm_node_type_to_str(pm_node_type_t node_type)
Returns a string representation of the given node type.
PRISM_EXPORTED_FUNCTION void pm_node_destroy(pm_parser_t *parser, struct pm_node *node)
Deallocate a node and all of its children.
#define PM_NODE_LIST_FOREACH(list, index, node)
Loop through each node in the node list, writing each node to the given pm_node_t pointer.
PRISM_EXPORTED_FUNCTION void pm_visit_node(const pm_node_t *node, bool(*visitor)(const pm_node_t *node, void *data), void *data)
Visit each of the nodes in this subtree using the given visitor callback.
void pm_node_list_free(pm_node_list_t *list)
Free the internal memory associated with the given node list.
PRISM_EXPORTED_FUNCTION void pm_visit_child_nodes(const pm_node_t *node, bool(*visitor)(const pm_node_t *node, void *data), void *data)
Visit the children of the given node with the given callback.
void pm_node_list_prepend(pm_node_list_t *list, pm_node_t *node)
Prepend a new node onto the beginning of the node list.
void pm_node_list_concat(pm_node_list_t *list, pm_node_list_t *other)
Concatenate the given node list onto the end of the other node list.
void pm_node_list_append(pm_node_list_t *list, pm_node_t *node)
Append a new node onto the end of the node list.
PRISM_EXPORTED_FUNCTION void pm_dump_json(pm_buffer_t *buffer, const pm_parser_t *parser, const pm_node_t *node)
Dump JSON to the given buffer.
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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.
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_node_t base
The embedded base node.
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
struct pm_node_list posts
ArrayPatternNode::posts.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t operator_loc
AssocSplatNode::operator_loc.
pm_constant_id_t name
BackReferenceReadNode::name.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
A pm_buffer_t is a simple memory buffer that stores data in a contiguous block of memory.
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_node_t base
The embedded base node.
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
struct pm_node_list conditions
CaseMatchNode::conditions.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
ClassVariableOperatorWriteNode.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_constant_id_t name
ClassVariableReadNode::name.
pm_node_t base
The embedded base node.
pm_constant_id_t name
ClassVariableTargetNode::name.
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
pm_constant_id_t name
ConstantOrWriteNode::name.
pm_node_t base
The embedded base node.
struct pm_node * value
ConstantOrWriteNode::value.
ConstantPathAndWriteNode.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
pm_node_t base
The embedded base node.
struct pm_node * value
ConstantPathOrWriteNode::value.
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
struct pm_node * value
ConstantPathWriteNode::value.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_constant_id_t name
ConstantTargetNode::name.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
struct pm_node * variable
EmbeddedVariableNode::variable.
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
pm_node_t base
The embedded base node.
struct pm_statements_node * statements
EnsureNode::statements.
pm_node_t base
The embedded base node.
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
pm_node_t base
The embedded base node.
struct pm_node * constant
FindPatternNode::constant.
struct pm_node * right
FindPatternNode::right.
pm_location_t opening_loc
FindPatternNode::opening_loc.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
struct pm_statements_node * statements
ForNode::statements.
struct pm_node * index
ForNode::index.
struct pm_node * collection
ForNode::collection.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
pm_node_t base
The embedded base node.
pm_node_t base
The embedded base node.
struct pm_block_node * block
ForwardingSuperNode::block.
GlobalVariableAndWriteNode.
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
struct pm_node * value
GlobalVariableOrWriteNode::value.
pm_node_t base
The embedded base node.
pm_constant_id_t name
GlobalVariableReadNode::name.
GlobalVariableTargetNode.
pm_constant_id_t name
GlobalVariableTargetNode::name.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
struct pm_node_list elements
HashNode::elements.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
struct pm_node * subsequent
IfNode::subsequent.
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
struct pm_node * numeric
ImaginaryNode::numeric.
pm_node_t base
The embedded base node.
struct pm_node * value
ImplicitNode::value.
pm_node_t base
The embedded base node.
pm_node_t base
The embedded base node.
struct pm_statements_node * statements
InNode::statements.
struct pm_node * pattern
InNode::pattern.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
InstanceVariableOrWriteNode.
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
struct pm_node * value
InstanceVariableOrWriteNode::value.
pm_node_t base
The embedded base node.
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
InstanceVariableReadNode.
pm_constant_id_t name
InstanceVariableReadNode::name.
pm_node_t base
The embedded base node.
InstanceVariableTargetNode.
pm_constant_id_t name
InstanceVariableTargetNode::name.
pm_node_t base
The embedded base node.
InstanceVariableWriteNode.
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
pm_constant_id_t name
InstanceVariableWriteNode::name.
pm_node_t base
The embedded base node.
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.
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_node_t base
The embedded base node.
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
pm_node_t base
The embedded base node.
struct pm_node_list parts
InterpolatedXStringNode::parts.
pm_node_t base
The embedded base node.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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.
LocalVariableAndWriteNode.
pm_constant_id_t name
LocalVariableAndWriteNode::name.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
uint32_t depth
LocalVariableTargetNode::depth.
pm_constant_id_t name
LocalVariableTargetNode::name.
pm_node_t base
The embedded base node.
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_node_t base
The embedded base node.
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
struct pm_node * value
MatchRequiredNode::value.
struct pm_node * pattern
MatchRequiredNode::pattern.
pm_node_t base
The embedded base node.
struct pm_node_list targets
MatchWriteNode::targets.
struct pm_call_node * call
MatchWriteNode::call.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
pm_constant_id_t name
ModuleNode::name.
pm_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
struct pm_arguments_node * arguments
NextNode::arguments.
pm_node_t base
The embedded base node.
pm_location_t keyword_loc
NextNode::keyword_loc.
pm_node_t base
The embedded base node.
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
pm_node_t base
The embedded base node.
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.
pm_location_t location
This is the location of the node in the source.
pm_node_t base
The embedded base node.
uint8_t maximum
NumberedParametersNode::maximum.
NumberedReferenceReadNode.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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...
const uint8_t * start
The pointer to the start of the source.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
pm_location_t closing_loc
PostExecutionNode::closing_loc.
struct pm_statements_node * statements
PostExecutionNode::statements.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
struct pm_statements_node * statements
ProgramNode::statements.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t keyword_loc
ReturnNode::keyword_loc.
pm_node_t base
The embedded base node.
struct pm_arguments_node * arguments
ReturnNode::arguments.
pm_node_t base
The embedded base node.
struct pm_node * write
ShareableConstantNode::write.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_string_t filepath
SourceFileNode::filepath.
pm_node_t base
The embedded base node.
pm_node_t base
The embedded base node.
struct pm_node * expression
SplatNode::expression.
pm_node_t base
The embedded base node.
pm_location_t operator_loc
SplatNode::operator_loc.
struct pm_node_list body
StatementsNode::body.
pm_node_t base
The embedded base node.
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.
A generic string type that can have various ownership semantics.
struct pm_arguments_node * arguments
SuperNode::arguments.
pm_location_t lparen_loc
SuperNode::lparen_loc.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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.
pm_node_t base
The embedded base node.
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_node_t base
The embedded base node.
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_node_t base
The embedded base node.
pm_location_t rparen_loc
YieldNode::rparen_loc.
struct pm_arguments_node * arguments
YieldNode::arguments.