+++ /dev/null
-package IR;
-
-/**
- * Descriptor
- *
- * represents a symbol in the language (var name, function name, etc).
- */
-
-public class TagVarDescriptor extends Descriptor {
-
- protected TagDescriptor td;
- protected String identifier;
-
- public TagVarDescriptor(TagDescriptor t, String identifier) {
- super(identifier);
- this.td=t;
- this.identifier=identifier;
- this.safename = "___" + name + "___";
- this.uniqueid=count++;
- }
-
- public String getName() {
- return identifier;
- }
-
- public TagDescriptor getTag() {
- return td;
- }
-
- public TypeDescriptor getType() {
- return new TypeDescriptor(TypeDescriptor.TAG);
- }
-
- public boolean equals(Object o) {
- if (o instanceof TagVarDescriptor) {
- TagVarDescriptor tvd=(TagVarDescriptor)o;
- if (tvd.identifier.equals(identifier)) {
- if (tvd.td!=null) {
- if (!tvd.td.equals(td))
- throw new Error();
- } else if (td!=null)
- throw new Error();
- return true;
- }
- }
- return false;
- }
-
- public int hashCode() {
- return identifier.hashCode();
- }
-
- public String toString() {
- return td.toString()+" "+identifier;
- }
-}