new files for new keyword "getoffset"
authoradash <adash>
Wed, 31 Dec 2008 20:18:08 +0000 (20:18 +0000)
committeradash <adash>
Wed, 31 Dec 2008 20:18:08 +0000 (20:18 +0000)
Robust/src/IR/Flat/FlatOffsetNode.java [new file with mode: 0644]
Robust/src/IR/Tree/OffsetNode.java [new file with mode: 0644]

diff --git a/Robust/src/IR/Flat/FlatOffsetNode.java b/Robust/src/IR/Flat/FlatOffsetNode.java
new file mode 100644 (file)
index 0000000..def02ea
--- /dev/null
@@ -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 (file)
index 0000000..c73fd42
--- /dev/null
@@ -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;
+  }
+}