diff options
| -rw-r--r-- | parse.y | 34 |
1 files changed, 19 insertions, 15 deletions
@@ -10835,6 +10835,16 @@ rb_parser_fatal(struct parser_params *p, const char *fmt, ...) p->debug = TRUE; } +static YYLTYPE * +rb_parser_set_pos(YYLTYPE *yylloc, int sourceline, int beg_pos, int end_pos) +{ + yylloc->beg_pos.lineno = sourceline; + yylloc->beg_pos.column = beg_pos; + yylloc->end_pos.lineno = sourceline; + yylloc->end_pos.column = end_pos; + return yylloc; +} + YYLTYPE * rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_heredoc_t *here, YYLTYPE *yylloc) { @@ -10843,31 +10853,25 @@ rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_ - (rb_strlen_lit("<<-") - !(here->func & STR_FUNC_INDENT)); int end_pos = (int)here->offset + here->length + here->quote; - yylloc->beg_pos.lineno = sourceline; - yylloc->beg_pos.column = beg_pos; - yylloc->end_pos.lineno = sourceline; - yylloc->end_pos.column = end_pos; - return yylloc; + return rb_parser_set_pos(yylloc, sourceline, beg_pos, end_pos); } YYLTYPE * rb_parser_set_location_of_none(struct parser_params *p, YYLTYPE *yylloc) { - yylloc->beg_pos.lineno = p->ruby_sourceline; - yylloc->beg_pos.column = (int)(p->lex.ptok - p->lex.pbeg); - yylloc->end_pos.lineno = p->ruby_sourceline; - yylloc->end_pos.column = (int)(p->lex.ptok - p->lex.pbeg); - return yylloc; + int sourceline = p->ruby_sourceline; + int beg_pos = (int)(p->lex.ptok - p->lex.pbeg); + int end_pos = (int)(p->lex.ptok - p->lex.pbeg); + return rb_parser_set_pos(yylloc, sourceline, beg_pos, end_pos); } YYLTYPE * rb_parser_set_location(struct parser_params *p, YYLTYPE *yylloc) { - yylloc->beg_pos.lineno = p->ruby_sourceline; - yylloc->beg_pos.column = (int)(p->lex.ptok - p->lex.pbeg); - yylloc->end_pos.lineno = p->ruby_sourceline; - yylloc->end_pos.column = (int)(p->lex.pcur - p->lex.pbeg); - return yylloc; + int sourceline = p->ruby_sourceline; + int beg_pos = (int)(p->lex.ptok - p->lex.pbeg); + int end_pos = (int)(p->lex.pcur - p->lex.pbeg); + return rb_parser_set_pos(yylloc, sourceline, beg_pos, end_pos); } #endif /* !RIPPER */ |
