ASTWhileStatement.java
package edu.udel.cis.vsl.tass.front.minimp.ast.statement;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTExpressionIF;
public class ASTWhileStatement extends ASTStatement {
private ASTExpressionIF predicate;
private ASTStatementIF loopBody;
private ASTLoopInvariant invariant = null;
public ASTWhileStatement(ASTExpressionIF pred, ASTStatementIF body,
ASTLoopInvariant invariant) {
this.predicate = pred;
this.loopBody = body;
this.invariant = invariant;
}
public ASTWhileStatement(ASTExpressionIF pred, ASTStatementIF body) {
this(pred, body, null);
}
public ASTExpressionIF getPredicate() {
return predicate;
}
public ASTStatementIF getLoopBody() {
return loopBody;
}
public boolean hasInvariant() {
return this.invariant != null;
}
public ASTLoopInvariant getInvariant() {
return invariant;
}
public String toString() {
String result = new String();
if (this.invariant != null) {
result += this.invariant.toString() + "\n";
}
result += "while(" + this.predicate.toString() + ")\n"
+ this.loopBody.toString();
return result;
}
}