package org.eclipse.dltk.tcl.core.ast;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.dltk.ast.ASTNode;
import org.eclipse.dltk.ast.ASTVisitor;
import org.eclipse.dltk.ast.statements.Block;
import org.eclipse.dltk.ast.statements.Statement;
import org.eclipse.dltk.utils.CorePrinter;
public class TclForeachStatement extends Statement {
List arguments = null;
Block block = null;
public TclForeachStatement(int start, int end) {
super(start, end);
}
@Override
public int getKind() {
return S_FOREACH;
}
@Override
public void traverse(ASTVisitor visitor) throws Exception {
if (visitor.visit(this)) {
if (this.arguments != null) {
for (Iterator<ASTNode> iterator = this.arguments
.iterator(); iterator.hasNext();) {
ASTNode node = iterator.next();
node.traverse(visitor);
}
}
if (this.block != null) {
block.traverse(visitor);
}
visitor.endvisit(this);
}
}
public List getArguments() {
if (arguments == null) {
arguments = new ArrayList();
}
return arguments;
}
public Block getBlock() {
return block;
}
public void acceptBlock(Block block) {
this.block = block;
}
@Override
public void printNode(CorePrinter output) {
output.print("foreach ");
if (this.arguments != null) {
for (Iterator<ASTNode> iterator = this.arguments
.iterator(); iterator.hasNext();) {
ASTNode node = iterator.next();
node.printNode(output);
}
}
if (this.block != null) {
block.printNode(output);
}
}
}