PipelineRuleParser.java 文件源码

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

项目:graylog-plugin-pipeline-processor 作者:
public List<Pipeline> parsePipelines(String pipelines) throws ParseException {
    final ParseContext parseContext = new ParseContext(false);
    final SyntaxErrorListener errorListener = new SyntaxErrorListener(parseContext);

    final RuleLangLexer lexer = new RuleLangLexer(new ANTLRInputStream(pipelines));
    lexer.removeErrorListeners();
    lexer.addErrorListener(errorListener);

    final RuleLangParser parser = new RuleLangParser(new CommonTokenStream(lexer));
    parser.setErrorHandler(new DefaultErrorStrategy());
    parser.removeErrorListeners();
    parser.addErrorListener(errorListener);

    final RuleLangParser.PipelineDeclsContext pipelineDeclsContext = parser.pipelineDecls();

    WALKER.walk(new PipelineAstBuilder(parseContext), pipelineDeclsContext);

    if (parseContext.getErrors().isEmpty()) {
        return parseContext.pipelines;
    }
    throw new ParseException(parseContext.getErrors());
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号