Parsing 解析器选择的标准

Parsing 解析器选择的标准,parsing,antlr,javacc,Parsing,Antlr,Javacc,假设我设计了一种语言。当选择合适的解析器/框架JavaCc、ANTLR、SCAP、MPS…比如性能、测试生成、IDE支持……/P>时,需要考虑的标准是什么? 我知道,正确与否取决于很多变量,但我只对我将在之后进行加权的标准列表感兴趣,我可以根据这些标准做出决定 任何输入的Thx 这种决策最重要的输入可能是语言的复杂性。不同的解析器生成器能够处理不同类别的语言 由于您的语言很可能是一种语言,否则您要么可以使用正则表达式,要么面临相当大的挑战,您通常需要在LR解析器或其变体和ll解析器之间做出选择。

假设我设计了一种语言。当选择合适的解析器/框架JavaCc、ANTLR、SCAP、MPS…比如性能、测试生成、IDE支持……/P>时,需要考虑的标准是什么? 我知道,正确与否取决于很多变量,但我只对我将在之后进行加权的标准列表感兴趣,我可以根据这些标准做出决定


任何输入的Thx

这种决策最重要的输入可能是语言的复杂性。不同的解析器生成器能够处理不同类别的语言

由于您的语言很可能是一种语言,否则您要么可以使用正则表达式,要么面临相当大的挑战,您通常需要在LR解析器或其变体和ll解析器之间做出选择。作为一个简单的例子!根据经验,LR解析器能够解析更复杂的语言,而LL解析器更直观、更容易理解

我认为重要的其他标准包括:

理解和调试生成的解析器/解析器生成过程本身有多容易 这在很大程度上有利于,因为一般来说,外行更容易理解 表演
LALR1解析器可以非常快,因为它们可以基于预编译的表,但一个字符的超前查找可能会限制语法。黄金解析器就是一个很好的例子。有很多引擎可供选择,即使它很旧,如果你能用BNF来描述你的语法,那就相当快了。

征求意见在当时并不受欢迎。较好的