org.aspectj.compiler.base.ast
Class EqualityTestOpExpr
java.lang.Object
org.aspectj.compiler.base.CompilerObject
org.aspectj.compiler.base.ast.ASTObject
org.aspectj.compiler.base.ast.Expr
org.aspectj.compiler.base.ast.JavaExpr
org.aspectj.compiler.base.ast.BinopExpr
org.aspectj.compiler.base.ast.EqualityTestOpExpr
- public class EqualityTestOpExpr
- extends BinopExpr
| Fields inherited from class org.aspectj.compiler.base.ast.Expr |
type |
|
Method Summary |
protected void |
cgOp(org.aspectj.compiler.base.bcg.CodeBuilder cb,
Type ty)
Generate code that takes the top two values on the stack and
replaces it with the one value that is appropriate. |
protected void |
cgTest(org.aspectj.compiler.base.bcg.CodeBuilder cb,
org.aspectj.compiler.base.bcg.Label t,
org.aspectj.compiler.base.bcg.Label f)
Evaluates the expression in a context where its value will
only be used to branch (from IfStmt, TriTestExpr, WhileStmt, DoStmt, and ForStmt). |
ASTObject |
copyWalk(CopyWalker walker)
|
protected Type |
discoverType()
|
java.lang.String |
getDefaultDisplayName()
|
protected Type |
getLiftType()
|
protected LiteralExpr |
halfFold(Type type,
LiteralExpr lit1,
LiteralExpr lit2)
returns a new unfinished ASTObject, that still needs to have
ASTObject.setSource(org.aspectj.compiler.base.ast.ASTObject) called on it. |
| Methods inherited from class org.aspectj.compiler.base.ast.BinopExpr |
build, cgEffect, getChildAt, getChildCount, getChildNameAt, getOp, getRand1, getRand2, postAssignmentCheck, setChildAt, setOp, setRand1, setRand2, unparse |
| Methods inherited from class org.aspectj.compiler.base.ast.Expr |
assertType, canBeCopied, cgBuffer, cgValue, cgValue, checkSpec, cleanup, getType, isAssignableTo, isConstantFalse, isConstantTrue, isConstantZero, isInConstructorCallExpr, isInExprStmt, isLegalStmt, isMethodConvertableTo, isUltimatelyLiteral, makeQualifiedThis, makeReference, postCopy, setType, showOperatorTypeError, showOperatorTypeError, walkCleanup, walkFrameLoc |
| Methods inherited from class org.aspectj.compiler.base.ast.ASTObject |
addComment, buildAccessMethod, checkNoSharing, clearComment, clearParent, contains, containsTypes, copy, display, fixAccessPost, fixAST, fromSource, getAST, getBeginColumn, getBeginLine, getBytecodeType, getBytecodeTypeDec, getComment, getCompilationUnit, getDeclaringType, getEnclosingCodeDec, getEnclosingDec, getEndColumn, getEndLine, getEndPosition, getFormalComment, getLexicalType, getOutermostBytecodeType, getOutermostLexicalType, getParent, getSourceDirectoryName, getSourceFile, getSourceFileName, getSourceLocation, getStartPosition, hasLegalProtectedAccess, hasSource, hasSourceLocation, implementMixin, indexOf, inStaticContext, isLanguageVisible, isLeaf, isSynthetic, makeChild, makeChild, postCleanup, postFixAST, postImplementMixin, postInnerAccess, postInnerInfo, postLift, postMove, postScope, postThreading, preAssignmentCheck, preCopy, preIntroduction, preLift, preMove, preScope, preThreading, remove, remove, removeChildAt, replaceWith, setFormalComment, setParent, setParents, setSource, setSourceLocation, setSyntheticSource, showError, showMessage, showTypeError, showWarning, toShortString, toString, unparse, walk, walkAnalysis, walkAssignmentCheck, walkFlow, walkForwardReference, walkInnerInfo, walkMemberMunger, walkScope |
| Methods inherited from class org.aspectj.compiler.base.CompilerObject |
getCompiler, getOptions, getTypeManager, getWorld |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
EqualityTestOpExpr
public EqualityTestOpExpr(SourceLocation location,
Expr _rand1,
java.lang.String _op,
Expr _rand2)
EqualityTestOpExpr
protected EqualityTestOpExpr(SourceLocation source)
discoverType
protected Type discoverType()
- Specified by:
discoverType in class Expr
getLiftType
protected Type getLiftType()
- Specified by:
getLiftType in class BinopExpr
halfFold
protected LiteralExpr halfFold(Type type,
LiteralExpr lit1,
LiteralExpr lit2)
- Description copied from class:
BinopExpr
- returns a new unfinished ASTObject, that still needs to have
ASTObject.setSource(org.aspectj.compiler.base.ast.ASTObject) called on it.
- Specified by:
halfFold in class BinopExpr
cgTest
protected void cgTest(org.aspectj.compiler.base.bcg.CodeBuilder cb,
org.aspectj.compiler.base.bcg.Label t,
org.aspectj.compiler.base.bcg.Label f)
- Description copied from class:
Expr
- Evaluates the expression in a context where its value will
only be used to branch (from
IfStmt, TriTestExpr, WhileStmt, DoStmt, and ForStmt). The expression, of course, will have boolean type.
By default, this evaluates the expression to the stack and
then emits an EQ/NE branch bytecode, but many expressions such
as tests in BinopExpr will be able to do much better.
May self-call Expr.cgValue(CodeBuilder).
- Overrides:
cgTest in class Expr
cgOp
protected void cgOp(org.aspectj.compiler.base.bcg.CodeBuilder cb,
Type ty)
- Description copied from class:
BinopExpr
- Generate code that takes the top two values on the stack and
replaces it with the one value that is appropriate. This is
only used by non-effect operators, and is sometimes called
from
AssignExpr.
- Specified by:
cgOp in class BinopExpr
copyWalk
public ASTObject copyWalk(CopyWalker walker)
- Overrides:
copyWalk in class ASTObject
getDefaultDisplayName
public java.lang.String getDefaultDisplayName()
- Overrides:
getDefaultDisplayName in class BinopExpr