0
所以我有一個包含空字符串的語法。語法是這樣的:ocamlyacc與空字符串
S->ε
S->表達;; S
當我運行我的解析器時,我收到錯誤「沒有更多的狀態丟棄」,因此我相信我不能正確表示空字符串。那麼我將如何去表示它,特別是在詞法分析器.mll文件中?
我知道我需要爲此制定一個規則,所以我認爲我有這個原因。這是我認爲它應該看起來像解析器.mly文件,不包括表達的東西。
s:
| EMPTY_STRING { [] }
| expression SEMICOLON s { $1::$3 }
規則epsilon根本沒用。只要把...沒有。 – Drup
感謝您的幫助。我發現我只是需要在我的語法中使用EOF來代替空字符串以便使其工作,因爲最後一個標記將是EOF。 –