множественное определение "yyerror" - PullRequest
1 голос
/ 11 октября 2009

С бизоном (или yacc) как мне решить ошибку

 multiple definition of `yyerror'

Я попробовал %option noyywrap nodefault yylineno и написал прототип вверху. Не повезло.

-edit-

фига. когда я скопировал вставить пример для работы, я не понял, что у меня уже есть функция yyerror.

Ответы [ 2 ]

1 голос
/ 11 октября 2009

Вам нужна следующая опция ld(1):

    -y symbol
   --trace-symbol=symbol
       Print the name of each linked file in which symbol  appears.   This
       option  may  be  given  any number of times.  On many systems it is
       necessary to prepend an underscore.

Вы можете подать это через cc(1) интерфейс -Wl,option

   -Wl,option
       Pass option as an option to the linker.  If option contains commas,
       it is split into multiple options at the commas.

Итак, cc -Wl,--trace-symbol=yyerror ...

0 голосов
/ 11 октября 2009

мм, я не уверен, но "yyerror" - это пользовательская функция (для Bison). Если вы возитесь с

%name_prefix

опция, например

%name_prefix my_cool_parser_

вы можете заставить его использовать "my_cool_parser_error" вместо yyerror. Если вы попытаетесь сделать это, поможет ли решить, где находится ошибка?

...