public class CType { | |
String baseType; | |
boolean isConst; | |
boolean isPointer; | |
public CType() { | |
} | |
public CType(String baseType) { | |
setBaseType(baseType); | |
} | |
public CType(String baseType, boolean isConst, boolean isPointer) { | |
setBaseType(baseType); | |
setIsConst(isConst); | |
setIsPointer(isPointer); | |
} | |
public String getDeclaration() { | |
return baseType + (isPointer ? " *" : ""); | |
} | |
public void setIsConst(boolean isConst) { | |
this.isConst = isConst; | |
} | |
public boolean isConst() { | |
return isConst; | |
} | |
public void setIsPointer(boolean isPointer) { | |
this.isPointer = isPointer; | |
} | |
public boolean isPointer() { | |
return isPointer; | |
} | |
boolean isVoid() { | |
String baseType = getBaseType(); | |
return baseType.equals("GLvoid") || | |
baseType.equals("void"); | |
} | |
public boolean isTypedPointer() { | |
return isPointer() && !isVoid(); | |
} | |
public void setBaseType(String baseType) { | |
this.baseType = baseType; | |
} | |
public String getBaseType() { | |
return baseType; | |
} | |
public String toString() { | |
String s = ""; | |
if (isConst()) { | |
s += "const "; | |
} | |
s += baseType; | |
if (isPointer()) { | |
s += "*"; | |
} | |
return s; | |
} | |
public int hashCode() { | |
return baseType.hashCode() ^ (isPointer ? 2 : 0) ^ (isConst ? 1 : 0); | |
} | |
public boolean equals(Object o) { | |
if (o != null && o instanceof CType) { | |
CType c = (CType)o; | |
return baseType.equals(c.baseType) && | |
isPointer() == c.isPointer() && | |
isConst() == c.isConst(); | |
} | |
return false; | |
} | |
} |