From: adash Date: Wed, 31 Dec 2008 20:18:08 +0000 (+0000) Subject: new files for new keyword "getoffset" X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=26bca322ba56ec3d9af3820190b64ecac5eed433;p=IRC.git new files for new keyword "getoffset" --- diff --git a/Robust/src/IR/Flat/FlatOffsetNode.java b/Robust/src/IR/Flat/FlatOffsetNode.java new file mode 100644 index 00000000..def02ea7 --- /dev/null +++ b/Robust/src/IR/Flat/FlatOffsetNode.java @@ -0,0 +1,35 @@ +package IR.Flat; +import IR.ClassDescriptor; +import IR.FieldDescriptor; + +public class FlatOffsetNode extends FlatNode { + TempDescriptor dest; + ClassDescriptor cd; + FieldDescriptor field; + + public FlatOffsetNode(FieldDescriptor field, ClassDescriptor cd, TempDescriptor dest) { + this.cd = cd; + this.field = field; + this.dest = dest; + } + + public FieldDescriptor getField() { + return field; + } + + public ClassDescriptor getClassDesc() { + return cd; + } + + public String toString() { + return "FlatOffsetNode_"+ dest.toString()+"="+"{ "+ cd.toString()+", "+field.getSymbol()+" }"; + } + + public int kind() { + return FKind.FlatOffsetNode; + } + + public TempDescriptor getDst() { + return dest; + } +} diff --git a/Robust/src/IR/Tree/OffsetNode.java b/Robust/src/IR/Tree/OffsetNode.java new file mode 100644 index 00000000..c73fd429 --- /dev/null +++ b/Robust/src/IR/Tree/OffsetNode.java @@ -0,0 +1,60 @@ +package IR.Tree; +import IR.FieldDescriptor; +import IR.TypeDescriptor; +import IR.ClassDescriptor; + +public class OffsetNode extends ExpressionNode { + TypeDescriptor td; + TypeDescriptor type; + ClassDescriptor cd; + FieldDescriptor fd; + String fieldname; + + public OffsetNode(TypeDescriptor td, String fieldname) { + this.td = td; + this.fieldname = fieldname; + this.fd = null; + } + + public OffsetNode(ClassDescriptor cd, String fieldname) { + this.cd = cd; + this.fieldname = fieldname; + this.fd = null; + } + + public void setField(FieldDescriptor fd) { + this.fd = fd; + } + + public String getFieldName() { + return fieldname; + } + + public FieldDescriptor getField() { + return fd; + } + + public void setType(TypeDescriptor argtype) { + this.type=argtype; + } + + public void setClassDesc(ClassDescriptor cd) { + this.cd = cd; + } + + public ClassDescriptor getClassDesc() { + return cd; + } + + public TypeDescriptor getType() { + return type; + } + + public String printNode(int indent) { + return "getoffset {"+ td.toString() + " , " + fieldname + " } "; + } + + public int kind() { + return Kind.OffsetNode; + } +}