9#line 2 "prism/templates/ext/prism/api_node.c.erb"
10#include "prism/extension.h"
11#include "prism/internal/allocator.h"
12#include "prism/internal/arena.h"
16extern VALUE rb_cPrism;
17extern VALUE rb_cPrismNode;
18extern VALUE rb_cPrismSource;
19extern VALUE rb_cPrismToken;
20extern VALUE rb_cPrismLocation;
22static VALUE rb_cPrismAliasGlobalVariableNode;
23static VALUE rb_cPrismAliasMethodNode;
24static VALUE rb_cPrismAlternationPatternNode;
25static VALUE rb_cPrismAndNode;
26static VALUE rb_cPrismArgumentsNode;
27static VALUE rb_cPrismArrayNode;
28static VALUE rb_cPrismArrayPatternNode;
29static VALUE rb_cPrismAssocNode;
30static VALUE rb_cPrismAssocSplatNode;
31static VALUE rb_cPrismBackReferenceReadNode;
32static VALUE rb_cPrismBeginNode;
33static VALUE rb_cPrismBlockArgumentNode;
34static VALUE rb_cPrismBlockLocalVariableNode;
35static VALUE rb_cPrismBlockNode;
36static VALUE rb_cPrismBlockParameterNode;
37static VALUE rb_cPrismBlockParametersNode;
38static VALUE rb_cPrismBreakNode;
39static VALUE rb_cPrismCallAndWriteNode;
40static VALUE rb_cPrismCallNode;
41static VALUE rb_cPrismCallOperatorWriteNode;
42static VALUE rb_cPrismCallOrWriteNode;
43static VALUE rb_cPrismCallTargetNode;
44static VALUE rb_cPrismCapturePatternNode;
45static VALUE rb_cPrismCaseMatchNode;
46static VALUE rb_cPrismCaseNode;
47static VALUE rb_cPrismClassNode;
48static VALUE rb_cPrismClassVariableAndWriteNode;
49static VALUE rb_cPrismClassVariableOperatorWriteNode;
50static VALUE rb_cPrismClassVariableOrWriteNode;
51static VALUE rb_cPrismClassVariableReadNode;
52static VALUE rb_cPrismClassVariableTargetNode;
53static VALUE rb_cPrismClassVariableWriteNode;
54static VALUE rb_cPrismConstantAndWriteNode;
55static VALUE rb_cPrismConstantOperatorWriteNode;
56static VALUE rb_cPrismConstantOrWriteNode;
57static VALUE rb_cPrismConstantPathAndWriteNode;
58static VALUE rb_cPrismConstantPathNode;
59static VALUE rb_cPrismConstantPathOperatorWriteNode;
60static VALUE rb_cPrismConstantPathOrWriteNode;
61static VALUE rb_cPrismConstantPathTargetNode;
62static VALUE rb_cPrismConstantPathWriteNode;
63static VALUE rb_cPrismConstantReadNode;
64static VALUE rb_cPrismConstantTargetNode;
65static VALUE rb_cPrismConstantWriteNode;
66static VALUE rb_cPrismDefNode;
67static VALUE rb_cPrismDefinedNode;
68static VALUE rb_cPrismElseNode;
69static VALUE rb_cPrismEmbeddedStatementsNode;
70static VALUE rb_cPrismEmbeddedVariableNode;
71static VALUE rb_cPrismEnsureNode;
72static VALUE rb_cPrismErrorRecoveryNode;
73static VALUE rb_cPrismFalseNode;
74static VALUE rb_cPrismFindPatternNode;
75static VALUE rb_cPrismFlipFlopNode;
76static VALUE rb_cPrismFloatNode;
77static VALUE rb_cPrismForNode;
78static VALUE rb_cPrismForwardingArgumentsNode;
79static VALUE rb_cPrismForwardingParameterNode;
80static VALUE rb_cPrismForwardingSuperNode;
81static VALUE rb_cPrismGlobalVariableAndWriteNode;
82static VALUE rb_cPrismGlobalVariableOperatorWriteNode;
83static VALUE rb_cPrismGlobalVariableOrWriteNode;
84static VALUE rb_cPrismGlobalVariableReadNode;
85static VALUE rb_cPrismGlobalVariableTargetNode;
86static VALUE rb_cPrismGlobalVariableWriteNode;
87static VALUE rb_cPrismHashNode;
88static VALUE rb_cPrismHashPatternNode;
89static VALUE rb_cPrismIfNode;
90static VALUE rb_cPrismImaginaryNode;
91static VALUE rb_cPrismImplicitNode;
92static VALUE rb_cPrismImplicitRestNode;
93static VALUE rb_cPrismInNode;
94static VALUE rb_cPrismIndexAndWriteNode;
95static VALUE rb_cPrismIndexOperatorWriteNode;
96static VALUE rb_cPrismIndexOrWriteNode;
97static VALUE rb_cPrismIndexTargetNode;
98static VALUE rb_cPrismInstanceVariableAndWriteNode;
99static VALUE rb_cPrismInstanceVariableOperatorWriteNode;
100static VALUE rb_cPrismInstanceVariableOrWriteNode;
101static VALUE rb_cPrismInstanceVariableReadNode;
102static VALUE rb_cPrismInstanceVariableTargetNode;
103static VALUE rb_cPrismInstanceVariableWriteNode;
104static VALUE rb_cPrismIntegerNode;
105static VALUE rb_cPrismInterpolatedMatchLastLineNode;
106static VALUE rb_cPrismInterpolatedRegularExpressionNode;
107static VALUE rb_cPrismInterpolatedStringNode;
108static VALUE rb_cPrismInterpolatedSymbolNode;
109static VALUE rb_cPrismInterpolatedXStringNode;
110static VALUE rb_cPrismItLocalVariableReadNode;
111static VALUE rb_cPrismItParametersNode;
112static VALUE rb_cPrismKeywordHashNode;
113static VALUE rb_cPrismKeywordRestParameterNode;
114static VALUE rb_cPrismLambdaNode;
115static VALUE rb_cPrismLocalVariableAndWriteNode;
116static VALUE rb_cPrismLocalVariableOperatorWriteNode;
117static VALUE rb_cPrismLocalVariableOrWriteNode;
118static VALUE rb_cPrismLocalVariableReadNode;
119static VALUE rb_cPrismLocalVariableTargetNode;
120static VALUE rb_cPrismLocalVariableWriteNode;
121static VALUE rb_cPrismMatchLastLineNode;
122static VALUE rb_cPrismMatchPredicateNode;
123static VALUE rb_cPrismMatchRequiredNode;
124static VALUE rb_cPrismMatchWriteNode;
125static VALUE rb_cPrismModuleNode;
126static VALUE rb_cPrismMultiTargetNode;
127static VALUE rb_cPrismMultiWriteNode;
128static VALUE rb_cPrismNextNode;
129static VALUE rb_cPrismNilNode;
130static VALUE rb_cPrismNoBlockParameterNode;
131static VALUE rb_cPrismNoKeywordsParameterNode;
132static VALUE rb_cPrismNumberedParametersNode;
133static VALUE rb_cPrismNumberedReferenceReadNode;
134static VALUE rb_cPrismOptionalKeywordParameterNode;
135static VALUE rb_cPrismOptionalParameterNode;
136static VALUE rb_cPrismOrNode;
137static VALUE rb_cPrismParametersNode;
138static VALUE rb_cPrismParenthesesNode;
139static VALUE rb_cPrismPinnedExpressionNode;
140static VALUE rb_cPrismPinnedVariableNode;
141static VALUE rb_cPrismPostExecutionNode;
142static VALUE rb_cPrismPreExecutionNode;
143static VALUE rb_cPrismProgramNode;
144static VALUE rb_cPrismRangeNode;
145static VALUE rb_cPrismRationalNode;
146static VALUE rb_cPrismRedoNode;
147static VALUE rb_cPrismRegularExpressionNode;
148static VALUE rb_cPrismRequiredKeywordParameterNode;
149static VALUE rb_cPrismRequiredParameterNode;
150static VALUE rb_cPrismRescueModifierNode;
151static VALUE rb_cPrismRescueNode;
152static VALUE rb_cPrismRestParameterNode;
153static VALUE rb_cPrismRetryNode;
154static VALUE rb_cPrismReturnNode;
155static VALUE rb_cPrismSelfNode;
156static VALUE rb_cPrismShareableConstantNode;
157static VALUE rb_cPrismSingletonClassNode;
158static VALUE rb_cPrismSourceEncodingNode;
159static VALUE rb_cPrismSourceFileNode;
160static VALUE rb_cPrismSourceLineNode;
161static VALUE rb_cPrismSplatNode;
162static VALUE rb_cPrismStatementsNode;
163static VALUE rb_cPrismStringNode;
164static VALUE rb_cPrismSuperNode;
165static VALUE rb_cPrismSymbolNode;
166static VALUE rb_cPrismTrueNode;
167static VALUE rb_cPrismUndefNode;
168static VALUE rb_cPrismUnlessNode;
169static VALUE rb_cPrismUntilNode;
170static VALUE rb_cPrismWhenNode;
171static VALUE rb_cPrismWhileNode;
172static VALUE rb_cPrismXStringNode;
173static VALUE rb_cPrismYieldNode;
176pm_location_new(
const uint32_t start,
const uint32_t length,
VALUE source,
bool freeze) {
181 uint64_t value = ((((uint64_t) start) << 32) | ((uint64_t) length));
188 ID type = rb_intern(pm_token_type(token->type));
189 VALUE location = pm_location_new((uint32_t) (token->start - pm_parser_start(parser)), (uint32_t) (token->end - token->start), 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 const uint8_t *start = pm_parser_start(parser);
239 VALUE source_string = rb_enc_str_new((
const char *) start, pm_parser_end(parser) - start, encoding);
246 for (
size_t index = 0; index < line_offsets->
size; index++) {
256 VALUE source =
rb_funcall(rb_cPrismSource, rb_intern(
"for"), 3, source_string,
LONG2NUM(pm_parser_start_line(parser)), offsets);
273 node->visited =
false;
282 *stack = current->prev;
293pm_ast_constants_each(
const pm_constant_t *constant,
void *data) {
297 VALUE string = rb_enc_str_new((
const char *) pm_constant_start(constant), pm_constant_length(constant), constants_data->encoding);
302 rb_set_errinfo(
Qnil);
312 pm_parser_constants_each(parser, pm_ast_constants_each, &constants_data);
316 pm_node_stack_push(node_arena, &node_stack, node);
319 while (node_stack != NULL) {
320 if (!node_stack->visited) {
321 if (node_stack->visit == NULL) {
322 pm_node_stack_pop(&node_stack);
327 const pm_node_t *node = node_stack->visit;
328 node_stack->visited =
true;
330 switch (PM_NODE_TYPE(node)) {
331#line 177 "prism/templates/ext/prism/api_node.c.erb"
332 case PM_ALIAS_GLOBAL_VARIABLE_NODE: {
338#line 177 "prism/templates/ext/prism/api_node.c.erb"
339 case PM_ALIAS_METHOD_NODE: {
345#line 177 "prism/templates/ext/prism/api_node.c.erb"
346 case PM_ALTERNATION_PATTERN_NODE: {
348 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
left);
349 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
right);
352#line 177 "prism/templates/ext/prism/api_node.c.erb"
355 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
left);
356 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
right);
359#line 177 "prism/templates/ext/prism/api_node.c.erb"
360 case PM_ARGUMENTS_NODE: {
362 for (
size_t index = 0; index < cast->
arguments.
size; index++) {
367#line 177 "prism/templates/ext/prism/api_node.c.erb"
368 case PM_ARRAY_NODE: {
370 for (
size_t index = 0; index < cast->
elements.
size; index++) {
375#line 177 "prism/templates/ext/prism/api_node.c.erb"
376 case PM_ARRAY_PATTERN_NODE: {
379 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
382 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
rest);
383 for (
size_t index = 0; index < cast->
posts.
size; index++) {
388#line 177 "prism/templates/ext/prism/api_node.c.erb"
389 case PM_ASSOC_NODE: {
391 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
key);
392 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
395#line 177 "prism/templates/ext/prism/api_node.c.erb"
396 case PM_ASSOC_SPLAT_NODE: {
398 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
401#line 177 "prism/templates/ext/prism/api_node.c.erb"
402 case PM_BEGIN_NODE: {
410#line 177 "prism/templates/ext/prism/api_node.c.erb"
411 case PM_BLOCK_ARGUMENT_NODE: {
416#line 177 "prism/templates/ext/prism/api_node.c.erb"
417 case PM_BLOCK_NODE: {
420 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
423#line 177 "prism/templates/ext/prism/api_node.c.erb"
424 case PM_BLOCK_PARAMETERS_NODE: {
427 for (
size_t index = 0; index < cast->
locals.
size; index++) {
432#line 177 "prism/templates/ext/prism/api_node.c.erb"
433 case PM_BREAK_NODE: {
438#line 177 "prism/templates/ext/prism/api_node.c.erb"
439 case PM_CALL_AND_WRITE_NODE: {
442 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
445#line 177 "prism/templates/ext/prism/api_node.c.erb"
450 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
453#line 177 "prism/templates/ext/prism/api_node.c.erb"
454 case PM_CALL_OPERATOR_WRITE_NODE: {
457 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
460#line 177 "prism/templates/ext/prism/api_node.c.erb"
461 case PM_CALL_OR_WRITE_NODE: {
464 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
467#line 177 "prism/templates/ext/prism/api_node.c.erb"
468 case PM_CALL_TARGET_NODE: {
473#line 177 "prism/templates/ext/prism/api_node.c.erb"
474 case PM_CAPTURE_PATTERN_NODE: {
476 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
477 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
target);
480#line 177 "prism/templates/ext/prism/api_node.c.erb"
481 case PM_CASE_MATCH_NODE: {
490#line 177 "prism/templates/ext/prism/api_node.c.erb"
500#line 177 "prism/templates/ext/prism/api_node.c.erb"
501 case PM_CLASS_NODE: {
505 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
508#line 177 "prism/templates/ext/prism/api_node.c.erb"
509 case PM_CLASS_VARIABLE_AND_WRITE_NODE: {
511 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
514#line 177 "prism/templates/ext/prism/api_node.c.erb"
515 case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
517 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
520#line 177 "prism/templates/ext/prism/api_node.c.erb"
521 case PM_CLASS_VARIABLE_OR_WRITE_NODE: {
523 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
526#line 177 "prism/templates/ext/prism/api_node.c.erb"
527 case PM_CLASS_VARIABLE_WRITE_NODE: {
529 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
532#line 177 "prism/templates/ext/prism/api_node.c.erb"
533 case PM_CONSTANT_AND_WRITE_NODE: {
535 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
538#line 177 "prism/templates/ext/prism/api_node.c.erb"
539 case PM_CONSTANT_OPERATOR_WRITE_NODE: {
541 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
544#line 177 "prism/templates/ext/prism/api_node.c.erb"
545 case PM_CONSTANT_OR_WRITE_NODE: {
547 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
550#line 177 "prism/templates/ext/prism/api_node.c.erb"
551 case PM_CONSTANT_PATH_AND_WRITE_NODE: {
553 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
target);
554 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
557#line 177 "prism/templates/ext/prism/api_node.c.erb"
558 case PM_CONSTANT_PATH_NODE: {
560 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
parent);
563#line 177 "prism/templates/ext/prism/api_node.c.erb"
564 case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
566 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
target);
567 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
570#line 177 "prism/templates/ext/prism/api_node.c.erb"
571 case PM_CONSTANT_PATH_OR_WRITE_NODE: {
573 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
target);
574 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
577#line 177 "prism/templates/ext/prism/api_node.c.erb"
578 case PM_CONSTANT_PATH_TARGET_NODE: {
580 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
parent);
583#line 177 "prism/templates/ext/prism/api_node.c.erb"
584 case PM_CONSTANT_PATH_WRITE_NODE: {
586 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
target);
587 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
590#line 177 "prism/templates/ext/prism/api_node.c.erb"
591 case PM_CONSTANT_WRITE_NODE: {
593 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
596#line 177 "prism/templates/ext/prism/api_node.c.erb"
601 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
604#line 177 "prism/templates/ext/prism/api_node.c.erb"
605 case PM_DEFINED_NODE: {
607 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
610#line 177 "prism/templates/ext/prism/api_node.c.erb"
616#line 177 "prism/templates/ext/prism/api_node.c.erb"
617 case PM_EMBEDDED_STATEMENTS_NODE: {
622#line 177 "prism/templates/ext/prism/api_node.c.erb"
623 case PM_EMBEDDED_VARIABLE_NODE: {
628#line 177 "prism/templates/ext/prism/api_node.c.erb"
629 case PM_ENSURE_NODE: {
634#line 177 "prism/templates/ext/prism/api_node.c.erb"
635 case PM_ERROR_RECOVERY_NODE: {
640#line 177 "prism/templates/ext/prism/api_node.c.erb"
641 case PM_FIND_PATTERN_NODE: {
644 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
left);
645 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
648 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
right);
651#line 177 "prism/templates/ext/prism/api_node.c.erb"
652 case PM_FLIP_FLOP_NODE: {
654 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
left);
655 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
right);
658#line 177 "prism/templates/ext/prism/api_node.c.erb"
661 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
index);
666#line 177 "prism/templates/ext/prism/api_node.c.erb"
667 case PM_FORWARDING_SUPER_NODE: {
669 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
672#line 177 "prism/templates/ext/prism/api_node.c.erb"
673 case PM_GLOBAL_VARIABLE_AND_WRITE_NODE: {
675 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
678#line 177 "prism/templates/ext/prism/api_node.c.erb"
679 case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
681 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
684#line 177 "prism/templates/ext/prism/api_node.c.erb"
685 case PM_GLOBAL_VARIABLE_OR_WRITE_NODE: {
687 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
690#line 177 "prism/templates/ext/prism/api_node.c.erb"
691 case PM_GLOBAL_VARIABLE_WRITE_NODE: {
693 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
696#line 177 "prism/templates/ext/prism/api_node.c.erb"
699 for (
size_t index = 0; index < cast->
elements.
size; index++) {
704#line 177 "prism/templates/ext/prism/api_node.c.erb"
705 case PM_HASH_PATTERN_NODE: {
708 for (
size_t index = 0; index < cast->
elements.
size; index++) {
711 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
rest);
714#line 177 "prism/templates/ext/prism/api_node.c.erb"
722#line 177 "prism/templates/ext/prism/api_node.c.erb"
723 case PM_IMAGINARY_NODE: {
728#line 177 "prism/templates/ext/prism/api_node.c.erb"
729 case PM_IMPLICIT_NODE: {
731 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
734#line 177 "prism/templates/ext/prism/api_node.c.erb"
741#line 177 "prism/templates/ext/prism/api_node.c.erb"
742 case PM_INDEX_AND_WRITE_NODE: {
746 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
747 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
750#line 177 "prism/templates/ext/prism/api_node.c.erb"
751 case PM_INDEX_OPERATOR_WRITE_NODE: {
755 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
756 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
759#line 177 "prism/templates/ext/prism/api_node.c.erb"
760 case PM_INDEX_OR_WRITE_NODE: {
764 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
765 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
768#line 177 "prism/templates/ext/prism/api_node.c.erb"
769 case PM_INDEX_TARGET_NODE: {
773 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
776#line 177 "prism/templates/ext/prism/api_node.c.erb"
777 case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
779 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
782#line 177 "prism/templates/ext/prism/api_node.c.erb"
783 case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
785 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
788#line 177 "prism/templates/ext/prism/api_node.c.erb"
789 case PM_INSTANCE_VARIABLE_OR_WRITE_NODE: {
791 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
794#line 177 "prism/templates/ext/prism/api_node.c.erb"
795 case PM_INSTANCE_VARIABLE_WRITE_NODE: {
797 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
800#line 177 "prism/templates/ext/prism/api_node.c.erb"
801 case PM_INTERPOLATED_MATCH_LAST_LINE_NODE: {
803 for (
size_t index = 0; index < cast->
parts.
size; index++) {
808#line 177 "prism/templates/ext/prism/api_node.c.erb"
809 case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
811 for (
size_t index = 0; index < cast->
parts.
size; index++) {
816#line 177 "prism/templates/ext/prism/api_node.c.erb"
817 case PM_INTERPOLATED_STRING_NODE: {
819 for (
size_t index = 0; index < cast->
parts.
size; index++) {
824#line 177 "prism/templates/ext/prism/api_node.c.erb"
825 case PM_INTERPOLATED_SYMBOL_NODE: {
827 for (
size_t index = 0; index < cast->
parts.
size; index++) {
832#line 177 "prism/templates/ext/prism/api_node.c.erb"
833 case PM_INTERPOLATED_X_STRING_NODE: {
835 for (
size_t index = 0; index < cast->
parts.
size; index++) {
840#line 177 "prism/templates/ext/prism/api_node.c.erb"
841 case PM_KEYWORD_HASH_NODE: {
843 for (
size_t index = 0; index < cast->
elements.
size; index++) {
848#line 177 "prism/templates/ext/prism/api_node.c.erb"
849 case PM_LAMBDA_NODE: {
852 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
855#line 177 "prism/templates/ext/prism/api_node.c.erb"
856 case PM_LOCAL_VARIABLE_AND_WRITE_NODE: {
858 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
861#line 177 "prism/templates/ext/prism/api_node.c.erb"
862 case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
864 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
867#line 177 "prism/templates/ext/prism/api_node.c.erb"
868 case PM_LOCAL_VARIABLE_OR_WRITE_NODE: {
870 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
873#line 177 "prism/templates/ext/prism/api_node.c.erb"
874 case PM_LOCAL_VARIABLE_WRITE_NODE: {
876 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
879#line 177 "prism/templates/ext/prism/api_node.c.erb"
880 case PM_MATCH_PREDICATE_NODE: {
882 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
886#line 177 "prism/templates/ext/prism/api_node.c.erb"
887 case PM_MATCH_REQUIRED_NODE: {
889 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
893#line 177 "prism/templates/ext/prism/api_node.c.erb"
894 case PM_MATCH_WRITE_NODE: {
896 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
call);
897 for (
size_t index = 0; index < cast->
targets.
size; index++) {
902#line 177 "prism/templates/ext/prism/api_node.c.erb"
903 case PM_MODULE_NODE: {
906 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
909#line 177 "prism/templates/ext/prism/api_node.c.erb"
910 case PM_MULTI_TARGET_NODE: {
912 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
915 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
rest);
916 for (
size_t index = 0; index < cast->
rights.
size; index++) {
921#line 177 "prism/templates/ext/prism/api_node.c.erb"
922 case PM_MULTI_WRITE_NODE: {
924 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
927 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
rest);
928 for (
size_t index = 0; index < cast->
rights.
size; index++) {
931 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
934#line 177 "prism/templates/ext/prism/api_node.c.erb"
940#line 177 "prism/templates/ext/prism/api_node.c.erb"
941 case PM_OPTIONAL_KEYWORD_PARAMETER_NODE: {
943 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
946#line 177 "prism/templates/ext/prism/api_node.c.erb"
947 case PM_OPTIONAL_PARAMETER_NODE: {
949 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
value);
952#line 177 "prism/templates/ext/prism/api_node.c.erb"
955 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
left);
956 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
right);
959#line 177 "prism/templates/ext/prism/api_node.c.erb"
960 case PM_PARAMETERS_NODE: {
962 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
965 for (
size_t index = 0; index < cast->
optionals.
size; index++) {
968 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
rest);
969 for (
size_t index = 0; index < cast->
posts.
size; index++) {
972 for (
size_t index = 0; index < cast->
keywords.
size; index++) {
976 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
979#line 177 "prism/templates/ext/prism/api_node.c.erb"
980 case PM_PARENTHESES_NODE: {
982 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
985#line 177 "prism/templates/ext/prism/api_node.c.erb"
986 case PM_PINNED_EXPRESSION_NODE: {
991#line 177 "prism/templates/ext/prism/api_node.c.erb"
992 case PM_PINNED_VARIABLE_NODE: {
997#line 177 "prism/templates/ext/prism/api_node.c.erb"
998 case PM_POST_EXECUTION_NODE: {
1003#line 177 "prism/templates/ext/prism/api_node.c.erb"
1004 case PM_PRE_EXECUTION_NODE: {
1009#line 177 "prism/templates/ext/prism/api_node.c.erb"
1010 case PM_PROGRAM_NODE: {
1015#line 177 "prism/templates/ext/prism/api_node.c.erb"
1016 case PM_RANGE_NODE: {
1018 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
left);
1019 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
right);
1022#line 177 "prism/templates/ext/prism/api_node.c.erb"
1023 case PM_RESCUE_MODIFIER_NODE: {
1029#line 177 "prism/templates/ext/prism/api_node.c.erb"
1030 case PM_RESCUE_NODE: {
1040#line 177 "prism/templates/ext/prism/api_node.c.erb"
1041 case PM_RETURN_NODE: {
1046#line 177 "prism/templates/ext/prism/api_node.c.erb"
1047 case PM_SHAREABLE_CONSTANT_NODE: {
1049 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
write);
1052#line 177 "prism/templates/ext/prism/api_node.c.erb"
1053 case PM_SINGLETON_CLASS_NODE: {
1056 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
body);
1059#line 177 "prism/templates/ext/prism/api_node.c.erb"
1060 case PM_SPLAT_NODE: {
1065#line 177 "prism/templates/ext/prism/api_node.c.erb"
1066 case PM_STATEMENTS_NODE: {
1068 for (
size_t index = 0; index < cast->
body.
size; index++) {
1073#line 177 "prism/templates/ext/prism/api_node.c.erb"
1074 case PM_SUPER_NODE: {
1077 pm_node_stack_push(node_arena, &node_stack, (
pm_node_t *) cast->
block);
1080#line 177 "prism/templates/ext/prism/api_node.c.erb"
1081 case PM_UNDEF_NODE: {
1083 for (
size_t index = 0; index < cast->
names.
size; index++) {
1088#line 177 "prism/templates/ext/prism/api_node.c.erb"
1089 case PM_UNLESS_NODE: {
1096#line 177 "prism/templates/ext/prism/api_node.c.erb"
1097 case PM_UNTIL_NODE: {
1103#line 177 "prism/templates/ext/prism/api_node.c.erb"
1104 case PM_WHEN_NODE: {
1112#line 177 "prism/templates/ext/prism/api_node.c.erb"
1113 case PM_WHILE_NODE: {
1119#line 177 "prism/templates/ext/prism/api_node.c.erb"
1120 case PM_YIELD_NODE: {
1128#line 197 "prism/templates/ext/prism/api_node.c.erb"
1130 const pm_node_t *node = pm_node_stack_pop(&node_stack);
1132 switch (PM_NODE_TYPE(node)) {
1133#line 203 "prism/templates/ext/prism/api_node.c.erb"
1134 case PM_ALIAS_GLOBAL_VARIABLE_NODE: {
1151#line 226 "prism/templates/ext/prism/api_node.c.erb"
1155#line 226 "prism/templates/ext/prism/api_node.c.erb"
1159#line 253 "prism/templates/ext/prism/api_node.c.erb"
1168#line 203 "prism/templates/ext/prism/api_node.c.erb"
1169 case PM_ALIAS_METHOD_NODE: {
1186#line 226 "prism/templates/ext/prism/api_node.c.erb"
1190#line 226 "prism/templates/ext/prism/api_node.c.erb"
1194#line 253 "prism/templates/ext/prism/api_node.c.erb"
1203#line 203 "prism/templates/ext/prism/api_node.c.erb"
1204 case PM_ALTERNATION_PATTERN_NODE: {
1221#line 226 "prism/templates/ext/prism/api_node.c.erb"
1225#line 226 "prism/templates/ext/prism/api_node.c.erb"
1229#line 253 "prism/templates/ext/prism/api_node.c.erb"
1238#line 203 "prism/templates/ext/prism/api_node.c.erb"
1256#line 226 "prism/templates/ext/prism/api_node.c.erb"
1260#line 226 "prism/templates/ext/prism/api_node.c.erb"
1264#line 253 "prism/templates/ext/prism/api_node.c.erb"
1273#line 203 "prism/templates/ext/prism/api_node.c.erb"
1274 case PM_ARGUMENTS_NODE: {
1291#line 229 "prism/templates/ext/prism/api_node.c.erb"
1293 for (
size_t index = 0; index < cast->
arguments.
size; index++) {
1304#line 203 "prism/templates/ext/prism/api_node.c.erb"
1305 case PM_ARRAY_NODE: {
1322#line 229 "prism/templates/ext/prism/api_node.c.erb"
1324 for (
size_t index = 0; index < cast->
elements.
size; index++) {
1330#line 256 "prism/templates/ext/prism/api_node.c.erb"
1334#line 256 "prism/templates/ext/prism/api_node.c.erb"
1343#line 203 "prism/templates/ext/prism/api_node.c.erb"
1344 case PM_ARRAY_PATTERN_NODE: {
1361#line 226 "prism/templates/ext/prism/api_node.c.erb"
1365#line 229 "prism/templates/ext/prism/api_node.c.erb"
1367 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
1373#line 226 "prism/templates/ext/prism/api_node.c.erb"
1377#line 229 "prism/templates/ext/prism/api_node.c.erb"
1379 for (
size_t index = 0; index < cast->
posts.
size; index++) {
1385#line 256 "prism/templates/ext/prism/api_node.c.erb"
1389#line 256 "prism/templates/ext/prism/api_node.c.erb"
1398#line 203 "prism/templates/ext/prism/api_node.c.erb"
1399 case PM_ASSOC_NODE: {
1416#line 226 "prism/templates/ext/prism/api_node.c.erb"
1420#line 226 "prism/templates/ext/prism/api_node.c.erb"
1424#line 256 "prism/templates/ext/prism/api_node.c.erb"
1433#line 203 "prism/templates/ext/prism/api_node.c.erb"
1434 case PM_ASSOC_SPLAT_NODE: {
1451#line 226 "prism/templates/ext/prism/api_node.c.erb"
1455#line 253 "prism/templates/ext/prism/api_node.c.erb"
1464#line 203 "prism/templates/ext/prism/api_node.c.erb"
1465 case PM_BACK_REFERENCE_READ_NODE: {
1482#line 239 "prism/templates/ext/prism/api_node.c.erb"
1483 assert(cast->
name != 0);
1492#line 203 "prism/templates/ext/prism/api_node.c.erb"
1493 case PM_BEGIN_NODE: {
1510#line 256 "prism/templates/ext/prism/api_node.c.erb"
1514#line 226 "prism/templates/ext/prism/api_node.c.erb"
1518#line 226 "prism/templates/ext/prism/api_node.c.erb"
1522#line 226 "prism/templates/ext/prism/api_node.c.erb"
1526#line 226 "prism/templates/ext/prism/api_node.c.erb"
1530#line 256 "prism/templates/ext/prism/api_node.c.erb"
1539#line 203 "prism/templates/ext/prism/api_node.c.erb"
1540 case PM_BLOCK_ARGUMENT_NODE: {
1557#line 226 "prism/templates/ext/prism/api_node.c.erb"
1561#line 253 "prism/templates/ext/prism/api_node.c.erb"
1570#line 203 "prism/templates/ext/prism/api_node.c.erb"
1571 case PM_BLOCK_LOCAL_VARIABLE_NODE: {
1588#line 239 "prism/templates/ext/prism/api_node.c.erb"
1589 assert(cast->
name != 0);
1598#line 203 "prism/templates/ext/prism/api_node.c.erb"
1599 case PM_BLOCK_NODE: {
1616#line 245 "prism/templates/ext/prism/api_node.c.erb"
1618 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1625#line 226 "prism/templates/ext/prism/api_node.c.erb"
1629#line 226 "prism/templates/ext/prism/api_node.c.erb"
1633#line 253 "prism/templates/ext/prism/api_node.c.erb"
1637#line 253 "prism/templates/ext/prism/api_node.c.erb"
1646#line 203 "prism/templates/ext/prism/api_node.c.erb"
1647 case PM_BLOCK_PARAMETER_NODE: {
1667#line 256 "prism/templates/ext/prism/api_node.c.erb"
1671#line 253 "prism/templates/ext/prism/api_node.c.erb"
1680#line 203 "prism/templates/ext/prism/api_node.c.erb"
1681 case PM_BLOCK_PARAMETERS_NODE: {
1698#line 226 "prism/templates/ext/prism/api_node.c.erb"
1702#line 229 "prism/templates/ext/prism/api_node.c.erb"
1704 for (
size_t index = 0; index < cast->
locals.
size; index++) {
1710#line 256 "prism/templates/ext/prism/api_node.c.erb"
1714#line 256 "prism/templates/ext/prism/api_node.c.erb"
1723#line 203 "prism/templates/ext/prism/api_node.c.erb"
1724 case PM_BREAK_NODE: {
1741#line 226 "prism/templates/ext/prism/api_node.c.erb"
1745#line 253 "prism/templates/ext/prism/api_node.c.erb"
1754#line 203 "prism/templates/ext/prism/api_node.c.erb"
1755 case PM_CALL_AND_WRITE_NODE: {
1772#line 226 "prism/templates/ext/prism/api_node.c.erb"
1776#line 256 "prism/templates/ext/prism/api_node.c.erb"
1780#line 256 "prism/templates/ext/prism/api_node.c.erb"
1784#line 239 "prism/templates/ext/prism/api_node.c.erb"
1789#line 239 "prism/templates/ext/prism/api_node.c.erb"
1794#line 253 "prism/templates/ext/prism/api_node.c.erb"
1798#line 226 "prism/templates/ext/prism/api_node.c.erb"
1807#line 203 "prism/templates/ext/prism/api_node.c.erb"
1808 case PM_CALL_NODE: {
1825#line 226 "prism/templates/ext/prism/api_node.c.erb"
1829#line 256 "prism/templates/ext/prism/api_node.c.erb"
1833#line 239 "prism/templates/ext/prism/api_node.c.erb"
1834 assert(cast->
name != 0);
1838#line 256 "prism/templates/ext/prism/api_node.c.erb"
1842#line 256 "prism/templates/ext/prism/api_node.c.erb"
1846#line 226 "prism/templates/ext/prism/api_node.c.erb"
1850#line 256 "prism/templates/ext/prism/api_node.c.erb"
1854#line 256 "prism/templates/ext/prism/api_node.c.erb"
1858#line 226 "prism/templates/ext/prism/api_node.c.erb"
1867#line 203 "prism/templates/ext/prism/api_node.c.erb"
1868 case PM_CALL_OPERATOR_WRITE_NODE: {
1885#line 226 "prism/templates/ext/prism/api_node.c.erb"
1889#line 256 "prism/templates/ext/prism/api_node.c.erb"
1893#line 256 "prism/templates/ext/prism/api_node.c.erb"
1897#line 239 "prism/templates/ext/prism/api_node.c.erb"
1902#line 239 "prism/templates/ext/prism/api_node.c.erb"
1907#line 239 "prism/templates/ext/prism/api_node.c.erb"
1912#line 253 "prism/templates/ext/prism/api_node.c.erb"
1916#line 226 "prism/templates/ext/prism/api_node.c.erb"
1925#line 203 "prism/templates/ext/prism/api_node.c.erb"
1926 case PM_CALL_OR_WRITE_NODE: {
1943#line 226 "prism/templates/ext/prism/api_node.c.erb"
1947#line 256 "prism/templates/ext/prism/api_node.c.erb"
1951#line 256 "prism/templates/ext/prism/api_node.c.erb"
1955#line 239 "prism/templates/ext/prism/api_node.c.erb"
1960#line 239 "prism/templates/ext/prism/api_node.c.erb"
1965#line 253 "prism/templates/ext/prism/api_node.c.erb"
1969#line 226 "prism/templates/ext/prism/api_node.c.erb"
1978#line 203 "prism/templates/ext/prism/api_node.c.erb"
1979 case PM_CALL_TARGET_NODE: {
1996#line 226 "prism/templates/ext/prism/api_node.c.erb"
2000#line 253 "prism/templates/ext/prism/api_node.c.erb"
2004#line 239 "prism/templates/ext/prism/api_node.c.erb"
2005 assert(cast->
name != 0);
2009#line 253 "prism/templates/ext/prism/api_node.c.erb"
2018#line 203 "prism/templates/ext/prism/api_node.c.erb"
2019 case PM_CAPTURE_PATTERN_NODE: {
2036#line 226 "prism/templates/ext/prism/api_node.c.erb"
2040#line 226 "prism/templates/ext/prism/api_node.c.erb"
2044#line 253 "prism/templates/ext/prism/api_node.c.erb"
2053#line 203 "prism/templates/ext/prism/api_node.c.erb"
2054 case PM_CASE_MATCH_NODE: {
2071#line 226 "prism/templates/ext/prism/api_node.c.erb"
2075#line 229 "prism/templates/ext/prism/api_node.c.erb"
2083#line 226 "prism/templates/ext/prism/api_node.c.erb"
2087#line 253 "prism/templates/ext/prism/api_node.c.erb"
2091#line 253 "prism/templates/ext/prism/api_node.c.erb"
2100#line 203 "prism/templates/ext/prism/api_node.c.erb"
2101 case PM_CASE_NODE: {
2118#line 226 "prism/templates/ext/prism/api_node.c.erb"
2122#line 229 "prism/templates/ext/prism/api_node.c.erb"
2130#line 226 "prism/templates/ext/prism/api_node.c.erb"
2134#line 253 "prism/templates/ext/prism/api_node.c.erb"
2138#line 253 "prism/templates/ext/prism/api_node.c.erb"
2147#line 203 "prism/templates/ext/prism/api_node.c.erb"
2148 case PM_CLASS_NODE: {
2165#line 245 "prism/templates/ext/prism/api_node.c.erb"
2167 for (
size_t index = 0; index < cast->
locals.
size; index++) {
2174#line 253 "prism/templates/ext/prism/api_node.c.erb"
2178#line 226 "prism/templates/ext/prism/api_node.c.erb"
2182#line 256 "prism/templates/ext/prism/api_node.c.erb"
2186#line 226 "prism/templates/ext/prism/api_node.c.erb"
2190#line 226 "prism/templates/ext/prism/api_node.c.erb"
2194#line 253 "prism/templates/ext/prism/api_node.c.erb"
2198#line 239 "prism/templates/ext/prism/api_node.c.erb"
2199 assert(cast->
name != 0);
2208#line 203 "prism/templates/ext/prism/api_node.c.erb"
2209 case PM_CLASS_VARIABLE_AND_WRITE_NODE: {
2226#line 239 "prism/templates/ext/prism/api_node.c.erb"
2227 assert(cast->
name != 0);
2231#line 253 "prism/templates/ext/prism/api_node.c.erb"
2235#line 253 "prism/templates/ext/prism/api_node.c.erb"
2239#line 226 "prism/templates/ext/prism/api_node.c.erb"
2248#line 203 "prism/templates/ext/prism/api_node.c.erb"
2249 case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
2266#line 239 "prism/templates/ext/prism/api_node.c.erb"
2267 assert(cast->
name != 0);
2271#line 253 "prism/templates/ext/prism/api_node.c.erb"
2275#line 253 "prism/templates/ext/prism/api_node.c.erb"
2279#line 226 "prism/templates/ext/prism/api_node.c.erb"
2283#line 239 "prism/templates/ext/prism/api_node.c.erb"
2293#line 203 "prism/templates/ext/prism/api_node.c.erb"
2294 case PM_CLASS_VARIABLE_OR_WRITE_NODE: {
2311#line 239 "prism/templates/ext/prism/api_node.c.erb"
2312 assert(cast->
name != 0);
2316#line 253 "prism/templates/ext/prism/api_node.c.erb"
2320#line 253 "prism/templates/ext/prism/api_node.c.erb"
2324#line 226 "prism/templates/ext/prism/api_node.c.erb"
2333#line 203 "prism/templates/ext/prism/api_node.c.erb"
2334 case PM_CLASS_VARIABLE_READ_NODE: {
2351#line 239 "prism/templates/ext/prism/api_node.c.erb"
2352 assert(cast->
name != 0);
2361#line 203 "prism/templates/ext/prism/api_node.c.erb"
2362 case PM_CLASS_VARIABLE_TARGET_NODE: {
2379#line 239 "prism/templates/ext/prism/api_node.c.erb"
2380 assert(cast->
name != 0);
2389#line 203 "prism/templates/ext/prism/api_node.c.erb"
2390 case PM_CLASS_VARIABLE_WRITE_NODE: {
2407#line 239 "prism/templates/ext/prism/api_node.c.erb"
2408 assert(cast->
name != 0);
2412#line 253 "prism/templates/ext/prism/api_node.c.erb"
2416#line 226 "prism/templates/ext/prism/api_node.c.erb"
2420#line 253 "prism/templates/ext/prism/api_node.c.erb"
2429#line 203 "prism/templates/ext/prism/api_node.c.erb"
2430 case PM_CONSTANT_AND_WRITE_NODE: {
2447#line 239 "prism/templates/ext/prism/api_node.c.erb"
2448 assert(cast->
name != 0);
2452#line 253 "prism/templates/ext/prism/api_node.c.erb"
2456#line 253 "prism/templates/ext/prism/api_node.c.erb"
2460#line 226 "prism/templates/ext/prism/api_node.c.erb"
2469#line 203 "prism/templates/ext/prism/api_node.c.erb"
2470 case PM_CONSTANT_OPERATOR_WRITE_NODE: {
2487#line 239 "prism/templates/ext/prism/api_node.c.erb"
2488 assert(cast->
name != 0);
2492#line 253 "prism/templates/ext/prism/api_node.c.erb"
2496#line 253 "prism/templates/ext/prism/api_node.c.erb"
2500#line 226 "prism/templates/ext/prism/api_node.c.erb"
2504#line 239 "prism/templates/ext/prism/api_node.c.erb"
2514#line 203 "prism/templates/ext/prism/api_node.c.erb"
2515 case PM_CONSTANT_OR_WRITE_NODE: {
2532#line 239 "prism/templates/ext/prism/api_node.c.erb"
2533 assert(cast->
name != 0);
2537#line 253 "prism/templates/ext/prism/api_node.c.erb"
2541#line 253 "prism/templates/ext/prism/api_node.c.erb"
2545#line 226 "prism/templates/ext/prism/api_node.c.erb"
2554#line 203 "prism/templates/ext/prism/api_node.c.erb"
2555 case PM_CONSTANT_PATH_AND_WRITE_NODE: {
2572#line 226 "prism/templates/ext/prism/api_node.c.erb"
2576#line 253 "prism/templates/ext/prism/api_node.c.erb"
2580#line 226 "prism/templates/ext/prism/api_node.c.erb"
2589#line 203 "prism/templates/ext/prism/api_node.c.erb"
2590 case PM_CONSTANT_PATH_NODE: {
2607#line 226 "prism/templates/ext/prism/api_node.c.erb"
2614#line 253 "prism/templates/ext/prism/api_node.c.erb"
2618#line 253 "prism/templates/ext/prism/api_node.c.erb"
2627#line 203 "prism/templates/ext/prism/api_node.c.erb"
2628 case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
2645#line 226 "prism/templates/ext/prism/api_node.c.erb"
2649#line 253 "prism/templates/ext/prism/api_node.c.erb"
2653#line 226 "prism/templates/ext/prism/api_node.c.erb"
2657#line 239 "prism/templates/ext/prism/api_node.c.erb"
2667#line 203 "prism/templates/ext/prism/api_node.c.erb"
2668 case PM_CONSTANT_PATH_OR_WRITE_NODE: {
2685#line 226 "prism/templates/ext/prism/api_node.c.erb"
2689#line 253 "prism/templates/ext/prism/api_node.c.erb"
2693#line 226 "prism/templates/ext/prism/api_node.c.erb"
2702#line 203 "prism/templates/ext/prism/api_node.c.erb"
2703 case PM_CONSTANT_PATH_TARGET_NODE: {
2720#line 226 "prism/templates/ext/prism/api_node.c.erb"
2727#line 253 "prism/templates/ext/prism/api_node.c.erb"
2731#line 253 "prism/templates/ext/prism/api_node.c.erb"
2740#line 203 "prism/templates/ext/prism/api_node.c.erb"
2741 case PM_CONSTANT_PATH_WRITE_NODE: {
2758#line 226 "prism/templates/ext/prism/api_node.c.erb"
2762#line 253 "prism/templates/ext/prism/api_node.c.erb"
2766#line 226 "prism/templates/ext/prism/api_node.c.erb"
2775#line 203 "prism/templates/ext/prism/api_node.c.erb"
2776 case PM_CONSTANT_READ_NODE: {
2793#line 239 "prism/templates/ext/prism/api_node.c.erb"
2794 assert(cast->
name != 0);
2803#line 203 "prism/templates/ext/prism/api_node.c.erb"
2804 case PM_CONSTANT_TARGET_NODE: {
2821#line 239 "prism/templates/ext/prism/api_node.c.erb"
2822 assert(cast->
name != 0);
2831#line 203 "prism/templates/ext/prism/api_node.c.erb"
2832 case PM_CONSTANT_WRITE_NODE: {
2849#line 239 "prism/templates/ext/prism/api_node.c.erb"
2850 assert(cast->
name != 0);
2854#line 253 "prism/templates/ext/prism/api_node.c.erb"
2858#line 226 "prism/templates/ext/prism/api_node.c.erb"
2862#line 253 "prism/templates/ext/prism/api_node.c.erb"
2871#line 203 "prism/templates/ext/prism/api_node.c.erb"
2889#line 239 "prism/templates/ext/prism/api_node.c.erb"
2890 assert(cast->
name != 0);
2894#line 253 "prism/templates/ext/prism/api_node.c.erb"
2898#line 226 "prism/templates/ext/prism/api_node.c.erb"
2902#line 226 "prism/templates/ext/prism/api_node.c.erb"
2906#line 226 "prism/templates/ext/prism/api_node.c.erb"
2910#line 245 "prism/templates/ext/prism/api_node.c.erb"
2912 for (
size_t index = 0; index < cast->
locals.
size; index++) {
2919#line 253 "prism/templates/ext/prism/api_node.c.erb"
2923#line 256 "prism/templates/ext/prism/api_node.c.erb"
2927#line 256 "prism/templates/ext/prism/api_node.c.erb"
2931#line 256 "prism/templates/ext/prism/api_node.c.erb"
2935#line 256 "prism/templates/ext/prism/api_node.c.erb"
2939#line 256 "prism/templates/ext/prism/api_node.c.erb"
2948#line 203 "prism/templates/ext/prism/api_node.c.erb"
2949 case PM_DEFINED_NODE: {
2966#line 256 "prism/templates/ext/prism/api_node.c.erb"
2970#line 226 "prism/templates/ext/prism/api_node.c.erb"
2974#line 256 "prism/templates/ext/prism/api_node.c.erb"
2978#line 253 "prism/templates/ext/prism/api_node.c.erb"
2987#line 203 "prism/templates/ext/prism/api_node.c.erb"
2988 case PM_ELSE_NODE: {
3005#line 253 "prism/templates/ext/prism/api_node.c.erb"
3009#line 226 "prism/templates/ext/prism/api_node.c.erb"
3013#line 256 "prism/templates/ext/prism/api_node.c.erb"
3022#line 203 "prism/templates/ext/prism/api_node.c.erb"
3023 case PM_EMBEDDED_STATEMENTS_NODE: {
3040#line 253 "prism/templates/ext/prism/api_node.c.erb"
3044#line 226 "prism/templates/ext/prism/api_node.c.erb"
3048#line 253 "prism/templates/ext/prism/api_node.c.erb"
3057#line 203 "prism/templates/ext/prism/api_node.c.erb"
3058 case PM_EMBEDDED_VARIABLE_NODE: {
3075#line 253 "prism/templates/ext/prism/api_node.c.erb"
3079#line 226 "prism/templates/ext/prism/api_node.c.erb"
3088#line 203 "prism/templates/ext/prism/api_node.c.erb"
3089 case PM_ENSURE_NODE: {
3106#line 253 "prism/templates/ext/prism/api_node.c.erb"
3110#line 226 "prism/templates/ext/prism/api_node.c.erb"
3114#line 253 "prism/templates/ext/prism/api_node.c.erb"
3123#line 203 "prism/templates/ext/prism/api_node.c.erb"
3124 case PM_ERROR_RECOVERY_NODE: {
3140#line 226 "prism/templates/ext/prism/api_node.c.erb"
3149#line 203 "prism/templates/ext/prism/api_node.c.erb"
3150 case PM_FALSE_NODE: {
3171#line 203 "prism/templates/ext/prism/api_node.c.erb"
3172 case PM_FIND_PATTERN_NODE: {
3189#line 226 "prism/templates/ext/prism/api_node.c.erb"
3193#line 226 "prism/templates/ext/prism/api_node.c.erb"
3197#line 229 "prism/templates/ext/prism/api_node.c.erb"
3199 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
3205#line 226 "prism/templates/ext/prism/api_node.c.erb"
3209#line 256 "prism/templates/ext/prism/api_node.c.erb"
3213#line 256 "prism/templates/ext/prism/api_node.c.erb"
3222#line 203 "prism/templates/ext/prism/api_node.c.erb"
3223 case PM_FLIP_FLOP_NODE: {
3240#line 226 "prism/templates/ext/prism/api_node.c.erb"
3244#line 226 "prism/templates/ext/prism/api_node.c.erb"
3248#line 253 "prism/templates/ext/prism/api_node.c.erb"
3257#line 203 "prism/templates/ext/prism/api_node.c.erb"
3258 case PM_FLOAT_NODE: {
3275#line 268 "prism/templates/ext/prism/api_node.c.erb"
3284#line 203 "prism/templates/ext/prism/api_node.c.erb"
3302#line 226 "prism/templates/ext/prism/api_node.c.erb"
3306#line 226 "prism/templates/ext/prism/api_node.c.erb"
3310#line 226 "prism/templates/ext/prism/api_node.c.erb"
3314#line 253 "prism/templates/ext/prism/api_node.c.erb"
3318#line 253 "prism/templates/ext/prism/api_node.c.erb"
3322#line 256 "prism/templates/ext/prism/api_node.c.erb"
3326#line 253 "prism/templates/ext/prism/api_node.c.erb"
3335#line 203 "prism/templates/ext/prism/api_node.c.erb"
3336 case PM_FORWARDING_ARGUMENTS_NODE: {
3357#line 203 "prism/templates/ext/prism/api_node.c.erb"
3358 case PM_FORWARDING_PARAMETER_NODE: {
3379#line 203 "prism/templates/ext/prism/api_node.c.erb"
3380 case PM_FORWARDING_SUPER_NODE: {
3397#line 253 "prism/templates/ext/prism/api_node.c.erb"
3401#line 226 "prism/templates/ext/prism/api_node.c.erb"
3410#line 203 "prism/templates/ext/prism/api_node.c.erb"
3411 case PM_GLOBAL_VARIABLE_AND_WRITE_NODE: {
3428#line 239 "prism/templates/ext/prism/api_node.c.erb"
3429 assert(cast->
name != 0);
3433#line 253 "prism/templates/ext/prism/api_node.c.erb"
3437#line 253 "prism/templates/ext/prism/api_node.c.erb"
3441#line 226 "prism/templates/ext/prism/api_node.c.erb"
3450#line 203 "prism/templates/ext/prism/api_node.c.erb"
3451 case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
3468#line 239 "prism/templates/ext/prism/api_node.c.erb"
3469 assert(cast->
name != 0);
3473#line 253 "prism/templates/ext/prism/api_node.c.erb"
3477#line 253 "prism/templates/ext/prism/api_node.c.erb"
3481#line 226 "prism/templates/ext/prism/api_node.c.erb"
3485#line 239 "prism/templates/ext/prism/api_node.c.erb"
3495#line 203 "prism/templates/ext/prism/api_node.c.erb"
3496 case PM_GLOBAL_VARIABLE_OR_WRITE_NODE: {
3513#line 239 "prism/templates/ext/prism/api_node.c.erb"
3514 assert(cast->
name != 0);
3518#line 253 "prism/templates/ext/prism/api_node.c.erb"
3522#line 253 "prism/templates/ext/prism/api_node.c.erb"
3526#line 226 "prism/templates/ext/prism/api_node.c.erb"
3535#line 203 "prism/templates/ext/prism/api_node.c.erb"
3536 case PM_GLOBAL_VARIABLE_READ_NODE: {
3553#line 239 "prism/templates/ext/prism/api_node.c.erb"
3554 assert(cast->
name != 0);
3563#line 203 "prism/templates/ext/prism/api_node.c.erb"
3564 case PM_GLOBAL_VARIABLE_TARGET_NODE: {
3581#line 239 "prism/templates/ext/prism/api_node.c.erb"
3582 assert(cast->
name != 0);
3591#line 203 "prism/templates/ext/prism/api_node.c.erb"
3592 case PM_GLOBAL_VARIABLE_WRITE_NODE: {
3609#line 239 "prism/templates/ext/prism/api_node.c.erb"
3610 assert(cast->
name != 0);
3614#line 253 "prism/templates/ext/prism/api_node.c.erb"
3618#line 226 "prism/templates/ext/prism/api_node.c.erb"
3622#line 253 "prism/templates/ext/prism/api_node.c.erb"
3631#line 203 "prism/templates/ext/prism/api_node.c.erb"
3632 case PM_HASH_NODE: {
3649#line 253 "prism/templates/ext/prism/api_node.c.erb"
3653#line 229 "prism/templates/ext/prism/api_node.c.erb"
3655 for (
size_t index = 0; index < cast->
elements.
size; index++) {
3661#line 253 "prism/templates/ext/prism/api_node.c.erb"
3670#line 203 "prism/templates/ext/prism/api_node.c.erb"
3671 case PM_HASH_PATTERN_NODE: {
3688#line 226 "prism/templates/ext/prism/api_node.c.erb"
3692#line 229 "prism/templates/ext/prism/api_node.c.erb"
3694 for (
size_t index = 0; index < cast->
elements.
size; index++) {
3700#line 226 "prism/templates/ext/prism/api_node.c.erb"
3704#line 256 "prism/templates/ext/prism/api_node.c.erb"
3708#line 256 "prism/templates/ext/prism/api_node.c.erb"
3717#line 203 "prism/templates/ext/prism/api_node.c.erb"
3735#line 256 "prism/templates/ext/prism/api_node.c.erb"
3739#line 226 "prism/templates/ext/prism/api_node.c.erb"
3743#line 256 "prism/templates/ext/prism/api_node.c.erb"
3747#line 226 "prism/templates/ext/prism/api_node.c.erb"
3751#line 226 "prism/templates/ext/prism/api_node.c.erb"
3755#line 256 "prism/templates/ext/prism/api_node.c.erb"
3764#line 203 "prism/templates/ext/prism/api_node.c.erb"
3765 case PM_IMAGINARY_NODE: {
3781#line 226 "prism/templates/ext/prism/api_node.c.erb"
3790#line 203 "prism/templates/ext/prism/api_node.c.erb"
3791 case PM_IMPLICIT_NODE: {
3807#line 226 "prism/templates/ext/prism/api_node.c.erb"
3816#line 203 "prism/templates/ext/prism/api_node.c.erb"
3817 case PM_IMPLICIT_REST_NODE: {
3838#line 203 "prism/templates/ext/prism/api_node.c.erb"
3856#line 226 "prism/templates/ext/prism/api_node.c.erb"
3860#line 226 "prism/templates/ext/prism/api_node.c.erb"
3864#line 253 "prism/templates/ext/prism/api_node.c.erb"
3868#line 256 "prism/templates/ext/prism/api_node.c.erb"
3877#line 203 "prism/templates/ext/prism/api_node.c.erb"
3878 case PM_INDEX_AND_WRITE_NODE: {
3895#line 226 "prism/templates/ext/prism/api_node.c.erb"
3899#line 256 "prism/templates/ext/prism/api_node.c.erb"
3903#line 253 "prism/templates/ext/prism/api_node.c.erb"
3907#line 226 "prism/templates/ext/prism/api_node.c.erb"
3911#line 253 "prism/templates/ext/prism/api_node.c.erb"
3915#line 226 "prism/templates/ext/prism/api_node.c.erb"
3919#line 253 "prism/templates/ext/prism/api_node.c.erb"
3923#line 226 "prism/templates/ext/prism/api_node.c.erb"
3932#line 203 "prism/templates/ext/prism/api_node.c.erb"
3933 case PM_INDEX_OPERATOR_WRITE_NODE: {
3950#line 226 "prism/templates/ext/prism/api_node.c.erb"
3954#line 256 "prism/templates/ext/prism/api_node.c.erb"
3958#line 253 "prism/templates/ext/prism/api_node.c.erb"
3962#line 226 "prism/templates/ext/prism/api_node.c.erb"
3966#line 253 "prism/templates/ext/prism/api_node.c.erb"
3970#line 226 "prism/templates/ext/prism/api_node.c.erb"
3974#line 239 "prism/templates/ext/prism/api_node.c.erb"
3979#line 253 "prism/templates/ext/prism/api_node.c.erb"
3983#line 226 "prism/templates/ext/prism/api_node.c.erb"
3992#line 203 "prism/templates/ext/prism/api_node.c.erb"
3993 case PM_INDEX_OR_WRITE_NODE: {
4010#line 226 "prism/templates/ext/prism/api_node.c.erb"
4014#line 256 "prism/templates/ext/prism/api_node.c.erb"
4018#line 253 "prism/templates/ext/prism/api_node.c.erb"
4022#line 226 "prism/templates/ext/prism/api_node.c.erb"
4026#line 253 "prism/templates/ext/prism/api_node.c.erb"
4030#line 226 "prism/templates/ext/prism/api_node.c.erb"
4034#line 253 "prism/templates/ext/prism/api_node.c.erb"
4038#line 226 "prism/templates/ext/prism/api_node.c.erb"
4047#line 203 "prism/templates/ext/prism/api_node.c.erb"
4048 case PM_INDEX_TARGET_NODE: {
4065#line 226 "prism/templates/ext/prism/api_node.c.erb"
4069#line 253 "prism/templates/ext/prism/api_node.c.erb"
4073#line 226 "prism/templates/ext/prism/api_node.c.erb"
4077#line 253 "prism/templates/ext/prism/api_node.c.erb"
4081#line 226 "prism/templates/ext/prism/api_node.c.erb"
4090#line 203 "prism/templates/ext/prism/api_node.c.erb"
4091 case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
4108#line 239 "prism/templates/ext/prism/api_node.c.erb"
4109 assert(cast->
name != 0);
4113#line 253 "prism/templates/ext/prism/api_node.c.erb"
4117#line 253 "prism/templates/ext/prism/api_node.c.erb"
4121#line 226 "prism/templates/ext/prism/api_node.c.erb"
4130#line 203 "prism/templates/ext/prism/api_node.c.erb"
4131 case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
4148#line 239 "prism/templates/ext/prism/api_node.c.erb"
4149 assert(cast->
name != 0);
4153#line 253 "prism/templates/ext/prism/api_node.c.erb"
4157#line 253 "prism/templates/ext/prism/api_node.c.erb"
4161#line 226 "prism/templates/ext/prism/api_node.c.erb"
4165#line 239 "prism/templates/ext/prism/api_node.c.erb"
4175#line 203 "prism/templates/ext/prism/api_node.c.erb"
4176 case PM_INSTANCE_VARIABLE_OR_WRITE_NODE: {
4193#line 239 "prism/templates/ext/prism/api_node.c.erb"
4194 assert(cast->
name != 0);
4198#line 253 "prism/templates/ext/prism/api_node.c.erb"
4202#line 253 "prism/templates/ext/prism/api_node.c.erb"
4206#line 226 "prism/templates/ext/prism/api_node.c.erb"
4215#line 203 "prism/templates/ext/prism/api_node.c.erb"
4216 case PM_INSTANCE_VARIABLE_READ_NODE: {
4233#line 239 "prism/templates/ext/prism/api_node.c.erb"
4234 assert(cast->
name != 0);
4243#line 203 "prism/templates/ext/prism/api_node.c.erb"
4244 case PM_INSTANCE_VARIABLE_TARGET_NODE: {
4261#line 239 "prism/templates/ext/prism/api_node.c.erb"
4262 assert(cast->
name != 0);
4271#line 203 "prism/templates/ext/prism/api_node.c.erb"
4272 case PM_INSTANCE_VARIABLE_WRITE_NODE: {
4289#line 239 "prism/templates/ext/prism/api_node.c.erb"
4290 assert(cast->
name != 0);
4294#line 253 "prism/templates/ext/prism/api_node.c.erb"
4298#line 226 "prism/templates/ext/prism/api_node.c.erb"
4302#line 253 "prism/templates/ext/prism/api_node.c.erb"
4311#line 203 "prism/templates/ext/prism/api_node.c.erb"
4312 case PM_INTEGER_NODE: {
4329#line 265 "prism/templates/ext/prism/api_node.c.erb"
4330 argv[4] = pm_integer_new(&cast->
value);
4338#line 203 "prism/templates/ext/prism/api_node.c.erb"
4339 case PM_INTERPOLATED_MATCH_LAST_LINE_NODE: {
4356#line 253 "prism/templates/ext/prism/api_node.c.erb"
4360#line 229 "prism/templates/ext/prism/api_node.c.erb"
4362 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4368#line 253 "prism/templates/ext/prism/api_node.c.erb"
4377#line 203 "prism/templates/ext/prism/api_node.c.erb"
4378 case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
4395#line 253 "prism/templates/ext/prism/api_node.c.erb"
4399#line 229 "prism/templates/ext/prism/api_node.c.erb"
4401 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4407#line 253 "prism/templates/ext/prism/api_node.c.erb"
4416#line 203 "prism/templates/ext/prism/api_node.c.erb"
4417 case PM_INTERPOLATED_STRING_NODE: {
4434#line 256 "prism/templates/ext/prism/api_node.c.erb"
4438#line 229 "prism/templates/ext/prism/api_node.c.erb"
4440 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4446#line 256 "prism/templates/ext/prism/api_node.c.erb"
4455#line 203 "prism/templates/ext/prism/api_node.c.erb"
4456 case PM_INTERPOLATED_SYMBOL_NODE: {
4473#line 256 "prism/templates/ext/prism/api_node.c.erb"
4477#line 229 "prism/templates/ext/prism/api_node.c.erb"
4479 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4485#line 256 "prism/templates/ext/prism/api_node.c.erb"
4494#line 203 "prism/templates/ext/prism/api_node.c.erb"
4495 case PM_INTERPOLATED_X_STRING_NODE: {
4512#line 253 "prism/templates/ext/prism/api_node.c.erb"
4516#line 229 "prism/templates/ext/prism/api_node.c.erb"
4518 for (
size_t index = 0; index < cast->
parts.
size; index++) {
4524#line 253 "prism/templates/ext/prism/api_node.c.erb"
4533#line 203 "prism/templates/ext/prism/api_node.c.erb"
4534 case PM_IT_LOCAL_VARIABLE_READ_NODE: {
4555#line 203 "prism/templates/ext/prism/api_node.c.erb"
4556 case PM_IT_PARAMETERS_NODE: {
4577#line 203 "prism/templates/ext/prism/api_node.c.erb"
4578 case PM_KEYWORD_HASH_NODE: {
4595#line 229 "prism/templates/ext/prism/api_node.c.erb"
4597 for (
size_t index = 0; index < cast->
elements.
size; index++) {
4608#line 203 "prism/templates/ext/prism/api_node.c.erb"
4609 case PM_KEYWORD_REST_PARAMETER_NODE: {
4629#line 256 "prism/templates/ext/prism/api_node.c.erb"
4633#line 253 "prism/templates/ext/prism/api_node.c.erb"
4642#line 203 "prism/templates/ext/prism/api_node.c.erb"
4643 case PM_LAMBDA_NODE: {
4660#line 245 "prism/templates/ext/prism/api_node.c.erb"
4662 for (
size_t index = 0; index < cast->
locals.
size; index++) {
4669#line 253 "prism/templates/ext/prism/api_node.c.erb"
4673#line 253 "prism/templates/ext/prism/api_node.c.erb"
4677#line 253 "prism/templates/ext/prism/api_node.c.erb"
4681#line 226 "prism/templates/ext/prism/api_node.c.erb"
4685#line 226 "prism/templates/ext/prism/api_node.c.erb"
4694#line 203 "prism/templates/ext/prism/api_node.c.erb"
4695 case PM_LOCAL_VARIABLE_AND_WRITE_NODE: {
4712#line 253 "prism/templates/ext/prism/api_node.c.erb"
4716#line 253 "prism/templates/ext/prism/api_node.c.erb"
4720#line 226 "prism/templates/ext/prism/api_node.c.erb"
4724#line 239 "prism/templates/ext/prism/api_node.c.erb"
4725 assert(cast->
name != 0);
4729#line 262 "prism/templates/ext/prism/api_node.c.erb"
4738#line 203 "prism/templates/ext/prism/api_node.c.erb"
4739 case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
4756#line 253 "prism/templates/ext/prism/api_node.c.erb"
4760#line 253 "prism/templates/ext/prism/api_node.c.erb"
4764#line 226 "prism/templates/ext/prism/api_node.c.erb"
4768#line 239 "prism/templates/ext/prism/api_node.c.erb"
4769 assert(cast->
name != 0);
4773#line 239 "prism/templates/ext/prism/api_node.c.erb"
4778#line 262 "prism/templates/ext/prism/api_node.c.erb"
4787#line 203 "prism/templates/ext/prism/api_node.c.erb"
4788 case PM_LOCAL_VARIABLE_OR_WRITE_NODE: {
4805#line 253 "prism/templates/ext/prism/api_node.c.erb"
4809#line 253 "prism/templates/ext/prism/api_node.c.erb"
4813#line 226 "prism/templates/ext/prism/api_node.c.erb"
4817#line 239 "prism/templates/ext/prism/api_node.c.erb"
4818 assert(cast->
name != 0);
4822#line 262 "prism/templates/ext/prism/api_node.c.erb"
4831#line 203 "prism/templates/ext/prism/api_node.c.erb"
4832 case PM_LOCAL_VARIABLE_READ_NODE: {
4849#line 239 "prism/templates/ext/prism/api_node.c.erb"
4850 assert(cast->
name != 0);
4854#line 262 "prism/templates/ext/prism/api_node.c.erb"
4863#line 203 "prism/templates/ext/prism/api_node.c.erb"
4864 case PM_LOCAL_VARIABLE_TARGET_NODE: {
4881#line 239 "prism/templates/ext/prism/api_node.c.erb"
4882 assert(cast->
name != 0);
4886#line 262 "prism/templates/ext/prism/api_node.c.erb"
4895#line 203 "prism/templates/ext/prism/api_node.c.erb"
4896 case PM_LOCAL_VARIABLE_WRITE_NODE: {
4913#line 239 "prism/templates/ext/prism/api_node.c.erb"
4914 assert(cast->
name != 0);
4918#line 262 "prism/templates/ext/prism/api_node.c.erb"
4922#line 253 "prism/templates/ext/prism/api_node.c.erb"
4926#line 226 "prism/templates/ext/prism/api_node.c.erb"
4930#line 253 "prism/templates/ext/prism/api_node.c.erb"
4939#line 203 "prism/templates/ext/prism/api_node.c.erb"
4940 case PM_MATCH_LAST_LINE_NODE: {
4957#line 253 "prism/templates/ext/prism/api_node.c.erb"
4961#line 253 "prism/templates/ext/prism/api_node.c.erb"
4965#line 253 "prism/templates/ext/prism/api_node.c.erb"
4969#line 236 "prism/templates/ext/prism/api_node.c.erb"
4970 argv[7] = pm_string_new(&cast->
unescaped, encoding);
4978#line 203 "prism/templates/ext/prism/api_node.c.erb"
4979 case PM_MATCH_PREDICATE_NODE: {
4996#line 226 "prism/templates/ext/prism/api_node.c.erb"
5000#line 226 "prism/templates/ext/prism/api_node.c.erb"
5004#line 253 "prism/templates/ext/prism/api_node.c.erb"
5013#line 203 "prism/templates/ext/prism/api_node.c.erb"
5014 case PM_MATCH_REQUIRED_NODE: {
5031#line 226 "prism/templates/ext/prism/api_node.c.erb"
5035#line 226 "prism/templates/ext/prism/api_node.c.erb"
5039#line 253 "prism/templates/ext/prism/api_node.c.erb"
5048#line 203 "prism/templates/ext/prism/api_node.c.erb"
5049 case PM_MATCH_WRITE_NODE: {
5066#line 226 "prism/templates/ext/prism/api_node.c.erb"
5070#line 229 "prism/templates/ext/prism/api_node.c.erb"
5072 for (
size_t index = 0; index < cast->
targets.
size; index++) {
5083#line 203 "prism/templates/ext/prism/api_node.c.erb"
5084 case PM_MODULE_NODE: {
5101#line 245 "prism/templates/ext/prism/api_node.c.erb"
5103 for (
size_t index = 0; index < cast->
locals.
size; index++) {
5110#line 253 "prism/templates/ext/prism/api_node.c.erb"
5114#line 226 "prism/templates/ext/prism/api_node.c.erb"
5118#line 226 "prism/templates/ext/prism/api_node.c.erb"
5122#line 253 "prism/templates/ext/prism/api_node.c.erb"
5126#line 239 "prism/templates/ext/prism/api_node.c.erb"
5127 assert(cast->
name != 0);
5136#line 203 "prism/templates/ext/prism/api_node.c.erb"
5137 case PM_MULTI_TARGET_NODE: {
5154#line 229 "prism/templates/ext/prism/api_node.c.erb"
5156 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
5162#line 226 "prism/templates/ext/prism/api_node.c.erb"
5166#line 229 "prism/templates/ext/prism/api_node.c.erb"
5168 for (
size_t index = 0; index < cast->
rights.
size; index++) {
5174#line 256 "prism/templates/ext/prism/api_node.c.erb"
5178#line 256 "prism/templates/ext/prism/api_node.c.erb"
5187#line 203 "prism/templates/ext/prism/api_node.c.erb"
5188 case PM_MULTI_WRITE_NODE: {
5205#line 229 "prism/templates/ext/prism/api_node.c.erb"
5207 for (
size_t index = 0; index < cast->
lefts.
size; index++) {
5213#line 226 "prism/templates/ext/prism/api_node.c.erb"
5217#line 229 "prism/templates/ext/prism/api_node.c.erb"
5219 for (
size_t index = 0; index < cast->
rights.
size; index++) {
5225#line 256 "prism/templates/ext/prism/api_node.c.erb"
5229#line 256 "prism/templates/ext/prism/api_node.c.erb"
5233#line 253 "prism/templates/ext/prism/api_node.c.erb"
5237#line 226 "prism/templates/ext/prism/api_node.c.erb"
5246#line 203 "prism/templates/ext/prism/api_node.c.erb"
5247 case PM_NEXT_NODE: {
5264#line 226 "prism/templates/ext/prism/api_node.c.erb"
5268#line 253 "prism/templates/ext/prism/api_node.c.erb"
5277#line 203 "prism/templates/ext/prism/api_node.c.erb"
5299#line 203 "prism/templates/ext/prism/api_node.c.erb"
5300 case PM_NO_BLOCK_PARAMETER_NODE: {
5317#line 253 "prism/templates/ext/prism/api_node.c.erb"
5321#line 253 "prism/templates/ext/prism/api_node.c.erb"
5330#line 203 "prism/templates/ext/prism/api_node.c.erb"
5331 case PM_NO_KEYWORDS_PARAMETER_NODE: {
5348#line 253 "prism/templates/ext/prism/api_node.c.erb"
5352#line 253 "prism/templates/ext/prism/api_node.c.erb"
5361#line 203 "prism/templates/ext/prism/api_node.c.erb"
5362 case PM_NUMBERED_PARAMETERS_NODE: {
5379#line 259 "prism/templates/ext/prism/api_node.c.erb"
5388#line 203 "prism/templates/ext/prism/api_node.c.erb"
5389 case PM_NUMBERED_REFERENCE_READ_NODE: {
5406#line 262 "prism/templates/ext/prism/api_node.c.erb"
5415#line 203 "prism/templates/ext/prism/api_node.c.erb"
5416 case PM_OPTIONAL_KEYWORD_PARAMETER_NODE: {
5433#line 239 "prism/templates/ext/prism/api_node.c.erb"
5434 assert(cast->
name != 0);
5438#line 253 "prism/templates/ext/prism/api_node.c.erb"
5442#line 226 "prism/templates/ext/prism/api_node.c.erb"
5451#line 203 "prism/templates/ext/prism/api_node.c.erb"
5452 case PM_OPTIONAL_PARAMETER_NODE: {
5469#line 239 "prism/templates/ext/prism/api_node.c.erb"
5470 assert(cast->
name != 0);
5474#line 253 "prism/templates/ext/prism/api_node.c.erb"
5478#line 253 "prism/templates/ext/prism/api_node.c.erb"
5482#line 226 "prism/templates/ext/prism/api_node.c.erb"
5491#line 203 "prism/templates/ext/prism/api_node.c.erb"
5509#line 226 "prism/templates/ext/prism/api_node.c.erb"
5513#line 226 "prism/templates/ext/prism/api_node.c.erb"
5517#line 253 "prism/templates/ext/prism/api_node.c.erb"
5526#line 203 "prism/templates/ext/prism/api_node.c.erb"
5527 case PM_PARAMETERS_NODE: {
5544#line 229 "prism/templates/ext/prism/api_node.c.erb"
5546 for (
size_t index = 0; index < cast->
requireds.
size; index++) {
5552#line 229 "prism/templates/ext/prism/api_node.c.erb"
5554 for (
size_t index = 0; index < cast->
optionals.
size; index++) {
5560#line 226 "prism/templates/ext/prism/api_node.c.erb"
5564#line 229 "prism/templates/ext/prism/api_node.c.erb"
5566 for (
size_t index = 0; index < cast->
posts.
size; index++) {
5572#line 229 "prism/templates/ext/prism/api_node.c.erb"
5574 for (
size_t index = 0; index < cast->
keywords.
size; index++) {
5580#line 226 "prism/templates/ext/prism/api_node.c.erb"
5584#line 226 "prism/templates/ext/prism/api_node.c.erb"
5593#line 203 "prism/templates/ext/prism/api_node.c.erb"
5594 case PM_PARENTHESES_NODE: {
5611#line 226 "prism/templates/ext/prism/api_node.c.erb"
5615#line 253 "prism/templates/ext/prism/api_node.c.erb"
5619#line 253 "prism/templates/ext/prism/api_node.c.erb"
5628#line 203 "prism/templates/ext/prism/api_node.c.erb"
5629 case PM_PINNED_EXPRESSION_NODE: {
5646#line 226 "prism/templates/ext/prism/api_node.c.erb"
5650#line 253 "prism/templates/ext/prism/api_node.c.erb"
5654#line 253 "prism/templates/ext/prism/api_node.c.erb"
5658#line 253 "prism/templates/ext/prism/api_node.c.erb"
5667#line 203 "prism/templates/ext/prism/api_node.c.erb"
5668 case PM_PINNED_VARIABLE_NODE: {
5685#line 226 "prism/templates/ext/prism/api_node.c.erb"
5689#line 253 "prism/templates/ext/prism/api_node.c.erb"
5698#line 203 "prism/templates/ext/prism/api_node.c.erb"
5699 case PM_POST_EXECUTION_NODE: {
5716#line 226 "prism/templates/ext/prism/api_node.c.erb"
5720#line 253 "prism/templates/ext/prism/api_node.c.erb"
5724#line 253 "prism/templates/ext/prism/api_node.c.erb"
5728#line 253 "prism/templates/ext/prism/api_node.c.erb"
5737#line 203 "prism/templates/ext/prism/api_node.c.erb"
5738 case PM_PRE_EXECUTION_NODE: {
5755#line 226 "prism/templates/ext/prism/api_node.c.erb"
5759#line 253 "prism/templates/ext/prism/api_node.c.erb"
5763#line 253 "prism/templates/ext/prism/api_node.c.erb"
5767#line 253 "prism/templates/ext/prism/api_node.c.erb"
5776#line 203 "prism/templates/ext/prism/api_node.c.erb"
5777 case PM_PROGRAM_NODE: {
5794#line 245 "prism/templates/ext/prism/api_node.c.erb"
5796 for (
size_t index = 0; index < cast->
locals.
size; index++) {
5803#line 226 "prism/templates/ext/prism/api_node.c.erb"
5812#line 203 "prism/templates/ext/prism/api_node.c.erb"
5813 case PM_RANGE_NODE: {
5830#line 226 "prism/templates/ext/prism/api_node.c.erb"
5834#line 226 "prism/templates/ext/prism/api_node.c.erb"
5838#line 253 "prism/templates/ext/prism/api_node.c.erb"
5847#line 203 "prism/templates/ext/prism/api_node.c.erb"
5848 case PM_RATIONAL_NODE: {
5865#line 265 "prism/templates/ext/prism/api_node.c.erb"
5866 argv[4] = pm_integer_new(&cast->
numerator);
5869#line 265 "prism/templates/ext/prism/api_node.c.erb"
5878#line 203 "prism/templates/ext/prism/api_node.c.erb"
5879 case PM_REDO_NODE: {
5900#line 203 "prism/templates/ext/prism/api_node.c.erb"
5901 case PM_REGULAR_EXPRESSION_NODE: {
5918#line 253 "prism/templates/ext/prism/api_node.c.erb"
5922#line 253 "prism/templates/ext/prism/api_node.c.erb"
5926#line 253 "prism/templates/ext/prism/api_node.c.erb"
5930#line 236 "prism/templates/ext/prism/api_node.c.erb"
5931 argv[7] = pm_string_new(&cast->
unescaped, encoding);
5939#line 203 "prism/templates/ext/prism/api_node.c.erb"
5940 case PM_REQUIRED_KEYWORD_PARAMETER_NODE: {
5957#line 239 "prism/templates/ext/prism/api_node.c.erb"
5958 assert(cast->
name != 0);
5962#line 253 "prism/templates/ext/prism/api_node.c.erb"
5971#line 203 "prism/templates/ext/prism/api_node.c.erb"
5972 case PM_REQUIRED_PARAMETER_NODE: {
5989#line 239 "prism/templates/ext/prism/api_node.c.erb"
5990 assert(cast->
name != 0);
5999#line 203 "prism/templates/ext/prism/api_node.c.erb"
6000 case PM_RESCUE_MODIFIER_NODE: {
6017#line 226 "prism/templates/ext/prism/api_node.c.erb"
6021#line 253 "prism/templates/ext/prism/api_node.c.erb"
6025#line 226 "prism/templates/ext/prism/api_node.c.erb"
6034#line 203 "prism/templates/ext/prism/api_node.c.erb"
6035 case PM_RESCUE_NODE: {
6052#line 253 "prism/templates/ext/prism/api_node.c.erb"
6056#line 229 "prism/templates/ext/prism/api_node.c.erb"
6064#line 256 "prism/templates/ext/prism/api_node.c.erb"
6068#line 226 "prism/templates/ext/prism/api_node.c.erb"
6072#line 256 "prism/templates/ext/prism/api_node.c.erb"
6076#line 226 "prism/templates/ext/prism/api_node.c.erb"
6080#line 226 "prism/templates/ext/prism/api_node.c.erb"
6089#line 203 "prism/templates/ext/prism/api_node.c.erb"
6090 case PM_REST_PARAMETER_NODE: {
6110#line 256 "prism/templates/ext/prism/api_node.c.erb"
6114#line 253 "prism/templates/ext/prism/api_node.c.erb"
6123#line 203 "prism/templates/ext/prism/api_node.c.erb"
6124 case PM_RETRY_NODE: {
6145#line 203 "prism/templates/ext/prism/api_node.c.erb"
6146 case PM_RETURN_NODE: {
6163#line 253 "prism/templates/ext/prism/api_node.c.erb"
6167#line 226 "prism/templates/ext/prism/api_node.c.erb"
6176#line 203 "prism/templates/ext/prism/api_node.c.erb"
6177 case PM_SELF_NODE: {
6198#line 203 "prism/templates/ext/prism/api_node.c.erb"
6199 case PM_SHAREABLE_CONSTANT_NODE: {
6215#line 226 "prism/templates/ext/prism/api_node.c.erb"
6224#line 203 "prism/templates/ext/prism/api_node.c.erb"
6225 case PM_SINGLETON_CLASS_NODE: {
6242#line 245 "prism/templates/ext/prism/api_node.c.erb"
6244 for (
size_t index = 0; index < cast->
locals.
size; index++) {
6251#line 253 "prism/templates/ext/prism/api_node.c.erb"
6255#line 253 "prism/templates/ext/prism/api_node.c.erb"
6259#line 226 "prism/templates/ext/prism/api_node.c.erb"
6263#line 226 "prism/templates/ext/prism/api_node.c.erb"
6267#line 253 "prism/templates/ext/prism/api_node.c.erb"
6276#line 203 "prism/templates/ext/prism/api_node.c.erb"
6277 case PM_SOURCE_ENCODING_NODE: {
6298#line 203 "prism/templates/ext/prism/api_node.c.erb"
6299 case PM_SOURCE_FILE_NODE: {
6316#line 236 "prism/templates/ext/prism/api_node.c.erb"
6317 argv[4] = pm_string_new(&cast->
filepath, encoding);
6325#line 203 "prism/templates/ext/prism/api_node.c.erb"
6326 case PM_SOURCE_LINE_NODE: {
6347#line 203 "prism/templates/ext/prism/api_node.c.erb"
6348 case PM_SPLAT_NODE: {
6365#line 253 "prism/templates/ext/prism/api_node.c.erb"
6369#line 226 "prism/templates/ext/prism/api_node.c.erb"
6378#line 203 "prism/templates/ext/prism/api_node.c.erb"
6379 case PM_STATEMENTS_NODE: {
6396#line 229 "prism/templates/ext/prism/api_node.c.erb"
6398 for (
size_t index = 0; index < cast->
body.
size; index++) {
6409#line 203 "prism/templates/ext/prism/api_node.c.erb"
6410 case PM_STRING_NODE: {
6427#line 256 "prism/templates/ext/prism/api_node.c.erb"
6431#line 253 "prism/templates/ext/prism/api_node.c.erb"
6435#line 256 "prism/templates/ext/prism/api_node.c.erb"
6439#line 236 "prism/templates/ext/prism/api_node.c.erb"
6440 argv[7] = pm_string_new(&cast->
unescaped, encoding);
6448#line 203 "prism/templates/ext/prism/api_node.c.erb"
6449 case PM_SUPER_NODE: {
6466#line 253 "prism/templates/ext/prism/api_node.c.erb"
6470#line 256 "prism/templates/ext/prism/api_node.c.erb"
6474#line 226 "prism/templates/ext/prism/api_node.c.erb"
6478#line 256 "prism/templates/ext/prism/api_node.c.erb"
6482#line 226 "prism/templates/ext/prism/api_node.c.erb"
6491#line 203 "prism/templates/ext/prism/api_node.c.erb"
6492 case PM_SYMBOL_NODE: {
6509#line 256 "prism/templates/ext/prism/api_node.c.erb"
6513#line 256 "prism/templates/ext/prism/api_node.c.erb"
6517#line 256 "prism/templates/ext/prism/api_node.c.erb"
6521#line 236 "prism/templates/ext/prism/api_node.c.erb"
6522 argv[7] = pm_string_new(&cast->
unescaped, encoding);
6530#line 203 "prism/templates/ext/prism/api_node.c.erb"
6531 case PM_TRUE_NODE: {
6552#line 203 "prism/templates/ext/prism/api_node.c.erb"
6553 case PM_UNDEF_NODE: {
6570#line 229 "prism/templates/ext/prism/api_node.c.erb"
6572 for (
size_t index = 0; index < cast->
names.
size; index++) {
6578#line 253 "prism/templates/ext/prism/api_node.c.erb"
6587#line 203 "prism/templates/ext/prism/api_node.c.erb"
6588 case PM_UNLESS_NODE: {
6605#line 253 "prism/templates/ext/prism/api_node.c.erb"
6609#line 226 "prism/templates/ext/prism/api_node.c.erb"
6613#line 256 "prism/templates/ext/prism/api_node.c.erb"
6617#line 226 "prism/templates/ext/prism/api_node.c.erb"
6621#line 226 "prism/templates/ext/prism/api_node.c.erb"
6625#line 256 "prism/templates/ext/prism/api_node.c.erb"
6634#line 203 "prism/templates/ext/prism/api_node.c.erb"
6635 case PM_UNTIL_NODE: {
6652#line 253 "prism/templates/ext/prism/api_node.c.erb"
6656#line 256 "prism/templates/ext/prism/api_node.c.erb"
6660#line 256 "prism/templates/ext/prism/api_node.c.erb"
6664#line 226 "prism/templates/ext/prism/api_node.c.erb"
6668#line 226 "prism/templates/ext/prism/api_node.c.erb"
6677#line 203 "prism/templates/ext/prism/api_node.c.erb"
6678 case PM_WHEN_NODE: {
6695#line 253 "prism/templates/ext/prism/api_node.c.erb"
6699#line 229 "prism/templates/ext/prism/api_node.c.erb"
6707#line 256 "prism/templates/ext/prism/api_node.c.erb"
6711#line 226 "prism/templates/ext/prism/api_node.c.erb"
6720#line 203 "prism/templates/ext/prism/api_node.c.erb"
6721 case PM_WHILE_NODE: {
6738#line 253 "prism/templates/ext/prism/api_node.c.erb"
6742#line 256 "prism/templates/ext/prism/api_node.c.erb"
6746#line 256 "prism/templates/ext/prism/api_node.c.erb"
6750#line 226 "prism/templates/ext/prism/api_node.c.erb"
6754#line 226 "prism/templates/ext/prism/api_node.c.erb"
6763#line 203 "prism/templates/ext/prism/api_node.c.erb"
6764 case PM_X_STRING_NODE: {
6781#line 253 "prism/templates/ext/prism/api_node.c.erb"
6785#line 253 "prism/templates/ext/prism/api_node.c.erb"
6789#line 253 "prism/templates/ext/prism/api_node.c.erb"
6793#line 236 "prism/templates/ext/prism/api_node.c.erb"
6794 argv[7] = pm_string_new(&cast->
unescaped, encoding);
6802#line 203 "prism/templates/ext/prism/api_node.c.erb"
6803 case PM_YIELD_NODE: {
6820#line 253 "prism/templates/ext/prism/api_node.c.erb"
6824#line 256 "prism/templates/ext/prism/api_node.c.erb"
6828#line 226 "prism/templates/ext/prism/api_node.c.erb"
6832#line 256 "prism/templates/ext/prism/api_node.c.erb"
6847 pm_arena_free(node_arena);
6852Init_prism_api_node(
void) {
6853 rb_cPrismAliasGlobalVariableNode = rb_define_class_under(rb_cPrism,
"AliasGlobalVariableNode", rb_cPrismNode);
6854 rb_cPrismAliasMethodNode = rb_define_class_under(rb_cPrism,
"AliasMethodNode", rb_cPrismNode);
6855 rb_cPrismAlternationPatternNode = rb_define_class_under(rb_cPrism,
"AlternationPatternNode", rb_cPrismNode);
6856 rb_cPrismAndNode = rb_define_class_under(rb_cPrism,
"AndNode", rb_cPrismNode);
6857 rb_cPrismArgumentsNode = rb_define_class_under(rb_cPrism,
"ArgumentsNode", rb_cPrismNode);
6858 rb_cPrismArrayNode = rb_define_class_under(rb_cPrism,
"ArrayNode", rb_cPrismNode);
6859 rb_cPrismArrayPatternNode = rb_define_class_under(rb_cPrism,
"ArrayPatternNode", rb_cPrismNode);
6860 rb_cPrismAssocNode = rb_define_class_under(rb_cPrism,
"AssocNode", rb_cPrismNode);
6861 rb_cPrismAssocSplatNode = rb_define_class_under(rb_cPrism,
"AssocSplatNode", rb_cPrismNode);
6862 rb_cPrismBackReferenceReadNode = rb_define_class_under(rb_cPrism,
"BackReferenceReadNode", rb_cPrismNode);
6863 rb_cPrismBeginNode = rb_define_class_under(rb_cPrism,
"BeginNode", rb_cPrismNode);
6864 rb_cPrismBlockArgumentNode = rb_define_class_under(rb_cPrism,
"BlockArgumentNode", rb_cPrismNode);
6865 rb_cPrismBlockLocalVariableNode = rb_define_class_under(rb_cPrism,
"BlockLocalVariableNode", rb_cPrismNode);
6866 rb_cPrismBlockNode = rb_define_class_under(rb_cPrism,
"BlockNode", rb_cPrismNode);
6867 rb_cPrismBlockParameterNode = rb_define_class_under(rb_cPrism,
"BlockParameterNode", rb_cPrismNode);
6868 rb_cPrismBlockParametersNode = rb_define_class_under(rb_cPrism,
"BlockParametersNode", rb_cPrismNode);
6869 rb_cPrismBreakNode = rb_define_class_under(rb_cPrism,
"BreakNode", rb_cPrismNode);
6870 rb_cPrismCallAndWriteNode = rb_define_class_under(rb_cPrism,
"CallAndWriteNode", rb_cPrismNode);
6871 rb_cPrismCallNode = rb_define_class_under(rb_cPrism,
"CallNode", rb_cPrismNode);
6872 rb_cPrismCallOperatorWriteNode = rb_define_class_under(rb_cPrism,
"CallOperatorWriteNode", rb_cPrismNode);
6873 rb_cPrismCallOrWriteNode = rb_define_class_under(rb_cPrism,
"CallOrWriteNode", rb_cPrismNode);
6874 rb_cPrismCallTargetNode = rb_define_class_under(rb_cPrism,
"CallTargetNode", rb_cPrismNode);
6875 rb_cPrismCapturePatternNode = rb_define_class_under(rb_cPrism,
"CapturePatternNode", rb_cPrismNode);
6876 rb_cPrismCaseMatchNode = rb_define_class_under(rb_cPrism,
"CaseMatchNode", rb_cPrismNode);
6877 rb_cPrismCaseNode = rb_define_class_under(rb_cPrism,
"CaseNode", rb_cPrismNode);
6878 rb_cPrismClassNode = rb_define_class_under(rb_cPrism,
"ClassNode", rb_cPrismNode);
6879 rb_cPrismClassVariableAndWriteNode = rb_define_class_under(rb_cPrism,
"ClassVariableAndWriteNode", rb_cPrismNode);
6880 rb_cPrismClassVariableOperatorWriteNode = rb_define_class_under(rb_cPrism,
"ClassVariableOperatorWriteNode", rb_cPrismNode);
6881 rb_cPrismClassVariableOrWriteNode = rb_define_class_under(rb_cPrism,
"ClassVariableOrWriteNode", rb_cPrismNode);
6882 rb_cPrismClassVariableReadNode = rb_define_class_under(rb_cPrism,
"ClassVariableReadNode", rb_cPrismNode);
6883 rb_cPrismClassVariableTargetNode = rb_define_class_under(rb_cPrism,
"ClassVariableTargetNode", rb_cPrismNode);
6884 rb_cPrismClassVariableWriteNode = rb_define_class_under(rb_cPrism,
"ClassVariableWriteNode", rb_cPrismNode);
6885 rb_cPrismConstantAndWriteNode = rb_define_class_under(rb_cPrism,
"ConstantAndWriteNode", rb_cPrismNode);
6886 rb_cPrismConstantOperatorWriteNode = rb_define_class_under(rb_cPrism,
"ConstantOperatorWriteNode", rb_cPrismNode);
6887 rb_cPrismConstantOrWriteNode = rb_define_class_under(rb_cPrism,
"ConstantOrWriteNode", rb_cPrismNode);
6888 rb_cPrismConstantPathAndWriteNode = rb_define_class_under(rb_cPrism,
"ConstantPathAndWriteNode", rb_cPrismNode);
6889 rb_cPrismConstantPathNode = rb_define_class_under(rb_cPrism,
"ConstantPathNode", rb_cPrismNode);
6890 rb_cPrismConstantPathOperatorWriteNode = rb_define_class_under(rb_cPrism,
"ConstantPathOperatorWriteNode", rb_cPrismNode);
6891 rb_cPrismConstantPathOrWriteNode = rb_define_class_under(rb_cPrism,
"ConstantPathOrWriteNode", rb_cPrismNode);
6892 rb_cPrismConstantPathTargetNode = rb_define_class_under(rb_cPrism,
"ConstantPathTargetNode", rb_cPrismNode);
6893 rb_cPrismConstantPathWriteNode = rb_define_class_under(rb_cPrism,
"ConstantPathWriteNode", rb_cPrismNode);
6894 rb_cPrismConstantReadNode = rb_define_class_under(rb_cPrism,
"ConstantReadNode", rb_cPrismNode);
6895 rb_cPrismConstantTargetNode = rb_define_class_under(rb_cPrism,
"ConstantTargetNode", rb_cPrismNode);
6896 rb_cPrismConstantWriteNode = rb_define_class_under(rb_cPrism,
"ConstantWriteNode", rb_cPrismNode);
6897 rb_cPrismDefNode = rb_define_class_under(rb_cPrism,
"DefNode", rb_cPrismNode);
6898 rb_cPrismDefinedNode = rb_define_class_under(rb_cPrism,
"DefinedNode", rb_cPrismNode);
6899 rb_cPrismElseNode = rb_define_class_under(rb_cPrism,
"ElseNode", rb_cPrismNode);
6900 rb_cPrismEmbeddedStatementsNode = rb_define_class_under(rb_cPrism,
"EmbeddedStatementsNode", rb_cPrismNode);
6901 rb_cPrismEmbeddedVariableNode = rb_define_class_under(rb_cPrism,
"EmbeddedVariableNode", rb_cPrismNode);
6902 rb_cPrismEnsureNode = rb_define_class_under(rb_cPrism,
"EnsureNode", rb_cPrismNode);
6903 rb_cPrismErrorRecoveryNode = rb_define_class_under(rb_cPrism,
"ErrorRecoveryNode", rb_cPrismNode);
6904 rb_cPrismFalseNode = rb_define_class_under(rb_cPrism,
"FalseNode", rb_cPrismNode);
6905 rb_cPrismFindPatternNode = rb_define_class_under(rb_cPrism,
"FindPatternNode", rb_cPrismNode);
6906 rb_cPrismFlipFlopNode = rb_define_class_under(rb_cPrism,
"FlipFlopNode", rb_cPrismNode);
6907 rb_cPrismFloatNode = rb_define_class_under(rb_cPrism,
"FloatNode", rb_cPrismNode);
6908 rb_cPrismForNode = rb_define_class_under(rb_cPrism,
"ForNode", rb_cPrismNode);
6909 rb_cPrismForwardingArgumentsNode = rb_define_class_under(rb_cPrism,
"ForwardingArgumentsNode", rb_cPrismNode);
6910 rb_cPrismForwardingParameterNode = rb_define_class_under(rb_cPrism,
"ForwardingParameterNode", rb_cPrismNode);
6911 rb_cPrismForwardingSuperNode = rb_define_class_under(rb_cPrism,
"ForwardingSuperNode", rb_cPrismNode);
6912 rb_cPrismGlobalVariableAndWriteNode = rb_define_class_under(rb_cPrism,
"GlobalVariableAndWriteNode", rb_cPrismNode);
6913 rb_cPrismGlobalVariableOperatorWriteNode = rb_define_class_under(rb_cPrism,
"GlobalVariableOperatorWriteNode", rb_cPrismNode);
6914 rb_cPrismGlobalVariableOrWriteNode = rb_define_class_under(rb_cPrism,
"GlobalVariableOrWriteNode", rb_cPrismNode);
6915 rb_cPrismGlobalVariableReadNode = rb_define_class_under(rb_cPrism,
"GlobalVariableReadNode", rb_cPrismNode);
6916 rb_cPrismGlobalVariableTargetNode = rb_define_class_under(rb_cPrism,
"GlobalVariableTargetNode", rb_cPrismNode);
6917 rb_cPrismGlobalVariableWriteNode = rb_define_class_under(rb_cPrism,
"GlobalVariableWriteNode", rb_cPrismNode);
6918 rb_cPrismHashNode = rb_define_class_under(rb_cPrism,
"HashNode", rb_cPrismNode);
6919 rb_cPrismHashPatternNode = rb_define_class_under(rb_cPrism,
"HashPatternNode", rb_cPrismNode);
6920 rb_cPrismIfNode = rb_define_class_under(rb_cPrism,
"IfNode", rb_cPrismNode);
6921 rb_cPrismImaginaryNode = rb_define_class_under(rb_cPrism,
"ImaginaryNode", rb_cPrismNode);
6922 rb_cPrismImplicitNode = rb_define_class_under(rb_cPrism,
"ImplicitNode", rb_cPrismNode);
6923 rb_cPrismImplicitRestNode = rb_define_class_under(rb_cPrism,
"ImplicitRestNode", rb_cPrismNode);
6924 rb_cPrismInNode = rb_define_class_under(rb_cPrism,
"InNode", rb_cPrismNode);
6925 rb_cPrismIndexAndWriteNode = rb_define_class_under(rb_cPrism,
"IndexAndWriteNode", rb_cPrismNode);
6926 rb_cPrismIndexOperatorWriteNode = rb_define_class_under(rb_cPrism,
"IndexOperatorWriteNode", rb_cPrismNode);
6927 rb_cPrismIndexOrWriteNode = rb_define_class_under(rb_cPrism,
"IndexOrWriteNode", rb_cPrismNode);
6928 rb_cPrismIndexTargetNode = rb_define_class_under(rb_cPrism,
"IndexTargetNode", rb_cPrismNode);
6929 rb_cPrismInstanceVariableAndWriteNode = rb_define_class_under(rb_cPrism,
"InstanceVariableAndWriteNode", rb_cPrismNode);
6930 rb_cPrismInstanceVariableOperatorWriteNode = rb_define_class_under(rb_cPrism,
"InstanceVariableOperatorWriteNode", rb_cPrismNode);
6931 rb_cPrismInstanceVariableOrWriteNode = rb_define_class_under(rb_cPrism,
"InstanceVariableOrWriteNode", rb_cPrismNode);
6932 rb_cPrismInstanceVariableReadNode = rb_define_class_under(rb_cPrism,
"InstanceVariableReadNode", rb_cPrismNode);
6933 rb_cPrismInstanceVariableTargetNode = rb_define_class_under(rb_cPrism,
"InstanceVariableTargetNode", rb_cPrismNode);
6934 rb_cPrismInstanceVariableWriteNode = rb_define_class_under(rb_cPrism,
"InstanceVariableWriteNode", rb_cPrismNode);
6935 rb_cPrismIntegerNode = rb_define_class_under(rb_cPrism,
"IntegerNode", rb_cPrismNode);
6936 rb_cPrismInterpolatedMatchLastLineNode = rb_define_class_under(rb_cPrism,
"InterpolatedMatchLastLineNode", rb_cPrismNode);
6937 rb_cPrismInterpolatedRegularExpressionNode = rb_define_class_under(rb_cPrism,
"InterpolatedRegularExpressionNode", rb_cPrismNode);
6938 rb_cPrismInterpolatedStringNode = rb_define_class_under(rb_cPrism,
"InterpolatedStringNode", rb_cPrismNode);
6939 rb_cPrismInterpolatedSymbolNode = rb_define_class_under(rb_cPrism,
"InterpolatedSymbolNode", rb_cPrismNode);
6940 rb_cPrismInterpolatedXStringNode = rb_define_class_under(rb_cPrism,
"InterpolatedXStringNode", rb_cPrismNode);
6941 rb_cPrismItLocalVariableReadNode = rb_define_class_under(rb_cPrism,
"ItLocalVariableReadNode", rb_cPrismNode);
6942 rb_cPrismItParametersNode = rb_define_class_under(rb_cPrism,
"ItParametersNode", rb_cPrismNode);
6943 rb_cPrismKeywordHashNode = rb_define_class_under(rb_cPrism,
"KeywordHashNode", rb_cPrismNode);
6944 rb_cPrismKeywordRestParameterNode = rb_define_class_under(rb_cPrism,
"KeywordRestParameterNode", rb_cPrismNode);
6945 rb_cPrismLambdaNode = rb_define_class_under(rb_cPrism,
"LambdaNode", rb_cPrismNode);
6946 rb_cPrismLocalVariableAndWriteNode = rb_define_class_under(rb_cPrism,
"LocalVariableAndWriteNode", rb_cPrismNode);
6947 rb_cPrismLocalVariableOperatorWriteNode = rb_define_class_under(rb_cPrism,
"LocalVariableOperatorWriteNode", rb_cPrismNode);
6948 rb_cPrismLocalVariableOrWriteNode = rb_define_class_under(rb_cPrism,
"LocalVariableOrWriteNode", rb_cPrismNode);
6949 rb_cPrismLocalVariableReadNode = rb_define_class_under(rb_cPrism,
"LocalVariableReadNode", rb_cPrismNode);
6950 rb_cPrismLocalVariableTargetNode = rb_define_class_under(rb_cPrism,
"LocalVariableTargetNode", rb_cPrismNode);
6951 rb_cPrismLocalVariableWriteNode = rb_define_class_under(rb_cPrism,
"LocalVariableWriteNode", rb_cPrismNode);
6952 rb_cPrismMatchLastLineNode = rb_define_class_under(rb_cPrism,
"MatchLastLineNode", rb_cPrismNode);
6953 rb_cPrismMatchPredicateNode = rb_define_class_under(rb_cPrism,
"MatchPredicateNode", rb_cPrismNode);
6954 rb_cPrismMatchRequiredNode = rb_define_class_under(rb_cPrism,
"MatchRequiredNode", rb_cPrismNode);
6955 rb_cPrismMatchWriteNode = rb_define_class_under(rb_cPrism,
"MatchWriteNode", rb_cPrismNode);
6956 rb_cPrismModuleNode = rb_define_class_under(rb_cPrism,
"ModuleNode", rb_cPrismNode);
6957 rb_cPrismMultiTargetNode = rb_define_class_under(rb_cPrism,
"MultiTargetNode", rb_cPrismNode);
6958 rb_cPrismMultiWriteNode = rb_define_class_under(rb_cPrism,
"MultiWriteNode", rb_cPrismNode);
6959 rb_cPrismNextNode = rb_define_class_under(rb_cPrism,
"NextNode", rb_cPrismNode);
6960 rb_cPrismNilNode = rb_define_class_under(rb_cPrism,
"NilNode", rb_cPrismNode);
6961 rb_cPrismNoBlockParameterNode = rb_define_class_under(rb_cPrism,
"NoBlockParameterNode", rb_cPrismNode);
6962 rb_cPrismNoKeywordsParameterNode = rb_define_class_under(rb_cPrism,
"NoKeywordsParameterNode", rb_cPrismNode);
6963 rb_cPrismNumberedParametersNode = rb_define_class_under(rb_cPrism,
"NumberedParametersNode", rb_cPrismNode);
6964 rb_cPrismNumberedReferenceReadNode = rb_define_class_under(rb_cPrism,
"NumberedReferenceReadNode", rb_cPrismNode);
6965 rb_cPrismOptionalKeywordParameterNode = rb_define_class_under(rb_cPrism,
"OptionalKeywordParameterNode", rb_cPrismNode);
6966 rb_cPrismOptionalParameterNode = rb_define_class_under(rb_cPrism,
"OptionalParameterNode", rb_cPrismNode);
6967 rb_cPrismOrNode = rb_define_class_under(rb_cPrism,
"OrNode", rb_cPrismNode);
6968 rb_cPrismParametersNode = rb_define_class_under(rb_cPrism,
"ParametersNode", rb_cPrismNode);
6969 rb_cPrismParenthesesNode = rb_define_class_under(rb_cPrism,
"ParenthesesNode", rb_cPrismNode);
6970 rb_cPrismPinnedExpressionNode = rb_define_class_under(rb_cPrism,
"PinnedExpressionNode", rb_cPrismNode);
6971 rb_cPrismPinnedVariableNode = rb_define_class_under(rb_cPrism,
"PinnedVariableNode", rb_cPrismNode);
6972 rb_cPrismPostExecutionNode = rb_define_class_under(rb_cPrism,
"PostExecutionNode", rb_cPrismNode);
6973 rb_cPrismPreExecutionNode = rb_define_class_under(rb_cPrism,
"PreExecutionNode", rb_cPrismNode);
6974 rb_cPrismProgramNode = rb_define_class_under(rb_cPrism,
"ProgramNode", rb_cPrismNode);
6975 rb_cPrismRangeNode = rb_define_class_under(rb_cPrism,
"RangeNode", rb_cPrismNode);
6976 rb_cPrismRationalNode = rb_define_class_under(rb_cPrism,
"RationalNode", rb_cPrismNode);
6977 rb_cPrismRedoNode = rb_define_class_under(rb_cPrism,
"RedoNode", rb_cPrismNode);
6978 rb_cPrismRegularExpressionNode = rb_define_class_under(rb_cPrism,
"RegularExpressionNode", rb_cPrismNode);
6979 rb_cPrismRequiredKeywordParameterNode = rb_define_class_under(rb_cPrism,
"RequiredKeywordParameterNode", rb_cPrismNode);
6980 rb_cPrismRequiredParameterNode = rb_define_class_under(rb_cPrism,
"RequiredParameterNode", rb_cPrismNode);
6981 rb_cPrismRescueModifierNode = rb_define_class_under(rb_cPrism,
"RescueModifierNode", rb_cPrismNode);
6982 rb_cPrismRescueNode = rb_define_class_under(rb_cPrism,
"RescueNode", rb_cPrismNode);
6983 rb_cPrismRestParameterNode = rb_define_class_under(rb_cPrism,
"RestParameterNode", rb_cPrismNode);
6984 rb_cPrismRetryNode = rb_define_class_under(rb_cPrism,
"RetryNode", rb_cPrismNode);
6985 rb_cPrismReturnNode = rb_define_class_under(rb_cPrism,
"ReturnNode", rb_cPrismNode);
6986 rb_cPrismSelfNode = rb_define_class_under(rb_cPrism,
"SelfNode", rb_cPrismNode);
6987 rb_cPrismShareableConstantNode = rb_define_class_under(rb_cPrism,
"ShareableConstantNode", rb_cPrismNode);
6988 rb_cPrismSingletonClassNode = rb_define_class_under(rb_cPrism,
"SingletonClassNode", rb_cPrismNode);
6989 rb_cPrismSourceEncodingNode = rb_define_class_under(rb_cPrism,
"SourceEncodingNode", rb_cPrismNode);
6990 rb_cPrismSourceFileNode = rb_define_class_under(rb_cPrism,
"SourceFileNode", rb_cPrismNode);
6991 rb_cPrismSourceLineNode = rb_define_class_under(rb_cPrism,
"SourceLineNode", rb_cPrismNode);
6992 rb_cPrismSplatNode = rb_define_class_under(rb_cPrism,
"SplatNode", rb_cPrismNode);
6993 rb_cPrismStatementsNode = rb_define_class_under(rb_cPrism,
"StatementsNode", rb_cPrismNode);
6994 rb_cPrismStringNode = rb_define_class_under(rb_cPrism,
"StringNode", rb_cPrismNode);
6995 rb_cPrismSuperNode = rb_define_class_under(rb_cPrism,
"SuperNode", rb_cPrismNode);
6996 rb_cPrismSymbolNode = rb_define_class_under(rb_cPrism,
"SymbolNode", rb_cPrismNode);
6997 rb_cPrismTrueNode = rb_define_class_under(rb_cPrism,
"TrueNode", rb_cPrismNode);
6998 rb_cPrismUndefNode = rb_define_class_under(rb_cPrism,
"UndefNode", rb_cPrismNode);
6999 rb_cPrismUnlessNode = rb_define_class_under(rb_cPrism,
"UnlessNode", rb_cPrismNode);
7000 rb_cPrismUntilNode = rb_define_class_under(rb_cPrism,
"UntilNode", rb_cPrismNode);
7001 rb_cPrismWhenNode = rb_define_class_under(rb_cPrism,
"WhenNode", rb_cPrismNode);
7002 rb_cPrismWhileNode = rb_define_class_under(rb_cPrism,
"WhileNode", rb_cPrismNode);
7003 rb_cPrismXStringNode = rb_define_class_under(rb_cPrism,
"XStringNode", rb_cPrismNode);
7004 rb_cPrismYieldNode = rb_define_class_under(rb_cPrism,
"YieldNode", rb_cPrismNode);
#define PRISM_ALIGNOF
Get the alignment requirement of a type.
#define ID2SYM
Old name of RB_ID2SYM.
#define ULONG2NUM
Old name of RB_ULONG2NUM.
#define LONG2FIX
Old name of RB_INT2FIX.
#define LONG2NUM
Old name of RB_LONG2NUM.
#define 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.
VALUE rb_ary_new(void)
Allocates a new, empty array.
VALUE rb_ary_new_capa(long capa)
Identical to rb_ary_new(), except it additionally specifies how many rooms of objects it should alloc...
VALUE rb_ary_pop(VALUE ary)
Destructively deletes an element from the end of the passed array and returns what was deleted.
VALUE rb_ary_push(VALUE ary, VALUE elem)
Special case of rb_ary_cat() that it adds only one element.
#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.
#define RARRAY_AREF(a, i)
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
pm_location_t operator_loc
AssocNode::operator_loc.
pm_location_t operator_loc
AssocSplatNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
pm_constant_id_t name
BackReferenceReadNode::name.
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
pm_location_t opening_loc
BlockNode::opening_loc.
pm_constant_id_list_t locals
BlockNode::locals.
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
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_node_list locals
BlockParametersNode::locals.
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
pm_location_t closing_loc
BlockParametersNode::closing_loc.
pm_location_t opening_loc
BlockParametersNode::opening_loc.
pm_location_t keyword_loc
BreakNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
PM_NODE_ALIGNAS 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.
pm_location_t opening_loc
CallNode::opening_loc.
pm_location_t closing_loc
CallNode::closing_loc.
pm_constant_id_t name
CallNode::name.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
pm_location_t equal_loc
CallNode::equal_loc.
pm_location_t call_operator_loc
CallNode::call_operator_loc.
pm_location_t message_loc
CallNode::message_loc.
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
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.
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
pm_location_t message_loc
CallTargetNode::message_loc.
pm_location_t operator_loc
CapturePatternNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
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.
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
struct pm_node_list conditions
CaseNode::conditions.
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
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.
pm_constant_id_list_t locals
ClassNode::locals.
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
pm_constant_id_t name
ClassNode::name.
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
ClassVariableAndWriteNode.
PM_NODE_ALIGNAS 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_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
ClassVariableOrWriteNode.
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
pm_constant_id_t name
ClassVariableOrWriteNode::name.
pm_constant_id_t name
ClassVariableReadNode::name.
pm_constant_id_t name
ClassVariableTargetNode::name.
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
PM_NODE_ALIGNAS 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_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
pm_constant_id_t name
ConstantAndWriteNode::name.
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.
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
pm_constant_id_t name
ConstantOrWriteNode::name.
ConstantPathAndWriteNode.
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
pm_location_t name_loc
ConstantPathNode::name_loc.
pm_constant_id_t name
ConstantPathNode::name.
ConstantPathOperatorWriteNode.
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
pm_constant_id_t name
ConstantPathTargetNode::name.
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
pm_constant_id_t name
ConstantReadNode::name.
pm_constant_id_t name
ConstantTargetNode::name.
PM_NODE_ALIGNAS 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.
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.
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
pm_location_t equal_loc
DefNode::equal_loc.
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
pm_location_t lparen_loc
DefNode::lparen_loc.
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
pm_location_t operator_loc
DefNode::operator_loc.
pm_constant_id_list_t locals
DefNode::locals.
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
pm_location_t lparen_loc
DefinedNode::lparen_loc.
pm_location_t rparen_loc
DefinedNode::rparen_loc.
pm_location_t keyword_loc
DefinedNode::keyword_loc.
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
pm_location_t opening_loc
FindPatternNode::opening_loc.
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
struct pm_node_list requireds
FindPatternNode::requireds.
pm_location_t closing_loc
FindPatternNode::closing_loc.
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
pm_location_t operator_loc
FlipFlopNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
double value
FloatNode::value.
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
GlobalVariableAndWriteNode.
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
GlobalVariableOperatorWriteNode.
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
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.
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
pm_constant_id_t name
GlobalVariableReadNode::name.
GlobalVariableTargetNode.
pm_constant_id_t name
GlobalVariableTargetNode::name.
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
pm_constant_id_t name
GlobalVariableWriteNode::name.
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
struct pm_node_list elements
HashNode::elements.
pm_location_t closing_loc
HashNode::closing_loc.
pm_location_t opening_loc
HashNode::opening_loc.
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
struct pm_node_list elements
HashPatternNode::elements.
pm_location_t opening_loc
HashPatternNode::opening_loc.
pm_location_t closing_loc
HashPatternNode::closing_loc.
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
pm_location_t closing_loc
IndexTargetNode::closing_loc.
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
pm_location_t opening_loc
IndexTargetNode::opening_loc.
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
InstanceVariableAndWriteNode.
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
InstanceVariableOperatorWriteNode.
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
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.
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
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_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
pm_constant_id_t name
InstanceVariableWriteNode::name.
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.
pm_location_t opening_loc
LambdaNode::opening_loc.
pm_location_t operator_loc
LambdaNode::operator_loc.
pm_constant_id_list_t locals
LambdaNode::locals.
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
A list of offsets of the start of lines in a string.
uint32_t * offsets
The list of offsets.
size_t size
The number of offsets in the list.
LocalVariableAndWriteNode.
pm_constant_id_t name
LocalVariableAndWriteNode::name.
uint32_t depth
LocalVariableAndWriteNode::depth.
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
LocalVariableOperatorWriteNode.
uint32_t depth
LocalVariableOperatorWriteNode::depth.
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
LocalVariableOrWriteNode.
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
uint32_t depth
LocalVariableOrWriteNode::depth.
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
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_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
uint32_t depth
LocalVariableWriteNode::depth.
pm_constant_id_t name
LocalVariableWriteNode::name.
uint32_t start
The offset of the location from the start of the source.
uint32_t length
The length of the location.
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 keyword_loc
MatchPredicateNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
struct pm_node_list targets
MatchWriteNode::targets.
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
PM_NODE_ALIGNAS 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_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
struct pm_node_list lefts
MultiTargetNode::lefts.
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
struct pm_node_list rights
MultiTargetNode::rights.
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
struct pm_node_list rights
MultiWriteNode::rights.
pm_location_t operator_loc
MultiWriteNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
struct pm_node_list lefts
MultiWriteNode::lefts.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
pm_location_t keyword_loc
NextNode::keyword_loc.
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
pm_location_t operator_loc
NoBlockParameterNode::operator_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.
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
pm_location_t name_loc
OptionalParameterNode::name_loc.
pm_constant_id_t name
OptionalParameterNode::name.
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
pm_location_t operator_loc
OrNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
struct pm_node_list requireds
ParametersNode::requireds.
struct pm_node_list optionals
ParametersNode::optionals.
struct pm_node_list posts
ParametersNode::posts.
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
struct pm_node_list keywords
ParametersNode::keywords.
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
pm_location_t closing_loc
ParenthesesNode::closing_loc.
pm_location_t opening_loc
ParenthesesNode::opening_loc.
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
pm_location_t closing_loc
PostExecutionNode::closing_loc.
pm_location_t opening_loc
PostExecutionNode::opening_loc.
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
pm_location_t closing_loc
PreExecutionNode::closing_loc.
pm_location_t opening_loc
PreExecutionNode::opening_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
pm_constant_id_list_t locals
ProgramNode::locals.
pm_location_t operator_loc
RangeNode::operator_loc.
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
pm_location_t keyword_loc
RescueNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
pm_location_t operator_loc
RescueNode::operator_loc.
struct pm_node_list exceptions
RescueNode::exceptions.
pm_constant_id_t name
RestParameterNode::name.
pm_location_t name_loc
RestParameterNode::name_loc.
pm_location_t operator_loc
RestParameterNode::operator_loc.
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
pm_location_t keyword_loc
ReturnNode::keyword_loc.
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
pm_constant_id_list_t locals
SingletonClassNode::locals.
pm_location_t operator_loc
SingletonClassNode::operator_loc.
PM_NODE_ALIGNAS 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.
pm_string_t filepath
SourceFileNode::filepath.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS 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 then_keyword_loc
UnlessNode::then_keyword_loc.
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
struct pm_node_list conditions
WhenNode::conditions.
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
PM_NODE_ALIGNAS 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.
PM_NODE_ALIGNAS 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.