从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()函数了。在进行词法分析时,如果出现了定义的错误情况,将会执行相应的操作并输出错误信息。
小程序云开发官方直播课(应用开发实战)
腾讯云存储知识小课堂
云+社区沙龙online [技术应变力]
腾讯位置服务技术沙龙
云+社区技术沙龙[第10期]
北极星训练营
高校公开课
停课不停学 腾讯教育在行动第二期
《民航智见》线上会议
领取专属 10元无门槛券
手把手带您无忧上云