1、活前綴的有效專案集的定義

2、簡單理解
這個概念出現于LR分析法,LR分析法可以看作是一種模擬最左規約的符號分析法,我們假設我們在做最左規約的時候,有一個符號堆疊存放我們讀入的符號

活前綴的有效專案集,就是當堆疊內的符號是這個活前綴的時候,可能運用的下一步的最左規約的規則,
3、例子
編譯原理書上有一個很好的例子


此時符號堆疊中有E+T*
如果下一個讀入符號是F,則可以運用T->T*.F
如果下一簇讀入符號是(E),則可以運用F->.(E)
如果下一個讀入符號是i,則可以運用F->.i
沒有其他的合法的可運用的最左規約的規則,所以只有這三個是該活前綴的有效專案,
4、快速尋找活前綴的方法
首先找到規約到當前狀態時應該運用的最后一條規則(可能不唯一),把點打在活前綴的邊界部分,
對于上面的例子,即為T->T*.F,
接著如果“.”后面的第一個符號是非終結符號,則將該符號的規則全部列出,
對于上面的例子,即為F->.(E),F->.i
如果這些規則里有符合 “.”后面的第一個符號是非終結符號 的規則,那么也需要把這個符號的規則列出,以此類推,直到找不出為止,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/116929.html
標籤:其他
