構造SLR 1 分析表

2021-10-05 19:18:57 字數 1692 閱讀 6579

先來個例子,下邊的是已經把文法g[s]擴廣了,就是簡單的新增

(0)s`—>e 剩下的就是把其他的文法依次排序就行

第二步就是把文法所有的專案寫出來(要知道什麼是專案和專案的類別)

如果不知道什麼叫專案可以簡單的理解為,點的位置,仔細看中,點的位置是有變化的,而且是有規律的,點在最後是規約專案,這個要記住,

然後就是第三步,把能夠識別活字首的dfa先找到,要看到那個紅框框裡的是有衝突的,也就是說專案型別不能寫一塊。

第四步,就是用slr(1)的構造原則,首先在這些專案裡邊我們要找那些點在最右邊的就是那些我們所謂的歸約專案

規約專案如下,那麼這些歸約專案我們在去填的時候就要找它的follow集,

第五步把follow集求出來

第六步就是接下來我們根據這個dfa去畫它的這個分析表

所以我們第乙個s0接收一 個i我們到達的是什麼 5狀態

然後接下來接受乙個左括號可以到達4狀態然後接收e轉移到的狀態是1狀態

然後接收乙個t到達的是2狀態接下來我們可以看到接收f可以到達3狀態

這都跟我們之前是一樣的到了1狀態以後大家看1狀態首先接收乙個+可以到達的是6狀態

然後呢因為第乙個s』-> e.這是我們說的特殊的

所以當它接收乙個#就是我們說的接收狀態(acc)

然後再來看2狀態大家看2狀態接收乙個+,2狀態接收乙個+是不是做移進呢

我們就要看當前所對應的follow集follow (e)有#有+有)那就意味著我要在對應的#+),這三列的位置來填它對應的歸約,那就是要用第2條產生式進行歸約所以我們在這三個位置填的是r2

然後接下來我們看狀態2接收乙個它就是什麼移進了就可以轉移到s7然後同樣的對於3 ,3狀態來說我們可以看到它的follow集也是# + )

4狀態它的follow (f) 應該是# + )和所以我們在這四個位置應該填的是歸約r4用第四條產生式來進行歸約

這裡說的第幾條產生式都是說的是最前面(0)~(6)對應得

最後的結果:如下

LR 0 和SLR分析表的構造

上篇文章中,我已經說到了,lr 0 分析表是lr 0 分析器的重要組成部分,它是總控程式分析動作的依據,他是由lr 0 專案集規範族來進行 構造的。他的結構主要有兩個部分action 和goto 先看看指導原則,可以直接跳過,看例題的時候可以返回來對照參考。假設已構造出lr 0 專案集規範族為 c ...

LL1分析構造法 構造法解題

提要學會構造貴在觀察和想象。觀察是思維的觸角,想象是創造的基石。把握問題或圖形的特徵,充分挖掘其隱含條件,以問題的數學元素為 元件 創造性地構造出已知條件以外的其他數學物件,通過數學物件的相互轉化,將問題變得熟悉化,簡單化,基本化,使問題的解集變得輕鬆,有趣,這就是又一種重要的數學思想方法 構造法。...

LL1分析構造法 如何利用比較構造法解題

在公考行測考試中,題量相對較大,時間短,數量關係做題基本沒有多少時間,對於大部分的同學來說比較難。怎樣在短時間內抓住題幹的重點,理清思路,找出快速解題的方法尤為重要。一些題型中,當題幹的描述給出對同一事物採取兩種不同的方案分配時,可以通過對這兩種方案進行分析,快速解題。接下來就給大家詳細介紹這種能快...