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

项目:lombok-ianchiu    文件:HandleEqualsAndHashCode.java   
public IfStatement generateCompareFloatOrDouble(Expression thisRef, Expression otherRef, char[] floatOrDouble, ASTNode source) {
    int pS = source.sourceStart, pE = source.sourceEnd;
    /* if (Float.compare(fieldName, other.fieldName) != 0) return false */
    MessageSend floatCompare = new MessageSend();
    floatCompare.sourceStart = pS; floatCompare.sourceEnd = pE;
    setGeneratedBy(floatCompare, source);
    floatCompare.receiver = generateQualifiedNameRef(source, TypeConstants.JAVA, TypeConstants.LANG, floatOrDouble);
    floatCompare.selector = "compare".toCharArray();
    floatCompare.arguments = new Expression[] {thisRef, otherRef};
    IntLiteral int0 = makeIntLiteral("0".toCharArray(), source);
    EqualExpression ifFloatCompareIsNot0 = new EqualExpression(floatCompare, int0, OperatorIds.NOT_EQUAL);
    ifFloatCompareIsNot0.sourceStart = pS; ifFloatCompareIsNot0.sourceEnd = pE;
    setGeneratedBy(ifFloatCompareIsNot0, source);
    FalseLiteral falseLiteral = new FalseLiteral(pS, pE);
    setGeneratedBy(falseLiteral, source);
    ReturnStatement returnFalse = new ReturnStatement(falseLiteral, pS, pE);
    setGeneratedBy(returnFalse, source);
    IfStatement ifStatement = new IfStatement(ifFloatCompareIsNot0, returnFalse, pS, pE);
    setGeneratedBy(ifStatement, source);
    return ifStatement;
}
项目:lombok-ianchiu    文件:HandleEqualsAndHashCode.java   
/** Give 2 clones! */
public Expression longToIntForHashCode(Expression ref1, Expression ref2, ASTNode source) {
    int pS = source.sourceStart, pE = source.sourceEnd;
    /* (int)(ref >>> 32 ^ ref) */
    IntLiteral int32 = makeIntLiteral("32".toCharArray(), source);
    BinaryExpression higherBits = new BinaryExpression(ref1, int32, OperatorIds.UNSIGNED_RIGHT_SHIFT);
    setGeneratedBy(higherBits, source);
    BinaryExpression xorParts = new BinaryExpression(ref2, higherBits, OperatorIds.XOR);
    setGeneratedBy(xorParts, source);
    TypeReference intRef = TypeReference.baseTypeReference(TypeIds.T_int, 0);
    intRef.sourceStart = pS; intRef.sourceEnd = pE;
    setGeneratedBy(intRef, source);
    CastExpression expr = makeCastExpression(xorParts, intRef, source);
    expr.sourceStart = pS; expr.sourceEnd = pE;
    return expr;
}
项目:lombok-ianchiu    文件:EclipseSingularsRecipes.java   
/** Generates 'this.<em>name</em>.size()' as an expression; if nullGuard is true, it's this.name == null ? 0 : this.name.size(). */
protected Expression getSize(EclipseNode builderType, char[] name, boolean nullGuard) {
    MessageSend invoke = new MessageSend();
    ThisReference thisRef = new ThisReference(0, 0);
    FieldReference thisDotName = new FieldReference(name, 0L);
    thisDotName.receiver = thisRef;
    invoke.receiver = thisDotName;
    invoke.selector = SIZE_TEXT;
    if (!nullGuard) return invoke;

    ThisReference cdnThisRef = new ThisReference(0, 0);
    FieldReference cdnThisDotName = new FieldReference(name, 0L);
    cdnThisDotName.receiver = cdnThisRef;
    NullLiteral nullLiteral = new NullLiteral(0, 0);
    EqualExpression isNull = new EqualExpression(cdnThisDotName, nullLiteral, OperatorIds.EQUAL_EQUAL);
    IntLiteral zeroLiteral = makeIntLiteral(new char[] {'0'}, null);
    ConditionalExpression conditional = new ConditionalExpression(isNull, zeroLiteral, invoke);
    return conditional;
}
项目:EasyMPermission    文件:HandleEqualsAndHashCode.java   
public IfStatement generateCompareFloatOrDouble(Expression thisRef, Expression otherRef, char[] floatOrDouble, ASTNode source) {
    int pS = source.sourceStart, pE = source.sourceEnd;
    /* if (Float.compare(fieldName, other.fieldName) != 0) return false */
    MessageSend floatCompare = new MessageSend();
    floatCompare.sourceStart = pS; floatCompare.sourceEnd = pE;
    setGeneratedBy(floatCompare, source);
    floatCompare.receiver = generateQualifiedNameRef(source, TypeConstants.JAVA, TypeConstants.LANG, floatOrDouble);
    floatCompare.selector = "compare".toCharArray();
    floatCompare.arguments = new Expression[] {thisRef, otherRef};
    IntLiteral int0 = makeIntLiteral("0".toCharArray(), source);
    EqualExpression ifFloatCompareIsNot0 = new EqualExpression(floatCompare, int0, OperatorIds.NOT_EQUAL);
    ifFloatCompareIsNot0.sourceStart = pS; ifFloatCompareIsNot0.sourceEnd = pE;
    setGeneratedBy(ifFloatCompareIsNot0, source);
    FalseLiteral falseLiteral = new FalseLiteral(pS, pE);
    setGeneratedBy(falseLiteral, source);
    ReturnStatement returnFalse = new ReturnStatement(falseLiteral, pS, pE);
    setGeneratedBy(returnFalse, source);
    IfStatement ifStatement = new IfStatement(ifFloatCompareIsNot0, returnFalse, pS, pE);
    setGeneratedBy(ifStatement, source);
    return ifStatement;
}
项目:EasyMPermission    文件:HandleEqualsAndHashCode.java   
/** Give 2 clones! */
public Expression longToIntForHashCode(Expression ref1, Expression ref2, ASTNode source) {
    int pS = source.sourceStart, pE = source.sourceEnd;
    /* (int)(ref >>> 32 ^ ref) */
    IntLiteral int32 = makeIntLiteral("32".toCharArray(), source);
    BinaryExpression higherBits = new BinaryExpression(ref1, int32, OperatorIds.UNSIGNED_RIGHT_SHIFT);
    setGeneratedBy(higherBits, source);
    BinaryExpression xorParts = new BinaryExpression(ref2, higherBits, OperatorIds.XOR);
    setGeneratedBy(xorParts, source);
    TypeReference intRef = TypeReference.baseTypeReference(TypeIds.T_int, 0);
    intRef.sourceStart = pS; intRef.sourceEnd = pE;
    setGeneratedBy(intRef, source);
    CastExpression expr = makeCastExpression(xorParts, intRef, source);
    expr.sourceStart = pS; expr.sourceEnd = pE;
    return expr;
}
项目:EasyMPermission    文件:EclipseSingularsRecipes.java   
/** Generates 'this.<em>name</em>.size()' as an expression; if nullGuard is true, it's this.name == null ? 0 : this.name.size(). */
protected Expression getSize(EclipseNode builderType, char[] name, boolean nullGuard) {
    MessageSend invoke = new MessageSend();
    ThisReference thisRef = new ThisReference(0, 0);
    FieldReference thisDotName = new FieldReference(name, 0L);
    thisDotName.receiver = thisRef;
    invoke.receiver = thisDotName;
    invoke.selector = SIZE_TEXT;
    if (!nullGuard) return invoke;

    ThisReference cdnThisRef = new ThisReference(0, 0);
    FieldReference cdnThisDotName = new FieldReference(name, 0L);
    cdnThisDotName.receiver = cdnThisRef;
    NullLiteral nullLiteral = new NullLiteral(0, 0);
    EqualExpression isNull = new EqualExpression(cdnThisDotName, nullLiteral, OperatorIds.EQUAL_EQUAL);
    IntLiteral zeroLiteral = makeIntLiteral(new char[] {'0'}, null);
    ConditionalExpression conditional = new ConditionalExpression(isNull, zeroLiteral, invoke);
    return conditional;
}
项目:Eclipse-Postfix-Code-Completion    文件:CodeFormatterVisitor.java   
/**
 * @see org.eclipse.jdt.internal.compiler.ASTVisitor#visit(org.eclipse.jdt.internal.compiler.ast.IntLiteral, org.eclipse.jdt.internal.compiler.lookup.BlockScope)
 */
public boolean visit(IntLiteral intLiteral, BlockScope scope) {

    final int numberOfParens = (intLiteral.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        manageOpeningParenthesizedExpression(intLiteral, numberOfParens);
    }
    if (isNextToken(TerminalTokens.TokenNameMINUS)) {
        this.scribe.printNextToken(TerminalTokens.TokenNameMINUS);
    }
    this.scribe.printNextToken(TerminalTokens.TokenNameIntegerLiteral);

    if (numberOfParens > 0) {
        manageClosingParenthesizedExpression(intLiteral, numberOfParens);
    }
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:CodeFormatterVisitor.java   
/**
 * @see org.eclipse.jdt.internal.compiler.ASTVisitor#visit(org.eclipse.jdt.internal.compiler.ast.IntLiteral, org.eclipse.jdt.internal.compiler.lookup.BlockScope)
 */
public boolean visit(IntLiteral intLiteral, BlockScope scope) {

    final int numberOfParens = (intLiteral.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        manageOpeningParenthesizedExpression(intLiteral, numberOfParens);
    }
    if (isNextToken(TerminalTokens.TokenNameMINUS)) {
        this.scribe.printNextToken(TerminalTokens.TokenNameMINUS);
    }
    this.scribe.printNextToken(TerminalTokens.TokenNameIntegerLiteral);

    if (numberOfParens > 0) {
        manageClosingParenthesizedExpression(intLiteral, numberOfParens);
    }
    return false;
}
项目:lombok    文件:HandleEqualsAndHashCode.java   
private IfStatement generateCompareFloatOrDouble(Expression thisRef, Expression otherRef, char[] floatOrDouble, ASTNode source) {
    int pS = source.sourceStart, pE = source.sourceEnd;
    /* if (Float.compare(fieldName, other.fieldName) != 0) return false */
    MessageSend floatCompare = new MessageSend();
    floatCompare.sourceStart = pS; floatCompare.sourceEnd = pE;
    setGeneratedBy(floatCompare, source);
    floatCompare.receiver = generateQualifiedNameRef(source, TypeConstants.JAVA, TypeConstants.LANG, floatOrDouble);
    floatCompare.selector = "compare".toCharArray();
    floatCompare.arguments = new Expression[] {thisRef, otherRef};
    IntLiteral int0 = makeIntLiteral("0".toCharArray(), source);
    EqualExpression ifFloatCompareIsNot0 = new EqualExpression(floatCompare, int0, OperatorIds.NOT_EQUAL);
    ifFloatCompareIsNot0.sourceStart = pS; ifFloatCompareIsNot0.sourceEnd = pE;
    setGeneratedBy(ifFloatCompareIsNot0, source);
    FalseLiteral falseLiteral = new FalseLiteral(pS, pE);
    setGeneratedBy(falseLiteral, source);
    ReturnStatement returnFalse = new ReturnStatement(falseLiteral, pS, pE);
    setGeneratedBy(returnFalse, source);
    IfStatement ifStatement = new IfStatement(ifFloatCompareIsNot0, returnFalse, pS, pE);
    setGeneratedBy(ifStatement, source);
    return ifStatement;
}
项目:lombok    文件:HandleEqualsAndHashCode.java   
/** Give 2 clones! */
private Expression longToIntForHashCode(Expression ref1, Expression ref2, ASTNode source) {
    int pS = source.sourceStart, pE = source.sourceEnd;
    /* (int)(ref >>> 32 ^ ref) */
    IntLiteral int32 = makeIntLiteral("32".toCharArray(), source);
    BinaryExpression higherBits = new BinaryExpression(ref1, int32, OperatorIds.UNSIGNED_RIGHT_SHIFT);
    setGeneratedBy(higherBits, source);
    BinaryExpression xorParts = new BinaryExpression(ref2, higherBits, OperatorIds.XOR);
    setGeneratedBy(xorParts, source);
    TypeReference intRef = TypeReference.baseTypeReference(TypeIds.T_int, 0);
    intRef.sourceStart = pS; intRef.sourceEnd = pE;
    setGeneratedBy(intRef, source);
    CastExpression expr = makeCastExpression(xorParts, intRef, source);
    expr.sourceStart = pS; expr.sourceEnd = pE;
    return expr;
}
项目:lombok-ianchiu    文件:HandleConstructor.java   
private static Expression getDefaultExpr(TypeReference type, int s, int e) {
    char[] lastToken = type.getLastToken();
    if (Arrays.equals(TypeConstants.BOOLEAN, lastToken)) return new FalseLiteral(s, e);
    if (Arrays.equals(TypeConstants.CHAR, lastToken)) return new CharLiteral(new char[] {'\'', '\\', '0', '\''}, s, e);
    if (Arrays.equals(TypeConstants.BYTE, lastToken) || Arrays.equals(TypeConstants.SHORT, lastToken) ||
        Arrays.equals(TypeConstants.INT, lastToken)) return IntLiteral.buildIntLiteral(new char[] {'0'}, s, e);
    if (Arrays.equals(TypeConstants.LONG, lastToken)) return LongLiteral.buildLongLiteral(new char[] {'0',  'L'}, s, e);
    if (Arrays.equals(TypeConstants.FLOAT, lastToken)) return new FloatLiteral(new char[] {'0', 'F'}, s, e);
    if (Arrays.equals(TypeConstants.DOUBLE, lastToken)) return new DoubleLiteral(new char[] {'0', 'D'}, s, e);

    return new NullLiteral(s, e);
}
项目:Eclipse-Postfix-Code-Completion    文件:Parser.java   
protected void consumeUnaryExpression(int op, boolean post) {
    // PreIncrementExpression ::= '++' PushPosition UnaryExpression
    // PreDecrementExpression ::= '--' PushPosition UnaryExpression

    // ++ and -- operators
    //optimize the push/pop

    //this.intStack has the position of the operator when prefix

    Expression leftHandSide = this.expressionStack[this.expressionPtr];
    if (leftHandSide instanceof Reference) {
        // ++foo()++ is unvalid
        if (post) {
            this.expressionStack[this.expressionPtr] =
                new PostfixExpression(
                    leftHandSide,
                    IntLiteral.One,
                    op,
                    this.endStatementPosition);
        } else {
            this.expressionStack[this.expressionPtr] =
                new PrefixExpression(
                    leftHandSide,
                    IntLiteral.One,
                    op,
                    this.intStack[this.intPtr--]);
        }
    } else {
        //the ++ or the -- is NOT taken into account if code gen proceeds
        if (!post) {
            this.intPtr--;
        }
        if(!this.statementRecoveryActivated) problemReporter().invalidUnaryExpression(leftHandSide);
    }
}
项目:xapi    文件:GwtAstBuilder.java   
@Override
public void endVisit(IntLiteral x, BlockScope scope) {
  try {
    push(JIntLiteral.get(x.constant.intValue()));
  } catch (Throwable e) {
    throw translateException(x, e);
  }
}
项目:lombok-ianchiu    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(IntLiteral node, BlockScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:EasyMPermission    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(IntLiteral node, BlockScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:Eclipse-Postfix-Code-Completion    文件:BinaryExpressionFragmentBuilder.java   
public boolean visit(IntLiteral intLiteral, BlockScope scope) {
    addSmallFragment(intLiteral);
    return false;
}
项目:Eclipse-Postfix-Code-Completion    文件:CodeSnippetQualifiedNameReference.java   
public void generateCompoundAssignment(BlockScope currentScope, CodeStream codeStream, Expression expression, int operator, int assignmentImplicitConversion, boolean valueRequired) {
    FieldBinding lastFieldBinding = this.otherBindings == null ? (FieldBinding) this.binding : this.otherBindings[this.otherBindings.length-1];
    if (lastFieldBinding.canBeSeenBy(getFinalReceiverType(), this, currentScope)) {
        super.generateCompoundAssignment(currentScope, codeStream, expression, operator, assignmentImplicitConversion, valueRequired);
        return;
    }
    lastFieldBinding = generateReadSequence(currentScope, codeStream);
    if (lastFieldBinding.isStatic()){
        codeStream.generateEmulationForField(lastFieldBinding);
        codeStream.swap();
        codeStream.aconst_null();
        codeStream.swap();
        codeStream.generateEmulatedReadAccessForField(lastFieldBinding);
    } else {
        codeStream.generateEmulationForField(lastFieldBinding);
        codeStream.swap();
        codeStream.dup();

        codeStream.generateEmulatedReadAccessForField(lastFieldBinding);
    }
    // the last field access is a write access
    // perform the actual compound operation
    int operationTypeID;
    if ((operationTypeID = (this.implicitConversion & IMPLICIT_CONVERSION_MASK) >> 4) == T_JavaLangString) {
        codeStream.generateStringConcatenationAppend(currentScope, null, expression);
    } else {
        // promote the array reference to the suitable operation type
        codeStream.generateImplicitConversion(this.implicitConversion);
        // generate the increment value (will by itself  be promoted to the operation value)
        if (expression == IntLiteral.One){ // prefix operation
            codeStream.generateConstant(expression.constant, this.implicitConversion);
        } else {
            expression.generateCode(currentScope, codeStream, true);
        }
        // perform the operation
        codeStream.sendOperator(operator, operationTypeID);
        // cast the value back to the array reference type
        codeStream.generateImplicitConversion(assignmentImplicitConversion);
    }
    // actual assignment

    // current stack is:
    // field receiver value
    if (valueRequired) {
        switch (lastFieldBinding.type.id) {
            case TypeIds.T_long :
            case TypeIds.T_double :
                codeStream.dup2_x2();
                break;
            default :
                codeStream.dup_x2();
            break;  
        }
    }
    // current stack is:
    // value field receiver value
    codeStream.generateEmulatedWriteAccessForField(lastFieldBinding);
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:BinaryExpressionFragmentBuilder.java   
public boolean visit(IntLiteral intLiteral, BlockScope scope) {
    addSmallFragment(intLiteral);
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:CodeSnippetQualifiedNameReference.java   
public void generateCompoundAssignment(BlockScope currentScope, CodeStream codeStream, Expression expression, int operator, int assignmentImplicitConversion, boolean valueRequired) {
    FieldBinding lastFieldBinding = this.otherBindings == null ? (FieldBinding) this.binding : this.otherBindings[this.otherBindings.length-1];
    if (lastFieldBinding.canBeSeenBy(getFinalReceiverType(), this, currentScope)) {
        super.generateCompoundAssignment(currentScope, codeStream, expression, operator, assignmentImplicitConversion, valueRequired);
        return;
    }
    lastFieldBinding = generateReadSequence(currentScope, codeStream);
    if (lastFieldBinding.isStatic()){
        codeStream.generateEmulationForField(lastFieldBinding);
        codeStream.swap();
        codeStream.aconst_null();
        codeStream.swap();
        codeStream.generateEmulatedReadAccessForField(lastFieldBinding);
    } else {
        codeStream.generateEmulationForField(lastFieldBinding);
        codeStream.swap();
        codeStream.dup();

        codeStream.generateEmulatedReadAccessForField(lastFieldBinding);
    }
    // the last field access is a write access
    // perform the actual compound operation
    int operationTypeID;
    if ((operationTypeID = (this.implicitConversion & IMPLICIT_CONVERSION_MASK) >> 4) == T_JavaLangString) {
        codeStream.generateStringConcatenationAppend(currentScope, null, expression);
    } else {
        // promote the array reference to the suitable operation type
        codeStream.generateImplicitConversion(this.implicitConversion);
        // generate the increment value (will by itself  be promoted to the operation value)
        if (expression == IntLiteral.One){ // prefix operation
            codeStream.generateConstant(expression.constant, this.implicitConversion);
        } else {
            expression.generateCode(currentScope, codeStream, true);
        }
        // perform the operation
        codeStream.sendOperator(operator, operationTypeID);
        // cast the value back to the array reference type
        codeStream.generateImplicitConversion(assignmentImplicitConversion);
    }
    // actual assignment

    // current stack is:
    // field receiver value
    if (valueRequired) {
        switch (lastFieldBinding.type.id) {
            case TypeIds.T_long :
            case TypeIds.T_double :
                codeStream.dup2_x2();
                break;
            default :
                codeStream.dup_x2();
            break;  
        }
    }
    // current stack is:
    // value field receiver value
    codeStream.generateEmulatedWriteAccessForField(lastFieldBinding);
}
项目:lombok    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(IntLiteral node, BlockScope scope) {
    setGeneratedBy(node, source);
    applyOffsetExpression(node);
    return super.visit(node, scope);
}