ASTArrayVariableDeclaration.java

package edu.udel.cis.vsl.tass.front.minimp.ast.declaration;

import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTExpressionIF;
import edu.udel.cis.vsl.tass.front.minimp.ast.misc.ASTIdentifier;

public class ASTArrayVariableDeclaration extends ASTVariableDeclaration implements
    ASTDeclarationIF {
  private ASTArrayHeader arrayHeader;

  public ASTArrayVariableDeclaration(ASTIdentifier id, ASTArrayHeader header,
      VariableCategory category) {
    super(id, header.getType(), category);
    arrayHeader = header;
  }

  public ASTExpressionIF getArrayLength() {
    return arrayHeader.getArrayLength();
  }

  public ASTArrayHeader getArrayHeader() {
    return arrayHeader;
  }

  public String toString() {
    String result = "begin array variable declaration: \n";
    result += this.arrayHeader.toString() + " " + this.variableName.toString();
    if (this.assumption != null) {
      result += " {" + this.assumption + "}";
    }
    result += "line:" + source.firstLine() + ":" + source.lastLine()
        + ", column:" + source.firstColumn() + ":" + source.lastColumn()
        + ";\n";
    result += "end array variable declaration: \n";
    return result;
  }

  public ASTExpressionIF[] getDimensions() {
    return arrayHeader.getDimensions();
  }

}