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;
}
TargetSelector.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:MPL
作者:
评论列表
文章目录