TargetSelector.java 文件源码

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

项目:MPL 作者:
public static @Nullable TargetSelector parse(String value, MplSource source,
    MplCompilerContext context) {
  checkNotNull(value, "value == null!");
  checkNotNull(source, "source == null!");
  checkNotNull(context, "context == null!");

  ANTLRInputStream input = new ANTLRInputStream(value);
  TargetSelectorLexer lexer = new TargetSelectorLexer(input);
  TokenStream tokens = new CommonTokenStream(lexer);
  TargetSelectorParser parser = new TargetSelectorParser(tokens);

  parser.removeErrorListeners();
  parser.addErrorListener(new BaseErrorListener() {
    @Override
    public void syntaxError(Recognizer<?, ?> recognizer, Object token, int line,
        int charPositionInLine, String message, RecognitionException cause) {
      context.addError(new CompilerException(source, message));
    }
  });
  SelectorContext ctx = parser.selector();
  if (context.getErrors().isEmpty()) {
    TargetSelectorListenerImpl listener = new TargetSelectorListenerImpl();
    new ParseTreeWalker().walk(listener, ctx);
    return listener.getResult();
  }
  return null;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号