package ql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import ql.ast.Statement;
import ql.ast.visitor.StatementVisitor;
public class Block extends Statement {
private List<Statement> statements = new ArrayList<Statement>();
public Block() {}
/**
* Constructor for the statement case
* @param statement
*/
public Block(Statement statement) {
this.statements.add(statement);
}
public Block(Statement statement, Block statements) {
this.statements.add(statement);
this.statements.addAll(statements.getStatements());
}
public List<Statement> getStatements() {
return this.statements;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("Block(");
for(Statement statement : statements) {
sb.append(statement.toString() + ", ");
}
sb.setLength(sb.length() - 2);
sb.append(")");
return sb.toString();
}
@Override
public <T> T accept(StatementVisitor<T> visitor) {
return visitor.visit(this);
}
}