|
| From: | Bruce Lilly |
| Subject: | Re: Bison/flex compatibility revisited |
| Date: | Fri, 28 Feb 2003 23:44:31 -0500 |
| User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021130 |
W. L. Estes wrote:
I find this in the bison manual, in the chapter on invoking bison:
`-p PREFIX'
`--name-prefix=PREFIX'
Rename the external symbols used in the parser so that they start
with PREFIX instead of `yy'. The precise list of symbols renamed
is `yyparse', `yylex', `yyerror', `yynerrs', `yylval', `yychar'
and `yydebug'.
That's from not-the-most-recent version of bison, but it should still
be useful.
That's achieved by the a bunch of macros near the top of the bison-generated y.tab.c: /* If NAME_PREFIX is specified substitute the variables and functions names. */ #define yyparse mailparse #define yylex maillex #define yyerror mailerror #define yylval maillval #define yychar mailchar #define yydebug maildebug #define yynerrs mailnerrs And if the flex-generated header file is included w/o YY_HEADER_NO_UNDEFS, its #undefs proceed to trounce those macros.
| [Prev in Thread] | Current Thread | [Next in Thread] |