LeftRecursiveRuleAnalyzer.java 文件源码

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

项目:codebuff 作者:
@Override
    public void suffixAlt(AltAST originalAltTree, int alt) {
        AltAST altTree = (AltAST)originalAltTree.dupTree();
        String altLabel = altTree.altLabel!=null ? altTree.altLabel.getText() : null;

        String label = null;
        boolean isListLabel = false;
        GrammarAST lrlabel = stripLeftRecursion(altTree);
        if ( lrlabel!=null ) {
            label = lrlabel.getText();
            isListLabel = lrlabel.getParent().getType() == PLUS_ASSIGN;
            leftRecursiveRuleRefLabels.add(new Pair<GrammarAST,String>(lrlabel,altLabel));
        }
        stripAltLabel(altTree);
        String altText = text(altTree);
        altText = altText.trim();
        LeftRecursiveRuleAltInfo a =
            new LeftRecursiveRuleAltInfo(alt, altText, label, altLabel, isListLabel, originalAltTree);
        suffixAlts.put(alt, a);
//      System.out.println("suffixAlt " + alt + ": " + altText + ", rewrite=" + rewriteText);
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号