package ast;
import java.util.ArrayList;
import java.util.List;
public class ForStatement extends Statement {
private List<Statement> initializers = new ArrayList<>();
private Expression optionalConditionExpression;
private List<Statement> updaters = new ArrayList<>();
private Statement body;
public List<Statement> getInitializers() {
return initializers;
}
public void setInitializers(List<Statement> initializers) {
this.initializers = initializers;
}
public Expression getExpression() {
return optionalConditionExpression;
}
public void setExpression(Expression expression) {
this.optionalConditionExpression = expression;
}
public List<Statement> getUpdaters() {
return updaters;
}
public void setUpdaters(List<Statement> updaters) {
this.updaters = updaters;
}
public Statement getBody() {
return body;
}
public void setBody(Statement body) {
this.body = body;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("for (");
for (int i = 0; i < initializers.size(); i++) {
String init = initializers.get(i).toString();
sb.append(init.endsWith(";") ? init.substring(0, init.length() - 1) : init);
if (i < initializers.size() - 1) sb.append(", ");
}
sb.append("; ");
if (optionalConditionExpression != null) sb.append(optionalConditionExpression);
sb.append("; ");
for (int i = 0; i < updaters.size(); i++) {
String update = updaters.get(i).toString();
sb.append(update.endsWith(";") ? update.substring(0, update.length() - 1) : update);
if (i < updaters.size() - 1) sb.append(", ");
}
sb.append(") ");
if (body != null) sb.append(body);
return sb.toString();
}
}