使用ANTLR进行CSV解析是一种恕我直言的选择,但是既然您在做…
- 实现接口
ANTLRErrorListener
。您可以baseErrorListener
为此扩展。收集错误并将它们附加到列表中。 - 调用
parser.removeErrorListeners()
以删除默认侦听器 - 打电话
parser.addErrorListener(yourListenerInstance)
添加自己的听众 - 解析您的输入
现在,对于词法分析器,您可以做同样的事情
removeErrorListeners/
addErrorListener,或者在末尾添加以下规则:
UNKNOWN_CHAR : . ;
有了这个规则,词法分析器将永远不会失败(它将
UNKNOWN_CHAR在无法执行其他任何操作时生成令牌),并且所有错误将由解析器生成(因为它将不知道如何处理这些
UNKNOWN_CHAR令牌)。我推荐这种方法。



