mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 16:44:01 +02:00
Add rb_parser_set_pos
function
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Co-authored-by: Marivaldo Cavalheiro <marivaldo@gmail.com>
This commit is contained in:
parent
41d4902c27
commit
9b187fec58
Notes:
git
2021-12-16 20:04:03 +09:00
Merged: https://github.com/ruby/ruby/pull/5089 Merged-By: nobu <nobu@ruby-lang.org>
1 changed files with 21 additions and 17 deletions
38
parse.y
38
parse.y
|
@ -10835,14 +10835,9 @@ rb_parser_fatal(struct parser_params *p, const char *fmt, ...)
|
||||||
p->debug = TRUE;
|
p->debug = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
YYLTYPE *
|
static YYLTYPE *
|
||||||
rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_heredoc_t *here, YYLTYPE *yylloc)
|
rb_parser_set_pos(YYLTYPE *yylloc, int sourceline, int beg_pos, int end_pos)
|
||||||
{
|
{
|
||||||
int sourceline = here->sourceline;
|
|
||||||
int beg_pos = (int)here->offset - here->quote
|
|
||||||
- (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.lineno = sourceline;
|
||||||
yylloc->beg_pos.column = beg_pos;
|
yylloc->beg_pos.column = beg_pos;
|
||||||
yylloc->end_pos.lineno = sourceline;
|
yylloc->end_pos.lineno = sourceline;
|
||||||
|
@ -10850,24 +10845,33 @@ rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_
|
||||||
return yylloc;
|
return yylloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
YYLTYPE *
|
||||||
|
rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_heredoc_t *here, YYLTYPE *yylloc)
|
||||||
|
{
|
||||||
|
int sourceline = here->sourceline;
|
||||||
|
int beg_pos = (int)here->offset - here->quote
|
||||||
|
- (rb_strlen_lit("<<-") - !(here->func & STR_FUNC_INDENT));
|
||||||
|
int end_pos = (int)here->offset + here->length + here->quote;
|
||||||
|
|
||||||
|
return rb_parser_set_pos(yylloc, sourceline, beg_pos, end_pos);
|
||||||
|
}
|
||||||
|
|
||||||
YYLTYPE *
|
YYLTYPE *
|
||||||
rb_parser_set_location_of_none(struct parser_params *p, YYLTYPE *yylloc)
|
rb_parser_set_location_of_none(struct parser_params *p, YYLTYPE *yylloc)
|
||||||
{
|
{
|
||||||
yylloc->beg_pos.lineno = p->ruby_sourceline;
|
int sourceline = p->ruby_sourceline;
|
||||||
yylloc->beg_pos.column = (int)(p->lex.ptok - p->lex.pbeg);
|
int beg_pos = (int)(p->lex.ptok - p->lex.pbeg);
|
||||||
yylloc->end_pos.lineno = p->ruby_sourceline;
|
int end_pos = (int)(p->lex.ptok - p->lex.pbeg);
|
||||||
yylloc->end_pos.column = (int)(p->lex.ptok - p->lex.pbeg);
|
return rb_parser_set_pos(yylloc, sourceline, beg_pos, end_pos);
|
||||||
return yylloc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
YYLTYPE *
|
YYLTYPE *
|
||||||
rb_parser_set_location(struct parser_params *p, YYLTYPE *yylloc)
|
rb_parser_set_location(struct parser_params *p, YYLTYPE *yylloc)
|
||||||
{
|
{
|
||||||
yylloc->beg_pos.lineno = p->ruby_sourceline;
|
int sourceline = p->ruby_sourceline;
|
||||||
yylloc->beg_pos.column = (int)(p->lex.ptok - p->lex.pbeg);
|
int beg_pos = (int)(p->lex.ptok - p->lex.pbeg);
|
||||||
yylloc->end_pos.lineno = p->ruby_sourceline;
|
int end_pos = (int)(p->lex.pcur - p->lex.pbeg);
|
||||||
yylloc->end_pos.column = (int)(p->lex.pcur - p->lex.pbeg);
|
return rb_parser_set_pos(yylloc, sourceline, beg_pos, end_pos);
|
||||||
return yylloc;
|
|
||||||
}
|
}
|
||||||
#endif /* !RIPPER */
|
#endif /* !RIPPER */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue