ext/yarp/api_node.c in yarp-0.11.0 vs ext/yarp/api_node.c in yarp-0.12.0
- old
+ new
@@ -12,11 +12,12 @@
extern VALUE rb_cYARPNode;
extern VALUE rb_cYARPSource;
extern VALUE rb_cYARPToken;
extern VALUE rb_cYARPLocation;
-static VALUE rb_cYARPAliasNode;
+static VALUE rb_cYARPAliasGlobalVariableNode;
+static VALUE rb_cYARPAliasMethodNode;
static VALUE rb_cYARPAlternationPatternNode;
static VALUE rb_cYARPAndNode;
static VALUE rb_cYARPArgumentsNode;
static VALUE rb_cYARPArrayNode;
static VALUE rb_cYARPArrayPatternNode;
@@ -77,18 +78,20 @@
static VALUE rb_cYARPGlobalVariableWriteNode;
static VALUE rb_cYARPHashNode;
static VALUE rb_cYARPHashPatternNode;
static VALUE rb_cYARPIfNode;
static VALUE rb_cYARPImaginaryNode;
+static VALUE rb_cYARPImplicitNode;
static VALUE rb_cYARPInNode;
static VALUE rb_cYARPInstanceVariableAndWriteNode;
static VALUE rb_cYARPInstanceVariableOperatorWriteNode;
static VALUE rb_cYARPInstanceVariableOrWriteNode;
static VALUE rb_cYARPInstanceVariableReadNode;
static VALUE rb_cYARPInstanceVariableTargetNode;
static VALUE rb_cYARPInstanceVariableWriteNode;
static VALUE rb_cYARPIntegerNode;
+static VALUE rb_cYARPInterpolatedMatchLastLineNode;
static VALUE rb_cYARPInterpolatedRegularExpressionNode;
static VALUE rb_cYARPInterpolatedStringNode;
static VALUE rb_cYARPInterpolatedSymbolNode;
static VALUE rb_cYARPInterpolatedXStringNode;
static VALUE rb_cYARPKeywordHashNode;
@@ -99,12 +102,14 @@
static VALUE rb_cYARPLocalVariableOperatorWriteNode;
static VALUE rb_cYARPLocalVariableOrWriteNode;
static VALUE rb_cYARPLocalVariableReadNode;
static VALUE rb_cYARPLocalVariableTargetNode;
static VALUE rb_cYARPLocalVariableWriteNode;
+static VALUE rb_cYARPMatchLastLineNode;
static VALUE rb_cYARPMatchPredicateNode;
static VALUE rb_cYARPMatchRequiredNode;
+static VALUE rb_cYARPMatchWriteNode;
static VALUE rb_cYARPMissingNode;
static VALUE rb_cYARPModuleNode;
static VALUE rb_cYARPMultiTargetNode;
static VALUE rb_cYARPMultiWriteNode;
static VALUE rb_cYARPNextNode;
@@ -244,17 +249,24 @@
yp_node_t *node = node_stack->visit;
node_stack->visited = true;
switch (YP_NODE_TYPE(node)) {
#line 111 "api_node.c.erb"
- case YP_ALIAS_NODE: {
- yp_alias_node_t *cast = (yp_alias_node_t *) node;
+ case YP_ALIAS_GLOBAL_VARIABLE_NODE: {
+ yp_alias_global_variable_node_t *cast = (yp_alias_global_variable_node_t *) node;
yp_node_stack_push(&node_stack, (yp_node_t *) cast->new_name);
yp_node_stack_push(&node_stack, (yp_node_t *) cast->old_name);
break;
}
#line 111 "api_node.c.erb"
+ case YP_ALIAS_METHOD_NODE: {
+ yp_alias_method_node_t *cast = (yp_alias_method_node_t *) node;
+ yp_node_stack_push(&node_stack, (yp_node_t *) cast->new_name);
+ yp_node_stack_push(&node_stack, (yp_node_t *) cast->old_name);
+ break;
+ }
+#line 111 "api_node.c.erb"
case YP_ALTERNATION_PATTERN_NODE: {
yp_alternation_pattern_node_t *cast = (yp_alternation_pattern_node_t *) node;
yp_node_stack_push(&node_stack, (yp_node_t *) cast->left);
yp_node_stack_push(&node_stack, (yp_node_t *) cast->right);
break;
@@ -617,10 +629,16 @@
yp_imaginary_node_t *cast = (yp_imaginary_node_t *) node;
yp_node_stack_push(&node_stack, (yp_node_t *) cast->numeric);
break;
}
#line 111 "api_node.c.erb"
+ case YP_IMPLICIT_NODE: {
+ yp_implicit_node_t *cast = (yp_implicit_node_t *) node;
+ yp_node_stack_push(&node_stack, (yp_node_t *) cast->value);
+ break;
+ }
+#line 111 "api_node.c.erb"
case YP_IN_NODE: {
yp_in_node_t *cast = (yp_in_node_t *) node;
yp_node_stack_push(&node_stack, (yp_node_t *) cast->pattern);
yp_node_stack_push(&node_stack, (yp_node_t *) cast->statements);
break;
@@ -648,10 +666,18 @@
yp_instance_variable_write_node_t *cast = (yp_instance_variable_write_node_t *) node;
yp_node_stack_push(&node_stack, (yp_node_t *) cast->value);
break;
}
#line 111 "api_node.c.erb"
+ case YP_INTERPOLATED_MATCH_LAST_LINE_NODE: {
+ yp_interpolated_match_last_line_node_t *cast = (yp_interpolated_match_last_line_node_t *) node;
+ for (size_t index = 0; index < cast->parts.size; index++) {
+ yp_node_stack_push(&node_stack, (yp_node_t *) cast->parts.nodes[index]);
+ }
+ break;
+ }
+#line 111 "api_node.c.erb"
case YP_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
yp_interpolated_regular_expression_node_t *cast = (yp_interpolated_regular_expression_node_t *) node;
for (size_t index = 0; index < cast->parts.size; index++) {
yp_node_stack_push(&node_stack, (yp_node_t *) cast->parts.nodes[index]);
}
@@ -739,10 +765,16 @@
yp_node_stack_push(&node_stack, (yp_node_t *) cast->value);
yp_node_stack_push(&node_stack, (yp_node_t *) cast->pattern);
break;
}
#line 111 "api_node.c.erb"
+ case YP_MATCH_WRITE_NODE: {
+ yp_match_write_node_t *cast = (yp_match_write_node_t *) node;
+ yp_node_stack_push(&node_stack, (yp_node_t *) cast->call);
+ break;
+ }
+#line 111 "api_node.c.erb"
case YP_MODULE_NODE: {
yp_module_node_t *cast = (yp_module_node_t *) node;
yp_node_stack_push(&node_stack, (yp_node_t *) cast->constant_path);
yp_node_stack_push(&node_stack, (yp_node_t *) cast->body);
break;
@@ -790,14 +822,14 @@
yp_node_stack_push(&node_stack, (yp_node_t *) cast->requireds.nodes[index]);
}
for (size_t index = 0; index < cast->optionals.size; index++) {
yp_node_stack_push(&node_stack, (yp_node_t *) cast->optionals.nodes[index]);
}
+ yp_node_stack_push(&node_stack, (yp_node_t *) cast->rest);
for (size_t index = 0; index < cast->posts.size; index++) {
yp_node_stack_push(&node_stack, (yp_node_t *) cast->posts.nodes[index]);
}
- yp_node_stack_push(&node_stack, (yp_node_t *) cast->rest);
for (size_t index = 0; index < cast->keywords.size; index++) {
yp_node_stack_push(&node_stack, (yp_node_t *) cast->keywords.nodes[index]);
}
yp_node_stack_push(&node_stack, (yp_node_t *) cast->keyword_rest);
yp_node_stack_push(&node_stack, (yp_node_t *) cast->block);
@@ -971,12 +1003,12 @@
} else {
yp_node_t *node = yp_node_stack_pop(&node_stack);
switch (YP_NODE_TYPE(node)) {
#line 137 "api_node.c.erb"
- case YP_ALIAS_NODE: {
- yp_alias_node_t *cast = (yp_alias_node_t *) node;
+ case YP_ALIAS_GLOBAL_VARIABLE_NODE: {
+ yp_alias_global_variable_node_t *cast = (yp_alias_global_variable_node_t *) node;
VALUE argv[4];
// new_name
#line 148 "api_node.c.erb"
argv[0] = rb_ary_pop(value_stack);
@@ -990,14 +1022,37 @@
argv[2] = yp_location_new(parser, cast->keyword_loc.start, cast->keyword_loc.end, source);
// location
argv[3] = yp_location_new(parser, node->location.start, node->location.end, source);
- rb_ary_push(value_stack, rb_class_new_instance(4, argv, rb_cYARPAliasNode));
+ rb_ary_push(value_stack, rb_class_new_instance(4, argv, rb_cYARPAliasGlobalVariableNode));
break;
}
#line 137 "api_node.c.erb"
+ case YP_ALIAS_METHOD_NODE: {
+ yp_alias_method_node_t *cast = (yp_alias_method_node_t *) node;
+ VALUE argv[4];
+
+ // new_name
+#line 148 "api_node.c.erb"
+ argv[0] = rb_ary_pop(value_stack);
+
+ // old_name
+#line 148 "api_node.c.erb"
+ argv[1] = rb_ary_pop(value_stack);
+
+ // keyword_loc
+#line 173 "api_node.c.erb"
+ argv[2] = yp_location_new(parser, cast->keyword_loc.start, cast->keyword_loc.end, source);
+
+ // location
+ argv[3] = yp_location_new(parser, node->location.start, node->location.end, source);
+
+ rb_ary_push(value_stack, rb_class_new_instance(4, argv, rb_cYARPAliasMethodNode));
+ break;
+ }
+#line 137 "api_node.c.erb"
case YP_ALTERNATION_PATTERN_NODE: {
yp_alternation_pattern_node_t *cast = (yp_alternation_pattern_node_t *) node;
VALUE argv[4];
// left
@@ -1383,11 +1438,11 @@
#line 176 "api_node.c.erb"
argv[5] = cast->closing_loc.start == NULL ? Qnil : yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
// flags
#line 182 "api_node.c.erb"
- argv[6] = ULONG2NUM(node->flags >> 1);
+ argv[6] = ULONG2NUM(node->flags >> 2);
// read_name
#line 157 "api_node.c.erb"
argv[7] = yp_string_new(&cast->read_name, encoding);
@@ -1442,11 +1497,11 @@
#line 148 "api_node.c.erb"
argv[6] = rb_ary_pop(value_stack);
// flags
#line 182 "api_node.c.erb"
- argv[7] = ULONG2NUM(node->flags >> 1);
+ argv[7] = ULONG2NUM(node->flags >> 2);
// name
#line 157 "api_node.c.erb"
argv[8] = yp_string_new(&cast->name, encoding);
@@ -1485,11 +1540,11 @@
#line 176 "api_node.c.erb"
argv[5] = cast->closing_loc.start == NULL ? Qnil : yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
// flags
#line 182 "api_node.c.erb"
- argv[6] = ULONG2NUM(node->flags >> 1);
+ argv[6] = ULONG2NUM(node->flags >> 2);
// read_name
#line 157 "api_node.c.erb"
argv[7] = yp_string_new(&cast->read_name, encoding);
@@ -1545,11 +1600,11 @@
#line 176 "api_node.c.erb"
argv[5] = cast->closing_loc.start == NULL ? Qnil : yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
// flags
#line 182 "api_node.c.erb"
- argv[6] = ULONG2NUM(node->flags >> 1);
+ argv[6] = ULONG2NUM(node->flags >> 2);
// read_name
#line 157 "api_node.c.erb"
argv[7] = yp_string_new(&cast->read_name, encoding);
@@ -2361,11 +2416,11 @@
#line 173 "api_node.c.erb"
argv[2] = yp_location_new(parser, cast->operator_loc.start, cast->operator_loc.end, source);
// flags
#line 182 "api_node.c.erb"
- argv[3] = ULONG2NUM(node->flags >> 1);
+ argv[3] = ULONG2NUM(node->flags >> 2);
// location
argv[4] = yp_location_new(parser, node->location.start, node->location.end, source);
rb_ary_push(value_stack, rb_class_new_instance(5, argv, rb_cYARPFlipFlopNode));
@@ -2707,10 +2762,24 @@
rb_ary_push(value_stack, rb_class_new_instance(2, argv, rb_cYARPImaginaryNode));
break;
}
#line 137 "api_node.c.erb"
+ case YP_IMPLICIT_NODE: {
+ VALUE argv[2];
+
+ // value
+#line 148 "api_node.c.erb"
+ argv[0] = rb_ary_pop(value_stack);
+
+ // location
+ argv[1] = yp_location_new(parser, node->location.start, node->location.end, source);
+
+ rb_ary_push(value_stack, rb_class_new_instance(2, argv, rb_cYARPImplicitNode));
+ break;
+ }
+#line 137 "api_node.c.erb"
case YP_IN_NODE: {
yp_in_node_t *cast = (yp_in_node_t *) node;
VALUE argv[5];
// pattern
@@ -2884,19 +2953,53 @@
rb_ary_push(value_stack, rb_class_new_instance(5, argv, rb_cYARPInstanceVariableWriteNode));
break;
}
#line 137 "api_node.c.erb"
case YP_INTEGER_NODE: {
- VALUE argv[1];
+ VALUE argv[2];
+ // flags
+#line 182 "api_node.c.erb"
+ argv[0] = ULONG2NUM(node->flags >> 2);
+
// location
- argv[0] = yp_location_new(parser, node->location.start, node->location.end, source);
+ argv[1] = yp_location_new(parser, node->location.start, node->location.end, source);
- rb_ary_push(value_stack, rb_class_new_instance(1, argv, rb_cYARPIntegerNode));
+ rb_ary_push(value_stack, rb_class_new_instance(2, argv, rb_cYARPIntegerNode));
break;
}
#line 137 "api_node.c.erb"
+ case YP_INTERPOLATED_MATCH_LAST_LINE_NODE: {
+ yp_interpolated_match_last_line_node_t *cast = (yp_interpolated_match_last_line_node_t *) node;
+ VALUE argv[5];
+
+ // opening_loc
+#line 173 "api_node.c.erb"
+ argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
+
+ // parts
+#line 151 "api_node.c.erb"
+ argv[1] = rb_ary_new_capa(cast->parts.size);
+ for (size_t index = 0; index < cast->parts.size; index++) {
+ rb_ary_push(argv[1], rb_ary_pop(value_stack));
+ }
+
+ // closing_loc
+#line 173 "api_node.c.erb"
+ argv[2] = yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
+
+ // flags
+#line 182 "api_node.c.erb"
+ argv[3] = ULONG2NUM(node->flags >> 2);
+
+ // location
+ argv[4] = yp_location_new(parser, node->location.start, node->location.end, source);
+
+ rb_ary_push(value_stack, rb_class_new_instance(5, argv, rb_cYARPInterpolatedMatchLastLineNode));
+ break;
+ }
+#line 137 "api_node.c.erb"
case YP_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
yp_interpolated_regular_expression_node_t *cast = (yp_interpolated_regular_expression_node_t *) node;
VALUE argv[5];
// opening_loc
@@ -2914,11 +3017,11 @@
#line 173 "api_node.c.erb"
argv[2] = yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
// flags
#line 182 "api_node.c.erb"
- argv[3] = ULONG2NUM(node->flags >> 1);
+ argv[3] = ULONG2NUM(node->flags >> 2);
// location
argv[4] = yp_location_new(parser, node->location.start, node->location.end, source);
rb_ary_push(value_stack, rb_class_new_instance(5, argv, rb_cYARPInterpolatedRegularExpressionNode));
@@ -3277,10 +3380,41 @@
rb_ary_push(value_stack, rb_class_new_instance(6, argv, rb_cYARPLocalVariableWriteNode));
break;
}
#line 137 "api_node.c.erb"
+ case YP_MATCH_LAST_LINE_NODE: {
+ yp_match_last_line_node_t *cast = (yp_match_last_line_node_t *) node;
+ VALUE argv[6];
+
+ // opening_loc
+#line 173 "api_node.c.erb"
+ argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
+
+ // content_loc
+#line 173 "api_node.c.erb"
+ argv[1] = yp_location_new(parser, cast->content_loc.start, cast->content_loc.end, source);
+
+ // closing_loc
+#line 173 "api_node.c.erb"
+ argv[2] = yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
+
+ // unescaped
+#line 157 "api_node.c.erb"
+ argv[3] = yp_string_new(&cast->unescaped, encoding);
+
+ // flags
+#line 182 "api_node.c.erb"
+ argv[4] = ULONG2NUM(node->flags >> 2);
+
+ // location
+ argv[5] = yp_location_new(parser, node->location.start, node->location.end, source);
+
+ rb_ary_push(value_stack, rb_class_new_instance(6, argv, rb_cYARPMatchLastLineNode));
+ break;
+ }
+#line 137 "api_node.c.erb"
case YP_MATCH_PREDICATE_NODE: {
yp_match_predicate_node_t *cast = (yp_match_predicate_node_t *) node;
VALUE argv[4];
// value
@@ -3323,10 +3457,33 @@
rb_ary_push(value_stack, rb_class_new_instance(4, argv, rb_cYARPMatchRequiredNode));
break;
}
#line 137 "api_node.c.erb"
+ case YP_MATCH_WRITE_NODE: {
+ yp_match_write_node_t *cast = (yp_match_write_node_t *) node;
+ VALUE argv[3];
+
+ // call
+#line 148 "api_node.c.erb"
+ argv[0] = rb_ary_pop(value_stack);
+
+ // locals
+#line 166 "api_node.c.erb"
+ argv[1] = rb_ary_new_capa(cast->locals.size);
+ for (size_t index = 0; index < cast->locals.size; index++) {
+ assert(cast->locals.ids[index] != 0);
+ rb_ary_push(argv[1], rb_id2sym(constants[cast->locals.ids[index] - 1]));
+ }
+
+ // location
+ argv[2] = yp_location_new(parser, node->location.start, node->location.end, source);
+
+ rb_ary_push(value_stack, rb_class_new_instance(3, argv, rb_cYARPMatchWriteNode));
+ break;
+ }
+#line 137 "api_node.c.erb"
case YP_MISSING_NODE: {
VALUE argv[1];
// location
argv[0] = yp_location_new(parser, node->location.start, node->location.end, source);
@@ -3565,21 +3722,21 @@
argv[1] = rb_ary_new_capa(cast->optionals.size);
for (size_t index = 0; index < cast->optionals.size; index++) {
rb_ary_push(argv[1], rb_ary_pop(value_stack));
}
+ // rest
+#line 148 "api_node.c.erb"
+ argv[2] = rb_ary_pop(value_stack);
+
// posts
#line 151 "api_node.c.erb"
- argv[2] = rb_ary_new_capa(cast->posts.size);
+ argv[3] = rb_ary_new_capa(cast->posts.size);
for (size_t index = 0; index < cast->posts.size; index++) {
- rb_ary_push(argv[2], rb_ary_pop(value_stack));
+ rb_ary_push(argv[3], rb_ary_pop(value_stack));
}
- // rest
-#line 148 "api_node.c.erb"
- argv[3] = rb_ary_pop(value_stack);
-
// keywords
#line 151 "api_node.c.erb"
argv[4] = rb_ary_new_capa(cast->keywords.size);
for (size_t index = 0; index < cast->keywords.size; index++) {
rb_ary_push(argv[4], rb_ary_pop(value_stack));
@@ -3762,11 +3919,11 @@
#line 173 "api_node.c.erb"
argv[2] = yp_location_new(parser, cast->operator_loc.start, cast->operator_loc.end, source);
// flags
#line 182 "api_node.c.erb"
- argv[3] = ULONG2NUM(node->flags >> 1);
+ argv[3] = ULONG2NUM(node->flags >> 2);
// location
argv[4] = yp_location_new(parser, node->location.start, node->location.end, source);
rb_ary_push(value_stack, rb_class_new_instance(5, argv, rb_cYARPRangeNode));
@@ -3817,11 +3974,11 @@
#line 157 "api_node.c.erb"
argv[3] = yp_string_new(&cast->unescaped, encoding);
// flags
#line 182 "api_node.c.erb"
- argv[4] = ULONG2NUM(node->flags >> 1);
+ argv[4] = ULONG2NUM(node->flags >> 2);
// location
argv[5] = yp_location_new(parser, node->location.start, node->location.end, source);
rb_ary_push(value_stack, rb_class_new_instance(6, argv, rb_cYARPRegularExpressionNode));
@@ -4121,32 +4278,36 @@
break;
}
#line 137 "api_node.c.erb"
case YP_STRING_NODE: {
yp_string_node_t *cast = (yp_string_node_t *) node;
- VALUE argv[5];
+ VALUE argv[6];
+ // flags
+#line 182 "api_node.c.erb"
+ argv[0] = ULONG2NUM(node->flags >> 2);
+
// opening_loc
#line 176 "api_node.c.erb"
- argv[0] = cast->opening_loc.start == NULL ? Qnil : yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
+ argv[1] = cast->opening_loc.start == NULL ? Qnil : yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
// content_loc
#line 173 "api_node.c.erb"
- argv[1] = yp_location_new(parser, cast->content_loc.start, cast->content_loc.end, source);
+ argv[2] = yp_location_new(parser, cast->content_loc.start, cast->content_loc.end, source);
// closing_loc
#line 176 "api_node.c.erb"
- argv[2] = cast->closing_loc.start == NULL ? Qnil : yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
+ argv[3] = cast->closing_loc.start == NULL ? Qnil : yp_location_new(parser, cast->closing_loc.start, cast->closing_loc.end, source);
// unescaped
#line 157 "api_node.c.erb"
- argv[3] = yp_string_new(&cast->unescaped, encoding);
+ argv[4] = yp_string_new(&cast->unescaped, encoding);
// location
- argv[4] = yp_location_new(parser, node->location.start, node->location.end, source);
+ argv[5] = yp_location_new(parser, node->location.start, node->location.end, source);
- rb_ary_push(value_stack, rb_class_new_instance(5, argv, rb_cYARPStringNode));
+ rb_ary_push(value_stack, rb_class_new_instance(6, argv, rb_cYARPStringNode));
break;
}
#line 137 "api_node.c.erb"
case YP_SUPER_NODE: {
yp_super_node_t *cast = (yp_super_node_t *) node;
@@ -4289,11 +4450,11 @@
#line 148 "api_node.c.erb"
argv[3] = rb_ary_pop(value_stack);
// flags
#line 182 "api_node.c.erb"
- argv[4] = ULONG2NUM(node->flags >> 1);
+ argv[4] = ULONG2NUM(node->flags >> 2);
// location
argv[5] = yp_location_new(parser, node->location.start, node->location.end, source);
rb_ary_push(value_stack, rb_class_new_instance(6, argv, rb_cYARPUntilNode));
@@ -4346,11 +4507,11 @@
#line 148 "api_node.c.erb"
argv[3] = rb_ary_pop(value_stack);
// flags
#line 182 "api_node.c.erb"
- argv[4] = ULONG2NUM(node->flags >> 1);
+ argv[4] = ULONG2NUM(node->flags >> 2);
// location
argv[5] = yp_location_new(parser, node->location.start, node->location.end, source);
rb_ary_push(value_stack, rb_class_new_instance(6, argv, rb_cYARPWhileNode));
@@ -4421,11 +4582,12 @@
return result;
}
void
Init_yarp_api_node(void) {
- rb_cYARPAliasNode = rb_define_class_under(rb_cYARP, "AliasNode", rb_cYARPNode);
+ rb_cYARPAliasGlobalVariableNode = rb_define_class_under(rb_cYARP, "AliasGlobalVariableNode", rb_cYARPNode);
+ rb_cYARPAliasMethodNode = rb_define_class_under(rb_cYARP, "AliasMethodNode", rb_cYARPNode);
rb_cYARPAlternationPatternNode = rb_define_class_under(rb_cYARP, "AlternationPatternNode", rb_cYARPNode);
rb_cYARPAndNode = rb_define_class_under(rb_cYARP, "AndNode", rb_cYARPNode);
rb_cYARPArgumentsNode = rb_define_class_under(rb_cYARP, "ArgumentsNode", rb_cYARPNode);
rb_cYARPArrayNode = rb_define_class_under(rb_cYARP, "ArrayNode", rb_cYARPNode);
rb_cYARPArrayPatternNode = rb_define_class_under(rb_cYARP, "ArrayPatternNode", rb_cYARPNode);
@@ -4486,18 +4648,20 @@
rb_cYARPGlobalVariableWriteNode = rb_define_class_under(rb_cYARP, "GlobalVariableWriteNode", rb_cYARPNode);
rb_cYARPHashNode = rb_define_class_under(rb_cYARP, "HashNode", rb_cYARPNode);
rb_cYARPHashPatternNode = rb_define_class_under(rb_cYARP, "HashPatternNode", rb_cYARPNode);
rb_cYARPIfNode = rb_define_class_under(rb_cYARP, "IfNode", rb_cYARPNode);
rb_cYARPImaginaryNode = rb_define_class_under(rb_cYARP, "ImaginaryNode", rb_cYARPNode);
+ rb_cYARPImplicitNode = rb_define_class_under(rb_cYARP, "ImplicitNode", rb_cYARPNode);
rb_cYARPInNode = rb_define_class_under(rb_cYARP, "InNode", rb_cYARPNode);
rb_cYARPInstanceVariableAndWriteNode = rb_define_class_under(rb_cYARP, "InstanceVariableAndWriteNode", rb_cYARPNode);
rb_cYARPInstanceVariableOperatorWriteNode = rb_define_class_under(rb_cYARP, "InstanceVariableOperatorWriteNode", rb_cYARPNode);
rb_cYARPInstanceVariableOrWriteNode = rb_define_class_under(rb_cYARP, "InstanceVariableOrWriteNode", rb_cYARPNode);
rb_cYARPInstanceVariableReadNode = rb_define_class_under(rb_cYARP, "InstanceVariableReadNode", rb_cYARPNode);
rb_cYARPInstanceVariableTargetNode = rb_define_class_under(rb_cYARP, "InstanceVariableTargetNode", rb_cYARPNode);
rb_cYARPInstanceVariableWriteNode = rb_define_class_under(rb_cYARP, "InstanceVariableWriteNode", rb_cYARPNode);
rb_cYARPIntegerNode = rb_define_class_under(rb_cYARP, "IntegerNode", rb_cYARPNode);
+ rb_cYARPInterpolatedMatchLastLineNode = rb_define_class_under(rb_cYARP, "InterpolatedMatchLastLineNode", rb_cYARPNode);
rb_cYARPInterpolatedRegularExpressionNode = rb_define_class_under(rb_cYARP, "InterpolatedRegularExpressionNode", rb_cYARPNode);
rb_cYARPInterpolatedStringNode = rb_define_class_under(rb_cYARP, "InterpolatedStringNode", rb_cYARPNode);
rb_cYARPInterpolatedSymbolNode = rb_define_class_under(rb_cYARP, "InterpolatedSymbolNode", rb_cYARPNode);
rb_cYARPInterpolatedXStringNode = rb_define_class_under(rb_cYARP, "InterpolatedXStringNode", rb_cYARPNode);
rb_cYARPKeywordHashNode = rb_define_class_under(rb_cYARP, "KeywordHashNode", rb_cYARPNode);
@@ -4508,11 +4672,13 @@
rb_cYARPLocalVariableOperatorWriteNode = rb_define_class_under(rb_cYARP, "LocalVariableOperatorWriteNode", rb_cYARPNode);
rb_cYARPLocalVariableOrWriteNode = rb_define_class_under(rb_cYARP, "LocalVariableOrWriteNode", rb_cYARPNode);
rb_cYARPLocalVariableReadNode = rb_define_class_under(rb_cYARP, "LocalVariableReadNode", rb_cYARPNode);
rb_cYARPLocalVariableTargetNode = rb_define_class_under(rb_cYARP, "LocalVariableTargetNode", rb_cYARPNode);
rb_cYARPLocalVariableWriteNode = rb_define_class_under(rb_cYARP, "LocalVariableWriteNode", rb_cYARPNode);
+ rb_cYARPMatchLastLineNode = rb_define_class_under(rb_cYARP, "MatchLastLineNode", rb_cYARPNode);
rb_cYARPMatchPredicateNode = rb_define_class_under(rb_cYARP, "MatchPredicateNode", rb_cYARPNode);
rb_cYARPMatchRequiredNode = rb_define_class_under(rb_cYARP, "MatchRequiredNode", rb_cYARPNode);
+ rb_cYARPMatchWriteNode = rb_define_class_under(rb_cYARP, "MatchWriteNode", rb_cYARPNode);
rb_cYARPMissingNode = rb_define_class_under(rb_cYARP, "MissingNode", rb_cYARPNode);
rb_cYARPModuleNode = rb_define_class_under(rb_cYARP, "ModuleNode", rb_cYARPNode);
rb_cYARPMultiTargetNode = rb_define_class_under(rb_cYARP, "MultiTargetNode", rb_cYARPNode);
rb_cYARPMultiWriteNode = rb_define_class_under(rb_cYARP, "MultiWriteNode", rb_cYARPNode);
rb_cYARPNextNode = rb_define_class_under(rb_cYARP, "NextNode", rb_cYARPNode);