Wen Yi <chuxuec@xxxxxxxxxxx> writes: > When I use the yacc & lex to compile, > yacc -d 1-3.y > lex 1-3.l > gcc 1-3.tab.c lex.yy.c > /usr/bin/ld: /tmp/ccYqqE5N.o:(.bss+0x28): multiple definition of `yylval'; /tmp/ccdJ12gy.o:(.bss+0x4): first defined here Bison provides the declaration of yylval; don't add one yourself. BTW, this isn't right: #define YYSTPYE string first because you misspelled YYSTYPE, and second because you evidently want yylval to be double not a string. regards, tom lane