9#line 2 "prism/templates/ext/prism/api_node.c.erb"
10#include "prism/extension.h"
12extern VALUE rb_cPrism;
13extern VALUE rb_cPrismNode;
14extern VALUE rb_cPrismSource;
15extern VALUE rb_cPrismToken;
16extern VALUE rb_cPrismLocation;
18static VALUE rb_cPrismAliasGlobalVariableNode;
19static VALUE rb_cPrismAliasMethodNode;
20static VALUE rb_cPrismAlternationPatternNode;
21static VALUE rb_cPrismAndNode;
22static VALUE rb_cPrismArgumentsNode;
23static VALUE rb_cPrismArrayNode;
24static VALUE rb_cPrismArrayPatternNode;
25static VALUE rb_cPrismAssocNode;
26static VALUE rb_cPrismAssocSplatNode;
27static VALUE rb_cPrismBackReferenceReadNode;
28static VALUE rb_cPrismBeginNode;
29static VALUE rb_cPrismBlockArgumentNode;
30static VALUE rb_cPrismBlockLocalVariableNode;
31static VALUE rb_cPrismBlockNode;
32static VALUE rb_cPrismBlockParameterNode;
33static VALUE rb_cPrismBlockParametersNode;
34static VALUE rb_cPrismBreakNode;
35static VALUE rb_cPrismCallAndWriteNode;
36static VALUE rb_cPrismCallNode;
37static VALUE rb_cPrismCallOperatorWriteNode;
38static VALUE rb_cPrismCallOrWriteNode;
39static VALUE rb_cPrismCallTargetNode;
40static VALUE rb_cPrismCapturePatternNode;
41static VALUE rb_cPrismCaseMatchNode;
42static VALUE rb_cPrismCaseNode;
43static VALUE rb_cPrismClassNode;
44static VALUE rb_cPrismClassVariableAndWriteNode;
45static VALUE rb_cPrismClassVariableOperatorWriteNode;
46static VALUE rb_cPrismClassVariableOrWriteNode;
47static VALUE rb_cPrismClassVariableReadNode;
48static VALUE rb_cPrismClassVariableTargetNode;
49static VALUE rb_cPrismClassVariableWriteNode;
50static VALUE rb_cPrismConstantAndWriteNode;
51static VALUE rb_cPrismConstantOperatorWriteNode;
52static VALUE rb_cPrismConstantOrWriteNode;
53static VALUE rb_cPrismConstantPathAndWriteNode;
54static VALUE rb_cPrismConstantPathNode;
55static VALUE rb_cPrismConstantPathOperatorWriteNode;
56static VALUE rb_cPrismConstantPathOrWriteNode;
57static VALUE rb_cPrismConstantPathTargetNode;
58static VALUE rb_cPrismConstantPathWriteNode;
59static VALUE rb_cPrismConstantReadNode;
60static VALUE rb_cPrismConstantTargetNode;
61static VALUE rb_cPrismConstantWriteNode;
62static VALUE rb_cPrismDefNode;
63static VALUE rb_cPrismDefinedNode;
64static VALUE rb_cPrismElseNode;
65static VALUE rb_cPrismEmbeddedStatementsNode;
66static VALUE rb_cPrismEmbeddedVariableNode;
67static VALUE rb_cPrismEnsureNode;
68static VALUE rb_cPrismFalseNode;
69static VALUE rb_cPrismFindPatternNode;
70static VALUE rb_cPrismFlipFlopNode;
71static VALUE rb_cPrismFloatNode;
72static VALUE rb_cPrismForNode;
73static VALUE rb_cPrismForwardingArgumentsNode;
74static VALUE rb_cPrismForwardingParameterNode;
75static VALUE rb_cPrismForwardingSuperNode;
76static VALUE rb_cPrismGlobalVariableAndWriteNode;
77static VALUE rb_cPrismGlobalVariableOperatorWriteNode;
78static VALUE rb_cPrismGlobalVariableOrWriteNode;
79static VALUE rb_cPrismGlobalVariableReadNode;
80static VALUE rb_cPrismGlobalVariableTargetNode;
81static VALUE rb_cPrismGlobalVariableWriteNode;
82static VALUE rb_cPrismHashNode;
83static VALUE rb_cPrismHashPatternNode;
84static VALUE rb_cPrismIfNode;
85static VALUE rb_cPrismImaginaryNode;
86static VALUE rb_cPrismImplicitNode;
87static VALUE rb_cPrismImplicitRestNode;
88static VALUE rb_cPrismInNode;
89static VALUE rb_cPrismIndexAndWriteNode;
90static VALUE rb_cPrismIndexOperatorWriteNode;
91static VALUE rb_cPrismIndexOrWriteNode;
92static VALUE rb_cPrismIndexTargetNode;
93static VALUE rb_cPrismInstanceVariableAndWriteNode;
94static VALUE rb_cPrismInstanceVariableOperatorWriteNode;
95static VALUE rb_cPrismInstanceVariableOrWriteNode;
96static VALUE rb_cPrismInstanceVariableReadNode;
97static VALUE rb_cPrismInstanceVariableTargetNode;
98static VALUE rb_cPrismInstanceVariableWriteNode;
99static VALUE rb_cPrismIntegerNode;
100static VALUE rb_cPrismInterpolatedMatchLastLineNode;
101static VALUE rb_cPrismInterpolatedRegularExpressionNode;
102static VALUE rb_cPrismInterpolatedStringNode;
103static VALUE rb_cPrismInterpolatedSymbolNode;
104static VALUE rb_cPrismInterpolatedXStringNode;
105static VALUE rb_cPrismItLocalVariableReadNode;
106static VALUE rb_cPrismItParametersNode;
107static VALUE rb_cPrismKeywordHashNode;
108static VALUE rb_cPrismKeywordRestParameterNode;
109static VALUE rb_cPrismLambdaNode;
110static VALUE rb_cPrismLocalVariableAndWriteNode;
111static VALUE rb_cPrismLocalVariableOperatorWriteNode;
112static VALUE rb_cPrismLocalVariableOrWriteNode;
113static VALUE rb_cPrismLocalVariableReadNode;
114static VALUE rb_cPrismLocalVariableTargetNode;
115static VALUE rb_cPrismLocalVariableWriteNode;
116static VALUE rb_cPrismMatchLastLineNode;
117static VALUE rb_cPrismMatchPredicateNode;
118static VALUE rb_cPrismMatchRequiredNode;
119static VALUE rb_cPrismMatchWriteNode;
120static VALUE rb_cPrismMissingNode;
121static VALUE rb_cPrismModuleNode;
122static VALUE rb_cPrismMultiTargetNode;
123static VALUE rb_cPrismMultiWriteNode;
124static VALUE rb_cPrismNextNode;
125static VALUE rb_cPrismNilNode;
126static VALUE rb_cPrismNoKeywordsParameterNode;
127static VALUE rb_cPrismNumberedParametersNode;
128static VALUE rb_cPrismNumberedReferenceReadNode;
129static VALUE rb_cPrismOptionalKeywordParameterNode;
130static VALUE rb_cPrismOptionalParameterNode;
131static VALUE rb_cPrismOrNode;
132static VALUE rb_cPrismParametersNode;
133static VALUE rb_cPrismParenthesesNode;
134static VALUE rb_cPrismPinnedExpressionNode;
135static VALUE rb_cPrismPinnedVariableNode;
136static VALUE rb_cPrismPostExecutionNode;
137static VALUE rb_cPrismPreExecutionNode;
138static VALUE rb_cPrismProgramNode;
139static VALUE rb_cPrismRangeNode;
140static VALUE rb_cPrismRationalNode;
141static VALUE rb_cPrismRedoNode;
142static VALUE rb_cPrismRegularExpressionNode;
143static VALUE rb_cPrismRequiredKeywordParameterNode;
144static VALUE rb_cPrismRequiredParameterNode;
145static VALUE rb_cPrismRescueModifierNode;
146static VALUE rb_cPrismRescueNode;
147static VALUE rb_cPrismRestParameterNode;
148static VALUE rb_cPrismRetryNode;
149static VALUE rb_cPrismReturnNode;
150static VALUE rb_cPrismSelfNode;
151static VALUE rb_cPrismShareableConstantNode;
152static VALUE rb_cPrismSingletonClassNode;
153static VALUE rb_cPrismSourceEncodingNode;
154static VALUE rb_cPrismSourceFileNode;
155static VALUE rb_cPrismSourceLineNode;
156static VALUE rb_cPrismSplatNode;
157static VALUE rb_cPrismStatementsNode;
158static VALUE rb_cPrismStringNode;
159static VALUE rb_cPrismSuperNode;
160static VALUE rb_cPrismSymbolNode;
161static VALUE rb_cPrismTrueNode;
162static VALUE rb_cPrismUndefNode;
163static VALUE rb_cPrismUnlessNode;
164static VALUE rb_cPrismUntilNode;
165static VALUE rb_cPrismWhenNode;
166static VALUE rb_cPrismWhileNode;
167static VALUE rb_cPrismXStringNode;
168static VALUE rb_cPrismYieldNode;
171pm_location_new(
const pm_parser_t *parser,
const uint8_t *start,
const uint8_t *end,
VALUE source,
bool freeze) {
173 VALUE location_argv[] = {
181 uint64_t value = ((((uint64_t) (start - parser->
start)) << 32) | ((uint32_t) (end - start)));
189 VALUE location = pm_location_new(parser, token->start, token->end, source, freeze);
191 VALUE slice = rb_enc_str_new((
const char *) token->start, token->end - token->start, encoding);
203 return rb_obj_freeze(rb_enc_str_new((
const char *) pm_string_source(
string), pm_string_length(
string), encoding));
209 if (integer->
values == NULL) {
213 unsigned char *bytes = (
unsigned char *) RSTRING_PTR(
string);
215 size_t offset = integer->
length * 8;
216 for (
size_t value_index = 0; value_index < integer->
length; value_index++) {
217 uint32_t value = integer->
values[value_index];
219 for (
int index = 0; index < 8; index++) {
220 int byte = (value >> (4 * index)) & 0xf;
221 bytes[--offset] =
byte < 10 ?
byte +
'0' :
byte - 10 +
'a';
229 result =
rb_funcall(result, rb_intern(
"-@"), 0);
238 VALUE source_string = rb_enc_str_new((
const char *) parser->
start, parser->
end - parser->
start, encoding);
267 node->visited =
false;
276 *stack = current->prev;
290 VALUE string = rb_enc_str_new((
const char *) constant->
start, constant->
length, encoding);
295 rb_set_errinfo(
Qnil);
298 rb_ary_push(constants, value);
302 pm_node_stack_push(&node_stack, node);
303 VALUE value_stack = rb_ary_new();
305 while (node_stack != NULL) {
306 if (!node_stack->visited) {
307 if (node_stack->visit == NULL) {
308 pm_node_stack_pop(&node_stack);
309 rb_ary_push(value_stack,
Qnil);
313 const pm_node_t *node = node_stack->visit;
314 node_stack->visited =
true;
317#line 164 "prism/templates/ext/prism/api_node.c.erb"
324#line 164 "prism/templates/ext/prism/api_node.c.erb"
331#line 164 "prism/templates/ext/prism/api_node.c.erb"
338#line 164 "prism/templates/ext/prism/api_node.c.erb"
345#line 164 "prism/templates/ext/prism/api_node.c.erb"
348 for (
size_t index = 0; index < cast->
arguments.
size; index++) {
353#line 164 "prism/templates/ext/prism/api_node.c.erb"
356 for (
size_t index = 0; index < cast->
elements.
size; index++) {
361#line 164 "prism/templates/ext/prism/api_node.c.erb"
365 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
369 for (
size_t index = 0; index < cast->
posts.
size; index++) {
374#line 164 "prism/templates/ext/prism/api_node.c.erb"
377 pm_node_stack_push(&node_stack, (
pm_node_t *) cast->
key);
381#line 164 "prism/templates/ext/prism/api_node.c.erb"
387#line 164 "prism/templates/ext/prism/api_node.c.erb"
396#line 164 "prism/templates/ext/prism/api_node.c.erb"
402#line 164 "prism/templates/ext/prism/api_node.c.erb"
409#line 164 "prism/templates/ext/prism/api_node.c.erb"
413 for (
size_t index = 0; index < cast->
locals.
size; index++) {
418#line 164 "prism/templates/ext/prism/api_node.c.erb"
424#line 164 "prism/templates/ext/prism/api_node.c.erb"
431#line 164 "prism/templates/ext/prism/api_node.c.erb"
439#line 164 "prism/templates/ext/prism/api_node.c.erb"
446#line 164 "prism/templates/ext/prism/api_node.c.erb"
453#line 164 "prism/templates/ext/prism/api_node.c.erb"
459#line 164 "prism/templates/ext/prism/api_node.c.erb"
466#line 164 "prism/templates/ext/prism/api_node.c.erb"
476#line 164 "prism/templates/ext/prism/api_node.c.erb"
486#line 164 "prism/templates/ext/prism/api_node.c.erb"
494#line 164 "prism/templates/ext/prism/api_node.c.erb"
500#line 164 "prism/templates/ext/prism/api_node.c.erb"
506#line 164 "prism/templates/ext/prism/api_node.c.erb"
512#line 164 "prism/templates/ext/prism/api_node.c.erb"
518#line 164 "prism/templates/ext/prism/api_node.c.erb"
524#line 164 "prism/templates/ext/prism/api_node.c.erb"
530#line 164 "prism/templates/ext/prism/api_node.c.erb"
536#line 164 "prism/templates/ext/prism/api_node.c.erb"
543#line 164 "prism/templates/ext/prism/api_node.c.erb"
549#line 164 "prism/templates/ext/prism/api_node.c.erb"
556#line 164 "prism/templates/ext/prism/api_node.c.erb"
563#line 164 "prism/templates/ext/prism/api_node.c.erb"
569#line 164 "prism/templates/ext/prism/api_node.c.erb"
576#line 164 "prism/templates/ext/prism/api_node.c.erb"
582#line 164 "prism/templates/ext/prism/api_node.c.erb"
590#line 164 "prism/templates/ext/prism/api_node.c.erb"
596#line 164 "prism/templates/ext/prism/api_node.c.erb"
602#line 164 "prism/templates/ext/prism/api_node.c.erb"
608#line 164 "prism/templates/ext/prism/api_node.c.erb"
614#line 164 "prism/templates/ext/prism/api_node.c.erb"
620#line 164 "prism/templates/ext/prism/api_node.c.erb"
625 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
631#line 164 "prism/templates/ext/prism/api_node.c.erb"
638#line 164 "prism/templates/ext/prism/api_node.c.erb"
646#line 164 "prism/templates/ext/prism/api_node.c.erb"
652#line 164 "prism/templates/ext/prism/api_node.c.erb"
658#line 164 "prism/templates/ext/prism/api_node.c.erb"
664#line 164 "prism/templates/ext/prism/api_node.c.erb"
670#line 164 "prism/templates/ext/prism/api_node.c.erb"
676#line 164 "prism/templates/ext/prism/api_node.c.erb"
679 for (
size_t index = 0; index < cast->
elements.
size; index++) {
684#line 164 "prism/templates/ext/prism/api_node.c.erb"
688 for (
size_t index = 0; index < cast->
elements.
size; index++) {
694#line 164 "prism/templates/ext/prism/api_node.c.erb"
702#line 164 "prism/templates/ext/prism/api_node.c.erb"
708#line 164 "prism/templates/ext/prism/api_node.c.erb"
714#line 164 "prism/templates/ext/prism/api_node.c.erb"
721#line 164 "prism/templates/ext/prism/api_node.c.erb"
730#line 164 "prism/templates/ext/prism/api_node.c.erb"
739#line 164 "prism/templates/ext/prism/api_node.c.erb"
748#line 164 "prism/templates/ext/prism/api_node.c.erb"
756#line 164 "prism/templates/ext/prism/api_node.c.erb"
762#line 164 "prism/templates/ext/prism/api_node.c.erb"
768#line 164 "prism/templates/ext/prism/api_node.c.erb"
774#line 164 "prism/templates/ext/prism/api_node.c.erb"
780#line 164 "prism/templates/ext/prism/api_node.c.erb"
783 for (
size_t index = 0; index < cast->
parts.
size; index++) {
788#line 164 "prism/templates/ext/prism/api_node.c.erb"
791 for (
size_t index = 0; index < cast->
parts.
size; index++) {
796#line 164 "prism/templates/ext/prism/api_node.c.erb"
799 for (
size_t index = 0; index < cast->
parts.
size; index++) {
804#line 164 "prism/templates/ext/prism/api_node.c.erb"
807 for (
size_t index = 0; index < cast->
parts.
size; index++) {
812#line 164 "prism/templates/ext/prism/api_node.c.erb"
815 for (
size_t index = 0; index < cast->
parts.
size; index++) {
820#line 164 "prism/templates/ext/prism/api_node.c.erb"
823 for (
size_t index = 0; index < cast->
elements.
size; index++) {
828#line 164 "prism/templates/ext/prism/api_node.c.erb"
835#line 164 "prism/templates/ext/prism/api_node.c.erb"
841#line 164 "prism/templates/ext/prism/api_node.c.erb"
847#line 164 "prism/templates/ext/prism/api_node.c.erb"
853#line 164 "prism/templates/ext/prism/api_node.c.erb"
859#line 164 "prism/templates/ext/prism/api_node.c.erb"
866#line 164 "prism/templates/ext/prism/api_node.c.erb"
873#line 164 "prism/templates/ext/prism/api_node.c.erb"
877 for (
size_t index = 0; index < cast->
targets.
size; index++) {
882#line 164 "prism/templates/ext/prism/api_node.c.erb"
889#line 164 "prism/templates/ext/prism/api_node.c.erb"
892 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
896 for (
size_t index = 0; index < cast->
rights.
size; index++) {
901#line 164 "prism/templates/ext/prism/api_node.c.erb"
904 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
908 for (
size_t index = 0; index < cast->
rights.
size; index++) {
914#line 164 "prism/templates/ext/prism/api_node.c.erb"
920#line 164 "prism/templates/ext/prism/api_node.c.erb"
926#line 164 "prism/templates/ext/prism/api_node.c.erb"
932#line 164 "prism/templates/ext/prism/api_node.c.erb"
939#line 164 "prism/templates/ext/prism/api_node.c.erb"
942 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
945 for (
size_t index = 0; index < cast->
optionals.
size; index++) {
949 for (
size_t index = 0; index < cast->
posts.
size; index++) {
952 for (
size_t index = 0; index < cast->
keywords.
size; index++) {
959#line 164 "prism/templates/ext/prism/api_node.c.erb"
965#line 164 "prism/templates/ext/prism/api_node.c.erb"
971#line 164 "prism/templates/ext/prism/api_node.c.erb"
977#line 164 "prism/templates/ext/prism/api_node.c.erb"
983#line 164 "prism/templates/ext/prism/api_node.c.erb"
989#line 164 "prism/templates/ext/prism/api_node.c.erb"
995#line 164 "prism/templates/ext/prism/api_node.c.erb"
1002#line 164 "prism/templates/ext/prism/api_node.c.erb"
1009#line 164 "prism/templates/ext/prism/api_node.c.erb"
1020#line 164 "prism/templates/ext/prism/api_node.c.erb"
1026#line 164 "prism/templates/ext/prism/api_node.c.erb"
1032#line 164 "prism/templates/ext/prism/api_node.c.erb"
1039#line 164 "prism/templates/ext/prism/api_node.c.erb"
1045#line 164 "prism/templates/ext/prism/api_node.c.erb"
1048 for (
size_t index = 0; index < cast->
body.
size; index++) {
1053#line 164 "prism/templates/ext/prism/api_node.c.erb"
1060#line 164 "prism/templates/ext/prism/api_node.c.erb"
1063 for (
size_t index = 0; index < cast->
names.
size; index++) {
1068#line 164 "prism/templates/ext/prism/api_node.c.erb"
1076#line 164 "prism/templates/ext/prism/api_node.c.erb"
1083#line 164 "prism/templates/ext/prism/api_node.c.erb"
1092#line 164 "prism/templates/ext/prism/api_node.c.erb"
1099#line 164 "prism/templates/ext/prism/api_node.c.erb"
1108#line 184 "prism/templates/ext/prism/api_node.c.erb"
1110 const pm_node_t *node = pm_node_stack_pop(&node_stack);
1113#line 190 "prism/templates/ext/prism/api_node.c.erb"
1131#line 213 "prism/templates/ext/prism/api_node.c.erb"
1132 argv[4] = rb_ary_pop(value_stack);
1135#line 213 "prism/templates/ext/prism/api_node.c.erb"
1136 argv[5] = rb_ary_pop(value_stack);
1139#line 240 "prism/templates/ext/prism/api_node.c.erb"
1145 rb_ary_push(value_stack, value);
1148#line 190 "prism/templates/ext/prism/api_node.c.erb"
1166#line 213 "prism/templates/ext/prism/api_node.c.erb"
1167 argv[4] = rb_ary_pop(value_stack);
1170#line 213 "prism/templates/ext/prism/api_node.c.erb"
1171 argv[5] = rb_ary_pop(value_stack);
1174#line 240 "prism/templates/ext/prism/api_node.c.erb"
1180 rb_ary_push(value_stack, value);
1183#line 190 "prism/templates/ext/prism/api_node.c.erb"
1201#line 213 "prism/templates/ext/prism/api_node.c.erb"
1202 argv[4] = rb_ary_pop(value_stack);
1205#line 213 "prism/templates/ext/prism/api_node.c.erb"
1206 argv[5] = rb_ary_pop(value_stack);
1209#line 240 "prism/templates/ext/prism/api_node.c.erb"
1215 rb_ary_push(value_stack, value);
1218#line 190 "prism/templates/ext/prism/api_node.c.erb"
1236#line 213 "prism/templates/ext/prism/api_node.c.erb"
1237 argv[4] = rb_ary_pop(value_stack);
1240#line 213 "prism/templates/ext/prism/api_node.c.erb"
1241 argv[5] = rb_ary_pop(value_stack);
1244#line 240 "prism/templates/ext/prism/api_node.c.erb"
1250 rb_ary_push(value_stack, value);
1253#line 190 "prism/templates/ext/prism/api_node.c.erb"
1271#line 216 "prism/templates/ext/prism/api_node.c.erb"
1273 for (
size_t index = 0; index < cast->
arguments.
size; index++) {
1274 rb_ary_push(argv[4], rb_ary_pop(value_stack));
1281 rb_ary_push(value_stack, value);
1284#line 190 "prism/templates/ext/prism/api_node.c.erb"
1302#line 216 "prism/templates/ext/prism/api_node.c.erb"
1304 for (
size_t index = 0; index < cast->
elements.
size; index++) {
1305 rb_ary_push(argv[4], rb_ary_pop(value_stack));
1310#line 243 "prism/templates/ext/prism/api_node.c.erb"
1314#line 243 "prism/templates/ext/prism/api_node.c.erb"
1320 rb_ary_push(value_stack, value);
1323#line 190 "prism/templates/ext/prism/api_node.c.erb"
1341#line 213 "prism/templates/ext/prism/api_node.c.erb"
1342 argv[4] = rb_ary_pop(value_stack);
1345#line 216 "prism/templates/ext/prism/api_node.c.erb"
1347 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
1348 rb_ary_push(argv[5], rb_ary_pop(value_stack));
1353#line 213 "prism/templates/ext/prism/api_node.c.erb"
1354 argv[6] = rb_ary_pop(value_stack);
1357#line 216 "prism/templates/ext/prism/api_node.c.erb"
1358 argv[7] = rb_ary_new_capa(cast->
posts.
size);
1359 for (
size_t index = 0; index < cast->
posts.
size; index++) {
1360 rb_ary_push(argv[7], rb_ary_pop(value_stack));
1365#line 243 "prism/templates/ext/prism/api_node.c.erb"
1369#line 243 "prism/templates/ext/prism/api_node.c.erb"
1375 rb_ary_push(value_stack, value);
1378#line 190 "prism/templates/ext/prism/api_node.c.erb"
1396#line 213 "prism/templates/ext/prism/api_node.c.erb"
1397 argv[4] = rb_ary_pop(value_stack);
1400#line 213 "prism/templates/ext/prism/api_node.c.erb"
1401 argv[5] = rb_ary_pop(value_stack);
1404#line 243 "prism/templates/ext/prism/api_node.c.erb"
1410 rb_ary_push(value_stack, value);
1413#line 190 "prism/templates/ext/prism/api_node.c.erb"
1431#line 213 "prism/templates/ext/prism/api_node.c.erb"
1432 argv[4] = rb_ary_pop(value_stack);
1435#line 240 "prism/templates/ext/prism/api_node.c.erb"
1441 rb_ary_push(value_stack, value);
1444#line 190 "prism/templates/ext/prism/api_node.c.erb"
1462#line 226 "prism/templates/ext/prism/api_node.c.erb"
1463 assert(cast->
name != 0);
1469 rb_ary_push(value_stack, value);
1472#line 190 "prism/templates/ext/prism/api_node.c.erb"
1490#line 243 "prism/templates/ext/prism/api_node.c.erb"
1494#line 213 "prism/templates/ext/prism/api_node.c.erb"
1495 argv[5] = rb_ary_pop(value_stack);
1498#line 213 "prism/templates/ext/prism/api_node.c.erb"
1499 argv[6] = rb_ary_pop(value_stack);
1502#line 213 "prism/templates/ext/prism/api_node.c.erb"
1503 argv[7] = rb_ary_pop(value_stack);
1506#line 213 "prism/templates/ext/prism/api_node.c.erb"
1507 argv[8] = rb_ary_pop(value_stack);
1510#line 243 "prism/templates/ext/prism/api_node.c.erb"
1516 rb_ary_push(value_stack, value);
1519#line 190 "prism/templates/ext/prism/api_node.c.erb"
1537#line 213 "prism/templates/ext/prism/api_node.c.erb"
1538 argv[4] = rb_ary_pop(value_stack);
1541#line 240 "prism/templates/ext/prism/api_node.c.erb"
1547 rb_ary_push(value_stack, value);
1550#line 190 "prism/templates/ext/prism/api_node.c.erb"
1568#line 226 "prism/templates/ext/prism/api_node.c.erb"
1569 assert(cast->
name != 0);
1575 rb_ary_push(value_stack, value);
1578#line 190 "prism/templates/ext/prism/api_node.c.erb"
1596#line 232 "prism/templates/ext/prism/api_node.c.erb"
1597 argv[4] = rb_ary_new_capa(cast->
locals.
size);
1598 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1605#line 213 "prism/templates/ext/prism/api_node.c.erb"
1606 argv[5] = rb_ary_pop(value_stack);
1609#line 213 "prism/templates/ext/prism/api_node.c.erb"
1610 argv[6] = rb_ary_pop(value_stack);
1613#line 240 "prism/templates/ext/prism/api_node.c.erb"
1617#line 240 "prism/templates/ext/prism/api_node.c.erb"
1623 rb_ary_push(value_stack, value);
1626#line 190 "prism/templates/ext/prism/api_node.c.erb"
1647#line 243 "prism/templates/ext/prism/api_node.c.erb"
1651#line 240 "prism/templates/ext/prism/api_node.c.erb"
1657 rb_ary_push(value_stack, value);
1660#line 190 "prism/templates/ext/prism/api_node.c.erb"
1678#line 213 "prism/templates/ext/prism/api_node.c.erb"
1679 argv[4] = rb_ary_pop(value_stack);
1682#line 216 "prism/templates/ext/prism/api_node.c.erb"
1683 argv[5] = rb_ary_new_capa(cast->
locals.
size);
1684 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1685 rb_ary_push(argv[5], rb_ary_pop(value_stack));
1690#line 243 "prism/templates/ext/prism/api_node.c.erb"
1694#line 243 "prism/templates/ext/prism/api_node.c.erb"
1700 rb_ary_push(value_stack, value);
1703#line 190 "prism/templates/ext/prism/api_node.c.erb"
1721#line 213 "prism/templates/ext/prism/api_node.c.erb"
1722 argv[4] = rb_ary_pop(value_stack);
1725#line 240 "prism/templates/ext/prism/api_node.c.erb"
1731 rb_ary_push(value_stack, value);
1734#line 190 "prism/templates/ext/prism/api_node.c.erb"
1752#line 213 "prism/templates/ext/prism/api_node.c.erb"
1753 argv[4] = rb_ary_pop(value_stack);
1756#line 243 "prism/templates/ext/prism/api_node.c.erb"
1760#line 243 "prism/templates/ext/prism/api_node.c.erb"
1764#line 226 "prism/templates/ext/prism/api_node.c.erb"
1769#line 226 "prism/templates/ext/prism/api_node.c.erb"
1774#line 240 "prism/templates/ext/prism/api_node.c.erb"
1778#line 213 "prism/templates/ext/prism/api_node.c.erb"
1779 argv[10] = rb_ary_pop(value_stack);
1784 rb_ary_push(value_stack, value);
1787#line 190 "prism/templates/ext/prism/api_node.c.erb"
1805#line 213 "prism/templates/ext/prism/api_node.c.erb"
1806 argv[4] = rb_ary_pop(value_stack);
1809#line 243 "prism/templates/ext/prism/api_node.c.erb"
1813#line 226 "prism/templates/ext/prism/api_node.c.erb"
1814 assert(cast->
name != 0);
1818#line 243 "prism/templates/ext/prism/api_node.c.erb"
1822#line 243 "prism/templates/ext/prism/api_node.c.erb"
1826#line 213 "prism/templates/ext/prism/api_node.c.erb"
1827 argv[9] = rb_ary_pop(value_stack);
1830#line 243 "prism/templates/ext/prism/api_node.c.erb"
1834#line 213 "prism/templates/ext/prism/api_node.c.erb"
1835 argv[11] = rb_ary_pop(value_stack);
1840 rb_ary_push(value_stack, value);
1843#line 190 "prism/templates/ext/prism/api_node.c.erb"
1861#line 213 "prism/templates/ext/prism/api_node.c.erb"
1862 argv[4] = rb_ary_pop(value_stack);
1865#line 243 "prism/templates/ext/prism/api_node.c.erb"
1869#line 243 "prism/templates/ext/prism/api_node.c.erb"
1873#line 226 "prism/templates/ext/prism/api_node.c.erb"
1878#line 226 "prism/templates/ext/prism/api_node.c.erb"
1883#line 226 "prism/templates/ext/prism/api_node.c.erb"
1888#line 240 "prism/templates/ext/prism/api_node.c.erb"
1892#line 213 "prism/templates/ext/prism/api_node.c.erb"
1893 argv[11] = rb_ary_pop(value_stack);
1898 rb_ary_push(value_stack, value);
1901#line 190 "prism/templates/ext/prism/api_node.c.erb"
1919#line 213 "prism/templates/ext/prism/api_node.c.erb"
1920 argv[4] = rb_ary_pop(value_stack);
1923#line 243 "prism/templates/ext/prism/api_node.c.erb"
1927#line 243 "prism/templates/ext/prism/api_node.c.erb"
1931#line 226 "prism/templates/ext/prism/api_node.c.erb"
1936#line 226 "prism/templates/ext/prism/api_node.c.erb"
1941#line 240 "prism/templates/ext/prism/api_node.c.erb"
1945#line 213 "prism/templates/ext/prism/api_node.c.erb"
1946 argv[10] = rb_ary_pop(value_stack);
1951 rb_ary_push(value_stack, value);
1954#line 190 "prism/templates/ext/prism/api_node.c.erb"
1972#line 213 "prism/templates/ext/prism/api_node.c.erb"
1973 argv[4] = rb_ary_pop(value_stack);
1976#line 240 "prism/templates/ext/prism/api_node.c.erb"
1980#line 226 "prism/templates/ext/prism/api_node.c.erb"
1981 assert(cast->
name != 0);
1985#line 240 "prism/templates/ext/prism/api_node.c.erb"
1991 rb_ary_push(value_stack, value);
1994#line 190 "prism/templates/ext/prism/api_node.c.erb"
2012#line 213 "prism/templates/ext/prism/api_node.c.erb"
2013 argv[4] = rb_ary_pop(value_stack);
2016#line 213 "prism/templates/ext/prism/api_node.c.erb"
2017 argv[5] = rb_ary_pop(value_stack);
2020#line 240 "prism/templates/ext/prism/api_node.c.erb"
2026 rb_ary_push(value_stack, value);
2029#line 190 "prism/templates/ext/prism/api_node.c.erb"
2047#line 213 "prism/templates/ext/prism/api_node.c.erb"
2048 argv[4] = rb_ary_pop(value_stack);
2051#line 216 "prism/templates/ext/prism/api_node.c.erb"
2054 rb_ary_push(argv[5], rb_ary_pop(value_stack));
2059#line 213 "prism/templates/ext/prism/api_node.c.erb"
2060 argv[6] = rb_ary_pop(value_stack);
2063#line 240 "prism/templates/ext/prism/api_node.c.erb"
2067#line 240 "prism/templates/ext/prism/api_node.c.erb"
2073 rb_ary_push(value_stack, value);
2076#line 190 "prism/templates/ext/prism/api_node.c.erb"
2094#line 213 "prism/templates/ext/prism/api_node.c.erb"
2095 argv[4] = rb_ary_pop(value_stack);
2098#line 216 "prism/templates/ext/prism/api_node.c.erb"
2101 rb_ary_push(argv[5], rb_ary_pop(value_stack));
2106#line 213 "prism/templates/ext/prism/api_node.c.erb"
2107 argv[6] = rb_ary_pop(value_stack);
2110#line 240 "prism/templates/ext/prism/api_node.c.erb"
2114#line 240 "prism/templates/ext/prism/api_node.c.erb"
2120 rb_ary_push(value_stack, value);
2123#line 190 "prism/templates/ext/prism/api_node.c.erb"
2141#line 232 "prism/templates/ext/prism/api_node.c.erb"
2142 argv[4] = rb_ary_new_capa(cast->
locals.
size);
2143 for (
size_t index = 0; index < cast->
locals.
size; index++) {
2150#line 240 "prism/templates/ext/prism/api_node.c.erb"
2154#line 213 "prism/templates/ext/prism/api_node.c.erb"
2155 argv[6] = rb_ary_pop(value_stack);
2158#line 243 "prism/templates/ext/prism/api_node.c.erb"
2162#line 213 "prism/templates/ext/prism/api_node.c.erb"
2163 argv[8] = rb_ary_pop(value_stack);
2166#line 213 "prism/templates/ext/prism/api_node.c.erb"
2167 argv[9] = rb_ary_pop(value_stack);
2170#line 240 "prism/templates/ext/prism/api_node.c.erb"
2174#line 226 "prism/templates/ext/prism/api_node.c.erb"
2175 assert(cast->
name != 0);
2181 rb_ary_push(value_stack, value);
2184#line 190 "prism/templates/ext/prism/api_node.c.erb"
2202#line 226 "prism/templates/ext/prism/api_node.c.erb"
2203 assert(cast->
name != 0);
2207#line 240 "prism/templates/ext/prism/api_node.c.erb"
2211#line 240 "prism/templates/ext/prism/api_node.c.erb"
2215#line 213 "prism/templates/ext/prism/api_node.c.erb"
2216 argv[7] = rb_ary_pop(value_stack);
2221 rb_ary_push(value_stack, value);
2224#line 190 "prism/templates/ext/prism/api_node.c.erb"
2242#line 226 "prism/templates/ext/prism/api_node.c.erb"
2243 assert(cast->
name != 0);
2247#line 240 "prism/templates/ext/prism/api_node.c.erb"
2251#line 240 "prism/templates/ext/prism/api_node.c.erb"
2255#line 213 "prism/templates/ext/prism/api_node.c.erb"
2256 argv[7] = rb_ary_pop(value_stack);
2259#line 226 "prism/templates/ext/prism/api_node.c.erb"
2266 rb_ary_push(value_stack, value);
2269#line 190 "prism/templates/ext/prism/api_node.c.erb"
2287#line 226 "prism/templates/ext/prism/api_node.c.erb"
2288 assert(cast->
name != 0);
2292#line 240 "prism/templates/ext/prism/api_node.c.erb"
2296#line 240 "prism/templates/ext/prism/api_node.c.erb"
2300#line 213 "prism/templates/ext/prism/api_node.c.erb"
2301 argv[7] = rb_ary_pop(value_stack);
2306 rb_ary_push(value_stack, value);
2309#line 190 "prism/templates/ext/prism/api_node.c.erb"
2327#line 226 "prism/templates/ext/prism/api_node.c.erb"
2328 assert(cast->
name != 0);
2334 rb_ary_push(value_stack, value);
2337#line 190 "prism/templates/ext/prism/api_node.c.erb"
2355#line 226 "prism/templates/ext/prism/api_node.c.erb"
2356 assert(cast->
name != 0);
2362 rb_ary_push(value_stack, value);
2365#line 190 "prism/templates/ext/prism/api_node.c.erb"
2383#line 226 "prism/templates/ext/prism/api_node.c.erb"
2384 assert(cast->
name != 0);
2388#line 240 "prism/templates/ext/prism/api_node.c.erb"
2392#line 213 "prism/templates/ext/prism/api_node.c.erb"
2393 argv[6] = rb_ary_pop(value_stack);
2396#line 240 "prism/templates/ext/prism/api_node.c.erb"
2402 rb_ary_push(value_stack, value);
2405#line 190 "prism/templates/ext/prism/api_node.c.erb"
2423#line 226 "prism/templates/ext/prism/api_node.c.erb"
2424 assert(cast->
name != 0);
2428#line 240 "prism/templates/ext/prism/api_node.c.erb"
2432#line 240 "prism/templates/ext/prism/api_node.c.erb"
2436#line 213 "prism/templates/ext/prism/api_node.c.erb"
2437 argv[7] = rb_ary_pop(value_stack);
2442 rb_ary_push(value_stack, value);
2445#line 190 "prism/templates/ext/prism/api_node.c.erb"
2463#line 226 "prism/templates/ext/prism/api_node.c.erb"
2464 assert(cast->
name != 0);
2468#line 240 "prism/templates/ext/prism/api_node.c.erb"
2472#line 240 "prism/templates/ext/prism/api_node.c.erb"
2476#line 213 "prism/templates/ext/prism/api_node.c.erb"
2477 argv[7] = rb_ary_pop(value_stack);
2480#line 226 "prism/templates/ext/prism/api_node.c.erb"
2487 rb_ary_push(value_stack, value);
2490#line 190 "prism/templates/ext/prism/api_node.c.erb"
2508#line 226 "prism/templates/ext/prism/api_node.c.erb"
2509 assert(cast->
name != 0);
2513#line 240 "prism/templates/ext/prism/api_node.c.erb"
2517#line 240 "prism/templates/ext/prism/api_node.c.erb"
2521#line 213 "prism/templates/ext/prism/api_node.c.erb"
2522 argv[7] = rb_ary_pop(value_stack);
2527 rb_ary_push(value_stack, value);
2530#line 190 "prism/templates/ext/prism/api_node.c.erb"
2548#line 213 "prism/templates/ext/prism/api_node.c.erb"
2549 argv[4] = rb_ary_pop(value_stack);
2552#line 240 "prism/templates/ext/prism/api_node.c.erb"
2556#line 213 "prism/templates/ext/prism/api_node.c.erb"
2557 argv[6] = rb_ary_pop(value_stack);
2562 rb_ary_push(value_stack, value);
2565#line 190 "prism/templates/ext/prism/api_node.c.erb"
2583#line 213 "prism/templates/ext/prism/api_node.c.erb"
2584 argv[4] = rb_ary_pop(value_stack);
2590#line 240 "prism/templates/ext/prism/api_node.c.erb"
2594#line 240 "prism/templates/ext/prism/api_node.c.erb"
2600 rb_ary_push(value_stack, value);
2603#line 190 "prism/templates/ext/prism/api_node.c.erb"
2621#line 213 "prism/templates/ext/prism/api_node.c.erb"
2622 argv[4] = rb_ary_pop(value_stack);
2625#line 240 "prism/templates/ext/prism/api_node.c.erb"
2629#line 213 "prism/templates/ext/prism/api_node.c.erb"
2630 argv[6] = rb_ary_pop(value_stack);
2633#line 226 "prism/templates/ext/prism/api_node.c.erb"
2640 rb_ary_push(value_stack, value);
2643#line 190 "prism/templates/ext/prism/api_node.c.erb"
2661#line 213 "prism/templates/ext/prism/api_node.c.erb"
2662 argv[4] = rb_ary_pop(value_stack);
2665#line 240 "prism/templates/ext/prism/api_node.c.erb"
2669#line 213 "prism/templates/ext/prism/api_node.c.erb"
2670 argv[6] = rb_ary_pop(value_stack);
2675 rb_ary_push(value_stack, value);
2678#line 190 "prism/templates/ext/prism/api_node.c.erb"
2696#line 213 "prism/templates/ext/prism/api_node.c.erb"
2697 argv[4] = rb_ary_pop(value_stack);
2703#line 240 "prism/templates/ext/prism/api_node.c.erb"
2707#line 240 "prism/templates/ext/prism/api_node.c.erb"
2713 rb_ary_push(value_stack, value);
2716#line 190 "prism/templates/ext/prism/api_node.c.erb"
2734#line 213 "prism/templates/ext/prism/api_node.c.erb"
2735 argv[4] = rb_ary_pop(value_stack);
2738#line 240 "prism/templates/ext/prism/api_node.c.erb"
2742#line 213 "prism/templates/ext/prism/api_node.c.erb"
2743 argv[6] = rb_ary_pop(value_stack);
2748 rb_ary_push(value_stack, value);
2751#line 190 "prism/templates/ext/prism/api_node.c.erb"
2769#line 226 "prism/templates/ext/prism/api_node.c.erb"
2770 assert(cast->
name != 0);
2776 rb_ary_push(value_stack, value);
2779#line 190 "prism/templates/ext/prism/api_node.c.erb"
2797#line 226 "prism/templates/ext/prism/api_node.c.erb"
2798 assert(cast->
name != 0);
2804 rb_ary_push(value_stack, value);
2807#line 190 "prism/templates/ext/prism/api_node.c.erb"
2825#line 226 "prism/templates/ext/prism/api_node.c.erb"
2826 assert(cast->
name != 0);
2830#line 240 "prism/templates/ext/prism/api_node.c.erb"
2834#line 213 "prism/templates/ext/prism/api_node.c.erb"
2835 argv[6] = rb_ary_pop(value_stack);
2838#line 240 "prism/templates/ext/prism/api_node.c.erb"
2844 rb_ary_push(value_stack, value);
2847#line 190 "prism/templates/ext/prism/api_node.c.erb"
2865#line 226 "prism/templates/ext/prism/api_node.c.erb"
2866 assert(cast->
name != 0);
2870#line 240 "prism/templates/ext/prism/api_node.c.erb"
2874#line 213 "prism/templates/ext/prism/api_node.c.erb"
2875 argv[6] = rb_ary_pop(value_stack);
2878#line 213 "prism/templates/ext/prism/api_node.c.erb"
2879 argv[7] = rb_ary_pop(value_stack);
2882#line 213 "prism/templates/ext/prism/api_node.c.erb"
2883 argv[8] = rb_ary_pop(value_stack);
2886#line 232 "prism/templates/ext/prism/api_node.c.erb"
2887 argv[9] = rb_ary_new_capa(cast->
locals.
size);
2888 for (
size_t index = 0; index < cast->
locals.
size; index++) {
2895#line 240 "prism/templates/ext/prism/api_node.c.erb"
2899#line 243 "prism/templates/ext/prism/api_node.c.erb"
2903#line 243 "prism/templates/ext/prism/api_node.c.erb"
2907#line 243 "prism/templates/ext/prism/api_node.c.erb"
2911#line 243 "prism/templates/ext/prism/api_node.c.erb"
2915#line 243 "prism/templates/ext/prism/api_node.c.erb"
2921 rb_ary_push(value_stack, value);
2924#line 190 "prism/templates/ext/prism/api_node.c.erb"
2942#line 243 "prism/templates/ext/prism/api_node.c.erb"
2946#line 213 "prism/templates/ext/prism/api_node.c.erb"
2947 argv[5] = rb_ary_pop(value_stack);
2950#line 243 "prism/templates/ext/prism/api_node.c.erb"
2954#line 240 "prism/templates/ext/prism/api_node.c.erb"
2960 rb_ary_push(value_stack, value);
2963#line 190 "prism/templates/ext/prism/api_node.c.erb"
2981#line 240 "prism/templates/ext/prism/api_node.c.erb"
2985#line 213 "prism/templates/ext/prism/api_node.c.erb"
2986 argv[5] = rb_ary_pop(value_stack);
2989#line 243 "prism/templates/ext/prism/api_node.c.erb"
2995 rb_ary_push(value_stack, value);
2998#line 190 "prism/templates/ext/prism/api_node.c.erb"
3016#line 240 "prism/templates/ext/prism/api_node.c.erb"
3020#line 213 "prism/templates/ext/prism/api_node.c.erb"
3021 argv[5] = rb_ary_pop(value_stack);
3024#line 240 "prism/templates/ext/prism/api_node.c.erb"
3030 rb_ary_push(value_stack, value);
3033#line 190 "prism/templates/ext/prism/api_node.c.erb"
3051#line 240 "prism/templates/ext/prism/api_node.c.erb"
3055#line 213 "prism/templates/ext/prism/api_node.c.erb"
3056 argv[5] = rb_ary_pop(value_stack);
3061 rb_ary_push(value_stack, value);
3064#line 190 "prism/templates/ext/prism/api_node.c.erb"
3082#line 240 "prism/templates/ext/prism/api_node.c.erb"
3086#line 213 "prism/templates/ext/prism/api_node.c.erb"
3087 argv[5] = rb_ary_pop(value_stack);
3090#line 240 "prism/templates/ext/prism/api_node.c.erb"
3096 rb_ary_push(value_stack, value);
3099#line 190 "prism/templates/ext/prism/api_node.c.erb"
3118 rb_ary_push(value_stack, value);
3121#line 190 "prism/templates/ext/prism/api_node.c.erb"
3139#line 213 "prism/templates/ext/prism/api_node.c.erb"
3140 argv[4] = rb_ary_pop(value_stack);
3143#line 213 "prism/templates/ext/prism/api_node.c.erb"
3144 argv[5] = rb_ary_pop(value_stack);
3147#line 216 "prism/templates/ext/prism/api_node.c.erb"
3149 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
3150 rb_ary_push(argv[6], rb_ary_pop(value_stack));
3155#line 213 "prism/templates/ext/prism/api_node.c.erb"
3156 argv[7] = rb_ary_pop(value_stack);
3159#line 243 "prism/templates/ext/prism/api_node.c.erb"
3163#line 243 "prism/templates/ext/prism/api_node.c.erb"
3169 rb_ary_push(value_stack, value);
3172#line 190 "prism/templates/ext/prism/api_node.c.erb"
3190#line 213 "prism/templates/ext/prism/api_node.c.erb"
3191 argv[4] = rb_ary_pop(value_stack);
3194#line 213 "prism/templates/ext/prism/api_node.c.erb"
3195 argv[5] = rb_ary_pop(value_stack);
3198#line 240 "prism/templates/ext/prism/api_node.c.erb"
3204 rb_ary_push(value_stack, value);
3207#line 190 "prism/templates/ext/prism/api_node.c.erb"
3225#line 255 "prism/templates/ext/prism/api_node.c.erb"
3231 rb_ary_push(value_stack, value);
3234#line 190 "prism/templates/ext/prism/api_node.c.erb"
3252#line 213 "prism/templates/ext/prism/api_node.c.erb"
3253 argv[4] = rb_ary_pop(value_stack);
3256#line 213 "prism/templates/ext/prism/api_node.c.erb"
3257 argv[5] = rb_ary_pop(value_stack);
3260#line 213 "prism/templates/ext/prism/api_node.c.erb"
3261 argv[6] = rb_ary_pop(value_stack);
3264#line 240 "prism/templates/ext/prism/api_node.c.erb"
3268#line 240 "prism/templates/ext/prism/api_node.c.erb"
3272#line 243 "prism/templates/ext/prism/api_node.c.erb"
3276#line 240 "prism/templates/ext/prism/api_node.c.erb"
3282 rb_ary_push(value_stack, value);
3285#line 190 "prism/templates/ext/prism/api_node.c.erb"
3304 rb_ary_push(value_stack, value);
3307#line 190 "prism/templates/ext/prism/api_node.c.erb"
3326 rb_ary_push(value_stack, value);
3329#line 190 "prism/templates/ext/prism/api_node.c.erb"
3346#line 213 "prism/templates/ext/prism/api_node.c.erb"
3347 argv[4] = rb_ary_pop(value_stack);
3352 rb_ary_push(value_stack, value);
3355#line 190 "prism/templates/ext/prism/api_node.c.erb"
3373#line 226 "prism/templates/ext/prism/api_node.c.erb"
3374 assert(cast->
name != 0);
3378#line 240 "prism/templates/ext/prism/api_node.c.erb"
3382#line 240 "prism/templates/ext/prism/api_node.c.erb"
3386#line 213 "prism/templates/ext/prism/api_node.c.erb"
3387 argv[7] = rb_ary_pop(value_stack);
3392 rb_ary_push(value_stack, value);
3395#line 190 "prism/templates/ext/prism/api_node.c.erb"
3413#line 226 "prism/templates/ext/prism/api_node.c.erb"
3414 assert(cast->
name != 0);
3418#line 240 "prism/templates/ext/prism/api_node.c.erb"
3422#line 240 "prism/templates/ext/prism/api_node.c.erb"
3426#line 213 "prism/templates/ext/prism/api_node.c.erb"
3427 argv[7] = rb_ary_pop(value_stack);
3430#line 226 "prism/templates/ext/prism/api_node.c.erb"
3437 rb_ary_push(value_stack, value);
3440#line 190 "prism/templates/ext/prism/api_node.c.erb"
3458#line 226 "prism/templates/ext/prism/api_node.c.erb"
3459 assert(cast->
name != 0);
3463#line 240 "prism/templates/ext/prism/api_node.c.erb"
3467#line 240 "prism/templates/ext/prism/api_node.c.erb"
3471#line 213 "prism/templates/ext/prism/api_node.c.erb"
3472 argv[7] = rb_ary_pop(value_stack);
3477 rb_ary_push(value_stack, value);
3480#line 190 "prism/templates/ext/prism/api_node.c.erb"
3498#line 226 "prism/templates/ext/prism/api_node.c.erb"
3499 assert(cast->
name != 0);
3505 rb_ary_push(value_stack, value);
3508#line 190 "prism/templates/ext/prism/api_node.c.erb"
3526#line 226 "prism/templates/ext/prism/api_node.c.erb"
3527 assert(cast->
name != 0);
3533 rb_ary_push(value_stack, value);
3536#line 190 "prism/templates/ext/prism/api_node.c.erb"
3554#line 226 "prism/templates/ext/prism/api_node.c.erb"
3555 assert(cast->
name != 0);
3559#line 240 "prism/templates/ext/prism/api_node.c.erb"
3563#line 213 "prism/templates/ext/prism/api_node.c.erb"
3564 argv[6] = rb_ary_pop(value_stack);
3567#line 240 "prism/templates/ext/prism/api_node.c.erb"
3573 rb_ary_push(value_stack, value);
3576#line 190 "prism/templates/ext/prism/api_node.c.erb"
3594#line 240 "prism/templates/ext/prism/api_node.c.erb"
3598#line 216 "prism/templates/ext/prism/api_node.c.erb"
3600 for (
size_t index = 0; index < cast->
elements.
size; index++) {
3601 rb_ary_push(argv[5], rb_ary_pop(value_stack));
3606#line 240 "prism/templates/ext/prism/api_node.c.erb"
3612 rb_ary_push(value_stack, value);
3615#line 190 "prism/templates/ext/prism/api_node.c.erb"
3633#line 213 "prism/templates/ext/prism/api_node.c.erb"
3634 argv[4] = rb_ary_pop(value_stack);
3637#line 216 "prism/templates/ext/prism/api_node.c.erb"
3639 for (
size_t index = 0; index < cast->
elements.
size; index++) {
3640 rb_ary_push(argv[5], rb_ary_pop(value_stack));
3645#line 213 "prism/templates/ext/prism/api_node.c.erb"
3646 argv[6] = rb_ary_pop(value_stack);
3649#line 243 "prism/templates/ext/prism/api_node.c.erb"
3653#line 243 "prism/templates/ext/prism/api_node.c.erb"
3659 rb_ary_push(value_stack, value);
3662#line 190 "prism/templates/ext/prism/api_node.c.erb"
3680#line 243 "prism/templates/ext/prism/api_node.c.erb"
3684#line 213 "prism/templates/ext/prism/api_node.c.erb"
3685 argv[5] = rb_ary_pop(value_stack);
3688#line 243 "prism/templates/ext/prism/api_node.c.erb"
3692#line 213 "prism/templates/ext/prism/api_node.c.erb"
3693 argv[7] = rb_ary_pop(value_stack);
3696#line 213 "prism/templates/ext/prism/api_node.c.erb"
3697 argv[8] = rb_ary_pop(value_stack);
3700#line 243 "prism/templates/ext/prism/api_node.c.erb"
3706 rb_ary_push(value_stack, value);
3709#line 190 "prism/templates/ext/prism/api_node.c.erb"
3726#line 213 "prism/templates/ext/prism/api_node.c.erb"
3727 argv[4] = rb_ary_pop(value_stack);
3732 rb_ary_push(value_stack, value);
3735#line 190 "prism/templates/ext/prism/api_node.c.erb"
3752#line 213 "prism/templates/ext/prism/api_node.c.erb"
3753 argv[4] = rb_ary_pop(value_stack);
3758 rb_ary_push(value_stack, value);
3761#line 190 "prism/templates/ext/prism/api_node.c.erb"
3780 rb_ary_push(value_stack, value);
3783#line 190 "prism/templates/ext/prism/api_node.c.erb"
3801#line 213 "prism/templates/ext/prism/api_node.c.erb"
3802 argv[4] = rb_ary_pop(value_stack);
3805#line 213 "prism/templates/ext/prism/api_node.c.erb"
3806 argv[5] = rb_ary_pop(value_stack);
3809#line 240 "prism/templates/ext/prism/api_node.c.erb"
3813#line 243 "prism/templates/ext/prism/api_node.c.erb"
3819 rb_ary_push(value_stack, value);
3822#line 190 "prism/templates/ext/prism/api_node.c.erb"
3840#line 213 "prism/templates/ext/prism/api_node.c.erb"
3841 argv[4] = rb_ary_pop(value_stack);
3844#line 243 "prism/templates/ext/prism/api_node.c.erb"
3848#line 240 "prism/templates/ext/prism/api_node.c.erb"
3852#line 213 "prism/templates/ext/prism/api_node.c.erb"
3853 argv[7] = rb_ary_pop(value_stack);
3856#line 240 "prism/templates/ext/prism/api_node.c.erb"
3860#line 213 "prism/templates/ext/prism/api_node.c.erb"
3861 argv[9] = rb_ary_pop(value_stack);
3864#line 240 "prism/templates/ext/prism/api_node.c.erb"
3868#line 213 "prism/templates/ext/prism/api_node.c.erb"
3869 argv[11] = rb_ary_pop(value_stack);
3874 rb_ary_push(value_stack, value);
3877#line 190 "prism/templates/ext/prism/api_node.c.erb"
3895#line 213 "prism/templates/ext/prism/api_node.c.erb"
3896 argv[4] = rb_ary_pop(value_stack);
3899#line 243 "prism/templates/ext/prism/api_node.c.erb"
3903#line 240 "prism/templates/ext/prism/api_node.c.erb"
3907#line 213 "prism/templates/ext/prism/api_node.c.erb"
3908 argv[7] = rb_ary_pop(value_stack);
3911#line 240 "prism/templates/ext/prism/api_node.c.erb"
3915#line 213 "prism/templates/ext/prism/api_node.c.erb"
3916 argv[9] = rb_ary_pop(value_stack);
3919#line 226 "prism/templates/ext/prism/api_node.c.erb"
3924#line 240 "prism/templates/ext/prism/api_node.c.erb"
3928#line 213 "prism/templates/ext/prism/api_node.c.erb"
3929 argv[12] = rb_ary_pop(value_stack);
3934 rb_ary_push(value_stack, value);
3937#line 190 "prism/templates/ext/prism/api_node.c.erb"
3955#line 213 "prism/templates/ext/prism/api_node.c.erb"
3956 argv[4] = rb_ary_pop(value_stack);
3959#line 243 "prism/templates/ext/prism/api_node.c.erb"
3963#line 240 "prism/templates/ext/prism/api_node.c.erb"
3967#line 213 "prism/templates/ext/prism/api_node.c.erb"
3968 argv[7] = rb_ary_pop(value_stack);
3971#line 240 "prism/templates/ext/prism/api_node.c.erb"
3975#line 213 "prism/templates/ext/prism/api_node.c.erb"
3976 argv[9] = rb_ary_pop(value_stack);
3979#line 240 "prism/templates/ext/prism/api_node.c.erb"
3983#line 213 "prism/templates/ext/prism/api_node.c.erb"
3984 argv[11] = rb_ary_pop(value_stack);
3989 rb_ary_push(value_stack, value);
3992#line 190 "prism/templates/ext/prism/api_node.c.erb"
4010#line 213 "prism/templates/ext/prism/api_node.c.erb"
4011 argv[4] = rb_ary_pop(value_stack);
4014#line 240 "prism/templates/ext/prism/api_node.c.erb"
4018#line 213 "prism/templates/ext/prism/api_node.c.erb"
4019 argv[6] = rb_ary_pop(value_stack);
4022#line 240 "prism/templates/ext/prism/api_node.c.erb"
4026#line 213 "prism/templates/ext/prism/api_node.c.erb"
4027 argv[8] = rb_ary_pop(value_stack);
4032 rb_ary_push(value_stack, value);
4035#line 190 "prism/templates/ext/prism/api_node.c.erb"
4053#line 226 "prism/templates/ext/prism/api_node.c.erb"
4054 assert(cast->
name != 0);
4058#line 240 "prism/templates/ext/prism/api_node.c.erb"
4062#line 240 "prism/templates/ext/prism/api_node.c.erb"
4066#line 213 "prism/templates/ext/prism/api_node.c.erb"
4067 argv[7] = rb_ary_pop(value_stack);
4072 rb_ary_push(value_stack, value);
4075#line 190 "prism/templates/ext/prism/api_node.c.erb"
4093#line 226 "prism/templates/ext/prism/api_node.c.erb"
4094 assert(cast->
name != 0);
4098#line 240 "prism/templates/ext/prism/api_node.c.erb"
4102#line 240 "prism/templates/ext/prism/api_node.c.erb"
4106#line 213 "prism/templates/ext/prism/api_node.c.erb"
4107 argv[7] = rb_ary_pop(value_stack);
4110#line 226 "prism/templates/ext/prism/api_node.c.erb"
4117 rb_ary_push(value_stack, value);
4120#line 190 "prism/templates/ext/prism/api_node.c.erb"
4138#line 226 "prism/templates/ext/prism/api_node.c.erb"
4139 assert(cast->
name != 0);
4143#line 240 "prism/templates/ext/prism/api_node.c.erb"
4147#line 240 "prism/templates/ext/prism/api_node.c.erb"
4151#line 213 "prism/templates/ext/prism/api_node.c.erb"
4152 argv[7] = rb_ary_pop(value_stack);
4157 rb_ary_push(value_stack, value);
4160#line 190 "prism/templates/ext/prism/api_node.c.erb"
4178#line 226 "prism/templates/ext/prism/api_node.c.erb"
4179 assert(cast->
name != 0);
4185 rb_ary_push(value_stack, value);
4188#line 190 "prism/templates/ext/prism/api_node.c.erb"
4206#line 226 "prism/templates/ext/prism/api_node.c.erb"
4207 assert(cast->
name != 0);
4213 rb_ary_push(value_stack, value);
4216#line 190 "prism/templates/ext/prism/api_node.c.erb"
4234#line 226 "prism/templates/ext/prism/api_node.c.erb"
4235 assert(cast->
name != 0);
4239#line 240 "prism/templates/ext/prism/api_node.c.erb"
4243#line 213 "prism/templates/ext/prism/api_node.c.erb"
4244 argv[6] = rb_ary_pop(value_stack);
4247#line 240 "prism/templates/ext/prism/api_node.c.erb"
4253 rb_ary_push(value_stack, value);
4256#line 190 "prism/templates/ext/prism/api_node.c.erb"
4274#line 252 "prism/templates/ext/prism/api_node.c.erb"
4275 argv[4] = pm_integer_new(&cast->
value);
4280 rb_ary_push(value_stack, value);
4283#line 190 "prism/templates/ext/prism/api_node.c.erb"
4301#line 240 "prism/templates/ext/prism/api_node.c.erb"
4305#line 216 "prism/templates/ext/prism/api_node.c.erb"
4306 argv[5] = rb_ary_new_capa(cast->
parts.
size);
4307 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4308 rb_ary_push(argv[5], rb_ary_pop(value_stack));
4313#line 240 "prism/templates/ext/prism/api_node.c.erb"
4319 rb_ary_push(value_stack, value);
4322#line 190 "prism/templates/ext/prism/api_node.c.erb"
4340#line 240 "prism/templates/ext/prism/api_node.c.erb"
4344#line 216 "prism/templates/ext/prism/api_node.c.erb"
4345 argv[5] = rb_ary_new_capa(cast->
parts.
size);
4346 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4347 rb_ary_push(argv[5], rb_ary_pop(value_stack));
4352#line 240 "prism/templates/ext/prism/api_node.c.erb"
4358 rb_ary_push(value_stack, value);
4361#line 190 "prism/templates/ext/prism/api_node.c.erb"
4379#line 243 "prism/templates/ext/prism/api_node.c.erb"
4383#line 216 "prism/templates/ext/prism/api_node.c.erb"
4384 argv[5] = rb_ary_new_capa(cast->
parts.
size);
4385 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4386 rb_ary_push(argv[5], rb_ary_pop(value_stack));
4391#line 243 "prism/templates/ext/prism/api_node.c.erb"
4397 rb_ary_push(value_stack, value);
4400#line 190 "prism/templates/ext/prism/api_node.c.erb"
4418#line 243 "prism/templates/ext/prism/api_node.c.erb"
4422#line 216 "prism/templates/ext/prism/api_node.c.erb"
4423 argv[5] = rb_ary_new_capa(cast->
parts.
size);
4424 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4425 rb_ary_push(argv[5], rb_ary_pop(value_stack));
4430#line 243 "prism/templates/ext/prism/api_node.c.erb"
4436 rb_ary_push(value_stack, value);
4439#line 190 "prism/templates/ext/prism/api_node.c.erb"
4457#line 240 "prism/templates/ext/prism/api_node.c.erb"
4461#line 216 "prism/templates/ext/prism/api_node.c.erb"
4462 argv[5] = rb_ary_new_capa(cast->
parts.
size);
4463 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4464 rb_ary_push(argv[5], rb_ary_pop(value_stack));
4469#line 240 "prism/templates/ext/prism/api_node.c.erb"
4475 rb_ary_push(value_stack, value);
4478#line 190 "prism/templates/ext/prism/api_node.c.erb"
4497 rb_ary_push(value_stack, value);
4500#line 190 "prism/templates/ext/prism/api_node.c.erb"
4519 rb_ary_push(value_stack, value);
4522#line 190 "prism/templates/ext/prism/api_node.c.erb"
4540#line 216 "prism/templates/ext/prism/api_node.c.erb"
4542 for (
size_t index = 0; index < cast->
elements.
size; index++) {
4543 rb_ary_push(argv[4], rb_ary_pop(value_stack));
4550 rb_ary_push(value_stack, value);
4553#line 190 "prism/templates/ext/prism/api_node.c.erb"
4574#line 243 "prism/templates/ext/prism/api_node.c.erb"
4578#line 240 "prism/templates/ext/prism/api_node.c.erb"
4584 rb_ary_push(value_stack, value);
4587#line 190 "prism/templates/ext/prism/api_node.c.erb"
4605#line 232 "prism/templates/ext/prism/api_node.c.erb"
4606 argv[4] = rb_ary_new_capa(cast->
locals.
size);
4607 for (
size_t index = 0; index < cast->
locals.
size; index++) {
4614#line 240 "prism/templates/ext/prism/api_node.c.erb"
4618#line 240 "prism/templates/ext/prism/api_node.c.erb"
4622#line 240 "prism/templates/ext/prism/api_node.c.erb"
4626#line 213 "prism/templates/ext/prism/api_node.c.erb"
4627 argv[8] = rb_ary_pop(value_stack);
4630#line 213 "prism/templates/ext/prism/api_node.c.erb"
4631 argv[9] = rb_ary_pop(value_stack);
4636 rb_ary_push(value_stack, value);
4639#line 190 "prism/templates/ext/prism/api_node.c.erb"
4657#line 240 "prism/templates/ext/prism/api_node.c.erb"
4661#line 240 "prism/templates/ext/prism/api_node.c.erb"
4665#line 213 "prism/templates/ext/prism/api_node.c.erb"
4666 argv[6] = rb_ary_pop(value_stack);
4669#line 226 "prism/templates/ext/prism/api_node.c.erb"
4670 assert(cast->
name != 0);
4674#line 249 "prism/templates/ext/prism/api_node.c.erb"
4680 rb_ary_push(value_stack, value);
4683#line 190 "prism/templates/ext/prism/api_node.c.erb"
4701#line 240 "prism/templates/ext/prism/api_node.c.erb"
4705#line 240 "prism/templates/ext/prism/api_node.c.erb"
4709#line 213 "prism/templates/ext/prism/api_node.c.erb"
4710 argv[6] = rb_ary_pop(value_stack);
4713#line 226 "prism/templates/ext/prism/api_node.c.erb"
4714 assert(cast->
name != 0);
4718#line 226 "prism/templates/ext/prism/api_node.c.erb"
4723#line 249 "prism/templates/ext/prism/api_node.c.erb"
4729 rb_ary_push(value_stack, value);
4732#line 190 "prism/templates/ext/prism/api_node.c.erb"
4750#line 240 "prism/templates/ext/prism/api_node.c.erb"
4754#line 240 "prism/templates/ext/prism/api_node.c.erb"
4758#line 213 "prism/templates/ext/prism/api_node.c.erb"
4759 argv[6] = rb_ary_pop(value_stack);
4762#line 226 "prism/templates/ext/prism/api_node.c.erb"
4763 assert(cast->
name != 0);
4767#line 249 "prism/templates/ext/prism/api_node.c.erb"
4773 rb_ary_push(value_stack, value);
4776#line 190 "prism/templates/ext/prism/api_node.c.erb"
4794#line 226 "prism/templates/ext/prism/api_node.c.erb"
4795 assert(cast->
name != 0);
4799#line 249 "prism/templates/ext/prism/api_node.c.erb"
4805 rb_ary_push(value_stack, value);
4808#line 190 "prism/templates/ext/prism/api_node.c.erb"
4826#line 226 "prism/templates/ext/prism/api_node.c.erb"
4827 assert(cast->
name != 0);
4831#line 249 "prism/templates/ext/prism/api_node.c.erb"
4837 rb_ary_push(value_stack, value);
4840#line 190 "prism/templates/ext/prism/api_node.c.erb"
4858#line 226 "prism/templates/ext/prism/api_node.c.erb"
4859 assert(cast->
name != 0);
4863#line 249 "prism/templates/ext/prism/api_node.c.erb"
4867#line 240 "prism/templates/ext/prism/api_node.c.erb"
4871#line 213 "prism/templates/ext/prism/api_node.c.erb"
4872 argv[7] = rb_ary_pop(value_stack);
4875#line 240 "prism/templates/ext/prism/api_node.c.erb"
4881 rb_ary_push(value_stack, value);
4884#line 190 "prism/templates/ext/prism/api_node.c.erb"
4902#line 240 "prism/templates/ext/prism/api_node.c.erb"
4906#line 240 "prism/templates/ext/prism/api_node.c.erb"
4910#line 240 "prism/templates/ext/prism/api_node.c.erb"
4914#line 223 "prism/templates/ext/prism/api_node.c.erb"
4915 argv[7] = pm_string_new(&cast->
unescaped, encoding);
4920 rb_ary_push(value_stack, value);
4923#line 190 "prism/templates/ext/prism/api_node.c.erb"
4941#line 213 "prism/templates/ext/prism/api_node.c.erb"
4942 argv[4] = rb_ary_pop(value_stack);
4945#line 213 "prism/templates/ext/prism/api_node.c.erb"
4946 argv[5] = rb_ary_pop(value_stack);
4949#line 240 "prism/templates/ext/prism/api_node.c.erb"
4955 rb_ary_push(value_stack, value);
4958#line 190 "prism/templates/ext/prism/api_node.c.erb"
4976#line 213 "prism/templates/ext/prism/api_node.c.erb"
4977 argv[4] = rb_ary_pop(value_stack);
4980#line 213 "prism/templates/ext/prism/api_node.c.erb"
4981 argv[5] = rb_ary_pop(value_stack);
4984#line 240 "prism/templates/ext/prism/api_node.c.erb"
4990 rb_ary_push(value_stack, value);
4993#line 190 "prism/templates/ext/prism/api_node.c.erb"
5011#line 213 "prism/templates/ext/prism/api_node.c.erb"
5012 argv[4] = rb_ary_pop(value_stack);
5015#line 216 "prism/templates/ext/prism/api_node.c.erb"
5017 for (
size_t index = 0; index < cast->
targets.
size; index++) {
5018 rb_ary_push(argv[5], rb_ary_pop(value_stack));
5025 rb_ary_push(value_stack, value);
5028#line 190 "prism/templates/ext/prism/api_node.c.erb"
5047 rb_ary_push(value_stack, value);
5050#line 190 "prism/templates/ext/prism/api_node.c.erb"
5068#line 232 "prism/templates/ext/prism/api_node.c.erb"
5069 argv[4] = rb_ary_new_capa(cast->
locals.
size);
5070 for (
size_t index = 0; index < cast->
locals.
size; index++) {
5077#line 240 "prism/templates/ext/prism/api_node.c.erb"
5081#line 213 "prism/templates/ext/prism/api_node.c.erb"
5082 argv[6] = rb_ary_pop(value_stack);
5085#line 213 "prism/templates/ext/prism/api_node.c.erb"
5086 argv[7] = rb_ary_pop(value_stack);
5089#line 240 "prism/templates/ext/prism/api_node.c.erb"
5093#line 226 "prism/templates/ext/prism/api_node.c.erb"
5094 assert(cast->
name != 0);
5100 rb_ary_push(value_stack, value);
5103#line 190 "prism/templates/ext/prism/api_node.c.erb"
5121#line 216 "prism/templates/ext/prism/api_node.c.erb"
5122 argv[4] = rb_ary_new_capa(cast->
lefts.
size);
5123 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
5124 rb_ary_push(argv[4], rb_ary_pop(value_stack));
5129#line 213 "prism/templates/ext/prism/api_node.c.erb"
5130 argv[5] = rb_ary_pop(value_stack);
5133#line 216 "prism/templates/ext/prism/api_node.c.erb"
5134 argv[6] = rb_ary_new_capa(cast->
rights.
size);
5135 for (
size_t index = 0; index < cast->
rights.
size; index++) {
5136 rb_ary_push(argv[6], rb_ary_pop(value_stack));
5141#line 243 "prism/templates/ext/prism/api_node.c.erb"
5145#line 243 "prism/templates/ext/prism/api_node.c.erb"
5151 rb_ary_push(value_stack, value);
5154#line 190 "prism/templates/ext/prism/api_node.c.erb"
5172#line 216 "prism/templates/ext/prism/api_node.c.erb"
5173 argv[4] = rb_ary_new_capa(cast->
lefts.
size);
5174 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
5175 rb_ary_push(argv[4], rb_ary_pop(value_stack));
5180#line 213 "prism/templates/ext/prism/api_node.c.erb"
5181 argv[5] = rb_ary_pop(value_stack);
5184#line 216 "prism/templates/ext/prism/api_node.c.erb"
5185 argv[6] = rb_ary_new_capa(cast->
rights.
size);
5186 for (
size_t index = 0; index < cast->
rights.
size; index++) {
5187 rb_ary_push(argv[6], rb_ary_pop(value_stack));
5192#line 243 "prism/templates/ext/prism/api_node.c.erb"
5196#line 243 "prism/templates/ext/prism/api_node.c.erb"
5200#line 240 "prism/templates/ext/prism/api_node.c.erb"
5204#line 213 "prism/templates/ext/prism/api_node.c.erb"
5205 argv[10] = rb_ary_pop(value_stack);
5210 rb_ary_push(value_stack, value);
5213#line 190 "prism/templates/ext/prism/api_node.c.erb"
5231#line 213 "prism/templates/ext/prism/api_node.c.erb"
5232 argv[4] = rb_ary_pop(value_stack);
5235#line 240 "prism/templates/ext/prism/api_node.c.erb"
5241 rb_ary_push(value_stack, value);
5244#line 190 "prism/templates/ext/prism/api_node.c.erb"
5263 rb_ary_push(value_stack, value);
5266#line 190 "prism/templates/ext/prism/api_node.c.erb"
5284#line 240 "prism/templates/ext/prism/api_node.c.erb"
5288#line 240 "prism/templates/ext/prism/api_node.c.erb"
5294 rb_ary_push(value_stack, value);
5297#line 190 "prism/templates/ext/prism/api_node.c.erb"
5315#line 246 "prism/templates/ext/prism/api_node.c.erb"
5321 rb_ary_push(value_stack, value);
5324#line 190 "prism/templates/ext/prism/api_node.c.erb"
5342#line 249 "prism/templates/ext/prism/api_node.c.erb"
5348 rb_ary_push(value_stack, value);
5351#line 190 "prism/templates/ext/prism/api_node.c.erb"
5369#line 226 "prism/templates/ext/prism/api_node.c.erb"
5370 assert(cast->
name != 0);
5374#line 240 "prism/templates/ext/prism/api_node.c.erb"
5378#line 213 "prism/templates/ext/prism/api_node.c.erb"
5379 argv[6] = rb_ary_pop(value_stack);
5384 rb_ary_push(value_stack, value);
5387#line 190 "prism/templates/ext/prism/api_node.c.erb"
5405#line 226 "prism/templates/ext/prism/api_node.c.erb"
5406 assert(cast->
name != 0);
5410#line 240 "prism/templates/ext/prism/api_node.c.erb"
5414#line 240 "prism/templates/ext/prism/api_node.c.erb"
5418#line 213 "prism/templates/ext/prism/api_node.c.erb"
5419 argv[7] = rb_ary_pop(value_stack);
5424 rb_ary_push(value_stack, value);
5427#line 190 "prism/templates/ext/prism/api_node.c.erb"
5445#line 213 "prism/templates/ext/prism/api_node.c.erb"
5446 argv[4] = rb_ary_pop(value_stack);
5449#line 213 "prism/templates/ext/prism/api_node.c.erb"
5450 argv[5] = rb_ary_pop(value_stack);
5453#line 240 "prism/templates/ext/prism/api_node.c.erb"
5459 rb_ary_push(value_stack, value);
5462#line 190 "prism/templates/ext/prism/api_node.c.erb"
5480#line 216 "prism/templates/ext/prism/api_node.c.erb"
5482 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
5483 rb_ary_push(argv[4], rb_ary_pop(value_stack));
5488#line 216 "prism/templates/ext/prism/api_node.c.erb"
5490 for (
size_t index = 0; index < cast->
optionals.
size; index++) {
5491 rb_ary_push(argv[5], rb_ary_pop(value_stack));
5496#line 213 "prism/templates/ext/prism/api_node.c.erb"
5497 argv[6] = rb_ary_pop(value_stack);
5500#line 216 "prism/templates/ext/prism/api_node.c.erb"
5501 argv[7] = rb_ary_new_capa(cast->
posts.
size);
5502 for (
size_t index = 0; index < cast->
posts.
size; index++) {
5503 rb_ary_push(argv[7], rb_ary_pop(value_stack));
5508#line 216 "prism/templates/ext/prism/api_node.c.erb"
5510 for (
size_t index = 0; index < cast->
keywords.
size; index++) {
5511 rb_ary_push(argv[8], rb_ary_pop(value_stack));
5516#line 213 "prism/templates/ext/prism/api_node.c.erb"
5517 argv[9] = rb_ary_pop(value_stack);
5520#line 213 "prism/templates/ext/prism/api_node.c.erb"
5521 argv[10] = rb_ary_pop(value_stack);
5526 rb_ary_push(value_stack, value);
5529#line 190 "prism/templates/ext/prism/api_node.c.erb"
5547#line 213 "prism/templates/ext/prism/api_node.c.erb"
5548 argv[4] = rb_ary_pop(value_stack);
5551#line 240 "prism/templates/ext/prism/api_node.c.erb"
5555#line 240 "prism/templates/ext/prism/api_node.c.erb"
5561 rb_ary_push(value_stack, value);
5564#line 190 "prism/templates/ext/prism/api_node.c.erb"
5582#line 213 "prism/templates/ext/prism/api_node.c.erb"
5583 argv[4] = rb_ary_pop(value_stack);
5586#line 240 "prism/templates/ext/prism/api_node.c.erb"
5590#line 240 "prism/templates/ext/prism/api_node.c.erb"
5594#line 240 "prism/templates/ext/prism/api_node.c.erb"
5600 rb_ary_push(value_stack, value);
5603#line 190 "prism/templates/ext/prism/api_node.c.erb"
5621#line 213 "prism/templates/ext/prism/api_node.c.erb"
5622 argv[4] = rb_ary_pop(value_stack);
5625#line 240 "prism/templates/ext/prism/api_node.c.erb"
5631 rb_ary_push(value_stack, value);
5634#line 190 "prism/templates/ext/prism/api_node.c.erb"
5652#line 213 "prism/templates/ext/prism/api_node.c.erb"
5653 argv[4] = rb_ary_pop(value_stack);
5656#line 240 "prism/templates/ext/prism/api_node.c.erb"
5660#line 240 "prism/templates/ext/prism/api_node.c.erb"
5664#line 240 "prism/templates/ext/prism/api_node.c.erb"
5670 rb_ary_push(value_stack, value);
5673#line 190 "prism/templates/ext/prism/api_node.c.erb"
5691#line 213 "prism/templates/ext/prism/api_node.c.erb"
5692 argv[4] = rb_ary_pop(value_stack);
5695#line 240 "prism/templates/ext/prism/api_node.c.erb"
5699#line 240 "prism/templates/ext/prism/api_node.c.erb"
5703#line 240 "prism/templates/ext/prism/api_node.c.erb"
5709 rb_ary_push(value_stack, value);
5712#line 190 "prism/templates/ext/prism/api_node.c.erb"
5730#line 232 "prism/templates/ext/prism/api_node.c.erb"
5731 argv[4] = rb_ary_new_capa(cast->
locals.
size);
5732 for (
size_t index = 0; index < cast->
locals.
size; index++) {
5739#line 213 "prism/templates/ext/prism/api_node.c.erb"
5740 argv[5] = rb_ary_pop(value_stack);
5745 rb_ary_push(value_stack, value);
5748#line 190 "prism/templates/ext/prism/api_node.c.erb"
5766#line 213 "prism/templates/ext/prism/api_node.c.erb"
5767 argv[4] = rb_ary_pop(value_stack);
5770#line 213 "prism/templates/ext/prism/api_node.c.erb"
5771 argv[5] = rb_ary_pop(value_stack);
5774#line 240 "prism/templates/ext/prism/api_node.c.erb"
5780 rb_ary_push(value_stack, value);
5783#line 190 "prism/templates/ext/prism/api_node.c.erb"
5801#line 252 "prism/templates/ext/prism/api_node.c.erb"
5802 argv[4] = pm_integer_new(&cast->
numerator);
5805#line 252 "prism/templates/ext/prism/api_node.c.erb"
5811 rb_ary_push(value_stack, value);
5814#line 190 "prism/templates/ext/prism/api_node.c.erb"
5833 rb_ary_push(value_stack, value);
5836#line 190 "prism/templates/ext/prism/api_node.c.erb"
5854#line 240 "prism/templates/ext/prism/api_node.c.erb"
5858#line 240 "prism/templates/ext/prism/api_node.c.erb"
5862#line 240 "prism/templates/ext/prism/api_node.c.erb"
5866#line 223 "prism/templates/ext/prism/api_node.c.erb"
5867 argv[7] = pm_string_new(&cast->
unescaped, encoding);
5872 rb_ary_push(value_stack, value);
5875#line 190 "prism/templates/ext/prism/api_node.c.erb"
5893#line 226 "prism/templates/ext/prism/api_node.c.erb"
5894 assert(cast->
name != 0);
5898#line 240 "prism/templates/ext/prism/api_node.c.erb"
5904 rb_ary_push(value_stack, value);
5907#line 190 "prism/templates/ext/prism/api_node.c.erb"
5925#line 226 "prism/templates/ext/prism/api_node.c.erb"
5926 assert(cast->
name != 0);
5932 rb_ary_push(value_stack, value);
5935#line 190 "prism/templates/ext/prism/api_node.c.erb"
5953#line 213 "prism/templates/ext/prism/api_node.c.erb"
5954 argv[4] = rb_ary_pop(value_stack);
5957#line 240 "prism/templates/ext/prism/api_node.c.erb"
5961#line 213 "prism/templates/ext/prism/api_node.c.erb"
5962 argv[6] = rb_ary_pop(value_stack);
5967 rb_ary_push(value_stack, value);
5970#line 190 "prism/templates/ext/prism/api_node.c.erb"
5988#line 240 "prism/templates/ext/prism/api_node.c.erb"
5992#line 216 "prism/templates/ext/prism/api_node.c.erb"
5995 rb_ary_push(argv[5], rb_ary_pop(value_stack));
6000#line 243 "prism/templates/ext/prism/api_node.c.erb"
6004#line 213 "prism/templates/ext/prism/api_node.c.erb"
6005 argv[7] = rb_ary_pop(value_stack);
6008#line 213 "prism/templates/ext/prism/api_node.c.erb"
6009 argv[8] = rb_ary_pop(value_stack);
6012#line 213 "prism/templates/ext/prism/api_node.c.erb"
6013 argv[9] = rb_ary_pop(value_stack);
6018 rb_ary_push(value_stack, value);
6021#line 190 "prism/templates/ext/prism/api_node.c.erb"
6042#line 243 "prism/templates/ext/prism/api_node.c.erb"
6046#line 240 "prism/templates/ext/prism/api_node.c.erb"
6052 rb_ary_push(value_stack, value);
6055#line 190 "prism/templates/ext/prism/api_node.c.erb"
6074 rb_ary_push(value_stack, value);
6077#line 190 "prism/templates/ext/prism/api_node.c.erb"
6095#line 240 "prism/templates/ext/prism/api_node.c.erb"
6099#line 213 "prism/templates/ext/prism/api_node.c.erb"
6100 argv[5] = rb_ary_pop(value_stack);
6105 rb_ary_push(value_stack, value);
6108#line 190 "prism/templates/ext/prism/api_node.c.erb"
6127 rb_ary_push(value_stack, value);
6130#line 190 "prism/templates/ext/prism/api_node.c.erb"
6147#line 213 "prism/templates/ext/prism/api_node.c.erb"
6148 argv[4] = rb_ary_pop(value_stack);
6153 rb_ary_push(value_stack, value);
6156#line 190 "prism/templates/ext/prism/api_node.c.erb"
6174#line 232 "prism/templates/ext/prism/api_node.c.erb"
6175 argv[4] = rb_ary_new_capa(cast->
locals.
size);
6176 for (
size_t index = 0; index < cast->
locals.
size; index++) {
6183#line 240 "prism/templates/ext/prism/api_node.c.erb"
6187#line 240 "prism/templates/ext/prism/api_node.c.erb"
6191#line 213 "prism/templates/ext/prism/api_node.c.erb"
6192 argv[7] = rb_ary_pop(value_stack);
6195#line 213 "prism/templates/ext/prism/api_node.c.erb"
6196 argv[8] = rb_ary_pop(value_stack);
6199#line 240 "prism/templates/ext/prism/api_node.c.erb"
6205 rb_ary_push(value_stack, value);
6208#line 190 "prism/templates/ext/prism/api_node.c.erb"
6227 rb_ary_push(value_stack, value);
6230#line 190 "prism/templates/ext/prism/api_node.c.erb"
6248#line 223 "prism/templates/ext/prism/api_node.c.erb"
6249 argv[4] = pm_string_new(&cast->
filepath, encoding);
6254 rb_ary_push(value_stack, value);
6257#line 190 "prism/templates/ext/prism/api_node.c.erb"
6276 rb_ary_push(value_stack, value);
6279#line 190 "prism/templates/ext/prism/api_node.c.erb"
6297#line 240 "prism/templates/ext/prism/api_node.c.erb"
6301#line 213 "prism/templates/ext/prism/api_node.c.erb"
6302 argv[5] = rb_ary_pop(value_stack);
6307 rb_ary_push(value_stack, value);
6310#line 190 "prism/templates/ext/prism/api_node.c.erb"
6328#line 216 "prism/templates/ext/prism/api_node.c.erb"
6329 argv[4] = rb_ary_new_capa(cast->
body.
size);
6330 for (
size_t index = 0; index < cast->
body.
size; index++) {
6331 rb_ary_push(argv[4], rb_ary_pop(value_stack));
6338 rb_ary_push(value_stack, value);
6341#line 190 "prism/templates/ext/prism/api_node.c.erb"
6359#line 243 "prism/templates/ext/prism/api_node.c.erb"
6363#line 240 "prism/templates/ext/prism/api_node.c.erb"
6367#line 243 "prism/templates/ext/prism/api_node.c.erb"
6371#line 223 "prism/templates/ext/prism/api_node.c.erb"
6372 argv[7] = pm_string_new(&cast->
unescaped, encoding);
6377 rb_ary_push(value_stack, value);
6380#line 190 "prism/templates/ext/prism/api_node.c.erb"
6398#line 240 "prism/templates/ext/prism/api_node.c.erb"
6402#line 243 "prism/templates/ext/prism/api_node.c.erb"
6406#line 213 "prism/templates/ext/prism/api_node.c.erb"
6407 argv[6] = rb_ary_pop(value_stack);
6410#line 243 "prism/templates/ext/prism/api_node.c.erb"
6414#line 213 "prism/templates/ext/prism/api_node.c.erb"
6415 argv[8] = rb_ary_pop(value_stack);
6420 rb_ary_push(value_stack, value);
6423#line 190 "prism/templates/ext/prism/api_node.c.erb"
6441#line 243 "prism/templates/ext/prism/api_node.c.erb"
6445#line 243 "prism/templates/ext/prism/api_node.c.erb"
6449#line 243 "prism/templates/ext/prism/api_node.c.erb"
6453#line 223 "prism/templates/ext/prism/api_node.c.erb"
6454 argv[7] = pm_string_new(&cast->
unescaped, encoding);
6459 rb_ary_push(value_stack, value);
6462#line 190 "prism/templates/ext/prism/api_node.c.erb"
6481 rb_ary_push(value_stack, value);
6484#line 190 "prism/templates/ext/prism/api_node.c.erb"
6502#line 216 "prism/templates/ext/prism/api_node.c.erb"
6503 argv[4] = rb_ary_new_capa(cast->
names.
size);
6504 for (
size_t index = 0; index < cast->
names.
size; index++) {
6505 rb_ary_push(argv[4], rb_ary_pop(value_stack));
6510#line 240 "prism/templates/ext/prism/api_node.c.erb"
6516 rb_ary_push(value_stack, value);
6519#line 190 "prism/templates/ext/prism/api_node.c.erb"
6537#line 240 "prism/templates/ext/prism/api_node.c.erb"
6541#line 213 "prism/templates/ext/prism/api_node.c.erb"
6542 argv[5] = rb_ary_pop(value_stack);
6545#line 243 "prism/templates/ext/prism/api_node.c.erb"
6549#line 213 "prism/templates/ext/prism/api_node.c.erb"
6550 argv[7] = rb_ary_pop(value_stack);
6553#line 213 "prism/templates/ext/prism/api_node.c.erb"
6554 argv[8] = rb_ary_pop(value_stack);
6557#line 243 "prism/templates/ext/prism/api_node.c.erb"
6563 rb_ary_push(value_stack, value);
6566#line 190 "prism/templates/ext/prism/api_node.c.erb"
6584#line 240 "prism/templates/ext/prism/api_node.c.erb"
6588#line 243 "prism/templates/ext/prism/api_node.c.erb"
6592#line 243 "prism/templates/ext/prism/api_node.c.erb"
6596#line 213 "prism/templates/ext/prism/api_node.c.erb"
6597 argv[7] = rb_ary_pop(value_stack);
6600#line 213 "prism/templates/ext/prism/api_node.c.erb"
6601 argv[8] = rb_ary_pop(value_stack);
6606 rb_ary_push(value_stack, value);
6609#line 190 "prism/templates/ext/prism/api_node.c.erb"
6627#line 240 "prism/templates/ext/prism/api_node.c.erb"
6631#line 216 "prism/templates/ext/prism/api_node.c.erb"
6634 rb_ary_push(argv[5], rb_ary_pop(value_stack));
6639#line 243 "prism/templates/ext/prism/api_node.c.erb"
6643#line 213 "prism/templates/ext/prism/api_node.c.erb"
6644 argv[7] = rb_ary_pop(value_stack);
6649 rb_ary_push(value_stack, value);
6652#line 190 "prism/templates/ext/prism/api_node.c.erb"
6670#line 240 "prism/templates/ext/prism/api_node.c.erb"
6674#line 243 "prism/templates/ext/prism/api_node.c.erb"
6678#line 243 "prism/templates/ext/prism/api_node.c.erb"
6682#line 213 "prism/templates/ext/prism/api_node.c.erb"
6683 argv[7] = rb_ary_pop(value_stack);
6686#line 213 "prism/templates/ext/prism/api_node.c.erb"
6687 argv[8] = rb_ary_pop(value_stack);
6692 rb_ary_push(value_stack, value);
6695#line 190 "prism/templates/ext/prism/api_node.c.erb"
6713#line 240 "prism/templates/ext/prism/api_node.c.erb"
6717#line 240 "prism/templates/ext/prism/api_node.c.erb"
6721#line 240 "prism/templates/ext/prism/api_node.c.erb"
6725#line 223 "prism/templates/ext/prism/api_node.c.erb"
6726 argv[7] = pm_string_new(&cast->
unescaped, encoding);
6731 rb_ary_push(value_stack, value);
6734#line 190 "prism/templates/ext/prism/api_node.c.erb"
6752#line 240 "prism/templates/ext/prism/api_node.c.erb"
6756#line 243 "prism/templates/ext/prism/api_node.c.erb"
6760#line 213 "prism/templates/ext/prism/api_node.c.erb"
6761 argv[6] = rb_ary_pop(value_stack);
6764#line 243 "prism/templates/ext/prism/api_node.c.erb"
6770 rb_ary_push(value_stack, value);
6779 return rb_ary_pop(value_stack);
6783Init_prism_api_node(
void) {
6784 rb_cPrismAliasGlobalVariableNode =
rb_define_class_under(rb_cPrism,
"AliasGlobalVariableNode", rb_cPrismNode);
6786 rb_cPrismAlternationPatternNode =
rb_define_class_under(rb_cPrism,
"AlternationPatternNode", rb_cPrismNode);
6793 rb_cPrismBackReferenceReadNode =
rb_define_class_under(rb_cPrism,
"BackReferenceReadNode", rb_cPrismNode);
6796 rb_cPrismBlockLocalVariableNode =
rb_define_class_under(rb_cPrism,
"BlockLocalVariableNode", rb_cPrismNode);
6798 rb_cPrismBlockParameterNode =
rb_define_class_under(rb_cPrism,
"BlockParameterNode", rb_cPrismNode);
6799 rb_cPrismBlockParametersNode =
rb_define_class_under(rb_cPrism,
"BlockParametersNode", rb_cPrismNode);
6803 rb_cPrismCallOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"CallOperatorWriteNode", rb_cPrismNode);
6806 rb_cPrismCapturePatternNode =
rb_define_class_under(rb_cPrism,
"CapturePatternNode", rb_cPrismNode);
6810 rb_cPrismClassVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableAndWriteNode", rb_cPrismNode);
6811 rb_cPrismClassVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableOperatorWriteNode", rb_cPrismNode);
6812 rb_cPrismClassVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableOrWriteNode", rb_cPrismNode);
6813 rb_cPrismClassVariableReadNode =
rb_define_class_under(rb_cPrism,
"ClassVariableReadNode", rb_cPrismNode);
6814 rb_cPrismClassVariableTargetNode =
rb_define_class_under(rb_cPrism,
"ClassVariableTargetNode", rb_cPrismNode);
6815 rb_cPrismClassVariableWriteNode =
rb_define_class_under(rb_cPrism,
"ClassVariableWriteNode", rb_cPrismNode);
6816 rb_cPrismConstantAndWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantAndWriteNode", rb_cPrismNode);
6817 rb_cPrismConstantOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantOperatorWriteNode", rb_cPrismNode);
6818 rb_cPrismConstantOrWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantOrWriteNode", rb_cPrismNode);
6819 rb_cPrismConstantPathAndWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathAndWriteNode", rb_cPrismNode);
6821 rb_cPrismConstantPathOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathOperatorWriteNode", rb_cPrismNode);
6822 rb_cPrismConstantPathOrWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathOrWriteNode", rb_cPrismNode);
6823 rb_cPrismConstantPathTargetNode =
rb_define_class_under(rb_cPrism,
"ConstantPathTargetNode", rb_cPrismNode);
6824 rb_cPrismConstantPathWriteNode =
rb_define_class_under(rb_cPrism,
"ConstantPathWriteNode", rb_cPrismNode);
6826 rb_cPrismConstantTargetNode =
rb_define_class_under(rb_cPrism,
"ConstantTargetNode", rb_cPrismNode);
6831 rb_cPrismEmbeddedStatementsNode =
rb_define_class_under(rb_cPrism,
"EmbeddedStatementsNode", rb_cPrismNode);
6832 rb_cPrismEmbeddedVariableNode =
rb_define_class_under(rb_cPrism,
"EmbeddedVariableNode", rb_cPrismNode);
6839 rb_cPrismForwardingArgumentsNode =
rb_define_class_under(rb_cPrism,
"ForwardingArgumentsNode", rb_cPrismNode);
6840 rb_cPrismForwardingParameterNode =
rb_define_class_under(rb_cPrism,
"ForwardingParameterNode", rb_cPrismNode);
6841 rb_cPrismForwardingSuperNode =
rb_define_class_under(rb_cPrism,
"ForwardingSuperNode", rb_cPrismNode);
6842 rb_cPrismGlobalVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableAndWriteNode", rb_cPrismNode);
6843 rb_cPrismGlobalVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableOperatorWriteNode", rb_cPrismNode);
6844 rb_cPrismGlobalVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableOrWriteNode", rb_cPrismNode);
6845 rb_cPrismGlobalVariableReadNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableReadNode", rb_cPrismNode);
6846 rb_cPrismGlobalVariableTargetNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableTargetNode", rb_cPrismNode);
6847 rb_cPrismGlobalVariableWriteNode =
rb_define_class_under(rb_cPrism,
"GlobalVariableWriteNode", rb_cPrismNode);
6856 rb_cPrismIndexOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"IndexOperatorWriteNode", rb_cPrismNode);
6859 rb_cPrismInstanceVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableAndWriteNode", rb_cPrismNode);
6860 rb_cPrismInstanceVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableOperatorWriteNode", rb_cPrismNode);
6861 rb_cPrismInstanceVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableOrWriteNode", rb_cPrismNode);
6862 rb_cPrismInstanceVariableReadNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableReadNode", rb_cPrismNode);
6863 rb_cPrismInstanceVariableTargetNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableTargetNode", rb_cPrismNode);
6864 rb_cPrismInstanceVariableWriteNode =
rb_define_class_under(rb_cPrism,
"InstanceVariableWriteNode", rb_cPrismNode);
6866 rb_cPrismInterpolatedMatchLastLineNode =
rb_define_class_under(rb_cPrism,
"InterpolatedMatchLastLineNode", rb_cPrismNode);
6867 rb_cPrismInterpolatedRegularExpressionNode =
rb_define_class_under(rb_cPrism,
"InterpolatedRegularExpressionNode", rb_cPrismNode);
6868 rb_cPrismInterpolatedStringNode =
rb_define_class_under(rb_cPrism,
"InterpolatedStringNode", rb_cPrismNode);
6869 rb_cPrismInterpolatedSymbolNode =
rb_define_class_under(rb_cPrism,
"InterpolatedSymbolNode", rb_cPrismNode);
6870 rb_cPrismInterpolatedXStringNode =
rb_define_class_under(rb_cPrism,
"InterpolatedXStringNode", rb_cPrismNode);
6871 rb_cPrismItLocalVariableReadNode =
rb_define_class_under(rb_cPrism,
"ItLocalVariableReadNode", rb_cPrismNode);
6874 rb_cPrismKeywordRestParameterNode =
rb_define_class_under(rb_cPrism,
"KeywordRestParameterNode", rb_cPrismNode);
6876 rb_cPrismLocalVariableAndWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableAndWriteNode", rb_cPrismNode);
6877 rb_cPrismLocalVariableOperatorWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableOperatorWriteNode", rb_cPrismNode);
6878 rb_cPrismLocalVariableOrWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableOrWriteNode", rb_cPrismNode);
6879 rb_cPrismLocalVariableReadNode =
rb_define_class_under(rb_cPrism,
"LocalVariableReadNode", rb_cPrismNode);
6880 rb_cPrismLocalVariableTargetNode =
rb_define_class_under(rb_cPrism,
"LocalVariableTargetNode", rb_cPrismNode);
6881 rb_cPrismLocalVariableWriteNode =
rb_define_class_under(rb_cPrism,
"LocalVariableWriteNode", rb_cPrismNode);
6883 rb_cPrismMatchPredicateNode =
rb_define_class_under(rb_cPrism,
"MatchPredicateNode", rb_cPrismNode);
6892 rb_cPrismNoKeywordsParameterNode =
rb_define_class_under(rb_cPrism,
"NoKeywordsParameterNode", rb_cPrismNode);
6893 rb_cPrismNumberedParametersNode =
rb_define_class_under(rb_cPrism,
"NumberedParametersNode", rb_cPrismNode);
6894 rb_cPrismNumberedReferenceReadNode =
rb_define_class_under(rb_cPrism,
"NumberedReferenceReadNode", rb_cPrismNode);
6895 rb_cPrismOptionalKeywordParameterNode =
rb_define_class_under(rb_cPrism,
"OptionalKeywordParameterNode", rb_cPrismNode);
6896 rb_cPrismOptionalParameterNode =
rb_define_class_under(rb_cPrism,
"OptionalParameterNode", rb_cPrismNode);
6900 rb_cPrismPinnedExpressionNode =
rb_define_class_under(rb_cPrism,
"PinnedExpressionNode", rb_cPrismNode);
6901 rb_cPrismPinnedVariableNode =
rb_define_class_under(rb_cPrism,
"PinnedVariableNode", rb_cPrismNode);
6908 rb_cPrismRegularExpressionNode =
rb_define_class_under(rb_cPrism,
"RegularExpressionNode", rb_cPrismNode);
6909 rb_cPrismRequiredKeywordParameterNode =
rb_define_class_under(rb_cPrism,
"RequiredKeywordParameterNode", rb_cPrismNode);
6910 rb_cPrismRequiredParameterNode =
rb_define_class_under(rb_cPrism,
"RequiredParameterNode", rb_cPrismNode);
6911 rb_cPrismRescueModifierNode =
rb_define_class_under(rb_cPrism,
"RescueModifierNode", rb_cPrismNode);
6917 rb_cPrismShareableConstantNode =
rb_define_class_under(rb_cPrism,
"ShareableConstantNode", rb_cPrismNode);
6918 rb_cPrismSingletonClassNode =
rb_define_class_under(rb_cPrism,
"SingletonClassNode", rb_cPrismNode);
6919 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_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
@ PM_SOURCE_FILE_NODE
SourceFileNode.
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
@ PM_SPLAT_NODE
SplatNode.
@ PM_LAMBDA_NODE
LambdaNode.
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
@ PM_CALL_TARGET_NODE
CallTargetNode.
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
@ PM_SYMBOL_NODE
SymbolNode.
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
@ PM_MISSING_NODE
MissingNode.
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
@ PM_RANGE_NODE
RangeNode.
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
@ PM_HASH_PATTERN_NODE
HashPatternNode.
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
@ PM_UNDEF_NODE
UndefNode.
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
@ PM_ENSURE_NODE
EnsureNode.
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
@ PM_PARENTHESES_NODE
ParenthesesNode.
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
@ PM_RETURN_NODE
ReturnNode.
@ PM_MODULE_NODE
ModuleNode.
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
@ PM_SUPER_NODE
SuperNode.
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
@ PM_CASE_MATCH_NODE
CaseMatchNode.
@ PM_BREAK_NODE
BreakNode.
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
@ PM_IMAGINARY_NODE
ImaginaryNode.
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
@ PM_BEGIN_NODE
BeginNode.
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
@ PM_RESCUE_NODE
RescueNode.
@ PM_FLOAT_NODE
FloatNode.
@ PM_ASSOC_NODE
AssocNode.
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
@ PM_INTEGER_NODE
IntegerNode.
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
@ PM_STRING_NODE
StringNode.
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
@ PM_PARAMETERS_NODE
ParametersNode.
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
@ PM_STATEMENTS_NODE
StatementsNode.
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
@ PM_BLOCK_NODE
BlockNode.
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
@ PM_REST_PARAMETER_NODE
RestParameterNode.
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
#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 xfree
Old name of ruby_xfree.
#define ID2SYM
Old name of RB_ID2SYM.
#define ULONG2NUM
Old name of RB_ULONG2NUM.
#define xmalloc
Old name of ruby_xmalloc.
#define LONG2FIX
Old name of RB_INT2FIX.
#define LONG2NUM
Old name of RB_LONG2NUM.
#define ULL2NUM
Old name of RB_ULL2NUM.
#define Qnil
Old name of RUBY_Qnil.
#define DBL2NUM
Old name of rb_float_new.
#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.
VALUE rb_obj_freeze(VALUE obj)
Just calls rb_obj_freeze_inline() inside.
VALUE rb_funcall(VALUE recv, ID mid, int n,...)
Calls a method.
#define rb_str_new(str, len)
Allocates an instance of rb_cString.
VALUE rb_str_intern(VALUE str)
Identical to rb_to_symbol(), except it assumes the receiver being an instance of RString.
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_name(pm_token_type_t token_type)
Returns a string representation of the given token type.
#define RARRAY_AREF(a, i)
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.
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.
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
struct pm_node * receiver
CallOperatorWriteNode::receiver.
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
struct pm_node * value
CallOperatorWriteNode::value.
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
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_local_variable_target_node * target
CapturePatternNode::target.
pm_location_t operator_loc
CapturePatternNode::operator_loc.
struct pm_node * value
CapturePatternNode::value.
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
struct pm_node_list conditions
CaseMatchNode::conditions.
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
struct pm_node * predicate
CaseMatchNode::predicate.
struct pm_node * predicate
CaseNode::predicate.
struct pm_else_node * else_clause
CaseNode::else_clause.
struct pm_node_list conditions
CaseNode::conditions.
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
struct pm_node * constant_path
ClassNode::constant_path.
pm_constant_id_list_t locals
ClassNode::locals.
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
pm_constant_id_t name
ClassNode::name.
struct pm_node * body
ClassNode::body.
struct pm_node * superclass
ClassNode::superclass.
ClassVariableAndWriteNode.
struct pm_node * value
ClassVariableAndWriteNode::value.
pm_constant_id_t name
ClassVariableAndWriteNode::name.
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
ClassVariableOperatorWriteNode.
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
struct pm_node * value
ClassVariableOperatorWriteNode::value.
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
ClassVariableOrWriteNode.
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
pm_constant_id_t name
ClassVariableOrWriteNode::name.
struct pm_node * value
ClassVariableOrWriteNode::value.
pm_constant_id_t name
ClassVariableReadNode::name.
pm_constant_id_t name
ClassVariableTargetNode::name.
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
struct pm_node * value
ClassVariableWriteNode::value.
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
pm_constant_id_t name
ClassVariableWriteNode::name.
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
pm_constant_id_t name
ConstantAndWriteNode::name.
struct pm_node * value
ConstantAndWriteNode::value.
size_t size
The number of constant ids in the list.
pm_constant_id_t * ids
The constant ids in the list.
ConstantOperatorWriteNode.
pm_constant_id_t name
ConstantOperatorWriteNode::name.
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
struct pm_node * value
ConstantOperatorWriteNode::value.
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
pm_constant_id_t name
ConstantOrWriteNode::name.
struct pm_node * value
ConstantOrWriteNode::value.
ConstantPathAndWriteNode.
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
struct pm_node * value
ConstantPathAndWriteNode::value.
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
pm_location_t name_loc
ConstantPathNode::name_loc.
pm_constant_id_t name
ConstantPathNode::name.
struct pm_node * parent
ConstantPathNode::parent.
ConstantPathOperatorWriteNode.
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
struct pm_node * value
ConstantPathOperatorWriteNode::value.
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
struct pm_node * value
ConstantPathOrWriteNode::value.
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
struct pm_node * parent
ConstantPathTargetNode::parent.
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
pm_constant_id_t name
ConstantPathTargetNode::name.
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
struct pm_node * value
ConstantPathWriteNode::value.
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.
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
pm_constant_id_t name
DefNode::name.
pm_location_t name_loc
DefNode::name_loc.
pm_location_t rparen_loc
DefNode::rparen_loc.
struct pm_node * body
DefNode::body.
pm_location_t equal_loc
DefNode::equal_loc.
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
struct pm_node * receiver
DefNode::receiver.
pm_location_t lparen_loc
DefNode::lparen_loc.
pm_location_t operator_loc
DefNode::operator_loc.
pm_constant_id_list_t locals
DefNode::locals.
pm_location_t lparen_loc
DefinedNode::lparen_loc.
pm_location_t rparen_loc
DefinedNode::rparen_loc.
pm_location_t keyword_loc
DefinedNode::keyword_loc.
struct pm_node * value
DefinedNode::value.
struct pm_statements_node * statements
ElseNode::statements.
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
struct pm_node * variable
EmbeddedVariableNode::variable.
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
struct pm_statements_node * statements
EnsureNode::statements.
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
struct pm_node * constant
FindPatternNode::constant.
struct pm_node * right
FindPatternNode::right.
pm_location_t opening_loc
FindPatternNode::opening_loc.
struct pm_node_list requireds
FindPatternNode::requireds.
struct pm_splat_node * left
FindPatternNode::left.
pm_location_t closing_loc
FindPatternNode::closing_loc.
pm_location_t operator_loc
FlipFlopNode::operator_loc.
struct pm_node * left
FlipFlopNode::left.
struct pm_node * right
FlipFlopNode::right.
double value
FloatNode::value.
struct pm_statements_node * statements
ForNode::statements.
struct pm_node * index
ForNode::index.
struct pm_node * collection
ForNode::collection.
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
struct pm_block_node * block
ForwardingSuperNode::block.
GlobalVariableAndWriteNode.
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
struct pm_node * value
GlobalVariableAndWriteNode::value.
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
GlobalVariableOperatorWriteNode.
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
GlobalVariableOrWriteNode.
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
struct pm_node * value
GlobalVariableOrWriteNode::value.
pm_constant_id_t name
GlobalVariableReadNode::name.
GlobalVariableTargetNode.
pm_constant_id_t name
GlobalVariableTargetNode::name.
struct pm_node * value
GlobalVariableWriteNode::value.
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
pm_constant_id_t name
GlobalVariableWriteNode::name.
struct pm_node_list elements
HashNode::elements.
pm_location_t closing_loc
HashNode::closing_loc.
pm_location_t opening_loc
HashNode::opening_loc.
struct pm_node_list elements
HashPatternNode::elements.
pm_location_t opening_loc
HashPatternNode::opening_loc.
struct pm_node * rest
HashPatternNode::rest.
pm_location_t closing_loc
HashPatternNode::closing_loc.
struct pm_node * constant
HashPatternNode::constant.
struct pm_node * predicate
IfNode::predicate.
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
struct pm_statements_node * statements
IfNode::statements.
struct pm_node * subsequent
IfNode::subsequent.
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
struct pm_node * numeric
ImaginaryNode::numeric.
struct pm_node * value
ImplicitNode::value.
struct pm_statements_node * statements
InNode::statements.
struct pm_node * pattern
InNode::pattern.
pm_location_t then_loc
InNode::then_loc.
pm_location_t in_loc
InNode::in_loc.
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
struct pm_node * receiver
IndexAndWriteNode::receiver.
struct pm_block_argument_node * block
IndexAndWriteNode::block.
struct pm_node * value
IndexAndWriteNode::value.
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
struct pm_node * value
IndexOperatorWriteNode::value.
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
struct pm_block_argument_node * block
IndexOrWriteNode::block.
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
struct pm_node * receiver
IndexOrWriteNode::receiver.
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
struct pm_node * value
IndexOrWriteNode::value.
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
struct pm_node * receiver
IndexTargetNode::receiver.
pm_location_t closing_loc
IndexTargetNode::closing_loc.
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
pm_location_t opening_loc
IndexTargetNode::opening_loc.
struct pm_block_argument_node * block
IndexTargetNode::block.
InstanceVariableAndWriteNode.
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
struct pm_node * value
InstanceVariableAndWriteNode::value.
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
InstanceVariableOperatorWriteNode.
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
InstanceVariableOrWriteNode.
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
struct pm_node * value
InstanceVariableOrWriteNode::value.
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
InstanceVariableReadNode.
pm_constant_id_t name
InstanceVariableReadNode::name.
InstanceVariableTargetNode.
pm_constant_id_t name
InstanceVariableTargetNode::name.
InstanceVariableWriteNode.
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
pm_constant_id_t name
InstanceVariableWriteNode::name.
struct pm_node * value
InstanceVariableWriteNode::value.
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
pm_integer_t value
IntegerNode::value.
A structure represents an arbitrary-sized integer.
size_t length
The number of allocated values.
uint32_t value
Embedded value for small integer.
uint32_t * values
List of 32-bit integers.
bool negative
Whether or not the integer is negative.
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.
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.
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
struct pm_node * value
LocalVariableOperatorWriteNode::value.
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
LocalVariableOrWriteNode.
uint32_t depth
LocalVariableOrWriteNode::depth.
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
struct pm_node * value
LocalVariableOrWriteNode::value.
pm_constant_id_t name
LocalVariableOrWriteNode::name.
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
uint32_t depth
LocalVariableReadNode::depth.
pm_constant_id_t name
LocalVariableReadNode::name.
uint32_t depth
LocalVariableTargetNode::depth.
pm_constant_id_t name
LocalVariableTargetNode::name.
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
struct pm_node * value
LocalVariableWriteNode::value.
uint32_t depth
LocalVariableWriteNode::depth.
pm_constant_id_t name
LocalVariableWriteNode::name.
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.
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
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.
pm_integer_t denominator
RationalNode::denominator.
pm_integer_t numerator
RationalNode::numerator.
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 * subsequent
RescueNode::subsequent.
pm_location_t operator_loc
RescueNode::operator_loc.
struct pm_node * reference
RescueNode::reference.
struct pm_node_list exceptions
RescueNode::exceptions.
struct pm_statements_node * statements
RescueNode::statements.
pm_constant_id_t name
RestParameterNode::name.
pm_location_t name_loc
RestParameterNode::name_loc.
pm_location_t operator_loc
RestParameterNode::operator_loc.
pm_location_t keyword_loc
ReturnNode::keyword_loc.
struct pm_arguments_node * arguments
ReturnNode::arguments.
struct pm_node * write
ShareableConstantNode::write.
pm_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.
pm_location_t keyword_loc
UnlessNode::keyword_loc.
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
struct pm_statements_node * statements
UnlessNode::statements.
struct pm_node * predicate
UnlessNode::predicate.
struct pm_else_node * else_clause
UnlessNode::else_clause.
struct pm_statements_node * statements
UntilNode::statements.
pm_location_t closing_loc
UntilNode::closing_loc.
struct pm_node * predicate
UntilNode::predicate.
pm_location_t keyword_loc
UntilNode::keyword_loc.
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
struct pm_statements_node * statements
WhenNode::statements.
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
pm_location_t keyword_loc
WhenNode::keyword_loc.
struct pm_node_list conditions
WhenNode::conditions.
pm_location_t closing_loc
WhileNode::closing_loc.
pm_location_t keyword_loc
WhileNode::keyword_loc.
struct pm_statements_node * statements
WhileNode::statements.
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
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.