Parsing 哪种解析器:EBNF、Custom、Parser Combinator(及其衍生物)?

Parsing 哪种解析器:EBNF、Custom、Parser Combinator(及其衍生物)?,parsing,Parsing,我以前开发过自定义解析器,使用了bnf驱动的解析器,简要介绍了解析器组合器,并阅读了解析器组合器的衍生产品 我比较宽泛的问题是,您如何决定哪种战略/技术是正确的?显然,它有一些实用的元素,即如果您只知道自定义解析器,时间对您不利,那么您的选择可能是有限的,或者如果语言(和社区)不提供工具/支持,您将不得不自己编写基础结构(这当然是可能的),但是,原则上,关于解析策略/技术本身,是否有任何“经验法则”有助于告知决策 短暂性脑缺血发作 西蒙我建议如下: 检查你的目标语言是否能有效地用LR(1)语法描

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

我比较宽泛的问题是,您如何决定哪种战略/技术是正确的?显然,它有一些实用的元素,即如果您只知道自定义解析器,时间对您不利,那么您的选择可能是有限的,或者如果语言(和社区)不提供工具/支持,您将不得不自己编写基础结构(这当然是可能的),但是,原则上,关于解析策略/技术本身,是否有任何“经验法则”有助于告知决策

短暂性脑缺血发作


西蒙

我建议如下:

  • 检查你的目标语言是否能有效地用LR(1)语法描述
  • 如果是,则使用各种工具之一,如YACC。这些工具很好,您需要找到不想使用它们的原因
  • 如果没有,我们将查找特定的书籍或编写自己的解析器