从flex调用yyerror()可以通过在flex源文件中定义yyerror()函数来实现。yyerror()函数用于处理词法分析阶段遇到的错误,并可以在错误发生时输出错误信息。具体步骤如下:
#include <stdio.h>
void yyerror(const char* msg) {
fprintf(stderr, "Error: %s\n", msg);
}
这里的yyerror()函数会将错误信息打印到标准错误流stderr。
%%
[a-zA-Z]+ { /* 正确的词法规则 */ }
. { yyerror("无效的输入字符"); }
%%
在上面的例子中,如果输入中出现任何非字母字符,将会调用yyerror()函数并传递错误信息"无效的输入字符"。
现在,你已经成功从flex调用yyerror()函数了。在进行词法分析时,如果出现了定义的错误情况,将会执行相应的操作并输出错误信息。
领取专属 10元无门槛券
手把手带您无忧上云