import java.util.Set;
import IR.Descriptor;
+import IR.FieldDescriptor;
+import IR.VarDescriptor;
public class FlowNode {
// set true if this node stores a return value
private boolean isReturn;
+ private boolean isDeclarationNode = false;
+
+ private boolean isIntermediate;
+
+ public boolean isIntermediate() {
+ return isIntermediate;
+ }
+
+ public void setIntermediate(boolean isIntermediate) {
+ this.isIntermediate = isIntermediate;
+ }
+
public Set<FlowNode> getFieldNodeSet() {
return fieldNodeSet;
}
this.isReturn = isReturn;
}
+ public boolean isPrimitiveType() {
+ Descriptor desc = descTuple.get(descTuple.size() - 1);
+ if (desc instanceof VarDescriptor) {
+ return ((VarDescriptor) desc).getType().isPrimitive();
+ } else if (desc instanceof FieldDescriptor) {
+ return ((FieldDescriptor) desc).getType().isPrimitive();
+ }
+ return false;
+ }
+
public String toString() {
String rtr = "[FlowNode]:";
if (isParameter()) {
id += ">";
return id;
}
+
+ public void setDeclarationNode() {
+ isDeclarationNode = true;
+ }
+
+ public boolean isDeclaratonNode() {
+ return isDeclarationNode;
+ }
}