more ytab.sed fixes

* tool/ytab.sed: `p` is too short to distinguish alone from other
  names.  fix for more old bison which does not support %lex-param
  at yydestruct.  add `p` argument to non-prototype declaration of
  yy_stack_print.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2018-01-15 02:23:24 +00:00
parent 5f3ddb32c7
commit 630ab3b925

View File

@ -14,7 +14,7 @@ a\
} }
/^yydestruct.*yymsg/,/#endif/{ /^yydestruct.*yymsg/,/#endif/{
/^yydestruct/{ /^yydestruct/{
/p/!{ /[, *]p)/!{
H H
s/^/ruby_parser_&/ s/^/ruby_parser_&/
s/)$/, p)/ s/)$/, p)/
@ -25,18 +25,28 @@ a\
x x
/yydestruct/{ /yydestruct/{
i\ i\
struct parser_params *p; \ struct parser_params *p;
a\ a\
#define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p) #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
} }
x x
} }
} }
/^yy_stack_print/{ /^yy_stack_print /,/#endif/{
/parser/!{ /^yy_stack_print/{
H /[, *]p)/!{
s/)$/, p)/ H
/\*/s/p)$/struct parser_params *&/ s/)$/, p)/
/\*/s/p)$/struct parser_params *&/
}
}
/^#endif/{
x
/yy_stack_print/{
i\
\ struct parser_params *p;
}
x
} }
} }
/yy_stack_print.*;/{ /yy_stack_print.*;/{