【发布时间】:2012-07-25 07:45:38
【问题描述】:
我试图在我的项目中使用flex 和bison 来为文件结构生成解析器代码。主要编程语言为 C++,项目采用 OO 设计,主要并行运行。
我听说flex 和bison 生成的解析器是C 代码,它们不能重入。谷歌搜索,我找到了flex++ 和bisonc++。不幸的是,没有简单的教程可以开始。大多数示例基于bison/flex。有些人以某种方式在他们的 C++ 代码中集成了 bison/flex 解析器。他们应该是“棘手的”......
flex++ 和 bisonc++ 的文档对我没有帮助。教程和示例,它们都从标准输入获取输入并在标准输出上打印一些消息。
我的解析器需要这些功能:
- 解析器应该是一个 C++ 类,以正常方式定义(一个头文件和一个 cpp 文件)
- 解析器从
std::string或std::stringstream或以空结尾的char*接收数据。
我感到很困惑。我应该使用flex++/bisonc++ 还是flex/bison?以及如何做到这一点,满足以上条件?
【问题讨论】:
标签: c++ parsing bison flex-lexer