blob: 3e98979bff4e7ec7b70e9ed61edda28cca9d53bb [file] [log] [blame]
package org.eclipse.dltk.tcl.core.ast;
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.ast.statements.StatementConstants;
public class TclSwitchStatement extends Statement {
private ASTNode fPattern;
private Block fAlternatives = new Block();
public TclSwitchStatement(int startPos, int endPos) {
this.setStart(startPos);
this.setEnd(endPos);
}
public TclSwitchStatement(ASTNode string, int startPos, int endPos) {
this.fPattern = string;
this.setStart(startPos);
this.setEnd(endPos);
}
public void setString(ASTNode string) {
this.fPattern = string;
}
@Override
public int getKind() {
return StatementConstants.S_SWITCH;
}
@Override
public void traverse(ASTVisitor visitor) throws Exception {
if (visitor.visit(this)) {
if (null != fPattern) {
fPattern.traverse(visitor);
}
if (null != fAlternatives) {
fAlternatives.traverse(visitor);
}
visitor.endvisit(this);
}
}
public ASTNode getString() {
return this.fPattern;
}
public Block getAlternatives() {
return this.fAlternatives;
}
public void acceptBlock(Block bl) {
this.fAlternatives = bl;
}
public void addChild(Block block) {
this.fAlternatives.getStatements().add(block);
}
}