Java 类org.eclipse.jdt.internal.compiler.ast.CombinedBinaryExpression 实例源码

项目:Eclipse-Postfix-Code-Completion    文件:BinaryExpressionFragmentBuilder.java   
public boolean visit(CombinedBinaryExpression combinedBinaryExpression, BlockScope scope) {
    // keep implementation in sync with BinaryExpression#resolveType
    if (combinedBinaryExpression.referencesTable == null) {
        addRealFragment(combinedBinaryExpression.left);
        this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
        addRealFragment(combinedBinaryExpression.right);
        return false;
    }
    BinaryExpression cursor = combinedBinaryExpression.referencesTable[0];
    if (cursor.left instanceof CombinedBinaryExpression) {
        this.visit((CombinedBinaryExpression) cursor.left, scope);
    } else {
        addRealFragment(cursor.left);
    }
    for (int i = 0, end = combinedBinaryExpression.arity; i < end; i ++) {
        this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
        addRealFragment(combinedBinaryExpression.referencesTable[i].right);
    }
    this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
    addRealFragment(combinedBinaryExpression.right);
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:BinaryExpressionFragmentBuilder.java   
public boolean visit(CombinedBinaryExpression combinedBinaryExpression, BlockScope scope) {
    // keep implementation in sync with BinaryExpression#resolveType
    if (combinedBinaryExpression.referencesTable == null) {
        addRealFragment(combinedBinaryExpression.left);
        this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
        addRealFragment(combinedBinaryExpression.right);
        return false;
    }
    BinaryExpression cursor = combinedBinaryExpression.referencesTable[0];
    if (cursor.left instanceof CombinedBinaryExpression) {
        this.visit((CombinedBinaryExpression) cursor.left, scope);
    } else {
        addRealFragment(cursor.left);
    }
    for (int i = 0, end = combinedBinaryExpression.arity; i < end; i ++) {
        this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
        addRealFragment(combinedBinaryExpression.referencesTable[i].right);
    }
    this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
    addRealFragment(combinedBinaryExpression.right);
    return false;
}
项目:android-retrolambda-lombok    文件:EcjTreeOperations.java   
private static void dodgeCombinedBinaryExpressions(EcjTreePrinter printer) {
    printer.skipProperty(CombinedBinaryExpression.class, "arity");
    printer.skipProperty(CombinedBinaryExpression.class, "arityMax");
    printer.skipProperty(CombinedBinaryExpression.class, "referencesTable");
    printer.stringReplace("CombinedBinaryExpression", "BinaryExpression");
}
项目:Eclipse-Postfix-Code-Completion    文件:BinaryExpressionFragmentBuilder.java   
public boolean visit(BinaryExpression binaryExpression, BlockScope scope) {
    if (binaryExpression instanceof CombinedBinaryExpression) {
        CombinedBinaryExpression expression = (CombinedBinaryExpression) binaryExpression;
        if (expression.referencesTable != null) {
            return this.visit(expression, scope);
        }
    }
    final int numberOfParens = (binaryExpression.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        addRealFragment(binaryExpression);
    } else {
        switch((binaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT) {
            case OperatorIds.PLUS :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.MINUS :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameMINUS));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.MULTIPLY :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameMULTIPLY));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.REMAINDER :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameREMAINDER));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.XOR :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameXOR));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.DIVIDE :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameDIVIDE));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.OR :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameOR));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.AND :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameAND));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            default:
                addRealFragment(binaryExpression);
        }
    }
    return false;
}
项目:Eclipse-Postfix-Code-Completion    文件:CodeFormatterVisitor.java   
private BinaryExpressionFragmentBuilder buildFragments(BinaryExpression binaryExpression, BlockScope scope) {
    BinaryExpressionFragmentBuilder builder = new BinaryExpressionFragmentBuilder();

    if (binaryExpression instanceof CombinedBinaryExpression) {
        binaryExpression.traverse(builder, scope);
        return builder;
    }
    switch((binaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT) {
        case OperatorIds.MULTIPLY :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameMULTIPLY));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.PLUS :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.DIVIDE :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameDIVIDE));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.REMAINDER :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameREMAINDER));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.XOR :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameXOR));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.MINUS :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameMINUS));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.OR :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameOR));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.AND :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameAND));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.AND_AND :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameAND_AND));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.OR_OR :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameOR_OR));
            binaryExpression.right.traverse(builder, scope);
            break;
    }

    return builder;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:BinaryExpressionFragmentBuilder.java   
public boolean visit(BinaryExpression binaryExpression, BlockScope scope) {
    if (binaryExpression instanceof CombinedBinaryExpression) {
        CombinedBinaryExpression expression = (CombinedBinaryExpression) binaryExpression;
        if (expression.referencesTable != null) {
            return this.visit(expression, scope);
        }
    }
    final int numberOfParens = (binaryExpression.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        addRealFragment(binaryExpression);
    } else {
        switch((binaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT) {
            case OperatorIds.PLUS :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.MINUS :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameMINUS));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.MULTIPLY :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameMULTIPLY));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.REMAINDER :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameREMAINDER));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.XOR :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameXOR));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.DIVIDE :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameDIVIDE));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.OR :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameOR));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            case OperatorIds.AND :
                if (buildFragments(binaryExpression)) {
                    binaryExpression.left.traverse(this, scope);
                    this.operatorsList.add(new Integer(TerminalTokens.TokenNameAND));
                    binaryExpression.right.traverse(this, scope);
                }
                return false;
            default:
                addRealFragment(binaryExpression);
        }
    }
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:CodeFormatterVisitor.java   
private BinaryExpressionFragmentBuilder buildFragments(BinaryExpression binaryExpression, BlockScope scope) {
    BinaryExpressionFragmentBuilder builder = new BinaryExpressionFragmentBuilder();

    if (binaryExpression instanceof CombinedBinaryExpression) {
        binaryExpression.traverse(builder, scope);
        return builder;
    }
    switch((binaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT) {
        case OperatorIds.MULTIPLY :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameMULTIPLY));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.PLUS :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNamePLUS));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.DIVIDE :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameDIVIDE));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.REMAINDER :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameREMAINDER));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.XOR :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameXOR));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.MINUS :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameMINUS));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.OR :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameOR));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.AND :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameAND));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.AND_AND :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameAND_AND));
            binaryExpression.right.traverse(builder, scope);
            break;
        case OperatorIds.OR_OR :
            binaryExpression.left.traverse(builder, scope);
            builder.operatorsList.add(new Integer(TerminalTokens.TokenNameOR_OR));
            binaryExpression.right.traverse(builder, scope);
            break;
    }

    return builder;
}