From 0f076affb670bf24ae837ae71544cfc7e6cb45d0 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 13 Dec 2015 14:46:09 +0000 Subject: parse.y: lex_state trace by yydebug * parse.y (trace_lex_state): trace lex_state changes if yydebug is set, and send the messages to rb_stdout. * parse.y (rb_parser_printf): store YYPRINTF messages per lines so that lex_state traces do not mix. * tool/ytab.sed: add parser argument to yy_stack_print too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- tool/ytab.sed | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'tool') diff --git a/tool/ytab.sed b/tool/ytab.sed index 46317db284..d8fb70016c 100755 --- a/tool/ytab.sed +++ b/tool/ytab.sed @@ -14,7 +14,7 @@ a\ /^yydestruct.*yymsg/,/#endif/{ /^yydestruct/{ /parser/!{ - h + H s/^/ruby_parser_&/ s/)$/, parser)/ /\*/s/parser)$/struct parser_params *&/ @@ -22,7 +22,7 @@ a\ } /^#endif/{ x - /^./{ + /yydestruct/{ i\ struct parser_params *parser; a\ @@ -31,6 +31,22 @@ a\ x } } +/^yy_stack_print/{ + /parser/!{ + H + s/)$/, parser)/ + /\*/s/parser)$/struct parser_params *&/ + } +} +/yy_stack_print.*;/{ + x + /yy_stack_print/{ + x + s/\(yy_stack_print *\)(\(.*\));/\1(\2, parser);/ + x + } + x +} s/^\([ ]*\)\(yyerror[ ]*([ ]*parser,\)/\1parser_\2/ s!^ *extern char \*getenv();!/* & */! s/^\(#.*\)".*\.tab\.c"/\1"parse.c"/ -- cgit v1.2.3