哪个解析器:EBNF,Custom,Parser Combinator(及其衍生产品)?

时间:2010-12-04 10:28:40

标签: parsing

我以前开发过自定义解析器,使用bnf驱动的解析器,简要介绍了解析器组合器,并阅读了解析器组合器的衍生物。

我的相当广泛的问题是,您如何确定哪种策略/技术是正确的?显然有一些实用的元素,即如果你只知道自定义解析器和时间对你不利,那么你的选择可能是有限的,或者如果语言(和社区)没有提供工具/支持,你最终会有自己编写基础设施(当然可能是这样),但原则上有任何关于解析策略/技术本身的“经验法则”,这有助于为决策提供信息。

TIA

西蒙

1 个答案:

答案 0 :(得分:2)

我会推荐以下内容:

  1. 检查您的目标语言是否可以用LR(1)语法有效描述。
  2. 如果是,则使用YACC等各种工具之一。这些工具很好,您需要找到不想使用它们的原因。
  3. 如果不是,请查看特定书籍或编写自己的解析器。