我正在使用flex lexer作为我的编译器项目的词法分析器,我有这个函数来更改词法分析器输入流,如下所示:
.L
void initLexer(string code) {
lineNumber = 1;
columnNumber = 0;
currentStringIndex = 0;
yy_delete_buffer(YY_CURRENT_BUFFER);
YY_BUFFER_STATE my_string_buffer = yy_scan_string("sh");
yy_switch_to_buffer(my_string_buffer);
}
我正在使用以下选项来生成合适的例程
%option nounput
%option nomain nodefault
%option noyywrap
%option warn
%option c++
在我运行flex lexer工具并获得自动生成的cpp文件之后,我尝试构建我的项目但它无法识别
error C2065: 'yy_current_buffer' : undeclared identifier
error C3861: 'yy_delete_buffer': identifier not found
error C3861: 'yy_scan_string': identifier not found
error C3861: 'yy_switch_to_buffer': identifier not found
为什么?我该怎么办?
答案 0 :(得分:1)
我对此问题的解决方案 - 我使用了MinGW包中的flex