@Override
public void parse(String sql) throws SQLSyntaxErrorException {
try {
CharStream input = new CaseInsensitiveInputStream(sql);
ANTLRErrorListener errorListener = new InternalErrorListener();
SQLLexer sqlLexer = new SQLLexer(input);
sqlLexer.removeErrorListeners();
sqlLexer.addErrorListener(errorListener);
CommonTokenStream commonTokenStream = new CommonTokenStream(sqlLexer);
SQLParser sqlParser = new SQLParser(commonTokenStream);
sqlParser.removeErrorListeners();
sqlParser.addErrorListener(errorListener);
ParseTree parseTree = sqlParser.query();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(this, parseTree);
} catch (ParseException e) {
errors.add(e.getMessage());
}
if (!errors.isEmpty()) {
String message = errors.stream().collect(Collectors.joining("; "));
throw new SQLSyntaxErrorException(message);
}
}
QueryParserImpl.java 文件源码
java
阅读 30
收藏 0
点赞 0
评论 0
项目:perspective-backend
作者:
评论列表
文章目录