0
我曾嘗試在hackingoff.com網站上使用非常簡單的語法,但我對結果有些困惑。這是語法LL(1)嗎? http://hackingoff.com/compilers/ll-1-parser-generator給出錯誤
我使用的語法如下:
1. E -> int T
2. T -> + int
3. T -> ε
我做了一些人工計算,制定了下面的:
First(int) = {int}
First(+) = {+}
First(ε) = {ε}
First(E) = {int}
First(T) = {+,ε}
Follow(E) ⊆ Follow(T)
First(T) ⊆ Follow(int)
Follow(E) ⊆ Follow(int)
First(int) ⊆ Follow(+)
Follow(E) ⊆ Follow(int)
=>
Follow(E) = {$}
Follow(T) = {$}
Follow(int) = {+,$}
Follow(+) = {int}
然後我構造的分析表:
int + $
------------------------
E | int T |
T | +int ε |
------------------------
但是當我在hackingoff.com網站上使用這個語法時,它說 - 從我的rstand - 語法有一些錯誤。顯示了該網站上的表如下:
[0,"int","+","$"]
[0,0,0,0]
[0,1,5,4]
[0,5,2,3]
從我從網站上的描述理解有錯誤的時候 - 在我的情況 - 在表中的單元格的值大於3 很明顯,問題出在我的桌子上沒有任何產品的單元格中。當我手動構建解析表時,那裏爲什麼會出現錯誤?可能我錯過了一些根本性的東西?
感謝您的回答!我知道我的語法很基礎,但我只想用一些簡單的表達來嘗試這個工具。 –