ASTArrayType.java
package edu.udel.cis.vsl.tass.front.minimp.ast.type;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTExpressionIF;
public class ASTArrayType extends ASTType {
private ASTTypeIF baseType;
private ASTExpressionIF length;
private int numDimensions;
public ASTArrayType(ASTTypeIF type, ASTExpressionIF length) {
baseType = type;
this.length = length;
this.hashCode = baseType.hashCode() + "array".hashCode();
if (type instanceof ASTArrayType) {
this.numDimensions = ((ASTArrayType) type).numDimensions + 1;
}
else {
this.numDimensions = 1;
}
}
public ASTArrayType(ASTTypeIF baseType) {
this(baseType, null);
}
public ASTTypeIF getBaseType() {
return baseType;
}
public boolean hasLengthInfo() {
return this.length != null;
}
public ASTExpressionIF getLength() {
return this.length;
}
public int numDimensions() {
return this.numDimensions;
}
public String toString() {
return baseType.toString() + "[]";
}
// todo: equals?
}