org.aspectj.compiler.base.ast
Class UnopExpr

java.lang.Object
  extended byorg.aspectj.compiler.base.CompilerObject
      extended byorg.aspectj.compiler.base.ast.ASTObject
          extended byorg.aspectj.compiler.base.ast.Expr
              extended byorg.aspectj.compiler.base.ast.JavaExpr
                  extended byorg.aspectj.compiler.base.ast.UnopExpr
Direct Known Subclasses:
BitNotOpExpr, LogNotOpExpr, MinusOpExpr, PlusOpExpr

public abstract class UnopExpr
extends JavaExpr


Field Summary
protected  java.lang.String op
           
protected  Expr rand1
           
 
Fields inherited from class org.aspectj.compiler.base.ast.Expr
type
 
Fields inherited from class org.aspectj.compiler.base.ast.ASTObject
dummySource, parent, sourceLocation
 
Constructor Summary
protected UnopExpr(SourceLocation source)
           
  UnopExpr(SourceLocation location, java.lang.String _op, Expr _rand1)
           
 
Method Summary
protected  void bindNamesSelf()
           
static UnopExpr build(SourceLocation source, java.lang.String op, Expr rand1)
           
static UnopExpr build(java.lang.String op, Expr rand1)
           
protected  void cgEffect(org.aspectj.compiler.base.bcg.CodeBuilder cb)
          Evaluates the expression in a context where its value is unnecessary (i.e., from ExprStmt, or in a FieldAccessExpr when the field is static but there is an expression there nonetheless).
protected  Type discoverType()
           
 ASTObject getChildAt(int childIndex)
           
 int getChildCount()
           
 java.lang.String getChildNameAt(int childIndex)
           
 java.lang.String getDefaultDisplayName()
           
protected abstract  Type getLiftType()
           
 java.lang.String getOp()
           
 Expr getRand1()
           
protected abstract  LiteralExpr halfFold(Type type, LiteralExpr lit)
          returns a new unfinished ASTObject, that still needs to have ASTObject.setSource(org.aspectj.compiler.base.ast.ASTObject) called on it.
 ASTObject postAssignmentCheck(org.aspectj.compiler.base.AssignmentCheckerPass walker)
           
 void setChildAt(int childIndex, ASTObject child)
           
 void setOp(java.lang.String _op)
           
 void setRand1(Expr _rand1)
           
 void showOperatorTypeError(Type a)
           
 Expr toExpr()
           
 void unparse(org.aspectj.compiler.base.CodeWriter writer)
           
 
Methods inherited from class org.aspectj.compiler.base.ast.Expr
assertType, canBeCopied, cgBuffer, cgTest, 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, copyWalk, 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
 

Field Detail

op

protected java.lang.String op

rand1

protected Expr rand1
Constructor Detail

UnopExpr

public UnopExpr(SourceLocation location,
                java.lang.String _op,
                Expr _rand1)

UnopExpr

protected UnopExpr(SourceLocation source)
Method Detail

toExpr

public Expr toExpr()

bindNamesSelf

protected void bindNamesSelf()

postAssignmentCheck

public ASTObject postAssignmentCheck(org.aspectj.compiler.base.AssignmentCheckerPass walker)
Overrides:
postAssignmentCheck in class ASTObject

getLiftType

protected abstract Type getLiftType()

halfFold

protected abstract LiteralExpr halfFold(Type type,
                                        LiteralExpr lit)
returns a new unfinished ASTObject, that still needs to have ASTObject.setSource(org.aspectj.compiler.base.ast.ASTObject) called on it.


build

public static UnopExpr build(SourceLocation source,
                             java.lang.String op,
                             Expr rand1)

build

public static UnopExpr build(java.lang.String op,
                             Expr rand1)

discoverType

protected Type discoverType()
Specified by:
discoverType in class Expr

unparse

public void unparse(org.aspectj.compiler.base.CodeWriter writer)
Overrides:
unparse in class ASTObject

showOperatorTypeError

public void showOperatorTypeError(Type a)

cgEffect

protected void cgEffect(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Description copied from class: Expr
Evaluates the expression in a context where its value is unnecessary (i.e., from ExprStmt, or in a FieldAccessExpr when the field is static but there is an expression there nonetheless). May self-call Expr.cgValue(CodeBuilder).

Overrides:
cgEffect in class Expr

getOp

public java.lang.String getOp()

setOp

public void setOp(java.lang.String _op)

getRand1

public Expr getRand1()

setRand1

public void setRand1(Expr _rand1)

getChildAt

public ASTObject getChildAt(int childIndex)
Overrides:
getChildAt in class ASTObject

getChildNameAt

public java.lang.String getChildNameAt(int childIndex)
Overrides:
getChildNameAt in class ASTObject

setChildAt

public void setChildAt(int childIndex,
                       ASTObject child)
Overrides:
setChildAt in class ASTObject

getChildCount

public int getChildCount()
Overrides:
getChildCount in class ASTObject

getDefaultDisplayName

public java.lang.String getDefaultDisplayName()
Overrides:
getDefaultDisplayName in class Expr