c++ - flex 自动生成的文件无法使用?

标签 c++ visual-studio-2008 flex-lexer lexer

我正在使用 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/

相关文章:

c - yacc 和 flex 的 makefile

regex - 如何在 lex 中创建没有特定字母组的正则表达式

c++ - 标准输入C++

.net - Intellisense 提示和 XML 返回注释 (VS2008)

c++ - 有限域上超定系统解的存在性

visual-studio-2008 - 在标记和代码之间切换的快捷方式

.net - 将 "Help"集成到 WinForms 应用程序中

c - 如何在 lex.l 文件之外使用 flex 函数?

c++ - 仅当类重写方法时,XCode 4.3/4.4 类型信息才会在动态加载的共享库中实例化的类丢失

c++ - 从 C++ 中的另一个模板方法调用模板方法?