词法分析和解析工具
我在寻找一些词法分析和解析器生成工具,但不想用Flex或Bison。以下是我的要求:
- 解析器需要使用上下文无关的LL(*)或GLR语法来指定。我也会考虑PEG语法。
- 这个工具要能和一种编程语言紧密结合,这种语言可以用来写脚本和开发应用。希望这门语言能方便地和C语言对接。好的例子有Python、Ruby和Guile。不要C、Java或Perl。我希望语言是统一的;我希望解析器生成的代码也用同一种语言。
- 文档要写得很好,质量要过关。
- 开源的。如果是免费的那就更好了(虽然不是必须的)。
- 要兼容Linux发行版或者某个开源的BSD系统。我也会考虑OpenSolaris。
- 快速开发比效率更重要。
- 适合解析自然语言和正式语言。自然语言解析只限于短小简单的句子,且歧义很少。
我对ANTLR很感兴趣,虽然我从未使用过。欢迎对此发表意见。请告诉我你最喜欢的符合这些要求的工具,以及你推荐它们的理由。
3 个回答
0
Guile 2.0(大约在几天后发布)有一个LALR(1) 解析库。
1
自然语言(NL)通常有很多模糊的地方。如果你想解析自然语言,我觉得传统的编译器类型的解析器生成工具(比如LALR、LL,包括ANTLR)对你帮助不大,因为这些工具通常根本不处理模糊性。
一个可以处理模糊性的GLR解析器可能会对你有一些帮助;bison提供了这个选项。
2
这里有一个现代Packrat解析器的列表,你可以在这里查看。