遞歸解析器中每個(gè)非終結(jié)符A都有產(chǎn)生式A福侈。我們可以將解析器擴(kuò)展為翻譯器谬晕,如下所示:
a)產(chǎn)生式A的參數(shù)是非終結(jié)點(diǎn)A的繼承屬性酝陈。
b)產(chǎn)生式A的返回值是非終結(jié)點(diǎn)A綜合屬性的集合营罢。
在產(chǎn)生式A中,我們需要解析和處理屬性:
1.由A擴(kuò)展的產(chǎn)生式?jīng)Q定仲智。
2.當(dāng)有需要時(shí)买乃,檢查輸入端中出現(xiàn)的每一個(gè)終結(jié)符。假設(shè)不需要回溯钓辆,但是通過在故障時(shí)恢復(fù)輸入位置剪验,可以通過回溯進(jìn)行遞歸解析的擴(kuò)展。
3.在局部變量中前联,保留產(chǎn)生式內(nèi)所有需要計(jì)算的非終結(jié)符的繼承屬性或者合成屬性的值功戚。
4.在所選生產(chǎn)式中調(diào)用與非終結(jié)符相對(duì)應(yīng)的方法,為它們提供正確的參數(shù)似嗤。由于底層的SDD是L屬性啸臀,所以我們已經(jīng)計(jì)算了這些屬性并存儲(chǔ)在局部變量中。