43 lines
781 B
Java
43 lines
781 B
Java
package cd.backend.codegen;
|
|
|
|
import cd.ir.Symbol.ClassSymbol;
|
|
import cd.ir.Symbol.MethodSymbol;
|
|
|
|
public class Location {
|
|
private ClassSymbol classSymbol;
|
|
private MethodSymbol methodSymbol = null;
|
|
private boolean obtainReference = false;
|
|
|
|
public Location (ClassSymbol sym) {
|
|
classSymbol = sym;
|
|
}
|
|
|
|
public ClassSymbol classSym() {
|
|
return classSymbol;
|
|
}
|
|
|
|
public MethodSymbol methodSym() {
|
|
assert methodSymbol != null;
|
|
return methodSymbol;
|
|
}
|
|
|
|
public void enterMethod(MethodSymbol sym) {
|
|
methodSymbol = sym;
|
|
}
|
|
|
|
public void leaveMethod() {
|
|
methodSymbol = null;
|
|
}
|
|
|
|
public boolean isObtainReference() {
|
|
boolean aux = obtainReference;
|
|
obtainReference = false;
|
|
return aux;
|
|
}
|
|
|
|
public Location obtainReference() {
|
|
obtainReference = true;
|
|
return this;
|
|
}
|
|
}
|