5

我正在寻找不是 Flex 或 Bison 的词法分析和解析器生成实用程序。要求:

  • 使用上下文无关的 LL(*) 或 GLR 语法指定解析器。我也会考虑 PEG。
  • 与可用于脚本和应用程序开发的编程语言紧密集成。语言还应该具有与 C 轻松交互的功能。Python、Ruby 和 Guile 就是很好的例子。请不要使用 C、Java 或 Perl。我希望语言是同质的;我希望解析器生成器以相同的语言输出代码。
  • 有据可查和生产质量。
  • 开源。免费也是可取的(尽管不是必需的)。
  • 与 Linux 发行版或开源 BSD 之一兼容。我会考虑 OpenSolaris。
  • 快速发展是一个比效率更重要的问题。
  • 适合解析自然语言和形式语言。自然语言解析仅限于简短、简单的句子,几乎没有歧义。

虽然我从未使用过它,但我关注的是 ANTLR。对此效果的评论表示赞赏。让我知道您最喜欢的满足这些要求的实用程序是什么,以及您推荐它们的原因。

4

3 回答 3

2

这里有一个现代 Packrat 解析器的列表。

于 2011-02-13T14:50:28.467 回答
1

NL 文本往往有很多歧义。如果您想解析自然语言,我认为任何经典的编译器类型解析器生成器(LALR、LL [包括 ANTLR])都不会对您有太大帮助,而编译器类型解析器生成器通常根本不处理这个问题。

确实可以处理歧义的 GLR 解析器可能会有一些用处。bison 提供了这个选项。

于 2011-02-14T12:16:07.377 回答
0

Guile 2.0(大约几天后发布)有一个LALR(1) 解析库

于 2011-02-13T11:57:14.253 回答