ProfilerPanel.java 文件源码

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

项目:intellij-plugin-v4 作者:
public static String getSemanticContextDisplayString(PredicateEvalInfo pred,
                                                     PreviewState previewState,
                                                     SemanticContext semctx,
                                                     int alt,
                                                     boolean result) {
    Grammar g = previewState.g;
    String semanticContextDisplayString = g.getSemanticContextDisplayString(semctx);
    if ( semctx instanceof SemanticContext.PrecedencePredicate ) {
        int ruleIndex = previewState.parsingResult.parser.getATN().decisionToState.get(pred.decision).ruleIndex;
        Rule rule = g.getRule(ruleIndex);
        int precedence = ((SemanticContext.PrecedencePredicate) semctx).precedence;
        // precedence = n - originalAlt + 1, So:
        int originalAlt = rule.getOriginalNumberOfAlts()-precedence+1;
        alt = originalAlt;
    }
    return semanticContextDisplayString+" => alt "+alt+" is "+result;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号