1 24 25 package org.aspectj.compiler.base.ast; 26 27 import org.aspectj.compiler.base.FlowCheckerPass; 28 import org.aspectj.compiler.base.JavaCompiler; 29 import org.aspectj.compiler.base.CodeWriter; 30 import java.io.IOException ; 31 32 import org.aspectj.compiler.base.bcg.CodeBuilder; 33 import org.aspectj.compiler.base.bcg.Label; 34 35 36 39 public class NullExpr extends Expr { 40 41 public Type discoverType() { 42 return getTypeManager().nullType; 43 } 44 45 public void unparse(CodeWriter writer) throws IOException { 46 writer.write("null"); 47 } 48 49 public boolean canBeCopied() { 50 return true; 51 } 52 53 public boolean isUltimatelyLiteral() { 54 return true; 55 } 56 57 protected void cgValue(CodeBuilder cb) { 60 cb.emitNULL(); 61 } 62 protected void cgEffect(CodeBuilder cb) {} 63 64 public boolean isConstantZero() { return true; } 65 67 69 public NullExpr(SourceLocation location) { 70 super(location); 71 72 } 73 74 public ASTObject copyWalk(CopyWalker walker) { 75 NullExpr ret = new NullExpr(getSourceLocation()); 76 ret.preCopy(walker, this); 77 78 return ret; 79 } 80 81 82 public String getDefaultDisplayName() { 83 return "NullExpr()"; 84 } 85 86 } 88 89 90 91 92 93 | Popular Tags |