【问题标题】:using bison++ to create glr parser使用 bison++ 创建 glr 解析器
【发布时间】:2012-11-01 16:03:07
【问题描述】:

我最近一直在开发一个带有 flex/bison bison 对的解析器。我无法让解析器以我想要的方式适合我的应用程序。这包括使解析器可重入和线程安全以及将其很好地融入应用程序框架的问题。

我最近转向 flex++/bison++,它为 C++ 编程提供了许多优势,并提供了一种非常清晰且易于管理的方式来使用 OOP 连接和扩展解析器。 Bison++ 与原始野牛共享大部分接口。缺点是围绕特定用法的文档很差。一般来说,界面要直观得多,所以直到现在这还不是问题。

随着我的解析器的开发取得进展,我已经意识到在一些更复杂的解析器中使用 GLR 的潜力。

问题: 是否可以专门在 bison++ 中使用 GLR,如何激活该选项?

【问题讨论】:

  • 让我们在每个帖子中保留一个问题。在任何情况下,人们是否觉得博客文章有趣都千差万别。

标签: parsing bison flex-lexer glr


【解决方案1】:

GNU Bison 还支持 C++,请参阅 http://www.gnu.org/software/bison/manual/bison.html#C++-Parsers。这种支持包括 GLR。

【讨论】:

  • 是的。 GNU bison 生成的接口不像 bison++ 那样适合我的编码风格。因此我选择了野牛++。我只需要知道是否支持 GLR。谢谢。 D
  • 你能解释一下你不喜欢它的界面什么,你更喜欢什么吗?谢谢!
  • Flex++/Bison++ 有更多的错误检测输出(我在使用 c++ 的 flex/bison 中没有/可能是它在构建中设置的方式。)。我在调试生成的代码方面取得了更大的成功。我发现生成的类更容易集成到现有的代码库中/需要更少的步骤/更直观的使用。我喜欢简单的事情,因为我倾向于花更多的时间进行实验,而花更少的时间让事情发挥作用。所以总的来说,对我来说,与使用 GNU flex/bison 和 c++ 相比,它是一种改进的体验。
  • 我在使用 GNU Flex 和 Bison 时获得较少回报的吞食可能与 Flex 和 c++ 集成有很大关系,但我被警告不要混合和匹配。 Flex++/Bison++ 似乎非常适合我的需求 我只是想知道是否支持 GLR 解析,以便我可以试验它的功能。
猜你喜欢
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多