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