org.aspectj.compiler.base.ast
Class NullExpr

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.NullExpr
All Implemented Interfaces:
MajPrimaryExpr

public class NullExpr
extends JavaExpr
implements MajPrimaryExpr


Field Summary
 
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
NullExpr()
           
NullExpr(SourceLocation location)
           
 
Method Summary
 boolean canBeCopied()
          Can this expression be copied without changing the semantics of the program.
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  void cgValue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
          Leaves the value of this expression on the stack.
 ASTObject copyWalk(CopyWalker walker)
           
 Type discoverType()
           
 java.lang.String getDefaultDisplayName()
           
 boolean isConstantZero()
          is this expression zero or null?
 boolean isUltimatelyLiteral()
          Is this expression ultimately a literal expression.
 Expr toExpr()
           
 void unparse(org.aspectj.compiler.base.CodeWriter writer)
           
 
Methods inherited from class org.aspectj.compiler.base.ast.Expr
assertType, cgBuffer, cgTest, cgValue, checkSpec, cleanup, getType, isAssignableTo, isConstantFalse, isConstantTrue, isInConstructorCallExpr, isInExprStmt, isLegalStmt, isMethodConvertableTo, 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, getChildAt, getChildCount, getChildNameAt, 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, postAssignmentCheck, postCleanup, postFixAST, postImplementMixin, postInnerAccess, postInnerInfo, postLift, postMove, postScope, postThreading, preAssignmentCheck, preCopy, preIntroduction, preLift, preMove, preScope, preThreading, remove, remove, removeChildAt, replaceWith, setChildAt, 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
 
Methods inherited from interface org.aspectj.compiler.base.ast.MajPrimaryExpr
unparse
 

Constructor Detail

NullExpr

public NullExpr(SourceLocation location)

NullExpr

public NullExpr()
Method Detail

toExpr

public Expr toExpr()

discoverType

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

unparse

public void unparse(org.aspectj.compiler.base.CodeWriter writer)
             throws java.io.IOException
Overrides:
unparse in class ASTObject
Throws:
java.io.IOException

canBeCopied

public boolean canBeCopied()
Description copied from class: Expr
Can this expression be copied without changing the semantics of the program.

Overrides:
canBeCopied in class Expr

isUltimatelyLiteral

public boolean isUltimatelyLiteral()
Description copied from class: Expr
Is this expression ultimately a literal expression. The only difference between this and canBeCopied is that 'this' is NOT ultimatelyLiteral, and that a cast is only copiable if its expression is ultimatelyLiteral.

Overrides:
isUltimatelyLiteral in class Expr

cgValue

protected void cgValue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Description copied from class: Expr
Leaves the value of this expression on the stack. May self-call Expr.cgTest(CodeBuilder, Label, Label).

Overrides:
cgValue in class Expr

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

isConstantZero

public boolean isConstantZero()
Description copied from class: Expr
is this expression zero or null?

Overrides:
isConstantZero in class Expr

copyWalk

public ASTObject copyWalk(CopyWalker walker)
Overrides:
copyWalk in class ASTObject

getDefaultDisplayName

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