mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05: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;
|
||||
}
|
||||
|
||||
YYLTYPE *
|
||||
rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_heredoc_t *here, YYLTYPE *yylloc)
|
||||
static YYLTYPE *
|
||||
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.column = beg_pos;
|
||||
yylloc->end_pos.lineno = sourceline;
|
||||
|
@ -10850,24 +10845,33 @@ rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_
|
|||
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 *
|
||||
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 */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue