QueryParserImpl.java 文件源码

java
阅读 30 收藏 0 点赞 0 评论 0

项目:perspective-backend 作者:
@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);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号