1 24 25 package org.aspectj.compiler.base.ast; 26 27 import org.aspectj.compiler.base.JavaCompiler; 28 import org.aspectj.compiler.base.CodeWriter; 29 import java.io.IOException ; 30 31 import org.aspectj.compiler.base.bcg.CodeBuilder; 32 import org.aspectj.compiler.base.bcg.Label; 33 34 37 public abstract class AssignableExpr extends Expr { 38 39 public boolean isLhs() { 40 ASTObject parent = this.getParent(); 41 return (parent instanceof BangExpr && 42 ((BangExpr)parent).getLhs() == this); 43 } 44 45 protected void cgValue(CodeBuilder cb) { 48 cgLvalue(cb); 49 cgLtoRvalue(cb); 50 } 51 52 57 abstract protected void cgLvalue(CodeBuilder cb); 58 59 62 abstract protected void cgLtoRvalue(CodeBuilder cb); 63 64 67 abstract protected void cgAssignment(CodeBuilder cb); 68 69 71 abstract protected void cgDupLvalue(CodeBuilder cb); 72 73 77 abstract protected void cgDupRvalue(CodeBuilder cb); 78 79 82 protected boolean isIncable() { return false; } 83 84 86 public AssignableExpr(SourceLocation location) { 87 super(location); 88 89 } 90 91 92 public String getDefaultDisplayName() { 93 return "AssignableExpr()"; 94 } 95 96 } 98 | Popular Tags |