misc
[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   public Statement[] statements;
12
13   public boolean isEmptyBlock() {
14     return statements == null;
15   }
16
17   public String toString(int tab) {
18     final String s = tabString(tab);
19     final StringBuffer buff = new StringBuffer(s);
20     if (this.statements == null) {
21       buff.append("{\n"); //$NON-NLS-1$
22       buff.append(s);
23       buff.append("}"); //$NON-NLS-1$
24       return s;
25     }
26     buff.append("{\n"); //$NON-NLS-1$
27     buff.append(this.toStringStatements(tab));
28     buff.append(s);
29     buff.append("}"); //$NON-NLS-1$
30     return s;
31   }
32
33   public String toStringStatements(int tab) {
34     if (this.statements == null)
35       return ""; //$NON-NLS-1$
36     StringBuffer buffer = new StringBuffer();
37     for (int i = 0; i < statements.length; i++) {
38       buffer.append(statements[i].toString(tab + 1));
39       if (statements[i] instanceof Block) {
40         buffer.append("\n"); //$NON-NLS-1$
41       } else {
42         buffer.append(";\n"); //$NON-NLS-1$
43       }
44     }
45     return buffer.toString();
46   }
47 }