问题描述
|
我正在将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
为什么??我该怎么办??
解决方法
我对这个问题的解决方案-我使用了MinGW包中的flex