首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Flex++ Bisonc++解析器

Flex++ Bisonc++解析器
EN

Stack Overflow用户
提问于 2012-07-27 00:47:11
回答 2查看 6.9K关注 0票数 7

我试图在我的项目中使用flexbison来为文件结构生成解析器代码。主要编程语言是C++,项目采用面向对象的设计,主要是并行运行。

我听说flexbison生成的解析器都是C代码,它们是不可重入的。我在谷歌上找到了flex++bisonc++不幸的是,没有简单的入门教程。大多数示例都是基于bison/flex的。有些人以某种方式在他们的C++代码中集成了bison/flex解析器。他们被认为是“棘手的”..。

flex++bisonc++的文档对我没有帮助。教程和示例,它们都从stdin获得输入,并在stdout上打印一些消息。

我需要在我的解析器中使用这些特性:

  1. 解析器应该是以正常方式定义的C++类(头文件和cpp文件)
  2. 解析器从std::stringstd::stringstream或以null结尾的null接收数据

我感到很困惑。我应该使用flex++/bisonc++还是flex/bison?如何在满足上述条件的情况下做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2012-07-27 01:40:35

Flex可以生成一个可重入的C扫描器。参见Flex手册中的19 Reentrant C scanners一节。

同样,Bison可以生成一个可重入的C解析器。有关详细信息,请参阅野牛手册中的3.8.11 A Pure (Reentrant) Parser部分。

你真的需要一个C++解析器和基于std::string/string string的解析器数据吗?

您是否考虑过将Boost.Spirit作为替代方案?

票数 2
EN

Stack Overflow用户

发布于 2018-08-22 03:35:43

LRSTAR product (LR(k)解析器和DFA lexer生成器)是基于C++的。在Widown上运行,有六个Visual Studio项目。该代码还可以使用"gcc“和其他编译器进行编译。有用于lexer和parser,symbol-table,AST的类。完整的源代码可用。它得到了好评。我应该知道。我是作者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11674104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档