我正在使用 flex词法分析器作为我的编译器项目的词法分析器,我有这个函数来更改词法分析器输入流,如下所示:
.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
为什么?我该怎么办??
最佳答案
我对这个问题的解决方案——我使用了 MinGW 包中的 flex
关于c++ - flex 自动生成的文件无法使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6151928/