我正在用flex和bison編寫我自己的腳本語言。我有一個語法,我能夠生成一個解析器,它可以正確使用腳本。我希望能夠爲特殊的錯誤情況添加一些有意義的錯誤消息。例如,我希望能夠識別不匹配的語句塊或缺少分號等的括號。 假設我有這些語句(這裏的語法是不完整):用Bison解析錯誤
...
statements: statement SEMICOLON statements
| statement SEMICOLON;
statement: ifStatement
| whileStatement
;
ifStatement: IF expression THEN statements END
| IF expression THEN statements ELSE statements END
;
whileStatement: DO statements WHILE expression END
;
...
我想能夠打印信息,如「失蹤分號」或「缺少那麼關鍵字」等。我應該修改語法來啓用錯誤處理嗎?還是有一些野牛功能可以做到這一點?
感謝您的建議-_- – salvo 2013-03-23 14:12:35