2013-06-29 44 views

回答

3

Pratt解析器不是LR解析器。而且他们也不完全是LL解析器。事实上,普拉特解析器通常是用一些通用编程语言手工编码的;该技术不是基于像下推式有限状态自动机这样的抽象。这使得证明关于给定的普拉特解析器的断言比较困难,比如它承认了一种特定的形式语言。

一般来说,如果语法是运算符优先级语法,则可以轻松地设计Pratt语法分析程序来识别语言,因此即使运算符优先级分析是自下而上的,它们也可以被认为是运算符优先级分析的对偶,并且普拉特解析器名义上是自上而下的。跟踪Pratt解析器和相同语言的运算符优先级解析器的转换将显示相似性。

所以我想有可能为Pratt解析器提出一个形式化方法,但据我所知,没有一个存在。