ASTConditionStatement.java

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

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

public class ASTConditionStatement extends ASTStatement {
  private ASTExpressionIF predicate;
  private ASTStatementIF trueBranch;
  private ASTStatementIF falseBranch;

  public ASTConditionStatement(ASTExpressionIF expr, ASTStatementIF thenStmt,
      ASTStatementIF elseStmt) {
    predicate = expr;
    trueBranch = thenStmt;
    falseBranch = elseStmt;
  }

  public ASTExpressionIF getPredicate() {
    return predicate;
  }

  public ASTStatementIF getTrueBranch() {
    return trueBranch;
  }

  public ASTStatementIF getFalseBranch() {
    return falseBranch;
  }

  public String toString() {
    String result = "if(" + predicate.toString() + ")\n\t"
        + trueBranch.toString() + "\nelse\n\t";
    if (this.falseBranch != null) {
      result += this.falseBranch.toString();
    }
    result += "\n";
    return result;
  }
}