我正在从使用bison-flex创建的编译器中解析文本文件。 如果发现错误,它将停止打印文本的下一行。
我使用过的错误处理方法
extern int yylineno;
void yyerror(char *s) {
errors++;
printf("\n Error at line #%d.\n\n",yylineno);
}
答案 0 :(得分:2)
如果希望语法错误后继续解析器,则必须至少提供一个error
生成。否则,将不应用bison / yacc错误恢复算法。
有关更多详细信息和一些简单示例,请参见bison manual chapter on error recovery。