ASTForStatement.java
package edu.udel.cis.vsl.tass.front.minimp.ast.statement;
import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTExpressionIF;
public class ASTForStatement extends ASTStatement {
ASTExpressionIF initializer;
ASTExpressionIF predicate;
ASTExpressionIF update;
ASTStatementIF body;
ASTLoopInvariant invariant;
public ASTForStatement(ASTExpressionIF initializer, ASTExpressionIF pred,
ASTExpressionIF update, ASTStatementIF body, ASTLoopInvariant invariant) {
this.initializer = initializer;
this.predicate = pred;
this.update = update;
this.body = body;
this.invariant = invariant;
}
public ASTExpressionIF getInitializer() {
return this.initializer;
}
public ASTExpressionIF getUpdate() {
return this.update;
}
public ASTExpressionIF getPredicate() {
return this.predicate;
}
public ASTLoopInvariant getInvariant() {
return this.invariant;
}
public boolean hasInvariant() {
return this.invariant != null;
}
public ASTStatementIF getBody() {
return this.body;
}
public String toString() {
String result = null;
if (this.invariant != null) {
result = this.invariant.toString() + "\nfor(";
} else {
result = "for(";
}
if (this.initializer != null) {
result += this.initializer.toString();
}
result += "; ";
if (this.predicate != null) {
result += this.predicate.toString();
}
result += "; ";
if (this.update != null) {
result += this.update.toString();
}
result += ")\n" + this.body;
return result;
}
}