Parser - ошибка сегментации при вызове yytext
Мой парсер распознает грамматику и указывает правильную строку ошибки, используя yylineno. Я хочу напечатать символ, вызвавший ошибку.
int yyerror(string s)
{
extern int yylineno; // defined and maintained in lex.yy.c
extern char *yytext; // defined and maintained in lex.yy.c
cerr << "error: " << s << " -> " << yytext << " @ line " << yylineno << endl;
//exit(1);
}
Я получаю эту ошибку, когда пишу что-то неприемлемое по грамматике:
ошибка: синтаксическая ошибка -> ошибка сегментации
Разве я не должен использовать yytext? Если нет, то какая переменная содержит символ, вызвавший синтаксическую ошибку?
Спасибо