什麼是預測分析器?
預測分析器也是另一種實現自頂向下解析技術而不回溯的方法。預測分析器是一種有效的執行遞迴下降解析技術,特別是透過管理啟用記錄的堆疊。
預測分析器具有以下元件:
- 輸入緩衝區 - 輸入緩衝區包含要解析的字串,後跟一個結束標記$表示字串的結尾。
這裡a、+、b是終結符。
- 堆疊 - 它包含語法符號的組合,堆疊底部為$。在解析開始時,堆疊包含語法的起始符號,後跟$。
- 解析表 - 它是一個二維陣列或矩陣M[A, a],其中A是非終結符,'a'是終結符。
所有終結符都按列寫入,所有非終結符都按行寫入。
- 解析程式 - 解析程式透過比較堆疊頂部的符號和輸入緩衝區上要讀取的當前輸入符號來執行某些操作。
- 操作 - 解析程式根據堆疊頂部的符號和當前輸入符號採取各種操作。採取的各種操作如下所示:
構建預測分析表的演算法
輸入 - 上下文無關文法 G
輸出 - 預測分析表 M
方法 - 對於文法 G 的產生式 A → α。
- 對於FIRST(α)中的每個終結符a,將A → α新增到M[A, a]中。
- 如果ε在FIRST(α)中,並且b在FOLLOW(A)中,則將A → α新增到M[A, b]中。
- 如果ε在FIRST(α)中,並且$在FOLLOW(A)中,則將A → α新增到M[A, $]中。
- 表M中所有剩餘的條目都是錯誤的。
執行預測分析的步驟如下:
- 消除左遞迴
- 左因子化
- 計算FIRST和FOLLOW
- 構建預測分析表
- 解析輸入字串
廣告