public static Token getTokenUnderCursor(CommonTokenStream tokens, int offset) {
Comparator<Token> cmp = new Comparator<Token>() {
@Override
public int compare(Token a, Token b) {
if ( a.getStopIndex() < b.getStartIndex() ) return -1;
if ( a.getStartIndex() > b.getStopIndex() ) return 1;
return 0;
}
};
if ( offset<0 || offset >= tokens.getTokenSource().getInputStream().size() ) return null;
CommonToken key = new CommonToken(Token.INVALID_TYPE, "");
key.setStartIndex(offset);
key.setStopIndex(offset);
List<Token> tokenList = tokens.getTokens();
Token tokenUnderCursor = null;
int i = Collections.binarySearch(tokenList, key, cmp);
if ( i>=0 ) tokenUnderCursor = tokenList.get(i);
return tokenUnderCursor;
}
ParsingUtils.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:intellij-plugin-v4
作者:
评论列表
文章目录