1
如何以編程方式檢測解析器生成的錯誤?例如給這個語法:在解析過程中檢測解析錯誤
s : 'hello' ;
,並將該軟件與輸入:"foo bar"
ParseTree tree = parser.s();
解析器會打印出"line 1:0 mismatched input 'foo' expecting 'hello'"
。有沒有辦法檢測編程解析失敗?它似乎沒有拋出任何異常。
如何以編程方式檢測解析器生成的錯誤?例如給這個語法:在解析過程中檢測解析錯誤
s : 'hello' ;
,並將該軟件與輸入:"foo bar"
ParseTree tree = parser.s();
解析器會打印出"line 1:0 mismatched input 'foo' expecting 'hello'"
。有沒有辦法檢測編程解析失敗?它似乎沒有拋出任何異常。
落實ANTLRErrorListener接口,並把它添加到解析器:
Parser#addErrorListener(ANTLRErrorListener);
通常情況下,需要先刪除默認的控制檯輸出中聽衆:
Parser#removeErrorListeners()