|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
org.aspectj.org.eclipse.jdt.internal.compiler.ast.OperatorExpression
org.aspectj.org.eclipse.jdt.internal.compiler.ast.BinaryExpression
public class BinaryExpression
Field Summary | |
---|---|
Expression |
left
|
Constant |
optimizedBooleanConstant
|
Expression |
right
|
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.OperatorExpression |
---|
OperatorSignatures |
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression |
---|
constant, implicitConversion, resolvedType, statementEnd |
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement |
---|
COMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINED |
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.ast.OperatorIds |
---|
AND, AND_AND, DIVIDE, EQUAL, EQUAL_EQUAL, GREATER, GREATER_EQUAL, INSTANCEOF, LEFT_SHIFT, LESS, LESS_EQUAL, MINUS, MINUS_MINUS, MULTIPLY, NOT, NOT_EQUAL, NumberOfTables, OR, OR_OR, PLUS, PLUS_PLUS, QUESTIONCOLON, REMAINDER, RIGHT_SHIFT, TWIDDLE, UNSIGNED_RIGHT_SHIFT, XOR |
Constructor Summary | |
---|---|
BinaryExpression(BinaryExpression expression)
|
|
BinaryExpression(Expression left,
Expression right,
int operator)
|
Method Summary | |
---|---|
FlowInfo |
analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo)
|
void |
computeConstant(BlockScope scope,
int leftId,
int rightId)
|
void |
generateCode(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Code generation for a binary operation |
void |
generateLogicalAnd(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Boolean generation for & |
void |
generateLogicalOr(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Boolean generation for | |
void |
generateLogicalXor(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Boolean generation for ^ |
void |
generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean operator code generation Optimized operations are: <, <=, >, >=, &, |, ^ |
void |
generateOptimizedGreaterThan(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for > |
void |
generateOptimizedGreaterThanOrEqual(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for >= |
void |
generateOptimizedLessThan(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for < |
void |
generateOptimizedLessThanOrEqual(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for <= |
void |
generateOptimizedLogicalAnd(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for & |
void |
generateOptimizedLogicalOr(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for | |
void |
generateOptimizedLogicalXor(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for ^ |
void |
generateOptimizedStringConcatenation(BlockScope blockScope,
CodeStream codeStream,
int typeID)
|
void |
generateOptimizedStringConcatenationCreation(BlockScope blockScope,
CodeStream codeStream,
int typeID)
|
boolean |
isCompactableOperation()
|
Constant |
optimizedBooleanConstant()
Constant usable for bytecode pattern optimizations, but cannot be inlined since it is not strictly equivalent to the definition of constant expressions. |
void |
optimizedBooleanConstant(int leftId,
int operator,
int rightId)
|
java.lang.StringBuffer |
printExpressionNoParenthesis(int indent,
java.lang.StringBuffer output)
|
TypeBinding |
resolveType(BlockScope scope)
Resolve the type of this expression in the context of a blockScope |
void |
traverse(ASTVisitor visitor,
BlockScope scope)
Traverse an expression in the context of a blockScope |
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.OperatorExpression |
---|
classInitialize, generateTableTestCase, get_AND_AND, get_AND, get_DIVIDE, get_EQUAL_EQUAL, get_GREATER_EQUAL, get_GREATER, get_LEFT_SHIFT, get_LESS_EQUAL, get_LESS, get_MINUS, get_MULTIPLY, get_OR_OR, get_OR, get_PLUS, get_REMAINDER, get_RIGHT_SHIFT, get_UNSIGNED_RIGHT_SHIFT, get_XOR, nullStatus, operatorToString, printExpression |
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression |
---|
analyseCode, checkCastTypesCompatibility, checkNPE, checkUnsafeCast, computeConversion, forcedToBeRaw, generateCode, getDirectBinding, isConstantValueOfTypeAssignableToType, isConstantValueRepresentable, isTypeReference, localVariableBinding, markAsNonNull, postConversionType, print, printStatement, resolve, resolveType, resolveTypeExpecting, reusableJSRTarget, setExpectedType, tagAsNeedCheckCast, tagAsUnnecessaryCast, toTypeReference, traverse |
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement |
---|
branchChainTo, checkAgainstNullAnnotation, complainIfUnreachable, expectedType, generateArguments, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, resolveCase |
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode |
---|
checkInvocationArguments, concreteStatement, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printAnnotations, printIndent, printModifiers, resolveAnnotations, resolveDeprecatedAnnotations, sourceEnd, sourceStart, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public Expression left
public Expression right
public Constant optimizedBooleanConstant
Constructor Detail |
---|
public BinaryExpression(Expression left, Expression right, int operator)
public BinaryExpression(BinaryExpression expression)
Method Detail |
---|
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
analyseCode
in class Expression
public void computeConstant(BlockScope scope, int leftId, int rightId)
public Constant optimizedBooleanConstant()
Expression
optimizedBooleanConstant
in class Expression
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
generateCode
in class Expression
currentScope
- org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScopecodeStream
- org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStreamvalueRequired
- booleanpublic void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
generateOptimizedBoolean
in class Expression
public void generateOptimizedGreaterThan(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateOptimizedGreaterThanOrEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateOptimizedLessThan(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateOptimizedLessThanOrEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateLogicalAnd(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
public void generateLogicalOr(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
public void generateLogicalXor(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
public void generateOptimizedLogicalAnd(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateOptimizedLogicalOr(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateOptimizedLogicalXor(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
public void generateOptimizedStringConcatenation(BlockScope blockScope, CodeStream codeStream, int typeID)
generateOptimizedStringConcatenation
in class Expression
public void generateOptimizedStringConcatenationCreation(BlockScope blockScope, CodeStream codeStream, int typeID)
generateOptimizedStringConcatenationCreation
in class Expression
public boolean isCompactableOperation()
isCompactableOperation
in class Expression
public void optimizedBooleanConstant(int leftId, int operator, int rightId)
public java.lang.StringBuffer printExpressionNoParenthesis(int indent, java.lang.StringBuffer output)
printExpressionNoParenthesis
in class OperatorExpression
public TypeBinding resolveType(BlockScope scope)
Expression
resolveType
in class Expression
public void traverse(ASTVisitor visitor, BlockScope scope)
Expression
traverse
in class Expression
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |