我正在为我的编译器项目使用flex lexer作为一个lexer,并且我有这样的函数来更改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工具并获得自动生成的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 为什么??我该怎么办??
发布于 2011-10-14 08:31:11
我解决这个问题的方法--我使用了来自MinGW包的flex
https://stackoverflow.com/questions/6151928
复制相似问题