Resync YARP to https://github.com/ruby/yarp/commit/11ad3fb590
This commit is contained in:
parent
40002dd7dc
commit
f50e814dae
3
test/yarp/fixtures/endless_range_in_conditional.txt
Normal file
3
test/yarp/fixtures/endless_range_in_conditional.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if 1..2 ; end
|
||||||
|
if ..1 ; end
|
||||||
|
if 1.. ; end
|
31
test/yarp/snapshots/endless_range_in_conditional.txt
Normal file
31
test/yarp/snapshots/endless_range_in_conditional.txt
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
ProgramNode(0...39)(
|
||||||
|
[],
|
||||||
|
StatementsNode(0...39)(
|
||||||
|
[IfNode(0...13)(
|
||||||
|
(0...2),
|
||||||
|
FlipFlopNode(3...7)(
|
||||||
|
IntegerNode(3...4)(),
|
||||||
|
IntegerNode(6...7)(),
|
||||||
|
(4...6),
|
||||||
|
0
|
||||||
|
),
|
||||||
|
nil,
|
||||||
|
nil,
|
||||||
|
(10...13)
|
||||||
|
),
|
||||||
|
IfNode(14...26)(
|
||||||
|
(14...16),
|
||||||
|
FlipFlopNode(17...20)(nil, IntegerNode(19...20)(), (17...19), 0),
|
||||||
|
nil,
|
||||||
|
nil,
|
||||||
|
(23...26)
|
||||||
|
),
|
||||||
|
IfNode(27...39)(
|
||||||
|
(27...29),
|
||||||
|
FlipFlopNode(30...33)(IntegerNode(30...31)(), nil, (31...33), 0),
|
||||||
|
nil,
|
||||||
|
nil,
|
||||||
|
(36...39)
|
||||||
|
)]
|
||||||
|
)
|
||||||
|
)
|
@ -1009,7 +1009,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[2];
|
VALUE argv[2];
|
||||||
|
|
||||||
// arguments
|
// arguments
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->arguments.size);
|
||||||
for (size_t index = 0; index < cast->arguments.size; index++) {
|
for (size_t index = 0; index < cast->arguments.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -1026,7 +1026,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[4];
|
VALUE argv[4];
|
||||||
|
|
||||||
// elements
|
// elements
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->elements.size);
|
||||||
for (size_t index = 0; index < cast->elements.size; index++) {
|
for (size_t index = 0; index < cast->elements.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -1052,7 +1052,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = rb_ary_pop(value_stack);
|
argv[0] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// requireds
|
// requireds
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->requireds.size);
|
||||||
for (size_t index = 0; index < cast->requireds.size; index++) {
|
for (size_t index = 0; index < cast->requireds.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -1061,7 +1061,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[2] = rb_ary_pop(value_stack);
|
argv[2] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// posts
|
// posts
|
||||||
argv[3] = rb_ary_new();
|
argv[3] = rb_ary_new_capa(cast->posts.size);
|
||||||
for (size_t index = 0; index < cast->posts.size; index++) {
|
for (size_t index = 0; index < cast->posts.size; index++) {
|
||||||
rb_ary_push(argv[3], rb_ary_pop(value_stack));
|
rb_ary_push(argv[3], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -1177,7 +1177,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[6];
|
VALUE argv[6];
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -1226,7 +1226,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = rb_ary_pop(value_stack);
|
argv[0] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
yp_location_t location = cast->locals.locations[index];
|
yp_location_t location = cast->locals.locations[index];
|
||||||
rb_ary_push(argv[1], yp_location_new(parser, location.start, location.end, source));
|
rb_ary_push(argv[1], yp_location_new(parser, location.start, location.end, source));
|
||||||
@ -1391,7 +1391,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = rb_ary_pop(value_stack);
|
argv[0] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// conditions
|
// conditions
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->conditions.size);
|
||||||
for (size_t index = 0; index < cast->conditions.size; index++) {
|
for (size_t index = 0; index < cast->conditions.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -1417,7 +1417,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[8];
|
VALUE argv[8];
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -1753,7 +1753,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[3] = rb_ary_pop(value_stack);
|
argv[3] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[4] = rb_ary_new();
|
argv[4] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[4], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[4], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -1904,7 +1904,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[1] = rb_ary_pop(value_stack);
|
argv[1] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// requireds
|
// requireds
|
||||||
argv[2] = rb_ary_new();
|
argv[2] = rb_ary_new_capa(cast->requireds.size);
|
||||||
for (size_t index = 0; index < cast->requireds.size; index++) {
|
for (size_t index = 0; index < cast->requireds.size; index++) {
|
||||||
rb_ary_push(argv[2], rb_ary_pop(value_stack));
|
rb_ary_push(argv[2], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2124,7 +2124,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
||||||
|
|
||||||
// elements
|
// elements
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->elements.size);
|
||||||
for (size_t index = 0; index < cast->elements.size; index++) {
|
for (size_t index = 0; index < cast->elements.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2147,7 +2147,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = rb_ary_pop(value_stack);
|
argv[0] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// assocs
|
// assocs
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->assocs.size);
|
||||||
for (size_t index = 0; index < cast->assocs.size; index++) {
|
for (size_t index = 0; index < cast->assocs.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2341,7 +2341,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
||||||
|
|
||||||
// parts
|
// parts
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->parts.size);
|
||||||
for (size_t index = 0; index < cast->parts.size; index++) {
|
for (size_t index = 0; index < cast->parts.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2367,7 +2367,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = cast->opening_loc.start == NULL ? Qnil : yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
argv[0] = cast->opening_loc.start == NULL ? Qnil : yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
||||||
|
|
||||||
// parts
|
// parts
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->parts.size);
|
||||||
for (size_t index = 0; index < cast->parts.size; index++) {
|
for (size_t index = 0; index < cast->parts.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2390,7 +2390,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = cast->opening_loc.start == NULL ? Qnil : yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
argv[0] = cast->opening_loc.start == NULL ? Qnil : yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
||||||
|
|
||||||
// parts
|
// parts
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->parts.size);
|
||||||
for (size_t index = 0; index < cast->parts.size; index++) {
|
for (size_t index = 0; index < cast->parts.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2413,7 +2413,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
argv[0] = yp_location_new(parser, cast->opening_loc.start, cast->opening_loc.end, source);
|
||||||
|
|
||||||
// parts
|
// parts
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->parts.size);
|
||||||
for (size_t index = 0; index < cast->parts.size; index++) {
|
for (size_t index = 0; index < cast->parts.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2433,7 +2433,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[2];
|
VALUE argv[2];
|
||||||
|
|
||||||
// elements
|
// elements
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->elements.size);
|
||||||
for (size_t index = 0; index < cast->elements.size; index++) {
|
for (size_t index = 0; index < cast->elements.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2484,7 +2484,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[5];
|
VALUE argv[5];
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -2675,7 +2675,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[6];
|
VALUE argv[6];
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -2704,7 +2704,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[6];
|
VALUE argv[6];
|
||||||
|
|
||||||
// targets
|
// targets
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->targets.size);
|
||||||
for (size_t index = 0; index < cast->targets.size; index++) {
|
for (size_t index = 0; index < cast->targets.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2830,19 +2830,19 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[8];
|
VALUE argv[8];
|
||||||
|
|
||||||
// requireds
|
// requireds
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->requireds.size);
|
||||||
for (size_t index = 0; index < cast->requireds.size; index++) {
|
for (size_t index = 0; index < cast->requireds.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
// optionals
|
// optionals
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->optionals.size);
|
||||||
for (size_t index = 0; index < cast->optionals.size; index++) {
|
for (size_t index = 0; index < cast->optionals.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
// posts
|
// posts
|
||||||
argv[2] = rb_ary_new();
|
argv[2] = rb_ary_new_capa(cast->posts.size);
|
||||||
for (size_t index = 0; index < cast->posts.size; index++) {
|
for (size_t index = 0; index < cast->posts.size; index++) {
|
||||||
rb_ary_push(argv[2], rb_ary_pop(value_stack));
|
rb_ary_push(argv[2], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2851,7 +2851,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[3] = rb_ary_pop(value_stack);
|
argv[3] = rb_ary_pop(value_stack);
|
||||||
|
|
||||||
// keywords
|
// keywords
|
||||||
argv[4] = rb_ary_new();
|
argv[4] = rb_ary_new_capa(cast->keywords.size);
|
||||||
for (size_t index = 0; index < cast->keywords.size; index++) {
|
for (size_t index = 0; index < cast->keywords.size; index++) {
|
||||||
rb_ary_push(argv[4], rb_ary_pop(value_stack));
|
rb_ary_push(argv[4], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -2980,7 +2980,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[3];
|
VALUE argv[3];
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -3072,7 +3072,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[4];
|
VALUE argv[4];
|
||||||
|
|
||||||
// parameters
|
// parameters
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->parameters.size);
|
||||||
for (size_t index = 0; index < cast->parameters.size; index++) {
|
for (size_t index = 0; index < cast->parameters.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -3132,7 +3132,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = yp_location_new(parser, cast->keyword_loc.start, cast->keyword_loc.end, source);
|
argv[0] = yp_location_new(parser, cast->keyword_loc.start, cast->keyword_loc.end, source);
|
||||||
|
|
||||||
// exceptions
|
// exceptions
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->exceptions.size);
|
||||||
for (size_t index = 0; index < cast->exceptions.size; index++) {
|
for (size_t index = 0; index < cast->exceptions.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -3215,7 +3215,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[7];
|
VALUE argv[7];
|
||||||
|
|
||||||
// locals
|
// locals
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->locals.size);
|
||||||
for (size_t index = 0; index < cast->locals.size; index++) {
|
for (size_t index = 0; index < cast->locals.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
rb_ary_push(argv[0], rb_id2sym(constants[cast->locals.ids[index] - 1]));
|
||||||
}
|
}
|
||||||
@ -3298,7 +3298,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[2];
|
VALUE argv[2];
|
||||||
|
|
||||||
// body
|
// body
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->body.size);
|
||||||
for (size_t index = 0; index < cast->body.size; index++) {
|
for (size_t index = 0; index < cast->body.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -3413,7 +3413,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
VALUE argv[3];
|
VALUE argv[3];
|
||||||
|
|
||||||
// names
|
// names
|
||||||
argv[0] = rb_ary_new();
|
argv[0] = rb_ary_new_capa(cast->names.size);
|
||||||
for (size_t index = 0; index < cast->names.size; index++) {
|
for (size_t index = 0; index < cast->names.size; index++) {
|
||||||
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
rb_ary_push(argv[0], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
@ -3485,7 +3485,7 @@ yp_ast_new(yp_parser_t *parser, yp_node_t *node, rb_encoding *encoding) {
|
|||||||
argv[0] = yp_location_new(parser, cast->keyword_loc.start, cast->keyword_loc.end, source);
|
argv[0] = yp_location_new(parser, cast->keyword_loc.start, cast->keyword_loc.end, source);
|
||||||
|
|
||||||
// conditions
|
// conditions
|
||||||
argv[1] = rb_ary_new();
|
argv[1] = rb_ary_new_capa(cast->conditions.size);
|
||||||
for (size_t index = 0; index < cast->conditions.size; index++) {
|
for (size_t index = 0; index < cast->conditions.size; index++) {
|
||||||
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
rb_ary_push(argv[1], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
|
@ -459,8 +459,12 @@ yp_flip_flop(yp_node_t *node) {
|
|||||||
}
|
}
|
||||||
case YP_NODE_RANGE_NODE: {
|
case YP_NODE_RANGE_NODE: {
|
||||||
yp_range_node_t *cast = (yp_range_node_t *) node;
|
yp_range_node_t *cast = (yp_range_node_t *) node;
|
||||||
|
if (cast->left) {
|
||||||
yp_flip_flop(cast->left);
|
yp_flip_flop(cast->left);
|
||||||
|
}
|
||||||
|
if (cast->right) {
|
||||||
yp_flip_flop(cast->right);
|
yp_flip_flop(cast->right);
|
||||||
|
}
|
||||||
|
|
||||||
// Here we change the range node into a flip flop node. We can do
|
// Here we change the range node into a flip flop node. We can do
|
||||||
// this since the nodes are exactly the same except for the type.
|
// this since the nodes are exactly the same except for the type.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user