b3ef5d12c694e9380d9bdac5c1eb2c3be0c4f923
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / Block.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 /**
4  * A Block is
5  * {
6  * statements
7  * }.
8  * @author Matthieu Casanova
9  */
10 public class Block extends Statement {
11
12   /** An array of statements inside the block. */
13   public Statement[] statements;
14
15   /**
16    * Create a block.
17    * @param statements the statements
18    * @param sourceStart starting offset
19    * @param sourceEnd ending offset
20    */
21   public Block(Statement[] statements,int sourceStart, int sourceEnd) {
22     super(sourceStart, sourceEnd);
23     this.statements = statements;
24   }
25
26   public boolean isEmptyBlock() {
27     return statements == null;
28   }
29
30   /**
31    * Return the block as String.
32     * @param tab how many tabs
33    * @return the string representation of the block
34    */
35   public String toString(int tab) {
36     final String s = AstNode.tabString(tab);
37     final StringBuffer buff = new StringBuffer(s);
38     buff.append("{\n"); //$NON-NLS-1$
39     if (this.statements != null) {
40       for (int i = 0; i < statements.length; i++) {
41           buff.append(statements[i].toString(tab+1)).append(";\n");//$NON-NLS-1$
42       }
43     }
44     buff.append("}\n"); //$NON-NLS-1$
45     return buff.toString();
46   }
47 }