package org.eclipse.dltk.tcl.core.ast;
import java.util.ArrayList;
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 TclCatchStatement extends Statement {
private Block block;
private TclVariableDeclaration variable;
public TclCatchStatement(Block block, TclVariableDeclaration variable,
int start, int end) {
super(start, end);
this.block = block;
this.variable = variable;
}
@Override
public int getKind() {
return 0;
}
public TclVariableDeclaration getVariable() {
return this.variable;
}
@Override
public void traverse(ASTVisitor visitor) throws Exception {
if (visitor.visit(this)) {
if (this.block != null) {
this.block.traverse(visitor);
}
if (this.variable != null)
this.variable.traverse(visitor);
visitor.endvisit(this);
}
}
public List<ASTNode> getStatements() {
if (this.block != null) {
return this.block.getStatements();
}
return new ArrayList<>();
}
@Override
public void printNode(CorePrinter output) {
output.print("catch ");
if (this.block != null) {
block.printNode(output);
}
if (variable != null) {
variable.printNode(output);
}
}
}