Lexing和Parsing Utilities

时间:2011-02-13 04:39:34

标签: python ruby parsing lexical-analysis guile

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

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

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

3 个答案:

答案 0 :(得分:2)

有一个现代Packrat解析器列表here

答案 1 :(得分:1)

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

GLR解析器可以处理歧义,可能有一些用途; bison提供此选项。

答案 2 :(得分:0)

Guile 2.0(将在几天内发布)有一个LALR(1) parsing library