8#line 2 "api_node.c.erb"
9#include "prism/extension.h"
11extern VALUE rb_cPrism;
12extern VALUE rb_cPrismNode;
13extern VALUE rb_cPrismSource;
14extern VALUE rb_cPrismToken;
15extern VALUE rb_cPrismLocation;
17static VALUE rb_cPrismAliasGlobalVariableNode;
18static VALUE rb_cPrismAliasMethodNode;
19static VALUE rb_cPrismAlternationPatternNode;
20static VALUE rb_cPrismAndNode;
21static VALUE rb_cPrismArgumentsNode;
22static VALUE rb_cPrismArrayNode;
23static VALUE rb_cPrismArrayPatternNode;
24static VALUE rb_cPrismAssocNode;
25static VALUE rb_cPrismAssocSplatNode;
26static VALUE rb_cPrismBackReferenceReadNode;
27static VALUE rb_cPrismBeginNode;
28static VALUE rb_cPrismBlockArgumentNode;
29static VALUE rb_cPrismBlockLocalVariableNode;
30static VALUE rb_cPrismBlockNode;
31static VALUE rb_cPrismBlockParameterNode;
32static VALUE rb_cPrismBlockParametersNode;
33static VALUE rb_cPrismBreakNode;
34static VALUE rb_cPrismCallAndWriteNode;
35static VALUE rb_cPrismCallNode;
36static VALUE rb_cPrismCallOperatorWriteNode;
37static VALUE rb_cPrismCallOrWriteNode;
38static VALUE rb_cPrismCallTargetNode;
39static VALUE rb_cPrismCapturePatternNode;
40static VALUE rb_cPrismCaseMatchNode;
41static VALUE rb_cPrismCaseNode;
42static VALUE rb_cPrismClassNode;
43static VALUE rb_cPrismClassVariableAndWriteNode;
44static VALUE rb_cPrismClassVariableOperatorWriteNode;
45static VALUE rb_cPrismClassVariableOrWriteNode;
46static VALUE rb_cPrismClassVariableReadNode;
47static VALUE rb_cPrismClassVariableTargetNode;
48static VALUE rb_cPrismClassVariableWriteNode;
49static VALUE rb_cPrismConstantAndWriteNode;
50static VALUE rb_cPrismConstantOperatorWriteNode;
51static VALUE rb_cPrismConstantOrWriteNode;
52static VALUE rb_cPrismConstantPathAndWriteNode;
53static VALUE rb_cPrismConstantPathNode;
54static VALUE rb_cPrismConstantPathOperatorWriteNode;
55static VALUE rb_cPrismConstantPathOrWriteNode;
56static VALUE rb_cPrismConstantPathTargetNode;
57static VALUE rb_cPrismConstantPathWriteNode;
58static VALUE rb_cPrismConstantReadNode;
59static VALUE rb_cPrismConstantTargetNode;
60static VALUE rb_cPrismConstantWriteNode;
61static VALUE rb_cPrismDefNode;
62static VALUE rb_cPrismDefinedNode;
63static VALUE rb_cPrismElseNode;
64static VALUE rb_cPrismEmbeddedStatementsNode;
65static VALUE rb_cPrismEmbeddedVariableNode;
66static VALUE rb_cPrismEnsureNode;
67static VALUE rb_cPrismFalseNode;
68static VALUE rb_cPrismFindPatternNode;
69static VALUE rb_cPrismFlipFlopNode;
70static VALUE rb_cPrismFloatNode;
71static VALUE rb_cPrismForNode;
72static VALUE rb_cPrismForwardingArgumentsNode;
73static VALUE rb_cPrismForwardingParameterNode;
74static VALUE rb_cPrismForwardingSuperNode;
75static VALUE rb_cPrismGlobalVariableAndWriteNode;
76static VALUE rb_cPrismGlobalVariableOperatorWriteNode;
77static VALUE rb_cPrismGlobalVariableOrWriteNode;
78static VALUE rb_cPrismGlobalVariableReadNode;
79static VALUE rb_cPrismGlobalVariableTargetNode;
80static VALUE rb_cPrismGlobalVariableWriteNode;
81static VALUE rb_cPrismHashNode;
82static VALUE rb_cPrismHashPatternNode;
83static VALUE rb_cPrismIfNode;
84static VALUE rb_cPrismImaginaryNode;
85static VALUE rb_cPrismImplicitNode;
86static VALUE rb_cPrismImplicitRestNode;
87static VALUE rb_cPrismInNode;
88static VALUE rb_cPrismIndexAndWriteNode;
89static VALUE rb_cPrismIndexOperatorWriteNode;
90static VALUE rb_cPrismIndexOrWriteNode;
91static VALUE rb_cPrismIndexTargetNode;
92static VALUE rb_cPrismInstanceVariableAndWriteNode;
93static VALUE rb_cPrismInstanceVariableOperatorWriteNode;
94static VALUE rb_cPrismInstanceVariableOrWriteNode;
95static VALUE rb_cPrismInstanceVariableReadNode;
96static VALUE rb_cPrismInstanceVariableTargetNode;
97static VALUE rb_cPrismInstanceVariableWriteNode;
98static VALUE rb_cPrismIntegerNode;
99static VALUE rb_cPrismInterpolatedMatchLastLineNode;
100static VALUE rb_cPrismInterpolatedRegularExpressionNode;
101static VALUE rb_cPrismInterpolatedStringNode;
102static VALUE rb_cPrismInterpolatedSymbolNode;
103static VALUE rb_cPrismInterpolatedXStringNode;
104static VALUE rb_cPrismKeywordHashNode;
105static VALUE rb_cPrismKeywordRestParameterNode;
106static VALUE rb_cPrismLambdaNode;
107static VALUE rb_cPrismLocalVariableAndWriteNode;
108static VALUE rb_cPrismLocalVariableOperatorWriteNode;
109static VALUE rb_cPrismLocalVariableOrWriteNode;
110static VALUE rb_cPrismLocalVariableReadNode;
111static VALUE rb_cPrismLocalVariableTargetNode;
112static VALUE rb_cPrismLocalVariableWriteNode;
113static VALUE rb_cPrismMatchLastLineNode;
114static VALUE rb_cPrismMatchPredicateNode;
115static VALUE rb_cPrismMatchRequiredNode;
116static VALUE rb_cPrismMatchWriteNode;
117static VALUE rb_cPrismMissingNode;
118static VALUE rb_cPrismModuleNode;
119static VALUE rb_cPrismMultiTargetNode;
120static VALUE rb_cPrismMultiWriteNode;
121static VALUE rb_cPrismNextNode;
122static VALUE rb_cPrismNilNode;
123static VALUE rb_cPrismNoKeywordsParameterNode;
124static VALUE rb_cPrismNumberedParametersNode;
125static VALUE rb_cPrismNumberedReferenceReadNode;
126static VALUE rb_cPrismOptionalKeywordParameterNode;
127static VALUE rb_cPrismOptionalParameterNode;
128static VALUE rb_cPrismOrNode;
129static VALUE rb_cPrismParametersNode;
130static VALUE rb_cPrismParenthesesNode;
131static VALUE rb_cPrismPinnedExpressionNode;
132static VALUE rb_cPrismPinnedVariableNode;
133static VALUE rb_cPrismPostExecutionNode;
134static VALUE rb_cPrismPreExecutionNode;
135static VALUE rb_cPrismProgramNode;
136static VALUE rb_cPrismRangeNode;
137static VALUE rb_cPrismRationalNode;
138static VALUE rb_cPrismRedoNode;
139static VALUE rb_cPrismRegularExpressionNode;
140static VALUE rb_cPrismRequiredKeywordParameterNode;
141static VALUE rb_cPrismRequiredParameterNode;
142static VALUE rb_cPrismRescueModifierNode;
143static VALUE rb_cPrismRescueNode;
144static VALUE rb_cPrismRestParameterNode;
145static VALUE rb_cPrismRetryNode;
146static VALUE rb_cPrismReturnNode;
147static VALUE rb_cPrismSelfNode;
148static VALUE rb_cPrismSingletonClassNode;
149static VALUE rb_cPrismSourceEncodingNode;
150static VALUE rb_cPrismSourceFileNode;
151static VALUE rb_cPrismSourceLineNode;
152static VALUE rb_cPrismSplatNode;
153static VALUE rb_cPrismStatementsNode;
154static VALUE rb_cPrismStringNode;
155static VALUE rb_cPrismSuperNode;
156static VALUE rb_cPrismSymbolNode;
157static VALUE rb_cPrismTrueNode;
158static VALUE rb_cPrismUndefNode;
159static VALUE rb_cPrismUnlessNode;
160static VALUE rb_cPrismUntilNode;
161static VALUE rb_cPrismWhenNode;
162static VALUE rb_cPrismWhileNode;
163static VALUE rb_cPrismXStringNode;
164static VALUE rb_cPrismYieldNode;
167pm_location_new(
pm_parser_t *parser,
const uint8_t *start,
const uint8_t *end,
VALUE source) {
175 VALUE location = pm_location_new(parser, token->start, token->end, source);
179 rb_enc_str_new((
const char *) token->start, token->end - token->start, encoding),
188 return rb_enc_str_new((
const char *) pm_string_source(
string), pm_string_length(
string), encoding);
194 VALUE source = rb_enc_str_new((
const char *) parser->
start, parser->
end - parser->
start, encoding);
216 node->visited =
false;
225 *stack = current->prev;
233 VALUE source = pm_source_new(parser, encoding);
240 VALUE string = rb_enc_str_new((
const char *) constant->
start, constant->
length, encoding);
241 ID value = rb_protect(rb_intern_str,
string, &state);
245 rb_set_errinfo(
Qnil);
248 constants[index] = value;
252 pm_node_stack_push(&node_stack, node);
253 VALUE value_stack = rb_ary_new();
255 while (node_stack != NULL) {
256 if (!node_stack->visited) {
257 if (node_stack->visit == NULL) {
258 pm_node_stack_pop(&node_stack);
259 rb_ary_push(value_stack,
Qnil);
264 node_stack->visited =
true;
267#line 118 "api_node.c.erb"
274#line 118 "api_node.c.erb"
281#line 118 "api_node.c.erb"
288#line 118 "api_node.c.erb"
295#line 118 "api_node.c.erb"
298 for (
size_t index = 0; index < cast->
arguments.
size; index++) {
303#line 118 "api_node.c.erb"
306 for (
size_t index = 0; index < cast->
elements.
size; index++) {
311#line 118 "api_node.c.erb"
315 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
319 for (
size_t index = 0; index < cast->
posts.
size; index++) {
324#line 118 "api_node.c.erb"
327 pm_node_stack_push(&node_stack, (
pm_node_t *) cast->
key);
331#line 118 "api_node.c.erb"
337#line 118 "api_node.c.erb"
346#line 118 "api_node.c.erb"
352#line 118 "api_node.c.erb"
359#line 118 "api_node.c.erb"
363 for (
size_t index = 0; index < cast->
locals.
size; index++) {
368#line 118 "api_node.c.erb"
374#line 118 "api_node.c.erb"
381#line 118 "api_node.c.erb"
389#line 118 "api_node.c.erb"
396#line 118 "api_node.c.erb"
403#line 118 "api_node.c.erb"
409#line 118 "api_node.c.erb"
416#line 118 "api_node.c.erb"
426#line 118 "api_node.c.erb"
436#line 118 "api_node.c.erb"
444#line 118 "api_node.c.erb"
450#line 118 "api_node.c.erb"
456#line 118 "api_node.c.erb"
462#line 118 "api_node.c.erb"
468#line 118 "api_node.c.erb"
474#line 118 "api_node.c.erb"
480#line 118 "api_node.c.erb"
486#line 118 "api_node.c.erb"
493#line 118 "api_node.c.erb"
500#line 118 "api_node.c.erb"
507#line 118 "api_node.c.erb"
514#line 118 "api_node.c.erb"
521#line 118 "api_node.c.erb"
528#line 118 "api_node.c.erb"
534#line 118 "api_node.c.erb"
542#line 118 "api_node.c.erb"
548#line 118 "api_node.c.erb"
554#line 118 "api_node.c.erb"
560#line 118 "api_node.c.erb"
566#line 118 "api_node.c.erb"
572#line 118 "api_node.c.erb"
577 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
583#line 118 "api_node.c.erb"
590#line 118 "api_node.c.erb"
598#line 118 "api_node.c.erb"
604#line 118 "api_node.c.erb"
610#line 118 "api_node.c.erb"
616#line 118 "api_node.c.erb"
622#line 118 "api_node.c.erb"
628#line 118 "api_node.c.erb"
631 for (
size_t index = 0; index < cast->
elements.
size; index++) {
636#line 118 "api_node.c.erb"
640 for (
size_t index = 0; index < cast->
elements.
size; index++) {
646#line 118 "api_node.c.erb"
654#line 118 "api_node.c.erb"
660#line 118 "api_node.c.erb"
666#line 118 "api_node.c.erb"
673#line 118 "api_node.c.erb"
682#line 118 "api_node.c.erb"
691#line 118 "api_node.c.erb"
700#line 118 "api_node.c.erb"
708#line 118 "api_node.c.erb"
714#line 118 "api_node.c.erb"
720#line 118 "api_node.c.erb"
726#line 118 "api_node.c.erb"
732#line 118 "api_node.c.erb"
735 for (
size_t index = 0; index < cast->
parts.
size; index++) {
740#line 118 "api_node.c.erb"
743 for (
size_t index = 0; index < cast->
parts.
size; index++) {
748#line 118 "api_node.c.erb"
751 for (
size_t index = 0; index < cast->
parts.
size; index++) {
756#line 118 "api_node.c.erb"
759 for (
size_t index = 0; index < cast->
parts.
size; index++) {
764#line 118 "api_node.c.erb"
767 for (
size_t index = 0; index < cast->
parts.
size; index++) {
772#line 118 "api_node.c.erb"
775 for (
size_t index = 0; index < cast->
elements.
size; index++) {
780#line 118 "api_node.c.erb"
787#line 118 "api_node.c.erb"
793#line 118 "api_node.c.erb"
799#line 118 "api_node.c.erb"
805#line 118 "api_node.c.erb"
811#line 118 "api_node.c.erb"
818#line 118 "api_node.c.erb"
825#line 118 "api_node.c.erb"
829 for (
size_t index = 0; index < cast->
targets.
size; index++) {
834#line 118 "api_node.c.erb"
841#line 118 "api_node.c.erb"
844 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
848 for (
size_t index = 0; index < cast->
rights.
size; index++) {
853#line 118 "api_node.c.erb"
856 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
860 for (
size_t index = 0; index < cast->
rights.
size; index++) {
866#line 118 "api_node.c.erb"
872#line 118 "api_node.c.erb"
878#line 118 "api_node.c.erb"
884#line 118 "api_node.c.erb"
891#line 118 "api_node.c.erb"
894 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
897 for (
size_t index = 0; index < cast->
optionals.
size; index++) {
901 for (
size_t index = 0; index < cast->
posts.
size; index++) {
904 for (
size_t index = 0; index < cast->
keywords.
size; index++) {
911#line 118 "api_node.c.erb"
917#line 118 "api_node.c.erb"
923#line 118 "api_node.c.erb"
929#line 118 "api_node.c.erb"
935#line 118 "api_node.c.erb"
941#line 118 "api_node.c.erb"
947#line 118 "api_node.c.erb"
954#line 118 "api_node.c.erb"
960#line 118 "api_node.c.erb"
967#line 118 "api_node.c.erb"
978#line 118 "api_node.c.erb"
984#line 118 "api_node.c.erb"
991#line 118 "api_node.c.erb"
997#line 118 "api_node.c.erb"
1000 for (
size_t index = 0; index < cast->
body.
size; index++) {
1005#line 118 "api_node.c.erb"
1012#line 118 "api_node.c.erb"
1015 for (
size_t index = 0; index < cast->
names.
size; index++) {
1020#line 118 "api_node.c.erb"
1028#line 118 "api_node.c.erb"
1035#line 118 "api_node.c.erb"
1044#line 118 "api_node.c.erb"
1051#line 118 "api_node.c.erb"
1060#line 138 "api_node.c.erb"
1062 pm_node_t *node = pm_node_stack_pop(&node_stack);
1065#line 144 "api_node.c.erb"
1071#line 155 "api_node.c.erb"
1072 argv[0] = rb_ary_pop(value_stack);
1075#line 155 "api_node.c.erb"
1076 argv[1] = rb_ary_pop(value_stack);
1079#line 180 "api_node.c.erb"
1088#line 144 "api_node.c.erb"
1094#line 155 "api_node.c.erb"
1095 argv[0] = rb_ary_pop(value_stack);
1098#line 155 "api_node.c.erb"
1099 argv[1] = rb_ary_pop(value_stack);
1102#line 180 "api_node.c.erb"
1111#line 144 "api_node.c.erb"
1117#line 155 "api_node.c.erb"
1118 argv[0] = rb_ary_pop(value_stack);
1121#line 155 "api_node.c.erb"
1122 argv[1] = rb_ary_pop(value_stack);
1125#line 180 "api_node.c.erb"
1134#line 144 "api_node.c.erb"
1140#line 155 "api_node.c.erb"
1141 argv[0] = rb_ary_pop(value_stack);
1144#line 155 "api_node.c.erb"
1145 argv[1] = rb_ary_pop(value_stack);
1148#line 180 "api_node.c.erb"
1157#line 144 "api_node.c.erb"
1163#line 192 "api_node.c.erb"
1167#line 158 "api_node.c.erb"
1169 for (
size_t index = 0; index < cast->
arguments.
size; index++) {
1170 rb_ary_push(argv[1], rb_ary_pop(value_stack));
1179#line 144 "api_node.c.erb"
1185#line 192 "api_node.c.erb"
1189#line 158 "api_node.c.erb"
1191 for (
size_t index = 0; index < cast->
elements.
size; index++) {
1192 rb_ary_push(argv[1], rb_ary_pop(value_stack));
1196#line 183 "api_node.c.erb"
1200#line 183 "api_node.c.erb"
1209#line 144 "api_node.c.erb"
1215#line 155 "api_node.c.erb"
1216 argv[0] = rb_ary_pop(value_stack);
1219#line 158 "api_node.c.erb"
1221 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
1222 rb_ary_push(argv[1], rb_ary_pop(value_stack));
1226#line 155 "api_node.c.erb"
1227 argv[2] = rb_ary_pop(value_stack);
1230#line 158 "api_node.c.erb"
1231 argv[3] = rb_ary_new_capa(cast->
posts.
size);
1232 for (
size_t index = 0; index < cast->
posts.
size; index++) {
1233 rb_ary_push(argv[3], rb_ary_pop(value_stack));
1237#line 183 "api_node.c.erb"
1241#line 183 "api_node.c.erb"
1250#line 144 "api_node.c.erb"
1256#line 155 "api_node.c.erb"
1257 argv[0] = rb_ary_pop(value_stack);
1260#line 155 "api_node.c.erb"
1261 argv[1] = rb_ary_pop(value_stack);
1264#line 183 "api_node.c.erb"
1273#line 144 "api_node.c.erb"
1279#line 155 "api_node.c.erb"
1280 argv[0] = rb_ary_pop(value_stack);
1283#line 180 "api_node.c.erb"
1292#line 144 "api_node.c.erb"
1298#line 167 "api_node.c.erb"
1299 assert(cast->
name != 0);
1300 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1308#line 144 "api_node.c.erb"
1314#line 183 "api_node.c.erb"
1318#line 155 "api_node.c.erb"
1319 argv[1] = rb_ary_pop(value_stack);
1322#line 155 "api_node.c.erb"
1323 argv[2] = rb_ary_pop(value_stack);
1326#line 155 "api_node.c.erb"
1327 argv[3] = rb_ary_pop(value_stack);
1330#line 155 "api_node.c.erb"
1331 argv[4] = rb_ary_pop(value_stack);
1334#line 183 "api_node.c.erb"
1343#line 144 "api_node.c.erb"
1349#line 155 "api_node.c.erb"
1350 argv[0] = rb_ary_pop(value_stack);
1353#line 180 "api_node.c.erb"
1362#line 144 "api_node.c.erb"
1368#line 167 "api_node.c.erb"
1369 assert(cast->
name != 0);
1370 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1378#line 144 "api_node.c.erb"
1384#line 173 "api_node.c.erb"
1385 argv[0] = rb_ary_new_capa(cast->
locals.
size);
1386 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1388 rb_ary_push(argv[0], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
1392#line 189 "api_node.c.erb"
1396#line 155 "api_node.c.erb"
1397 argv[2] = rb_ary_pop(value_stack);
1400#line 155 "api_node.c.erb"
1401 argv[3] = rb_ary_pop(value_stack);
1404#line 180 "api_node.c.erb"
1408#line 180 "api_node.c.erb"
1417#line 144 "api_node.c.erb"
1423 argv[0] = cast->
name == 0 ?
Qnil : rb_id2sym(constants[cast->
name - 1]);
1426#line 183 "api_node.c.erb"
1430#line 180 "api_node.c.erb"
1439#line 144 "api_node.c.erb"
1445#line 155 "api_node.c.erb"
1446 argv[0] = rb_ary_pop(value_stack);
1449#line 158 "api_node.c.erb"
1450 argv[1] = rb_ary_new_capa(cast->
locals.
size);
1451 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1452 rb_ary_push(argv[1], rb_ary_pop(value_stack));
1456#line 183 "api_node.c.erb"
1460#line 183 "api_node.c.erb"
1469#line 144 "api_node.c.erb"
1475#line 155 "api_node.c.erb"
1476 argv[0] = rb_ary_pop(value_stack);
1479#line 180 "api_node.c.erb"
1488#line 144 "api_node.c.erb"
1494#line 192 "api_node.c.erb"
1498#line 155 "api_node.c.erb"
1499 argv[1] = rb_ary_pop(value_stack);
1502#line 183 "api_node.c.erb"
1506#line 183 "api_node.c.erb"
1510#line 167 "api_node.c.erb"
1512 argv[4] = rb_id2sym(constants[cast->
read_name - 1]);
1515#line 167 "api_node.c.erb"
1517 argv[5] = rb_id2sym(constants[cast->
write_name - 1]);
1520#line 180 "api_node.c.erb"
1524#line 155 "api_node.c.erb"
1525 argv[7] = rb_ary_pop(value_stack);
1533#line 144 "api_node.c.erb"
1539#line 192 "api_node.c.erb"
1543#line 155 "api_node.c.erb"
1544 argv[1] = rb_ary_pop(value_stack);
1547#line 183 "api_node.c.erb"
1551#line 167 "api_node.c.erb"
1552 assert(cast->
name != 0);
1553 argv[3] = rb_id2sym(constants[cast->
name - 1]);
1556#line 183 "api_node.c.erb"
1560#line 183 "api_node.c.erb"
1564#line 155 "api_node.c.erb"
1565 argv[6] = rb_ary_pop(value_stack);
1568#line 183 "api_node.c.erb"
1572#line 155 "api_node.c.erb"
1573 argv[8] = rb_ary_pop(value_stack);
1581#line 144 "api_node.c.erb"
1587#line 192 "api_node.c.erb"
1591#line 155 "api_node.c.erb"
1592 argv[1] = rb_ary_pop(value_stack);
1595#line 183 "api_node.c.erb"
1599#line 183 "api_node.c.erb"
1603#line 167 "api_node.c.erb"
1605 argv[4] = rb_id2sym(constants[cast->
read_name - 1]);
1608#line 167 "api_node.c.erb"
1610 argv[5] = rb_id2sym(constants[cast->
write_name - 1]);
1613#line 167 "api_node.c.erb"
1615 argv[6] = rb_id2sym(constants[cast->
operator - 1]);
1618#line 180 "api_node.c.erb"
1622#line 155 "api_node.c.erb"
1623 argv[8] = rb_ary_pop(value_stack);
1631#line 144 "api_node.c.erb"
1637#line 192 "api_node.c.erb"
1641#line 155 "api_node.c.erb"
1642 argv[1] = rb_ary_pop(value_stack);
1645#line 183 "api_node.c.erb"
1649#line 183 "api_node.c.erb"
1653#line 167 "api_node.c.erb"
1655 argv[4] = rb_id2sym(constants[cast->
read_name - 1]);
1658#line 167 "api_node.c.erb"
1660 argv[5] = rb_id2sym(constants[cast->
write_name - 1]);
1663#line 180 "api_node.c.erb"
1667#line 155 "api_node.c.erb"
1668 argv[7] = rb_ary_pop(value_stack);
1676#line 144 "api_node.c.erb"
1682#line 192 "api_node.c.erb"
1686#line 155 "api_node.c.erb"
1687 argv[1] = rb_ary_pop(value_stack);
1690#line 180 "api_node.c.erb"
1694#line 167 "api_node.c.erb"
1695 assert(cast->
name != 0);
1696 argv[3] = rb_id2sym(constants[cast->
name - 1]);
1699#line 180 "api_node.c.erb"
1708#line 144 "api_node.c.erb"
1714#line 155 "api_node.c.erb"
1715 argv[0] = rb_ary_pop(value_stack);
1718#line 155 "api_node.c.erb"
1719 argv[1] = rb_ary_pop(value_stack);
1722#line 180 "api_node.c.erb"
1731#line 144 "api_node.c.erb"
1737#line 155 "api_node.c.erb"
1738 argv[0] = rb_ary_pop(value_stack);
1741#line 158 "api_node.c.erb"
1744 rb_ary_push(argv[1], rb_ary_pop(value_stack));
1748#line 155 "api_node.c.erb"
1749 argv[2] = rb_ary_pop(value_stack);
1752#line 180 "api_node.c.erb"
1756#line 180 "api_node.c.erb"
1765#line 144 "api_node.c.erb"
1771#line 155 "api_node.c.erb"
1772 argv[0] = rb_ary_pop(value_stack);
1775#line 158 "api_node.c.erb"
1778 rb_ary_push(argv[1], rb_ary_pop(value_stack));
1782#line 155 "api_node.c.erb"
1783 argv[2] = rb_ary_pop(value_stack);
1786#line 180 "api_node.c.erb"
1790#line 180 "api_node.c.erb"
1799#line 144 "api_node.c.erb"
1805#line 173 "api_node.c.erb"
1806 argv[0] = rb_ary_new_capa(cast->
locals.
size);
1807 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1809 rb_ary_push(argv[0], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
1813#line 180 "api_node.c.erb"
1817#line 155 "api_node.c.erb"
1818 argv[2] = rb_ary_pop(value_stack);
1821#line 183 "api_node.c.erb"
1825#line 155 "api_node.c.erb"
1826 argv[4] = rb_ary_pop(value_stack);
1829#line 155 "api_node.c.erb"
1830 argv[5] = rb_ary_pop(value_stack);
1833#line 180 "api_node.c.erb"
1837#line 167 "api_node.c.erb"
1838 assert(cast->
name != 0);
1839 argv[7] = rb_id2sym(constants[cast->
name - 1]);
1847#line 144 "api_node.c.erb"
1853#line 167 "api_node.c.erb"
1854 assert(cast->
name != 0);
1855 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1858#line 180 "api_node.c.erb"
1862#line 180 "api_node.c.erb"
1866#line 155 "api_node.c.erb"
1867 argv[3] = rb_ary_pop(value_stack);
1875#line 144 "api_node.c.erb"
1881#line 167 "api_node.c.erb"
1882 assert(cast->
name != 0);
1883 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1886#line 180 "api_node.c.erb"
1890#line 180 "api_node.c.erb"
1894#line 155 "api_node.c.erb"
1895 argv[3] = rb_ary_pop(value_stack);
1898#line 167 "api_node.c.erb"
1900 argv[4] = rb_id2sym(constants[cast->
operator - 1]);
1908#line 144 "api_node.c.erb"
1914#line 167 "api_node.c.erb"
1915 assert(cast->
name != 0);
1916 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1919#line 180 "api_node.c.erb"
1923#line 180 "api_node.c.erb"
1927#line 155 "api_node.c.erb"
1928 argv[3] = rb_ary_pop(value_stack);
1936#line 144 "api_node.c.erb"
1942#line 167 "api_node.c.erb"
1943 assert(cast->
name != 0);
1944 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1952#line 144 "api_node.c.erb"
1958#line 167 "api_node.c.erb"
1959 assert(cast->
name != 0);
1960 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1968#line 144 "api_node.c.erb"
1974#line 167 "api_node.c.erb"
1975 assert(cast->
name != 0);
1976 argv[0] = rb_id2sym(constants[cast->
name - 1]);
1979#line 180 "api_node.c.erb"
1983#line 155 "api_node.c.erb"
1984 argv[2] = rb_ary_pop(value_stack);
1987#line 183 "api_node.c.erb"
1996#line 144 "api_node.c.erb"
2002#line 167 "api_node.c.erb"
2003 assert(cast->
name != 0);
2004 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2007#line 180 "api_node.c.erb"
2011#line 180 "api_node.c.erb"
2015#line 155 "api_node.c.erb"
2016 argv[3] = rb_ary_pop(value_stack);
2024#line 144 "api_node.c.erb"
2030#line 167 "api_node.c.erb"
2031 assert(cast->
name != 0);
2032 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2035#line 180 "api_node.c.erb"
2039#line 180 "api_node.c.erb"
2043#line 155 "api_node.c.erb"
2044 argv[3] = rb_ary_pop(value_stack);
2047#line 167 "api_node.c.erb"
2049 argv[4] = rb_id2sym(constants[cast->
operator - 1]);
2057#line 144 "api_node.c.erb"
2063#line 167 "api_node.c.erb"
2064 assert(cast->
name != 0);
2065 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2068#line 180 "api_node.c.erb"
2072#line 180 "api_node.c.erb"
2076#line 155 "api_node.c.erb"
2077 argv[3] = rb_ary_pop(value_stack);
2085#line 144 "api_node.c.erb"
2091#line 155 "api_node.c.erb"
2092 argv[0] = rb_ary_pop(value_stack);
2095#line 180 "api_node.c.erb"
2099#line 155 "api_node.c.erb"
2100 argv[2] = rb_ary_pop(value_stack);
2108#line 144 "api_node.c.erb"
2114#line 155 "api_node.c.erb"
2115 argv[0] = rb_ary_pop(value_stack);
2118#line 155 "api_node.c.erb"
2119 argv[1] = rb_ary_pop(value_stack);
2122#line 180 "api_node.c.erb"
2131#line 144 "api_node.c.erb"
2137#line 155 "api_node.c.erb"
2138 argv[0] = rb_ary_pop(value_stack);
2141#line 180 "api_node.c.erb"
2145#line 155 "api_node.c.erb"
2146 argv[2] = rb_ary_pop(value_stack);
2149#line 167 "api_node.c.erb"
2151 argv[3] = rb_id2sym(constants[cast->
operator - 1]);
2159#line 144 "api_node.c.erb"
2165#line 155 "api_node.c.erb"
2166 argv[0] = rb_ary_pop(value_stack);
2169#line 180 "api_node.c.erb"
2173#line 155 "api_node.c.erb"
2174 argv[2] = rb_ary_pop(value_stack);
2182#line 144 "api_node.c.erb"
2188#line 155 "api_node.c.erb"
2189 argv[0] = rb_ary_pop(value_stack);
2192#line 155 "api_node.c.erb"
2193 argv[1] = rb_ary_pop(value_stack);
2196#line 180 "api_node.c.erb"
2205#line 144 "api_node.c.erb"
2211#line 155 "api_node.c.erb"
2212 argv[0] = rb_ary_pop(value_stack);
2215#line 180 "api_node.c.erb"
2219#line 155 "api_node.c.erb"
2220 argv[2] = rb_ary_pop(value_stack);
2228#line 144 "api_node.c.erb"
2234#line 167 "api_node.c.erb"
2235 assert(cast->
name != 0);
2236 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2244#line 144 "api_node.c.erb"
2250#line 167 "api_node.c.erb"
2251 assert(cast->
name != 0);
2252 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2260#line 144 "api_node.c.erb"
2266#line 167 "api_node.c.erb"
2267 assert(cast->
name != 0);
2268 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2271#line 180 "api_node.c.erb"
2275#line 155 "api_node.c.erb"
2276 argv[2] = rb_ary_pop(value_stack);
2279#line 180 "api_node.c.erb"
2288#line 144 "api_node.c.erb"
2294#line 167 "api_node.c.erb"
2295 assert(cast->
name != 0);
2296 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2299#line 180 "api_node.c.erb"
2303#line 155 "api_node.c.erb"
2304 argv[2] = rb_ary_pop(value_stack);
2307#line 155 "api_node.c.erb"
2308 argv[3] = rb_ary_pop(value_stack);
2311#line 155 "api_node.c.erb"
2312 argv[4] = rb_ary_pop(value_stack);
2315#line 173 "api_node.c.erb"
2316 argv[5] = rb_ary_new_capa(cast->
locals.
size);
2317 for (
size_t index = 0; index < cast->
locals.
size; index++) {
2319 rb_ary_push(argv[5], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
2323#line 189 "api_node.c.erb"
2327#line 180 "api_node.c.erb"
2331#line 183 "api_node.c.erb"
2335#line 183 "api_node.c.erb"
2339#line 183 "api_node.c.erb"
2343#line 183 "api_node.c.erb"
2347#line 183 "api_node.c.erb"
2356#line 144 "api_node.c.erb"
2362#line 183 "api_node.c.erb"
2366#line 155 "api_node.c.erb"
2367 argv[1] = rb_ary_pop(value_stack);
2370#line 183 "api_node.c.erb"
2374#line 180 "api_node.c.erb"
2383#line 144 "api_node.c.erb"
2389#line 180 "api_node.c.erb"
2393#line 155 "api_node.c.erb"
2394 argv[1] = rb_ary_pop(value_stack);
2397#line 183 "api_node.c.erb"
2406#line 144 "api_node.c.erb"
2412#line 180 "api_node.c.erb"
2416#line 155 "api_node.c.erb"
2417 argv[1] = rb_ary_pop(value_stack);
2420#line 180 "api_node.c.erb"
2429#line 144 "api_node.c.erb"
2435#line 180 "api_node.c.erb"
2439#line 155 "api_node.c.erb"
2440 argv[1] = rb_ary_pop(value_stack);
2448#line 144 "api_node.c.erb"
2454#line 180 "api_node.c.erb"
2458#line 155 "api_node.c.erb"
2459 argv[1] = rb_ary_pop(value_stack);
2462#line 180 "api_node.c.erb"
2471#line 144 "api_node.c.erb"
2481#line 144 "api_node.c.erb"
2487#line 155 "api_node.c.erb"
2488 argv[0] = rb_ary_pop(value_stack);
2491#line 155 "api_node.c.erb"
2492 argv[1] = rb_ary_pop(value_stack);
2495#line 158 "api_node.c.erb"
2497 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
2498 rb_ary_push(argv[2], rb_ary_pop(value_stack));
2502#line 155 "api_node.c.erb"
2503 argv[3] = rb_ary_pop(value_stack);
2506#line 183 "api_node.c.erb"
2510#line 183 "api_node.c.erb"
2519#line 144 "api_node.c.erb"
2525#line 192 "api_node.c.erb"
2529#line 155 "api_node.c.erb"
2530 argv[1] = rb_ary_pop(value_stack);
2533#line 155 "api_node.c.erb"
2534 argv[2] = rb_ary_pop(value_stack);
2537#line 180 "api_node.c.erb"
2546#line 144 "api_node.c.erb"
2556#line 144 "api_node.c.erb"
2562#line 155 "api_node.c.erb"
2563 argv[0] = rb_ary_pop(value_stack);
2566#line 155 "api_node.c.erb"
2567 argv[1] = rb_ary_pop(value_stack);
2570#line 155 "api_node.c.erb"
2571 argv[2] = rb_ary_pop(value_stack);
2574#line 180 "api_node.c.erb"
2578#line 180 "api_node.c.erb"
2582#line 183 "api_node.c.erb"
2586#line 180 "api_node.c.erb"
2595#line 144 "api_node.c.erb"
2605#line 144 "api_node.c.erb"
2615#line 144 "api_node.c.erb"
2620#line 155 "api_node.c.erb"
2621 argv[0] = rb_ary_pop(value_stack);
2629#line 144 "api_node.c.erb"
2635#line 167 "api_node.c.erb"
2636 assert(cast->
name != 0);
2637 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2640#line 180 "api_node.c.erb"
2644#line 180 "api_node.c.erb"
2648#line 155 "api_node.c.erb"
2649 argv[3] = rb_ary_pop(value_stack);
2657#line 144 "api_node.c.erb"
2663#line 167 "api_node.c.erb"
2664 assert(cast->
name != 0);
2665 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2668#line 180 "api_node.c.erb"
2672#line 180 "api_node.c.erb"
2676#line 155 "api_node.c.erb"
2677 argv[3] = rb_ary_pop(value_stack);
2680#line 167 "api_node.c.erb"
2682 argv[4] = rb_id2sym(constants[cast->
operator - 1]);
2690#line 144 "api_node.c.erb"
2696#line 167 "api_node.c.erb"
2697 assert(cast->
name != 0);
2698 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2701#line 180 "api_node.c.erb"
2705#line 180 "api_node.c.erb"
2709#line 155 "api_node.c.erb"
2710 argv[3] = rb_ary_pop(value_stack);
2718#line 144 "api_node.c.erb"
2724#line 167 "api_node.c.erb"
2725 assert(cast->
name != 0);
2726 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2734#line 144 "api_node.c.erb"
2740#line 167 "api_node.c.erb"
2741 assert(cast->
name != 0);
2742 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2750#line 144 "api_node.c.erb"
2756#line 167 "api_node.c.erb"
2757 assert(cast->
name != 0);
2758 argv[0] = rb_id2sym(constants[cast->
name - 1]);
2761#line 180 "api_node.c.erb"
2765#line 155 "api_node.c.erb"
2766 argv[2] = rb_ary_pop(value_stack);
2769#line 180 "api_node.c.erb"
2778#line 144 "api_node.c.erb"
2784#line 180 "api_node.c.erb"
2788#line 158 "api_node.c.erb"
2790 for (
size_t index = 0; index < cast->
elements.
size; index++) {
2791 rb_ary_push(argv[1], rb_ary_pop(value_stack));
2795#line 180 "api_node.c.erb"
2804#line 144 "api_node.c.erb"
2810#line 155 "api_node.c.erb"
2811 argv[0] = rb_ary_pop(value_stack);
2814#line 158 "api_node.c.erb"
2816 for (
size_t index = 0; index < cast->
elements.
size; index++) {
2817 rb_ary_push(argv[1], rb_ary_pop(value_stack));
2821#line 155 "api_node.c.erb"
2822 argv[2] = rb_ary_pop(value_stack);
2825#line 183 "api_node.c.erb"
2829#line 183 "api_node.c.erb"
2838#line 144 "api_node.c.erb"
2844#line 183 "api_node.c.erb"
2848#line 155 "api_node.c.erb"
2849 argv[1] = rb_ary_pop(value_stack);
2852#line 183 "api_node.c.erb"
2856#line 155 "api_node.c.erb"
2857 argv[3] = rb_ary_pop(value_stack);
2860#line 155 "api_node.c.erb"
2861 argv[4] = rb_ary_pop(value_stack);
2864#line 183 "api_node.c.erb"
2873#line 144 "api_node.c.erb"
2878#line 155 "api_node.c.erb"
2879 argv[0] = rb_ary_pop(value_stack);
2887#line 144 "api_node.c.erb"
2892#line 155 "api_node.c.erb"
2893 argv[0] = rb_ary_pop(value_stack);
2901#line 144 "api_node.c.erb"
2911#line 144 "api_node.c.erb"
2917#line 155 "api_node.c.erb"
2918 argv[0] = rb_ary_pop(value_stack);
2921#line 155 "api_node.c.erb"
2922 argv[1] = rb_ary_pop(value_stack);
2925#line 180 "api_node.c.erb"
2929#line 183 "api_node.c.erb"
2938#line 144 "api_node.c.erb"
2944#line 192 "api_node.c.erb"
2948#line 155 "api_node.c.erb"
2949 argv[1] = rb_ary_pop(value_stack);
2952#line 183 "api_node.c.erb"
2956#line 180 "api_node.c.erb"
2960#line 155 "api_node.c.erb"
2961 argv[4] = rb_ary_pop(value_stack);
2964#line 180 "api_node.c.erb"
2968#line 155 "api_node.c.erb"
2969 argv[6] = rb_ary_pop(value_stack);
2972#line 180 "api_node.c.erb"
2976#line 155 "api_node.c.erb"
2977 argv[8] = rb_ary_pop(value_stack);
2985#line 144 "api_node.c.erb"
2991#line 192 "api_node.c.erb"
2995#line 155 "api_node.c.erb"
2996 argv[1] = rb_ary_pop(value_stack);
2999#line 183 "api_node.c.erb"
3003#line 180 "api_node.c.erb"
3007#line 155 "api_node.c.erb"
3008 argv[4] = rb_ary_pop(value_stack);
3011#line 180 "api_node.c.erb"
3015#line 155 "api_node.c.erb"
3016 argv[6] = rb_ary_pop(value_stack);
3019#line 167 "api_node.c.erb"
3021 argv[7] = rb_id2sym(constants[cast->
operator - 1]);
3024#line 180 "api_node.c.erb"
3028#line 155 "api_node.c.erb"
3029 argv[9] = rb_ary_pop(value_stack);
3037#line 144 "api_node.c.erb"
3043#line 192 "api_node.c.erb"
3047#line 155 "api_node.c.erb"
3048 argv[1] = rb_ary_pop(value_stack);
3051#line 183 "api_node.c.erb"
3055#line 180 "api_node.c.erb"
3059#line 155 "api_node.c.erb"
3060 argv[4] = rb_ary_pop(value_stack);
3063#line 180 "api_node.c.erb"
3067#line 155 "api_node.c.erb"
3068 argv[6] = rb_ary_pop(value_stack);
3071#line 180 "api_node.c.erb"
3075#line 155 "api_node.c.erb"
3076 argv[8] = rb_ary_pop(value_stack);
3084#line 144 "api_node.c.erb"
3090#line 192 "api_node.c.erb"
3094#line 155 "api_node.c.erb"
3095 argv[1] = rb_ary_pop(value_stack);
3098#line 180 "api_node.c.erb"
3102#line 155 "api_node.c.erb"
3103 argv[3] = rb_ary_pop(value_stack);
3106#line 180 "api_node.c.erb"
3110#line 155 "api_node.c.erb"
3111 argv[5] = rb_ary_pop(value_stack);
3119#line 144 "api_node.c.erb"
3125#line 167 "api_node.c.erb"
3126 assert(cast->
name != 0);
3127 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3130#line 180 "api_node.c.erb"
3134#line 180 "api_node.c.erb"
3138#line 155 "api_node.c.erb"
3139 argv[3] = rb_ary_pop(value_stack);
3147#line 144 "api_node.c.erb"
3153#line 167 "api_node.c.erb"
3154 assert(cast->
name != 0);
3155 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3158#line 180 "api_node.c.erb"
3162#line 180 "api_node.c.erb"
3166#line 155 "api_node.c.erb"
3167 argv[3] = rb_ary_pop(value_stack);
3170#line 167 "api_node.c.erb"
3172 argv[4] = rb_id2sym(constants[cast->
operator - 1]);
3177 rb_ary_push(value_stack,
rb_class_new_instance(6, argv, rb_cPrismInstanceVariableOperatorWriteNode));
3180#line 144 "api_node.c.erb"
3186#line 167 "api_node.c.erb"
3187 assert(cast->
name != 0);
3188 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3191#line 180 "api_node.c.erb"
3195#line 180 "api_node.c.erb"
3199#line 155 "api_node.c.erb"
3200 argv[3] = rb_ary_pop(value_stack);
3208#line 144 "api_node.c.erb"
3214#line 167 "api_node.c.erb"
3215 assert(cast->
name != 0);
3216 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3224#line 144 "api_node.c.erb"
3230#line 167 "api_node.c.erb"
3231 assert(cast->
name != 0);
3232 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3240#line 144 "api_node.c.erb"
3246#line 167 "api_node.c.erb"
3247 assert(cast->
name != 0);
3248 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3251#line 180 "api_node.c.erb"
3255#line 155 "api_node.c.erb"
3256 argv[2] = rb_ary_pop(value_stack);
3259#line 180 "api_node.c.erb"
3268#line 144 "api_node.c.erb"
3273#line 192 "api_node.c.erb"
3282#line 144 "api_node.c.erb"
3288#line 192 "api_node.c.erb"
3292#line 180 "api_node.c.erb"
3296#line 158 "api_node.c.erb"
3297 argv[2] = rb_ary_new_capa(cast->
parts.
size);
3298 for (
size_t index = 0; index < cast->
parts.
size; index++) {
3299 rb_ary_push(argv[2], rb_ary_pop(value_stack));
3303#line 180 "api_node.c.erb"
3312#line 144 "api_node.c.erb"
3318#line 192 "api_node.c.erb"
3322#line 180 "api_node.c.erb"
3326#line 158 "api_node.c.erb"
3327 argv[2] = rb_ary_new_capa(cast->
parts.
size);
3328 for (
size_t index = 0; index < cast->
parts.
size; index++) {
3329 rb_ary_push(argv[2], rb_ary_pop(value_stack));
3333#line 180 "api_node.c.erb"
3339 rb_ary_push(value_stack,
rb_class_new_instance(5, argv, rb_cPrismInterpolatedRegularExpressionNode));
3342#line 144 "api_node.c.erb"
3348#line 183 "api_node.c.erb"
3352#line 158 "api_node.c.erb"
3353 argv[1] = rb_ary_new_capa(cast->
parts.
size);
3354 for (
size_t index = 0; index < cast->
parts.
size; index++) {
3355 rb_ary_push(argv[1], rb_ary_pop(value_stack));
3359#line 183 "api_node.c.erb"
3368#line 144 "api_node.c.erb"
3374#line 183 "api_node.c.erb"
3378#line 158 "api_node.c.erb"
3379 argv[1] = rb_ary_new_capa(cast->
parts.
size);
3380 for (
size_t index = 0; index < cast->
parts.
size; index++) {
3381 rb_ary_push(argv[1], rb_ary_pop(value_stack));
3385#line 183 "api_node.c.erb"
3394#line 144 "api_node.c.erb"
3400#line 180 "api_node.c.erb"
3404#line 158 "api_node.c.erb"
3405 argv[1] = rb_ary_new_capa(cast->
parts.
size);
3406 for (
size_t index = 0; index < cast->
parts.
size; index++) {
3407 rb_ary_push(argv[1], rb_ary_pop(value_stack));
3411#line 180 "api_node.c.erb"
3420#line 144 "api_node.c.erb"
3426#line 192 "api_node.c.erb"
3430#line 158 "api_node.c.erb"
3432 for (
size_t index = 0; index < cast->
elements.
size; index++) {
3433 rb_ary_push(argv[1], rb_ary_pop(value_stack));
3442#line 144 "api_node.c.erb"
3448 argv[0] = cast->
name == 0 ?
Qnil : rb_id2sym(constants[cast->
name - 1]);
3451#line 183 "api_node.c.erb"
3455#line 180 "api_node.c.erb"
3464#line 144 "api_node.c.erb"
3470#line 173 "api_node.c.erb"
3471 argv[0] = rb_ary_new_capa(cast->
locals.
size);
3472 for (
size_t index = 0; index < cast->
locals.
size; index++) {
3474 rb_ary_push(argv[0], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
3478#line 189 "api_node.c.erb"
3482#line 180 "api_node.c.erb"
3486#line 180 "api_node.c.erb"
3490#line 180 "api_node.c.erb"
3494#line 155 "api_node.c.erb"
3495 argv[5] = rb_ary_pop(value_stack);
3498#line 155 "api_node.c.erb"
3499 argv[6] = rb_ary_pop(value_stack);
3507#line 144 "api_node.c.erb"
3513#line 180 "api_node.c.erb"
3517#line 180 "api_node.c.erb"
3521#line 155 "api_node.c.erb"
3522 argv[2] = rb_ary_pop(value_stack);
3525#line 167 "api_node.c.erb"
3526 assert(cast->
name != 0);
3527 argv[3] = rb_id2sym(constants[cast->
name - 1]);
3530#line 189 "api_node.c.erb"
3539#line 144 "api_node.c.erb"
3545#line 180 "api_node.c.erb"
3549#line 180 "api_node.c.erb"
3553#line 155 "api_node.c.erb"
3554 argv[2] = rb_ary_pop(value_stack);
3557#line 167 "api_node.c.erb"
3558 assert(cast->
name != 0);
3559 argv[3] = rb_id2sym(constants[cast->
name - 1]);
3562#line 167 "api_node.c.erb"
3564 argv[4] = rb_id2sym(constants[cast->
operator - 1]);
3567#line 189 "api_node.c.erb"
3576#line 144 "api_node.c.erb"
3582#line 180 "api_node.c.erb"
3586#line 180 "api_node.c.erb"
3590#line 155 "api_node.c.erb"
3591 argv[2] = rb_ary_pop(value_stack);
3594#line 167 "api_node.c.erb"
3595 assert(cast->
name != 0);
3596 argv[3] = rb_id2sym(constants[cast->
name - 1]);
3599#line 189 "api_node.c.erb"
3608#line 144 "api_node.c.erb"
3614#line 167 "api_node.c.erb"
3615 assert(cast->
name != 0);
3616 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3619#line 189 "api_node.c.erb"
3628#line 144 "api_node.c.erb"
3634#line 167 "api_node.c.erb"
3635 assert(cast->
name != 0);
3636 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3639#line 189 "api_node.c.erb"
3648#line 144 "api_node.c.erb"
3654#line 167 "api_node.c.erb"
3655 assert(cast->
name != 0);
3656 argv[0] = rb_id2sym(constants[cast->
name - 1]);
3659#line 189 "api_node.c.erb"
3663#line 180 "api_node.c.erb"
3667#line 155 "api_node.c.erb"
3668 argv[3] = rb_ary_pop(value_stack);
3671#line 180 "api_node.c.erb"
3680#line 144 "api_node.c.erb"
3686#line 192 "api_node.c.erb"
3690#line 180 "api_node.c.erb"
3694#line 180 "api_node.c.erb"
3698#line 180 "api_node.c.erb"
3702#line 164 "api_node.c.erb"
3703 argv[4] = pm_string_new(&cast->
unescaped, encoding);
3711#line 144 "api_node.c.erb"
3717#line 155 "api_node.c.erb"
3718 argv[0] = rb_ary_pop(value_stack);
3721#line 155 "api_node.c.erb"
3722 argv[1] = rb_ary_pop(value_stack);
3725#line 180 "api_node.c.erb"
3734#line 144 "api_node.c.erb"
3740#line 155 "api_node.c.erb"
3741 argv[0] = rb_ary_pop(value_stack);
3744#line 155 "api_node.c.erb"
3745 argv[1] = rb_ary_pop(value_stack);
3748#line 180 "api_node.c.erb"
3757#line 144 "api_node.c.erb"
3763#line 155 "api_node.c.erb"
3764 argv[0] = rb_ary_pop(value_stack);
3767#line 158 "api_node.c.erb"
3769 for (
size_t index = 0; index < cast->
targets.
size; index++) {
3770 rb_ary_push(argv[1], rb_ary_pop(value_stack));
3779#line 144 "api_node.c.erb"
3789#line 144 "api_node.c.erb"
3795#line 173 "api_node.c.erb"
3796 argv[0] = rb_ary_new_capa(cast->
locals.
size);
3797 for (
size_t index = 0; index < cast->
locals.
size; index++) {
3799 rb_ary_push(argv[0], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
3803#line 180 "api_node.c.erb"
3807#line 155 "api_node.c.erb"
3808 argv[2] = rb_ary_pop(value_stack);
3811#line 155 "api_node.c.erb"
3812 argv[3] = rb_ary_pop(value_stack);
3815#line 180 "api_node.c.erb"
3819#line 167 "api_node.c.erb"
3820 assert(cast->
name != 0);
3821 argv[5] = rb_id2sym(constants[cast->
name - 1]);
3829#line 144 "api_node.c.erb"
3835#line 158 "api_node.c.erb"
3836 argv[0] = rb_ary_new_capa(cast->
lefts.
size);
3837 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
3838 rb_ary_push(argv[0], rb_ary_pop(value_stack));
3842#line 155 "api_node.c.erb"
3843 argv[1] = rb_ary_pop(value_stack);
3846#line 158 "api_node.c.erb"
3847 argv[2] = rb_ary_new_capa(cast->
rights.
size);
3848 for (
size_t index = 0; index < cast->
rights.
size; index++) {
3849 rb_ary_push(argv[2], rb_ary_pop(value_stack));
3853#line 183 "api_node.c.erb"
3857#line 183 "api_node.c.erb"
3866#line 144 "api_node.c.erb"
3872#line 158 "api_node.c.erb"
3873 argv[0] = rb_ary_new_capa(cast->
lefts.
size);
3874 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
3875 rb_ary_push(argv[0], rb_ary_pop(value_stack));
3879#line 155 "api_node.c.erb"
3880 argv[1] = rb_ary_pop(value_stack);
3883#line 158 "api_node.c.erb"
3884 argv[2] = rb_ary_new_capa(cast->
rights.
size);
3885 for (
size_t index = 0; index < cast->
rights.
size; index++) {
3886 rb_ary_push(argv[2], rb_ary_pop(value_stack));
3890#line 183 "api_node.c.erb"
3894#line 183 "api_node.c.erb"
3898#line 180 "api_node.c.erb"
3902#line 155 "api_node.c.erb"
3903 argv[6] = rb_ary_pop(value_stack);
3911#line 144 "api_node.c.erb"
3917#line 155 "api_node.c.erb"
3918 argv[0] = rb_ary_pop(value_stack);
3921#line 180 "api_node.c.erb"
3930#line 144 "api_node.c.erb"
3940#line 144 "api_node.c.erb"
3946#line 180 "api_node.c.erb"
3950#line 180 "api_node.c.erb"
3959#line 144 "api_node.c.erb"
3965#line 186 "api_node.c.erb"
3974#line 144 "api_node.c.erb"
3980#line 189 "api_node.c.erb"
3989#line 144 "api_node.c.erb"
3995#line 167 "api_node.c.erb"
3996 assert(cast->
name != 0);
3997 argv[0] = rb_id2sym(constants[cast->
name - 1]);
4000#line 180 "api_node.c.erb"
4004#line 155 "api_node.c.erb"
4005 argv[2] = rb_ary_pop(value_stack);
4013#line 144 "api_node.c.erb"
4019#line 167 "api_node.c.erb"
4020 assert(cast->
name != 0);
4021 argv[0] = rb_id2sym(constants[cast->
name - 1]);
4024#line 180 "api_node.c.erb"
4028#line 180 "api_node.c.erb"
4032#line 155 "api_node.c.erb"
4033 argv[3] = rb_ary_pop(value_stack);
4041#line 144 "api_node.c.erb"
4047#line 155 "api_node.c.erb"
4048 argv[0] = rb_ary_pop(value_stack);
4051#line 155 "api_node.c.erb"
4052 argv[1] = rb_ary_pop(value_stack);
4055#line 180 "api_node.c.erb"
4064#line 144 "api_node.c.erb"
4070#line 158 "api_node.c.erb"
4072 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
4073 rb_ary_push(argv[0], rb_ary_pop(value_stack));
4077#line 158 "api_node.c.erb"
4079 for (
size_t index = 0; index < cast->
optionals.
size; index++) {
4080 rb_ary_push(argv[1], rb_ary_pop(value_stack));
4084#line 155 "api_node.c.erb"
4085 argv[2] = rb_ary_pop(value_stack);
4088#line 158 "api_node.c.erb"
4089 argv[3] = rb_ary_new_capa(cast->
posts.
size);
4090 for (
size_t index = 0; index < cast->
posts.
size; index++) {
4091 rb_ary_push(argv[3], rb_ary_pop(value_stack));
4095#line 158 "api_node.c.erb"
4097 for (
size_t index = 0; index < cast->
keywords.
size; index++) {
4098 rb_ary_push(argv[4], rb_ary_pop(value_stack));
4102#line 155 "api_node.c.erb"
4103 argv[5] = rb_ary_pop(value_stack);
4106#line 155 "api_node.c.erb"
4107 argv[6] = rb_ary_pop(value_stack);
4115#line 144 "api_node.c.erb"
4121#line 155 "api_node.c.erb"
4122 argv[0] = rb_ary_pop(value_stack);
4125#line 180 "api_node.c.erb"
4129#line 180 "api_node.c.erb"
4138#line 144 "api_node.c.erb"
4144#line 155 "api_node.c.erb"
4145 argv[0] = rb_ary_pop(value_stack);
4148#line 180 "api_node.c.erb"
4152#line 180 "api_node.c.erb"
4156#line 180 "api_node.c.erb"
4165#line 144 "api_node.c.erb"
4171#line 155 "api_node.c.erb"
4172 argv[0] = rb_ary_pop(value_stack);
4175#line 180 "api_node.c.erb"
4184#line 144 "api_node.c.erb"
4190#line 155 "api_node.c.erb"
4191 argv[0] = rb_ary_pop(value_stack);
4194#line 180 "api_node.c.erb"
4198#line 180 "api_node.c.erb"
4202#line 180 "api_node.c.erb"
4211#line 144 "api_node.c.erb"
4217#line 155 "api_node.c.erb"
4218 argv[0] = rb_ary_pop(value_stack);
4221#line 180 "api_node.c.erb"
4225#line 180 "api_node.c.erb"
4229#line 180 "api_node.c.erb"
4238#line 144 "api_node.c.erb"
4244#line 173 "api_node.c.erb"
4245 argv[0] = rb_ary_new_capa(cast->
locals.
size);
4246 for (
size_t index = 0; index < cast->
locals.
size; index++) {
4248 rb_ary_push(argv[0], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
4252#line 155 "api_node.c.erb"
4253 argv[1] = rb_ary_pop(value_stack);
4261#line 144 "api_node.c.erb"
4267#line 192 "api_node.c.erb"
4271#line 155 "api_node.c.erb"
4272 argv[1] = rb_ary_pop(value_stack);
4275#line 155 "api_node.c.erb"
4276 argv[2] = rb_ary_pop(value_stack);
4279#line 180 "api_node.c.erb"
4288#line 144 "api_node.c.erb"
4293#line 155 "api_node.c.erb"
4294 argv[0] = rb_ary_pop(value_stack);
4302#line 144 "api_node.c.erb"
4312#line 144 "api_node.c.erb"
4318#line 192 "api_node.c.erb"
4322#line 180 "api_node.c.erb"
4326#line 180 "api_node.c.erb"
4330#line 180 "api_node.c.erb"
4334#line 164 "api_node.c.erb"
4335 argv[4] = pm_string_new(&cast->
unescaped, encoding);
4343#line 144 "api_node.c.erb"
4349#line 167 "api_node.c.erb"
4350 assert(cast->
name != 0);
4351 argv[0] = rb_id2sym(constants[cast->
name - 1]);
4354#line 180 "api_node.c.erb"
4363#line 144 "api_node.c.erb"
4369#line 167 "api_node.c.erb"
4370 assert(cast->
name != 0);
4371 argv[0] = rb_id2sym(constants[cast->
name - 1]);
4379#line 144 "api_node.c.erb"
4385#line 155 "api_node.c.erb"
4386 argv[0] = rb_ary_pop(value_stack);
4389#line 180 "api_node.c.erb"
4393#line 155 "api_node.c.erb"
4394 argv[2] = rb_ary_pop(value_stack);
4402#line 144 "api_node.c.erb"
4408#line 180 "api_node.c.erb"
4412#line 158 "api_node.c.erb"
4415 rb_ary_push(argv[1], rb_ary_pop(value_stack));
4419#line 183 "api_node.c.erb"
4423#line 155 "api_node.c.erb"
4424 argv[3] = rb_ary_pop(value_stack);
4427#line 155 "api_node.c.erb"
4428 argv[4] = rb_ary_pop(value_stack);
4431#line 155 "api_node.c.erb"
4432 argv[5] = rb_ary_pop(value_stack);
4440#line 144 "api_node.c.erb"
4446 argv[0] = cast->
name == 0 ?
Qnil : rb_id2sym(constants[cast->
name - 1]);
4449#line 183 "api_node.c.erb"
4453#line 180 "api_node.c.erb"
4462#line 144 "api_node.c.erb"
4472#line 144 "api_node.c.erb"
4478#line 180 "api_node.c.erb"
4482#line 155 "api_node.c.erb"
4483 argv[1] = rb_ary_pop(value_stack);
4491#line 144 "api_node.c.erb"
4501#line 144 "api_node.c.erb"
4507#line 173 "api_node.c.erb"
4508 argv[0] = rb_ary_new_capa(cast->
locals.
size);
4509 for (
size_t index = 0; index < cast->
locals.
size; index++) {
4511 rb_ary_push(argv[0], rb_id2sym(constants[cast->
locals.
ids[index] - 1]));
4515#line 180 "api_node.c.erb"
4519#line 180 "api_node.c.erb"
4523#line 155 "api_node.c.erb"
4524 argv[3] = rb_ary_pop(value_stack);
4527#line 155 "api_node.c.erb"
4528 argv[4] = rb_ary_pop(value_stack);
4531#line 180 "api_node.c.erb"
4540#line 144 "api_node.c.erb"
4550#line 144 "api_node.c.erb"
4556#line 164 "api_node.c.erb"
4557 argv[0] = pm_string_new(&cast->
filepath, encoding);
4565#line 144 "api_node.c.erb"
4575#line 144 "api_node.c.erb"
4581#line 180 "api_node.c.erb"
4585#line 155 "api_node.c.erb"
4586 argv[1] = rb_ary_pop(value_stack);
4594#line 144 "api_node.c.erb"
4600#line 158 "api_node.c.erb"
4601 argv[0] = rb_ary_new_capa(cast->
body.
size);
4602 for (
size_t index = 0; index < cast->
body.
size; index++) {
4603 rb_ary_push(argv[0], rb_ary_pop(value_stack));
4612#line 144 "api_node.c.erb"
4618#line 192 "api_node.c.erb"
4622#line 183 "api_node.c.erb"
4626#line 180 "api_node.c.erb"
4630#line 183 "api_node.c.erb"
4634#line 164 "api_node.c.erb"
4635 argv[4] = pm_string_new(&cast->
unescaped, encoding);
4643#line 144 "api_node.c.erb"
4649#line 180 "api_node.c.erb"
4653#line 183 "api_node.c.erb"
4657#line 155 "api_node.c.erb"
4658 argv[2] = rb_ary_pop(value_stack);
4661#line 183 "api_node.c.erb"
4665#line 155 "api_node.c.erb"
4666 argv[4] = rb_ary_pop(value_stack);
4674#line 144 "api_node.c.erb"
4680#line 192 "api_node.c.erb"
4684#line 183 "api_node.c.erb"
4688#line 183 "api_node.c.erb"
4692#line 183 "api_node.c.erb"
4696#line 164 "api_node.c.erb"
4697 argv[4] = pm_string_new(&cast->
unescaped, encoding);
4705#line 144 "api_node.c.erb"
4715#line 144 "api_node.c.erb"
4721#line 158 "api_node.c.erb"
4722 argv[0] = rb_ary_new_capa(cast->
names.
size);
4723 for (
size_t index = 0; index < cast->
names.
size; index++) {
4724 rb_ary_push(argv[0], rb_ary_pop(value_stack));
4728#line 180 "api_node.c.erb"
4737#line 144 "api_node.c.erb"
4743#line 180 "api_node.c.erb"
4747#line 155 "api_node.c.erb"
4748 argv[1] = rb_ary_pop(value_stack);
4751#line 183 "api_node.c.erb"
4755#line 155 "api_node.c.erb"
4756 argv[3] = rb_ary_pop(value_stack);
4759#line 155 "api_node.c.erb"
4760 argv[4] = rb_ary_pop(value_stack);
4763#line 183 "api_node.c.erb"
4772#line 144 "api_node.c.erb"
4778#line 192 "api_node.c.erb"
4782#line 180 "api_node.c.erb"
4786#line 183 "api_node.c.erb"
4790#line 155 "api_node.c.erb"
4791 argv[3] = rb_ary_pop(value_stack);
4794#line 155 "api_node.c.erb"
4795 argv[4] = rb_ary_pop(value_stack);
4803#line 144 "api_node.c.erb"
4809#line 180 "api_node.c.erb"
4813#line 158 "api_node.c.erb"
4816 rb_ary_push(argv[1], rb_ary_pop(value_stack));
4820#line 155 "api_node.c.erb"
4821 argv[2] = rb_ary_pop(value_stack);
4829#line 144 "api_node.c.erb"
4835#line 192 "api_node.c.erb"
4839#line 180 "api_node.c.erb"
4843#line 183 "api_node.c.erb"
4847#line 155 "api_node.c.erb"
4848 argv[3] = rb_ary_pop(value_stack);
4851#line 155 "api_node.c.erb"
4852 argv[4] = rb_ary_pop(value_stack);
4860#line 144 "api_node.c.erb"
4866#line 192 "api_node.c.erb"
4870#line 180 "api_node.c.erb"
4874#line 180 "api_node.c.erb"
4878#line 180 "api_node.c.erb"
4882#line 164 "api_node.c.erb"
4883 argv[4] = pm_string_new(&cast->
unescaped, encoding);
4891#line 144 "api_node.c.erb"
4897#line 180 "api_node.c.erb"
4901#line 183 "api_node.c.erb"
4905#line 155 "api_node.c.erb"
4906 argv[2] = rb_ary_pop(value_stack);
4909#line 183 "api_node.c.erb"
4924 VALUE result = rb_ary_pop(value_stack);
4930Init_prism_api_node(
void) {
4931 rb_cPrismAliasGlobalVariableNode =
rb_define_class_under(rb_cPrism,
"AliasGlobalVariableNode", rb_cPrismNode);
4933 rb_cPrismAlternationPatternNode =
rb_define_class_under(rb_cPrism,
"AlternationPatternNode", rb_cPrismNode);
4940 rb_cPrismBackReferenceReadNode =
rb_define_class_under(rb_cPrism,
"BackReferenceReadNode", rb_cPrismNode);
4943 rb_cPrismBlockLocalVariableNode =
rb_define_class_under(rb_cPrism,
"BlockLocalVariableNode", rb_cPrismNode);
4945 rb_cPrismBlockParameterNode =
rb_define_class_under(rb_cPrism,
"BlockParameterNode", rb_cPrismNode);
4946 rb_cPrismBlockParametersNode =
rb_define_class_under(rb_cPrism,
"BlockParametersNode", rb_cPrismNode);
4950 rb_cPrismCallOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"CallOperatorWriteNode", rb_cPrismNode);
4953 rb_cPrismCapturePatternNode =
rb_define_class_under(rb_cPrism,
"CapturePatternNode", rb_cPrismNode);
4957 rb_cPrismClassVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableAndWriteNode", rb_cPrismNode);
4958 rb_cPrismClassVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableOperatorWriteNode", rb_cPrismNode);
4959 rb_cPrismClassVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableOrWriteNode", rb_cPrismNode);
4960 rb_cPrismClassVariableReadNode =
rb_define_class_under(rb_cPrism,
"ClassVariableReadNode", rb_cPrismNode);
4961 rb_cPrismClassVariableTargetNode =
rb_define_class_under(rb_cPrism,
"ClassVariableTargetNode", rb_cPrismNode);
4962 rb_cPrismClassVariableWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableWriteNode", rb_cPrismNode);
4963 rb_cPrismConstantAndWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantAndWriteNode", rb_cPrismNode);
4964 rb_cPrismConstantOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantOperatorWriteNode", rb_cPrismNode);
4965 rb_cPrismConstantOrWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantOrWriteNode", rb_cPrismNode);
4966 rb_cPrismConstantPathAndWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathAndWriteNode", rb_cPrismNode);
4968 rb_cPrismConstantPathOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathOperatorWriteNode", rb_cPrismNode);
4969 rb_cPrismConstantPathOrWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathOrWriteNode", rb_cPrismNode);
4970 rb_cPrismConstantPathTargetNode =
rb_define_class_under(rb_cPrism,
"ConstantPathTargetNode", rb_cPrismNode);
4971 rb_cPrismConstantPathWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathWriteNode", rb_cPrismNode);
4973 rb_cPrismConstantTargetNode =
rb_define_class_under(rb_cPrism,
"ConstantTargetNode", rb_cPrismNode);
4978 rb_cPrismEmbeddedStatementsNode =
rb_define_class_under(rb_cPrism,
"EmbeddedStatementsNode", rb_cPrismNode);
4979 rb_cPrismEmbeddedVariableNode =
rb_define_class_under(rb_cPrism,
"EmbeddedVariableNode", rb_cPrismNode);
4986 rb_cPrismForwardingArgumentsNode =
rb_define_class_under(rb_cPrism,
"ForwardingArgumentsNode", rb_cPrismNode);
4987 rb_cPrismForwardingParameterNode =
rb_define_class_under(rb_cPrism,
"ForwardingParameterNode", rb_cPrismNode);
4988 rb_cPrismForwardingSuperNode =
rb_define_class_under(rb_cPrism,
"ForwardingSuperNode", rb_cPrismNode);
4989 rb_cPrismGlobalVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableAndWriteNode", rb_cPrismNode);
4990 rb_cPrismGlobalVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableOperatorWriteNode", rb_cPrismNode);
4991 rb_cPrismGlobalVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableOrWriteNode", rb_cPrismNode);
4992 rb_cPrismGlobalVariableReadNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableReadNode", rb_cPrismNode);
4993 rb_cPrismGlobalVariableTargetNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableTargetNode", rb_cPrismNode);
4994 rb_cPrismGlobalVariableWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableWriteNode", rb_cPrismNode);
5003 rb_cPrismIndexOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"IndexOperatorWriteNode", rb_cPrismNode);
5006 rb_cPrismInstanceVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableAndWriteNode", rb_cPrismNode);
5007 rb_cPrismInstanceVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableOperatorWriteNode", rb_cPrismNode);
5008 rb_cPrismInstanceVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableOrWriteNode", rb_cPrismNode);
5009 rb_cPrismInstanceVariableReadNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableReadNode", rb_cPrismNode);
5010 rb_cPrismInstanceVariableTargetNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableTargetNode", rb_cPrismNode);
5011 rb_cPrismInstanceVariableWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableWriteNode", rb_cPrismNode);
5013 rb_cPrismInterpolatedMatchLastLineNode =
rb_define_class_under(rb_cPrism,
"InterpolatedMatchLastLineNode", rb_cPrismNode);
5014 rb_cPrismInterpolatedRegularExpressionNode =
rb_define_class_under(rb_cPrism,
"InterpolatedRegularExpressionNode", rb_cPrismNode);
5015 rb_cPrismInterpolatedStringNode =
rb_define_class_under(rb_cPrism,
"InterpolatedStringNode", rb_cPrismNode);
5016 rb_cPrismInterpolatedSymbolNode =
rb_define_class_under(rb_cPrism,
"InterpolatedSymbolNode", rb_cPrismNode);
5017 rb_cPrismInterpolatedXStringNode =
rb_define_class_under(rb_cPrism,
"InterpolatedXStringNode", rb_cPrismNode);
5019 rb_cPrismKeywordRestParameterNode =
rb_define_class_under(rb_cPrism,
"KeywordRestParameterNode", rb_cPrismNode);
5021 rb_cPrismLocalVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableAndWriteNode", rb_cPrismNode);
5022 rb_cPrismLocalVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableOperatorWriteNode", rb_cPrismNode);
5023 rb_cPrismLocalVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableOrWriteNode", rb_cPrismNode);
5024 rb_cPrismLocalVariableReadNode =
rb_define_class_under(rb_cPrism,
"LocalVariableReadNode", rb_cPrismNode);
5025 rb_cPrismLocalVariableTargetNode =
rb_define_class_under(rb_cPrism,
"LocalVariableTargetNode", rb_cPrismNode);
5026 rb_cPrismLocalVariableWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableWriteNode", rb_cPrismNode);
5028 rb_cPrismMatchPredicateNode =
rb_define_class_under(rb_cPrism,
"MatchPredicateNode", rb_cPrismNode);
5037 rb_cPrismNoKeywordsParameterNode =
rb_define_class_under(rb_cPrism,
"NoKeywordsParameterNode", rb_cPrismNode);
5038 rb_cPrismNumberedParametersNode =
rb_define_class_under(rb_cPrism,
"NumberedParametersNode", rb_cPrismNode);
5039 rb_cPrismNumberedReferenceReadNode =
rb_define_class_under(rb_cPrism,
"NumberedReferenceReadNode", rb_cPrismNode);
5040 rb_cPrismOptionalKeywordParameterNode =
rb_define_class_under(rb_cPrism,
"OptionalKeywordParameterNode", rb_cPrismNode);
5041 rb_cPrismOptionalParameterNode =
rb_define_class_under(rb_cPrism,
"OptionalParameterNode", rb_cPrismNode);
5045 rb_cPrismPinnedExpressionNode =
rb_define_class_under(rb_cPrism,
"PinnedExpressionNode", rb_cPrismNode);
5046 rb_cPrismPinnedVariableNode =
rb_define_class_under(rb_cPrism,
"PinnedVariableNode", rb_cPrismNode);
5053 rb_cPrismRegularExpressionNode =
rb_define_class_under(rb_cPrism,
"RegularExpressionNode", rb_cPrismNode);
5054 rb_cPrismRequiredKeywordParameterNode =
rb_define_class_under(rb_cPrism,
"RequiredKeywordParameterNode", rb_cPrismNode);
5055 rb_cPrismRequiredParameterNode =
rb_define_class_under(rb_cPrism,
"RequiredParameterNode", rb_cPrismNode);
5056 rb_cPrismRescueModifierNode =
rb_define_class_under(rb_cPrism,
"RescueModifierNode", rb_cPrismNode);
5062 rb_cPrismSingletonClassNode =
rb_define_class_under(rb_cPrism,
"SingletonClassNode", rb_cPrismNode);
5063 rb_cPrismSourceEncodingNode =
rb_define_class_under(rb_cPrism,
"SourceEncodingNode", rb_cPrismNode);
@ PM_DEFINED_NODE
DefinedNode.
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
@ PM_RETRY_NODE
RetryNode.
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
@ PM_SOURCE_LINE_NODE
SourceLineNode.
@ PM_UNLESS_NODE
UnlessNode.
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
@ PM_RATIONAL_NODE
RationalNode.
@ PM_YIELD_NODE
YieldNode.
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
@ PM_CLASS_NODE
ClassNode.
@ PM_FIND_PATTERN_NODE
FindPatternNode.
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
@ PM_ARRAY_NODE
ArrayNode.
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
@ PM_PROGRAM_NODE
ProgramNode.
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
@ PM_IMPLICIT_NODE
ImplicitNode.
@ PM_ARGUMENTS_NODE
ArgumentsNode.
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
@ PM_WHILE_NODE
WhileNode.
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
@ PM_FALSE_NODE
FalseNode.
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
@ PM_UNTIL_NODE
UntilNode.
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
@ PM_X_STRING_NODE
XStringNode.
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
@ PM_SOURCE_FILE_NODE
SourceFileNode.
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
@ PM_SPLAT_NODE
SplatNode.
@ PM_LAMBDA_NODE
LambdaNode.
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
@ PM_CALL_TARGET_NODE
CallTargetNode.
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
@ PM_SYMBOL_NODE
SymbolNode.
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
@ PM_MISSING_NODE
MissingNode.
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
@ PM_RANGE_NODE
RangeNode.
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
@ PM_HASH_PATTERN_NODE
HashPatternNode.
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
@ PM_UNDEF_NODE
UndefNode.
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
@ PM_ENSURE_NODE
EnsureNode.
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
@ PM_PARENTHESES_NODE
ParenthesesNode.
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
@ PM_RETURN_NODE
ReturnNode.
@ PM_MODULE_NODE
ModuleNode.
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
@ PM_SUPER_NODE
SuperNode.
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
@ PM_CASE_MATCH_NODE
CaseMatchNode.
@ PM_BREAK_NODE
BreakNode.
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
@ PM_IMAGINARY_NODE
ImaginaryNode.
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
@ PM_BEGIN_NODE
BeginNode.
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
@ PM_RESCUE_NODE
RescueNode.
@ PM_FLOAT_NODE
FloatNode.
@ PM_ASSOC_NODE
AssocNode.
@ PM_INTEGER_NODE
IntegerNode.
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
@ PM_STRING_NODE
StringNode.
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
@ PM_PARAMETERS_NODE
ParametersNode.
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
@ PM_STATEMENTS_NODE
StatementsNode.
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
@ PM_BLOCK_NODE
BlockNode.
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
@ PM_REST_PARAMETER_NODE
RestParameterNode.
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
#define PM_NODE_TYPE(node)
Cast the type to an enum to allow the compiler to provide exhaustiveness checking.
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
#define INT2FIX
Old name of RB_INT2FIX.
#define ID2SYM
Old name of RB_ID2SYM.
#define ULONG2NUM
Old name of RB_ULONG2NUM.
#define LONG2FIX
Old name of RB_INT2FIX.
#define LONG2NUM
Old name of RB_LONG2NUM.
#define Qnil
Old name of RUBY_Qnil.
#define UINT2NUM
Old name of RB_UINT2NUM.
VALUE rb_eRuntimeError
RuntimeError exception.
VALUE rb_class_new_instance(int argc, const VALUE *argv, VALUE klass)
Allocates, then initialises an instance of the given class.
static ID rb_intern_const(const char *str)
This is a "tiny optimisation" over rb_intern().
VALUE type(ANYARGS)
ANYARGS-ed function type.
PRISM_EXPORTED_FUNCTION const char * pm_token_type_to_str(pm_token_type_t token_type)
Returns a string representation of the given token type.
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
struct pm_node * old_name
AliasMethodNode::old_name.
struct pm_node * new_name
AliasMethodNode::new_name.
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
struct pm_node * left
AlternationPatternNode::left.
struct pm_node * right
AlternationPatternNode::right.
struct pm_node * left
AndNode::left.
struct pm_node * right
AndNode::right.
pm_location_t operator_loc
AndNode::operator_loc.
struct pm_node_list arguments
ArgumentsNode::arguments.
pm_location_t closing_loc
ArrayNode::closing_loc.
struct pm_node_list elements
ArrayNode::elements.
pm_location_t opening_loc
ArrayNode::opening_loc.
struct pm_node_list requireds
ArrayPatternNode::requireds.
struct pm_node * rest
ArrayPatternNode::rest.
struct pm_node * constant
ArrayPatternNode::constant.
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
struct pm_node_list posts
ArrayPatternNode::posts.
struct pm_node * value
AssocNode::value.
struct pm_node * key
AssocNode::key.
pm_location_t operator_loc
AssocNode::operator_loc.
struct pm_node * value
AssocSplatNode::value.
pm_location_t operator_loc
AssocSplatNode::operator_loc.
pm_constant_id_t name
BackReferenceReadNode::name.
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
struct pm_statements_node * statements
BeginNode::statements.
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
struct pm_else_node * else_clause
BeginNode::else_clause.
struct pm_node * expression
BlockArgumentNode::expression.
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
pm_constant_id_t name
BlockLocalVariableNode::name.
pm_location_t closing_loc
BlockNode::closing_loc.
struct pm_node * parameters
BlockNode::parameters.
pm_location_t opening_loc
BlockNode::opening_loc.
struct pm_node * body
BlockNode::body.
uint32_t locals_body_index
BlockNode::locals_body_index.
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.
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
struct pm_node_list locals
BlockParametersNode::locals.
pm_location_t closing_loc
BlockParametersNode::closing_loc.
pm_location_t opening_loc
BlockParametersNode::opening_loc.
struct pm_arguments_node * arguments
BreakNode::arguments.
pm_location_t keyword_loc
BreakNode::keyword_loc.
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
struct pm_node * value
CallAndWriteNode::value.
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_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.
struct pm_node * receiver
CallOperatorWriteNode::receiver.
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
pm_constant_id_t operator
CallOperatorWriteNode::operator.
pm_location_t operator_loc
CallOperatorWriteNode::operator_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.
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_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_node * target
CapturePatternNode::target.
pm_location_t operator_loc
CapturePatternNode::operator_loc.
struct pm_node * value
CapturePatternNode::value.
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
struct pm_node_list conditions
CaseMatchNode::conditions.
struct pm_else_node * consequent
CaseMatchNode::consequent.
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
struct pm_node * predicate
CaseMatchNode::predicate.
struct pm_node * predicate
CaseNode::predicate.
struct pm_else_node * consequent
CaseNode::consequent.
struct pm_node_list conditions
CaseNode::conditions.
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
struct pm_node * constant_path
ClassNode::constant_path.
pm_constant_id_list_t locals
ClassNode::locals.
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
pm_constant_id_t name
ClassNode::name.
struct pm_node * body
ClassNode::body.
struct pm_node * superclass
ClassNode::superclass.
ClassVariableAndWriteNode.
struct pm_node * value
ClassVariableAndWriteNode::value.
pm_constant_id_t name
ClassVariableAndWriteNode::name.
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
ClassVariableOperatorWriteNode.
pm_location_t operator_loc
ClassVariableOperatorWriteNode::operator_loc.
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
pm_constant_id_t operator
ClassVariableOperatorWriteNode::operator.
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
struct pm_node * value
ClassVariableOperatorWriteNode::value.
ClassVariableOrWriteNode.
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
pm_constant_id_t name
ClassVariableOrWriteNode::name.
struct pm_node * value
ClassVariableOrWriteNode::value.
pm_constant_id_t name
ClassVariableReadNode::name.
pm_constant_id_t name
ClassVariableTargetNode::name.
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
struct pm_node * value
ClassVariableWriteNode::value.
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
pm_constant_id_t name
ClassVariableWriteNode::name.
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
pm_constant_id_t name
ConstantAndWriteNode::name.
struct pm_node * value
ConstantAndWriteNode::value.
size_t size
The number of constant ids in the list.
pm_constant_id_t * ids
The constant ids in the list.
ConstantOperatorWriteNode.
pm_constant_id_t name
ConstantOperatorWriteNode::name.
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
pm_constant_id_t operator
ConstantOperatorWriteNode::operator.
struct pm_node * value
ConstantOperatorWriteNode::value.
pm_location_t operator_loc
ConstantOperatorWriteNode::operator_loc.
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
pm_constant_id_t name
ConstantOrWriteNode::name.
struct pm_node * value
ConstantOrWriteNode::value.
ConstantPathAndWriteNode.
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
struct pm_node * value
ConstantPathAndWriteNode::value.
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
struct pm_node * child
ConstantPathNode::child.
struct pm_node * parent
ConstantPathNode::parent.
ConstantPathOperatorWriteNode.
pm_constant_id_t operator
ConstantPathOperatorWriteNode::operator.
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
struct pm_node * value
ConstantPathOperatorWriteNode::value.
pm_location_t operator_loc
ConstantPathOperatorWriteNode::operator_loc.
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
struct pm_node * value
ConstantPathOrWriteNode::value.
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
struct pm_node * parent
ConstantPathTargetNode::parent.
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
struct pm_node * child
ConstantPathTargetNode::child.
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
struct pm_node * value
ConstantPathWriteNode::value.
uint32_t size
The number of buckets in the hash map.
pm_constant_t * constants
The constants that are stored in the buckets.
pm_constant_id_t name
ConstantReadNode::name.
A constant in the pool which effectively stores a string.
size_t length
The length of the string.
const uint8_t * start
A pointer to the start of the string.
pm_constant_id_t name
ConstantTargetNode::name.
struct pm_node * value
ConstantWriteNode::value.
pm_constant_id_t name
ConstantWriteNode::name.
pm_location_t name_loc
ConstantWriteNode::name_loc.
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
struct pm_parameters_node * parameters
DefNode::parameters.
uint32_t locals_body_index
DefNode::locals_body_index.
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
pm_constant_id_t name
DefNode::name.
pm_location_t name_loc
DefNode::name_loc.
pm_location_t rparen_loc
DefNode::rparen_loc.
struct pm_node * body
DefNode::body.
pm_location_t equal_loc
DefNode::equal_loc.
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
struct pm_node * receiver
DefNode::receiver.
pm_location_t lparen_loc
DefNode::lparen_loc.
pm_location_t operator_loc
DefNode::operator_loc.
pm_constant_id_list_t locals
DefNode::locals.
pm_location_t lparen_loc
DefinedNode::lparen_loc.
pm_location_t rparen_loc
DefinedNode::rparen_loc.
pm_location_t keyword_loc
DefinedNode::keyword_loc.
struct pm_node * value
DefinedNode::value.
struct pm_statements_node * statements
ElseNode::statements.
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
struct pm_node * variable
EmbeddedVariableNode::variable.
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
struct pm_statements_node * statements
EnsureNode::statements.
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
struct pm_node * left
FindPatternNode::left.
struct pm_node * constant
FindPatternNode::constant.
struct pm_node * right
FindPatternNode::right.
pm_location_t opening_loc
FindPatternNode::opening_loc.
struct pm_node_list requireds
FindPatternNode::requireds.
pm_location_t closing_loc
FindPatternNode::closing_loc.
pm_location_t operator_loc
FlipFlopNode::operator_loc.
struct pm_node * left
FlipFlopNode::left.
struct pm_node * right
FlipFlopNode::right.
struct pm_statements_node * statements
ForNode::statements.
struct pm_node * index
ForNode::index.
struct pm_node * collection
ForNode::collection.
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
struct pm_block_node * block
ForwardingSuperNode::block.
GlobalVariableAndWriteNode.
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
struct pm_node * value
GlobalVariableAndWriteNode::value.
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
GlobalVariableOperatorWriteNode.
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
pm_constant_id_t operator
GlobalVariableOperatorWriteNode::operator.
pm_location_t operator_loc
GlobalVariableOperatorWriteNode::operator_loc.
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
GlobalVariableOrWriteNode.
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
struct pm_node * value
GlobalVariableOrWriteNode::value.
pm_constant_id_t name
GlobalVariableReadNode::name.
GlobalVariableTargetNode.
pm_constant_id_t name
GlobalVariableTargetNode::name.
struct pm_node * value
GlobalVariableWriteNode::value.
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
pm_constant_id_t name
GlobalVariableWriteNode::name.
struct pm_node_list elements
HashNode::elements.
pm_location_t closing_loc
HashNode::closing_loc.
pm_location_t opening_loc
HashNode::opening_loc.
struct pm_node_list elements
HashPatternNode::elements.
pm_location_t opening_loc
HashPatternNode::opening_loc.
struct pm_node * rest
HashPatternNode::rest.
pm_location_t closing_loc
HashPatternNode::closing_loc.
struct pm_node * constant
HashPatternNode::constant.
struct pm_node * consequent
IfNode::consequent.
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_location_t then_keyword_loc
IfNode::then_keyword_loc.
struct pm_node * numeric
ImaginaryNode::numeric.
struct pm_node * value
ImplicitNode::value.
struct pm_statements_node * statements
InNode::statements.
struct pm_node * pattern
InNode::pattern.
pm_location_t then_loc
InNode::then_loc.
pm_location_t in_loc
InNode::in_loc.
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
struct pm_node * receiver
IndexAndWriteNode::receiver.
struct pm_node * value
IndexAndWriteNode::value.
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
struct pm_node * block
IndexAndWriteNode::block.
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_constant_id_t operator
IndexOperatorWriteNode::operator.
struct pm_node * value
IndexOperatorWriteNode::value.
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
struct pm_node * block
IndexOperatorWriteNode::block.
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
pm_location_t operator_loc
IndexOperatorWriteNode::operator_loc.
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
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_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.
struct pm_node * block
IndexOrWriteNode::block.
struct pm_node * block
IndexTargetNode::block.
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.
InstanceVariableAndWriteNode.
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
struct pm_node * value
InstanceVariableAndWriteNode::value.
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
InstanceVariableOperatorWriteNode.
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
pm_location_t operator_loc
InstanceVariableOperatorWriteNode::operator_loc.
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
pm_constant_id_t operator
InstanceVariableOperatorWriteNode::operator.
InstanceVariableOrWriteNode.
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
struct pm_node * value
InstanceVariableOrWriteNode::value.
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
InstanceVariableReadNode.
pm_constant_id_t name
InstanceVariableReadNode::name.
InstanceVariableTargetNode.
pm_constant_id_t name
InstanceVariableTargetNode::name.
InstanceVariableWriteNode.
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
pm_constant_id_t name
InstanceVariableWriteNode::name.
struct pm_node * value
InstanceVariableWriteNode::value.
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
InterpolatedMatchLastLineNode.
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_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
struct pm_node_list parts
InterpolatedStringNode::parts.
struct pm_node_list parts
InterpolatedSymbolNode::parts.
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
struct pm_node_list parts
InterpolatedXStringNode::parts.
struct pm_node_list elements
KeywordHashNode::elements.
KeywordRestParameterNode.
pm_constant_id_t name
KeywordRestParameterNode::name.
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
pm_location_t closing_loc
LambdaNode::closing_loc.
struct pm_node * body
LambdaNode::body.
uint32_t locals_body_index
LambdaNode::locals_body_index.
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.
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.
struct pm_node * value
LocalVariableOperatorWriteNode::value.
pm_constant_id_t operator
LocalVariableOperatorWriteNode::operator.
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
pm_location_t operator_loc
LocalVariableOperatorWriteNode::operator_loc.
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
LocalVariableOrWriteNode.
uint32_t depth
LocalVariableOrWriteNode::depth.
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
struct pm_node * value
LocalVariableOrWriteNode::value.
pm_constant_id_t name
LocalVariableOrWriteNode::name.
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
uint32_t depth
LocalVariableReadNode::depth.
pm_constant_id_t name
LocalVariableReadNode::name.
uint32_t depth
LocalVariableTargetNode::depth.
pm_constant_id_t name
LocalVariableTargetNode::name.
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
struct pm_node * value
LocalVariableWriteNode::value.
uint32_t depth
LocalVariableWriteNode::depth.
pm_constant_id_t name
LocalVariableWriteNode::name.
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_location_t operator_loc
MatchPredicateNode::operator_loc.
struct pm_node * pattern
MatchPredicateNode::pattern.
struct pm_node * value
MatchPredicateNode::value.
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
struct pm_node * value
MatchRequiredNode::value.
struct pm_node * pattern
MatchRequiredNode::pattern.
struct pm_node_list targets
MatchWriteNode::targets.
struct pm_call_node * call
MatchWriteNode::call.
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
struct pm_node * constant_path
ModuleNode::constant_path.
struct pm_node * body
ModuleNode::body.
pm_constant_id_list_t locals
ModuleNode::locals.
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
pm_constant_id_t name
ModuleNode::name.
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
struct pm_node_list lefts
MultiTargetNode::lefts.
struct pm_node * rest
MultiTargetNode::rest.
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
struct pm_node_list rights
MultiTargetNode::rights.
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
struct pm_node * value
MultiWriteNode::value.
struct pm_node * rest
MultiWriteNode::rest.
struct pm_node_list rights
MultiWriteNode::rights.
pm_location_t operator_loc
MultiWriteNode::operator_loc.
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
struct pm_node_list lefts
MultiWriteNode::lefts.
size_t * offsets
The list of offsets.
size_t size
The number of offsets in the list.
struct pm_arguments_node * arguments
NextNode::arguments.
pm_location_t keyword_loc
NextNode::keyword_loc.
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
size_t size
The number of nodes in the list.
struct pm_node ** nodes
The nodes in the list.
This is the base structure that represents a node in the syntax tree.
pm_node_flags_t flags
This represents any flags on the node.
pm_location_t location
This is the location of the node in the source.
uint8_t maximum
NumberedParametersNode::maximum.
NumberedReferenceReadNode.
uint32_t number
NumberedReferenceReadNode::number.
OptionalKeywordParameterNode.
pm_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_location_t operator_loc
OptionalParameterNode::operator_loc.
struct pm_node * left
OrNode::left.
struct pm_node * right
OrNode::right.
pm_location_t operator_loc
OrNode::operator_loc.
struct pm_node * rest
ParametersNode::rest.
struct pm_node_list requireds
ParametersNode::requireds.
struct pm_block_parameter_node * block
ParametersNode::block.
struct pm_node_list optionals
ParametersNode::optionals.
struct pm_node_list posts
ParametersNode::posts.
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
struct pm_node_list keywords
ParametersNode::keywords.
struct pm_node * body
ParenthesesNode::body.
pm_location_t closing_loc
ParenthesesNode::closing_loc.
pm_location_t opening_loc
ParenthesesNode::opening_loc.
This struct represents the overall parser.
const uint8_t * end
The pointer to the end of the source.
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.
int32_t start_line
The line number at the start of the parse.
pm_newline_list_t newline_list
This is the list of newline offsets in the source file.
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
struct pm_node * expression
PinnedExpressionNode::expression.
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
struct pm_node * variable
PinnedVariableNode::variable.
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
pm_location_t closing_loc
PostExecutionNode::closing_loc.
struct pm_statements_node * statements
PostExecutionNode::statements.
pm_location_t opening_loc
PostExecutionNode::opening_loc.
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
struct pm_statements_node * statements
PreExecutionNode::statements.
pm_location_t closing_loc
PreExecutionNode::closing_loc.
pm_location_t opening_loc
PreExecutionNode::opening_loc.
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
struct pm_statements_node * statements
ProgramNode::statements.
pm_constant_id_list_t locals
ProgramNode::locals.
struct pm_node * right
RangeNode::right.
pm_location_t operator_loc
RangeNode::operator_loc.
struct pm_node * left
RangeNode::left.
struct pm_node * numeric
RationalNode::numeric.
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
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_constant_id_t name
RequiredKeywordParameterNode::name.
pm_constant_id_t name
RequiredParameterNode::name.
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 * consequent
RescueNode::consequent.
pm_location_t operator_loc
RescueNode::operator_loc.
struct pm_node * reference
RescueNode::reference.
struct pm_node_list exceptions
RescueNode::exceptions.
struct pm_statements_node * statements
RescueNode::statements.
pm_constant_id_t name
RestParameterNode::name.
pm_location_t name_loc
RestParameterNode::name_loc.
pm_location_t operator_loc
RestParameterNode::operator_loc.
pm_location_t keyword_loc
ReturnNode::keyword_loc.
struct pm_arguments_node * arguments
ReturnNode::arguments.
pm_constant_id_list_t locals
SingletonClassNode::locals.
pm_location_t operator_loc
SingletonClassNode::operator_loc.
struct pm_node * expression
SingletonClassNode::expression.
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
struct pm_node * body
SingletonClassNode::body.
pm_string_t filepath
SourceFileNode::filepath.
struct pm_node * expression
SplatNode::expression.
pm_location_t operator_loc
SplatNode::operator_loc.
struct pm_node_list body
StatementsNode::body.
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_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.
This struct represents a token in the Ruby source.
pm_location_t keyword_loc
UndefNode::keyword_loc.
struct pm_node_list names
UndefNode::names.
struct pm_else_node * consequent
UnlessNode::consequent.
pm_location_t keyword_loc
UnlessNode::keyword_loc.
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
struct pm_statements_node * statements
UnlessNode::statements.
struct pm_node * predicate
UnlessNode::predicate.
struct pm_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.
struct pm_statements_node * statements
WhenNode::statements.
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.
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_location_t keyword_loc
YieldNode::keyword_loc.
pm_location_t lparen_loc
YieldNode::lparen_loc.
pm_location_t rparen_loc
YieldNode::rparen_loc.
struct pm_arguments_node * arguments
YieldNode::arguments.
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.