2013-06-29 45 views

回答

3

Pratt解析器不是LR解析器。而且他們也不完全是LL解析器。事實上,普拉特解析器通常是用一些通用編程語言手工編碼的;該技術不是基於像下推式有限狀態自動機這樣的抽象。這使得證明關於給定的普拉特解析器的斷言比較困難,比如它承認了一種特定的形式語言。

一般來說,如果語法是運算符優先級語法,則可以輕鬆地設計Pratt語法分析程序來識別語言,因此即使運算符優先級分析是自下而上的,它們也可以被認爲是運算符優先級分析的對偶,並且普拉特解析器名義上是自上而下的。跟蹤Pratt解析器和相同語言的運算符優先級解析器的轉換將顯示相似性。

所以我想有可能爲Pratt解析器提出一個形式化方法,但據我所知,沒有一個存在。