在使用ANLTR对PL/SQL代码进行解析时,如果代码中缺少分号,ANLTR的语法分析器无法检测到这个错误。为了解决这个问题,我们可以手动添加缺少的分号,或者使用一个补丁来修复该问题。
以下是一个示例,展示如何使用补丁来修复该问题:
下载antlr-3.1.3.tar.gz文件并解压,进入目录antlr-3.1.3/src/main/java/org/antlr/v4/parse。
编辑ANTLRv3Lexer.java文件,在1632行添加以下代码:
if(input.LA(-1)=='\n'){ state.channel = Lexer.CHANNEL_WHITSPACE; }
Token t = input.LT(1); if(t.getType()==ANTLRParser.SEMI){ consume(); return; } else{ throw new RecognitionException("Expecting semicolon", input); }
cd antlr-3.1.3 sudo make
注意:这个补丁只适用于ANTLR版本3.1.3。对于其他版本,可能需要进行修改。
上一篇:ANTRL4语法无法覆盖所有情况
下一篇:antrun从不复制jar文件。