From 26bca322ba56ec3d9af3820190b64ecac5eed433 Mon Sep 17 00:00:00 2001 From: adash Date: Wed, 31 Dec 2008 20:18:08 +0000 Subject: [PATCH] new files for new keyword "getoffset" --- Robust/src/IR/Flat/FlatOffsetNode.java | 35 +++++++++++++++ Robust/src/IR/Tree/OffsetNode.java | 60 ++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 Robust/src/IR/Flat/FlatOffsetNode.java create mode 100644 Robust/src/IR/Tree/OffsetNode.java 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; + } +} -- 2.34.1