mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
Cosmetics.
This commit is contained in:
parent
cd70847e0a
commit
c602341aad
2 changed files with 37 additions and 45 deletions
|
@ -43,7 +43,6 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
private ICPPFunction overload= UNINITIALIZED_FUNCTION;
|
||||
private IASTImplicitName[] implicitNames = null;
|
||||
|
||||
|
||||
public CPPASTBinaryExpression() {
|
||||
}
|
||||
|
||||
|
@ -108,11 +107,11 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
}
|
||||
|
||||
public IASTImplicitName[] getImplicitNames() {
|
||||
if(implicitNames == null) {
|
||||
if (implicitNames == null) {
|
||||
ICPPFunction overload = getOverload();
|
||||
if(overload == null)
|
||||
if (overload == null)
|
||||
return implicitNames = IASTImplicitName.EMPTY_NAME_ARRAY;
|
||||
|
||||
|
||||
CPPASTImplicitName operatorName = new CPPASTImplicitName(overload.getNameCharArray(), this);
|
||||
operatorName.setBinding(overload);
|
||||
operatorName.setOperator(true);
|
||||
|
@ -123,7 +122,6 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
return implicitNames;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean accept(ASTVisitor action) {
|
||||
if (operand1 instanceof IASTBinaryExpression || operand2 instanceof IASTBinaryExpression) {
|
||||
|
@ -132,8 +130,8 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
|
||||
if (action.shouldVisitExpressions) {
|
||||
switch (action.visit(this)) {
|
||||
case ASTVisitor.PROCESS_ABORT : return false;
|
||||
case ASTVisitor.PROCESS_SKIP : return true;
|
||||
case ASTVisitor.PROCESS_ABORT: return false;
|
||||
case ASTVisitor.PROCESS_SKIP: return true;
|
||||
default : break;
|
||||
}
|
||||
}
|
||||
|
@ -158,7 +156,7 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
return true;
|
||||
}
|
||||
|
||||
private static class N {
|
||||
private static class N {
|
||||
final IASTBinaryExpression fExpression;
|
||||
int fState;
|
||||
N fNext;
|
||||
|
@ -167,10 +165,10 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
fExpression = expr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean acceptWithoutRecursion(IASTBinaryExpression bexpr, ASTVisitor action) {
|
||||
N stack= new N(bexpr);
|
||||
while(stack != null) {
|
||||
while (stack != null) {
|
||||
IASTBinaryExpression expr= stack.fExpression;
|
||||
if (stack.fState == 0) {
|
||||
if (action.shouldVisitExpressions) {
|
||||
|
@ -196,7 +194,8 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
if (stack.fState == 1) {
|
||||
if (action.shouldVisitImplicitNames) {
|
||||
for (IASTImplicitName name : ((IASTImplicitNameOwner) expr).getImplicitNames()) {
|
||||
if(!name.accept(action)) return false;
|
||||
if (!name.accept(action))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
stack.fState= 2;
|
||||
|
@ -300,7 +299,6 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
return type;
|
||||
}
|
||||
|
||||
|
||||
switch (op) {
|
||||
case IASTBinaryExpression.op_lessEqual:
|
||||
case IASTBinaryExpression.op_lessThan:
|
||||
|
@ -311,11 +309,13 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
case IASTBinaryExpression.op_equals:
|
||||
case IASTBinaryExpression.op_notequals:
|
||||
return new CPPBasicType(Kind.eBoolean, 0, this);
|
||||
|
||||
case IASTBinaryExpression.op_plus:
|
||||
if (type2 instanceof IPointerType) {
|
||||
return type2;
|
||||
}
|
||||
break;
|
||||
|
||||
case IASTBinaryExpression.op_minus:
|
||||
if (type2 instanceof IPointerType) {
|
||||
if (type1 instanceof IPointerType) {
|
||||
|
@ -324,6 +324,7 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
return type1;
|
||||
}
|
||||
break;
|
||||
|
||||
case ICPPASTBinaryExpression.op_pmarrow:
|
||||
case ICPPASTBinaryExpression.op_pmdot:
|
||||
if (type2 instanceof ICPPPointerToMemberType) {
|
||||
|
@ -333,5 +334,4 @@ public class CPPASTBinaryExpression extends ASTNode implements ICPPASTBinaryExpr
|
|||
}
|
||||
return type1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -93,14 +93,13 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
public boolean isPostfixOperator() {
|
||||
return op == op_postFixDecr || op == op_postFixIncr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public IASTImplicitName[] getImplicitNames() {
|
||||
if(implicitNames == null) {
|
||||
if (implicitNames == null) {
|
||||
ICPPFunction overload = getOverload();
|
||||
if(overload == null)
|
||||
if (overload == null)
|
||||
return implicitNames = IASTImplicitName.EMPTY_NAME_ARRAY;
|
||||
|
||||
|
||||
CPPASTImplicitName operatorName = new CPPASTImplicitName(overload.getNameCharArray(), this);
|
||||
operatorName.setOperator(true);
|
||||
operatorName.setBinding(overload);
|
||||
|
@ -111,7 +110,6 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
return implicitNames;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean accept(ASTVisitor action) {
|
||||
if (action.shouldVisitExpressions) {
|
||||
|
@ -124,17 +122,19 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
|
||||
final boolean isPostfix = isPostfixOperator();
|
||||
|
||||
if(!isPostfix && action.shouldVisitImplicitNames) {
|
||||
for(IASTImplicitName name : getImplicitNames()) {
|
||||
if(!name.accept(action)) return false;
|
||||
if (!isPostfix && action.shouldVisitImplicitNames) {
|
||||
for (IASTImplicitName name : getImplicitNames()) {
|
||||
if (!name.accept(action))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (operand != null && !operand.accept(action)) return false;
|
||||
if (operand != null && !operand.accept(action))
|
||||
return false;
|
||||
|
||||
if(isPostfix && action.shouldVisitImplicitNames) {
|
||||
for(IASTImplicitName name : getImplicitNames()) {
|
||||
if(!name.accept(action)) return false;
|
||||
if (isPostfix && action.shouldVisitImplicitNames) {
|
||||
for (IASTImplicitName name : getImplicitNames()) {
|
||||
if (!name.accept(action)) return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
switch (action.leave(this)) {
|
||||
case ASTVisitor.PROCESS_ABORT: return false;
|
||||
case ASTVisitor.PROCESS_SKIP: return true;
|
||||
default : break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -155,21 +155,18 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
operand = (IASTExpression) other;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ICPPFunction getOverload() {
|
||||
if (overload != UNINITIALIZED_FUNCTION)
|
||||
return overload;
|
||||
|
||||
overload = CPPSemantics.findOverloadedOperator(this);
|
||||
if(overload != null && op == op_amper && computePointerToMemberType() instanceof CPPPointerToMemberType)
|
||||
if (overload != null && op == op_amper && computePointerToMemberType() instanceof CPPPointerToMemberType)
|
||||
overload = null;
|
||||
|
||||
return overload;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private IType computePointerToMemberType() {
|
||||
IASTNode child= operand;
|
||||
boolean inParenthesis= false;
|
||||
|
@ -200,7 +197,6 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
public IType getExpressionType() {
|
||||
final int op= getOperator();
|
||||
switch (op) {
|
||||
|
@ -215,19 +211,18 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
|
||||
if (op == op_amper) { // check for pointer to member
|
||||
IType ptm = computePointerToMemberType();
|
||||
if(ptm != null)
|
||||
if (ptm != null)
|
||||
return ptm;
|
||||
|
||||
IType operator = findOperatorReturnType();
|
||||
if(operator != null)
|
||||
if (operator != null)
|
||||
return operator;
|
||||
|
||||
IType type= operand.getExpressionType();
|
||||
type = SemanticUtil.getNestedType(type, TDEF | REF);
|
||||
return new CPPPointerType(type);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (op == op_star) {
|
||||
IType type= operand.getExpressionType();
|
||||
type = SemanticUtil.getNestedType(type, TDEF | REF | CVTYPE);
|
||||
|
@ -235,7 +230,7 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
return type;
|
||||
}
|
||||
IType operator = findOperatorReturnType();
|
||||
if(operator != null) {
|
||||
if (operator != null) {
|
||||
return operator;
|
||||
} else if (type instanceof IPointerType || type instanceof IArrayType) {
|
||||
return ((ITypeContainer) type).getType();
|
||||
|
@ -244,12 +239,11 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
}
|
||||
return new ProblemBinding(this, IProblemBinding.SEMANTIC_INVALID_TYPE, this.getRawSignature().toCharArray());
|
||||
}
|
||||
|
||||
|
||||
IType origType= operand.getExpressionType();
|
||||
IType type = SemanticUtil.getUltimateTypeUptoPointers(origType);
|
||||
IType operator = findOperatorReturnType();
|
||||
if(operator != null) {
|
||||
if (operator != null) {
|
||||
return operator;
|
||||
}
|
||||
|
||||
|
@ -292,10 +286,10 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private IType findOperatorReturnType() {
|
||||
ICPPFunction operatorFunction = getOverload();
|
||||
if(operatorFunction != null) {
|
||||
if (operatorFunction != null) {
|
||||
try {
|
||||
return operatorFunction.getType().getReturnType();
|
||||
} catch (DOMException e) {
|
||||
|
@ -304,6 +298,4 @@ public class CPPASTUnaryExpression extends ASTNode implements ICPPASTUnaryExpres
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue