summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.y25
1 files changed, 14 insertions, 11 deletions
diff --git a/parse.y b/parse.y
index 44dd1cbbd7..c8acac5d2c 100644
--- a/parse.y
+++ b/parse.y
@@ -10575,27 +10575,30 @@ static NODE *
parser_append_options(struct parser_params *p, NODE *node)
{
static const YYLTYPE default_location = {{1, 0}, {1, 0}};
+ const YYLTYPE *const LOC = &default_location;
if (p->do_print) {
- node = block_append(p, node,
- NEW_FCALL(rb_intern("print"),
- NEW_ARRAY(NEW_GVAR(idLASTLINE, &default_location), &NULL_LOC), &default_location));
+ NODE *print = NEW_FCALL(rb_intern("print"),
+ NEW_ARRAY(NEW_GVAR(idLASTLINE, LOC), LOC),
+ LOC);
+ node = block_append(p, node, print);
}
if (p->do_loop) {
if (p->do_split) {
- node = block_append(p, NEW_GASGN(rb_intern("$F"),
- NEW_CALL(NEW_GVAR(idLASTLINE, &default_location),
- rb_intern("split"), 0, &default_location),
- &NULL_LOC),
- node);
+ NODE *split = NEW_GASGN(rb_intern("$F"),
+ NEW_CALL(NEW_GVAR(idLASTLINE, LOC),
+ rb_intern("split"), 0, LOC),
+ LOC);
+ node = block_append(p, split, node);
}
if (p->do_chomp) {
- node = block_append(p, NEW_CALL(NEW_GVAR(idLASTLINE, &default_location),
- rb_intern("chomp!"), 0, &default_location), node);
+ NODE *chomp = NEW_CALL(NEW_GVAR(idLASTLINE, LOC),
+ rb_intern("chomp!"), 0, LOC);
+ node = block_append(p, chomp, node);
}
- node = NEW_WHILE(NEW_VCALL(idGets, &NULL_LOC), node, 1, &NULL_LOC);
+ node = NEW_WHILE(NEW_VCALL(idGets, LOC), node, 1, LOC);
}
return node;