Linking two yacc (y.tab.o) files
Tedd Hadley
hadley at ics.uci.edu
Sat Feb 24 07:11:48 AEST 1990
jxf at phobos.cis.ksu.edu (Jerry Frain) writes:
>I seem to recall a thread in this newsgroup about this problem quite some
>time ago, but I did not pay any attention to the solution at the time.
>Anybody got any ideas as to how I can solve this dilemma?
Here's a very practical (as opposed to pedantically correct) solution.
Include the following ".h" file in your yacc file.
Replace all <unique_name_here> with whatever name you wish.
Call to parser becomes <unique_name_here>_yyparse()
--- yacc_unique.h ---
#define yyact <unique_name_here>_yyact
#define yyback <unique_name_here>_yyback
#define yybgin <unique_name_here>_yybgin
#define yychar <unique_name_here>_yychar
#define yychk <unique_name_here>_yychk
#define yycrank <unique_name_here>_yycrank
#define yydef <unique_name_here>_yydef
#define yyerrflag <unique_name_here>_yyerrflag
#define yyestate <unique_name_here>_yyestate
#define yyexca <unique_name_here>_yyexca
#define yyextra <unique_name_here>_yyextra
#define yyfnd <unique_name_here>_yyfnd
#define yyin <unique_name_here>_yyin
#define yyinput <unique_name_here>_yyinput
#define yyleng <unique_name_here>_yyleng
#define yylex <unique_name_here>_yylex
#define yylineno <unique_name_here>_yylineno
#define yylook <unique_name_here>_yylook
#define yylsp <unique_name_here>_yylsp
#define yylstate <unique_name_here>_yylstate
#define yylval <unique_name_here>_yylval
#define yymatch <unique_name_here>_yymatch
#define yymorfg <unique_name_here>_yymorfg
#define yynerrs <unique_name_here>_yynerrs
#define yyolsp <unique_name_here>_yyolsp
#define yyout <unique_name_here>_yyout
#define yyoutput <unique_name_here>_yyoutput
#define yypact <unique_name_here>_yypact
#define yyparse <unique_name_here>_yyparse
#define yypgo <unique_name_here>_yypgo
#define yyprevious <unique_name_here>_yyprevious
#define yyr1 <unique_name_here>_yyr1
#define yyr2 <unique_name_here>_yyr2
#define yysbuf <unique_name_here>_yysbuf
#define yysptr <unique_name_here>_yysptr
#define yysvec <unique_name_here>_yysvec
#define yytchar <unique_name_here>_yytchar
#define yytext <unique_name_here>_yytext
#define yytop <unique_name_here>_yytop
#define yyunput <unique_name_here>_yyunput
#define yyv <unique_name_here>_yyv
#define yyval <unique_name_here>_yyval
#define yyvstop <unique_name_here>_yyvstop
--- yacc_unique.h ---
And best of all, no `sed' scripts.
++
Tedd Hadley (hadley at ics.uci.edu)
More information about the Comp.unix.wizards
mailing list