Как использовать yyerror, чтобы рассказать больше об ошибках разбора
Итак, я написал всю грамматику, которую хочу, и все работает гладко. Я не делаю абсолютно никаких действий, когда встречается грамматика.
Это определение моей функции yyerror
int yyerror (const char *s)
{
printf("parser error %s \n ",s);
return 0;
}
Ну, я где-то читал, что мне нужно добавить% error-verbose, если я хочу получить больше информации об ошибках, с которыми столкнулся мой парсер; когда я пытался добавить его, я получил это сообщение об ошибке
ошибка: не распознана: %error_verbose
Учтите, что я использую Flex, Bison и связал их с VS2010
РЕДАКТИРОВАТЬ: Несмотря на то, что ошибка упоминает error_verbose, я убедился, что я передаю подробный error, с чертой вместо подчеркивания.
2 ответа
Как ни странно, когда я попробовал подробный%error на последней версии бизона в Linux, он работал просто отлично, но не работал с версией Windows.
Не уверен, что это ошибка в версии, которую я использую в Windows, или она просто не поддерживается.
Это %error-verbose
, с тире, но вместо сообщения об ошибке отображается подчеркивание.