package qls.ast.statement; import java.util.ArrayList; import java.util.List; import qls.ast.Statement; import qls.ast.visitor.StatementVisitor; public class Block extends Statement { private List<Statement> statements; public Block() { statements = new ArrayList<Statement>(); } /** * Constructor for the statement case * @param statement */ public Block(Statement statement) { statements = new ArrayList<Statement>(); statements.add(statement); } public Block(Statement statement, Block statements) { this.statements = new ArrayList<Statement>(); 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() + ", "); } if (statements.size() > 0) { sb.setLength(sb.length() - 2); } sb.append(")"); return sb.toString(); } @Override public <T> T accept(StatementVisitor<T> visitor) { return visitor.visit(this); } }