2010-12-04 84 views
2

我以前开发过自定义分析器,使用bnf驱动的分析器,简单介绍了我自己的分析器组合器,并阅读了分析器组合器的派生。哪个解析器:EBNF,自定义,解析器组合器(及其衍生物)?

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

TIA

西蒙

回答

2

我想提出以下建议:

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