2010-05-31 58 views
9

我無法在Internet上找到有關LL(*)解析器(如ANTLR)的任何完整描述。LL(*)解析器如何工作?

我不知道是什麼的LL(K)分析器和LL(*)一個,爲什麼他們不能支持左recusrive語法,儘管它們的靈活性之間的差異。

回答

1

當過你看到這個一般的令牌數量,以解析語言向前看。

這是LR分析器同樣的事情。

所以k是令牌,該parer會作出決定之前獲取的最大掛載。 請注意,除非使用生成器(ANTLR,yacc,bison,...),否則解析器將越難解碼得越高。

LL解析器使用自上而下的方式這意味着它會尋找最深的樹。 因爲這個左遞歸會構成一棵無限深的樹並且會破壞解析器。

據我所知大多數語言使用LR分析器。