我按照antlr網站上的錯誤處理說明http://www.antlr2.org/doc/err.html(它說antlr2,但我找不到antlr4的替代方法)併爲我的規則編寫了異常處理,如下所示。antlr4錯誤處理甚至沒有編譯
subStmt :
(visibility WS)? (STATIC WS)? SUB WS? ambiguousIdentifier (WS? argList)? endOfStatement
block?
END_SUB
;
exception
catch [RecognitionException ex] {
}
但是,當我試圖生成語法解析器是如下失敗: Java的罐子../Downloads/antlr-4.7-complete.jar vba.g4 -package VBA -o出來 錯誤(50):vba.g4:500:4:語法錯誤:'catch'對我來說是一個完整的驚喜,同時匹配規則前導碼
任何幫助,非常感謝。
這個例子看起來很複雜。我的情況可能是簡單地忽略某些規則中的錯誤(我需要接受有錯誤的輸入)。是否沒有antlr4錯誤處理文檔? –
@HughDarling不夠公平 - 我的答案稍微延長了一點。 – janm