2010-09-14 43 views
4

我有一個任務糾正一個模棱兩可的BNF,但我完全失去了。我知道這不是一個真正的編程問題,如果對這些電路板不合適,我會很樂意將其刪除。有沒有什麼好的網站可以讓我更多地瞭解BNF的?我所處理的那個似乎相當簡單,但我找不到任何有關BNF的例子或好的解釋。我有一些經驗發現模糊的分析樹和其他類型的語法,但我完全失去了這一點。發現一個模棱兩可的BNF

由於這是一個學校任務,我不確定我應該發佈BNF的問題,但如果有人知道一個好的網站,我可以看看或許可以更好地瞭解如何攻擊我的問題。我真的不知道從哪裏開始。

回答

1

一些描述上下文無關語法的BNF也描述了一個狀態機(在這個例子中是Pushdown automata)。做這件事的最好方法可能是通過檢查狀態機。

作爲一個起點,你可以看看conflictparsers that make use of such automata之內。

+0

謝謝!我會看看那些頁面。另外,你是否介意解釋BNF中的文字是如何工作的?看起來他們並沒有真正做任何事情。 – PFranchise 2010-09-14 00:54:33

+0

我不確定我的理解。 BNF只包含終端和非終端符號。我相信諸如字符串文字在文法中的存在只是沒有人對構成符號的內容非常精確的結果。如果這是你的意思,那麼他們的工作方式是他們大多不這樣做。他們往往非常脆弱。 – Gian 2010-09-14 08:30:14

0

如果在句子的右邊存在兩個或兩個以上相同的非終止符,它是不明確的。例如:< expr> - > < expr> + < expr> | < facto>。右邊的expr可以以不同的方式在樹中導出,因此可以繪製不同的樹並且它是不明確的。

相關問題