这语法分析程序/分析器发电机是最好(最简单的使用,最)对C或C++?我使用的柔性和野牛的权利,但是bison只处理LALR(1)语法。语言我不析 真的 需要不限超前,但无限制的预期会使分析 很多 更加容易。我应该试试这些代码?Coco/R?Elkhound?别的东西吗?

有帮助吗?

解决方案

更新 2015-01-05:

原来的答案 指向一个现已删除的问题:

有一群很好的答案,这个问题已经在 什么样的分析器生你建议

所以我已经采取的项目清单从 删除的答案archive.org 至少有1票在这里:

我已经做了几个柔性/野牛系统自己但是现在我想代替这两个用 柠檬 从源码因为它是一个工具,重新加入者和线安全以及具有流/拉基于的模型。

其他提示

在坏消息是,最真实的汉语语言的计算机不是“LALR(1)”,这意味着你必须诉诸相当两轮牛车,使YACC解析真实汉语语言。

如果你在设计一个DSL,你可以使用任何的LALR解析器生成没有很多的麻烦,正是因为当解析器发电机叫声,你可以改变你的DSL的语法。 LL解析器生成大多是工作太这里出于同样的原因,但缺少左递归可以是一个真正的痛苦。

如果你在你喜欢你的语法方式uncomprising,GLR分析器是双手向下赢家。我们在 DMS软件再造工具包使用它们,并建立了产品质量的解析器一些30多种语言,包括C ++,具有无名氏定理说的几乎是不可能的解析。民间定理用LL和LALR解析器尝试和处理C ++的人开始。 GLR确实很容易。

ANTLR使得无限先行非常容易使用“回溯”选项。它也可能有资格你的“最容易使用的,最快”的准则,因为它可以让你可视化和调试你的语法ANTLRWORKS。

另一个优点是,它使AST建筑十分容易通过其内置在针对其在缺少野牛建筑物的AST的支持。

通过出版了两本书 - “ANTLR:权威指南”和“语言设计模式”,这是可用的很好的记录工具中的一种。你也有一个非常活跃的邮件列表。

我不知道你在找什么究竟, 但我认为,加速 xpressive中是值得看的...

不完全是一个解析器生成,但一个伟大的工具来处理语法,我觉得它可以处理古怪的人。

我已使用GOLD解析系统( http://www.devincook.com/goldparser)有很好的效果。我的项目是小,在C. NC文件解析系统 但我认为该工具可以处理更复杂的项目也是如此。

最新野牛声称做无限先行,通过(实际上)同时做几解析。如果你已经在野牛投资那么它可能是值得尝试了这一点,而不是切换到另一个包。

http://www.gnu.org/software /bison/manual/bison.html#GLR-Parsers

我还没有使用该功能自己,虽然。

至于其它系统去,我已经使用ANTLR。我没有特别喜欢它(文件是不是很好,而且必须手动因素一个人的语法,以满足运算符优先级),但它没有工作,所以许多由它发誓,它肯定是值得期待的。

LRSTAR 9.1 可以生成LR(1)和LR(*)的解析器。这是一个基于C ++的系统,友好的Windows和Visual Studio。它创建表驱动的解析器和表格驱动的词法分析器,这是小,快速编译。 LRSTAR解析器可以自动建立AST。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top