summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-05-10 16:40:34 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-05-10 22:02:54 +0900
commit79931dddba67ad68886f65ba8562eb99507cee3a (patch)
tree2b345b2d5a337dc8611e07212101afba0d9af679
parentdc65e75101de94c0f88851d7d3eab56cb7232c7a (diff)
Propagate parser_params to rb_yytnamerr
-rw-r--r--parse.y7
-rwxr-xr-xtool/ytab.sed2
2 files changed, 6 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index fd0810987f..60ca58f61e 100644
--- a/parse.y
+++ b/parse.y
@@ -649,8 +649,8 @@ rb_strterm_mark(VALUE obj)
}
#endif
-#define yytnamerr(yyres, yystr) (YYSIZE_T)rb_yytnamerr(yyres, yystr)
-size_t rb_yytnamerr(char *yyres, const char *yystr);
+#define yytnamerr(yyres, yystr) (YYSIZE_T)rb_yytnamerr(p, yyres, yystr)
+size_t rb_yytnamerr(struct parser_params *p, char *yyres, const char *yystr);
#define TOKEN2ID(tok) ( \
tTOKEN_LOCAL_BEGIN<(tok)&&(tok)<tTOKEN_LOCAL_END ? TOKEN2LOCALID(tok) : \
@@ -12273,8 +12273,9 @@ count_char(const char *str, int c)
* "\"`class' keyword\"" => "`class' keyword"
*/
RUBY_FUNC_EXPORTED size_t
-rb_yytnamerr(char *yyres, const char *yystr)
+rb_yytnamerr(struct parser_params *p, char *yyres, const char *yystr)
{
+ YYUSE(p);
if (*yystr == '"') {
size_t yyn = 0, bquote = 0;
const char *yyp = yystr;
diff --git a/tool/ytab.sed b/tool/ytab.sed
index f7438077dc..ba7566ac7f 100755
--- a/tool/ytab.sed
+++ b/tool/ytab.sed
@@ -67,6 +67,8 @@ a\
/^yy_reduce_print/,/^}/{
s/fprintf *(stderr,/YYFPRINTF (p,/g
}
+s/^yysyntax_error (/&struct parser_params *p, /
+s/ yysyntax_error (/&p, /
s/\( YYFPRINTF *(\)yyoutput,/\1p,/
s/\( YYFPRINTF *(\)yyo,/\1p,/
s/\( YYFPRINTF *(\)stderr,/\1p,/