public ForStatement(List<DeclarationStatement> declarations,
Expression condition, Expression post, Statement body) {
super(ExpressionType.For, Void.TYPE);
assert declarations != null;
assert body != null;
this.declarations = declarations; // may be empty, not null
this.condition = condition; // may be null
this.post = post; // may be null
this.body = body; // may be empty block, not null
}
@Override public ForStatement accept(Visitor visitor) {
visitor = visitor.preVisit(this);
List<DeclarationStatement> decls1 =
Expressions.acceptDeclarations(declarations, visitor);
final Expression condition1 =
condition == null ? null : condition.accept(visitor);
final Expression post1 = post == null ? null : post.accept(visitor);
final Statement body1 = body.accept(visitor);
return visitor.visit(this, decls1, condition1, post1, body1);
}
|