ParsingUtils.java 文件源码

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

项目:intellij-plugin-v4 作者:
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;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号