1
Bison使用一個特殊的錯誤標記(稱爲'錯誤'),可以在Bison解析器中使用它來從錯誤中恢復。有沒有辦法從Flex生成的掃描器中返回這個特定的令牌?如何獲得Flex掃描儀來返回Bison的錯誤標記?
Bison使用一個特殊的錯誤標記(稱爲'錯誤'),可以在Bison解析器中使用它來從錯誤中恢復。有沒有辦法從Flex生成的掃描器中返回這個特定的令牌?如何獲得Flex掃描儀來返回Bison的錯誤標記?
'錯誤'令牌不是真正的令牌。它僅用於錯誤處理。
對http://dinosaur.compilertools.net/yacc/index.html您可以閱讀:令牌名稱錯誤是爲錯誤處理保留的,不應該天真地使用。
在我自己的解析器我使用錯誤的令牌就像這樣(解析類C的宏語言:如果用戶做一個錯誤,YACC /野牛將繼續,直到下一個半
StatementList :
| StatementList Statement ';'
| error ';'
-colon(語句結束),然後繼續下一條語句。
謝謝。我意識到我真正想要的是REJECT。 – 2010-02-16 18:45:26