First try for AST structure. A lot of things to change
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / WhileStatement.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/WhileStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/WhileStatement.java
new file mode 100644 (file)
index 0000000..01e956d
--- /dev/null
@@ -0,0 +1,46 @@
+package net.sourceforge.phpdt.internal.compiler.ast;
+
+/**
+ * A While statement.
+ * @author Matthieu Casanova
+ */
+public class WhileStatement extends Statement {
+
+  /** The condition expression. */
+  public Expression condition;
+  /** The action of the while. (it could be a block) */
+  public Statement action;
+
+  /**
+   * Create a While statement.
+   * @param condition the condition
+   * @param action the action
+   * @param sourceStart the starting offset
+   * @param sourceEnd the ending offset
+   */
+  public WhileStatement(Expression condition,
+                        Statement action,
+                        int sourceStart,
+                        int sourceEnd) {
+    super(sourceStart, sourceEnd);
+    this.condition = condition;
+    this.action = action;
+  }
+
+  /**
+   * Return the object into String.
+   * @param tab how many tabs (not used here
+   * @return a String
+   */
+  public String toString(int tab) {
+               final String s = tabString(tab);
+    final StringBuffer buff = new StringBuffer("while ("); //$NON-NLS-1$
+               buff.append(condition.toStringExpression()).append(")");        //$NON-NLS-1$
+               if (action == null) {
+                       buff.append(" {} ;"); //$NON-NLS-1$
+    } else {
+                       buff.append("\n").append(action.toString(tab + 1)); //$NON-NLS-1$
+    }
+               return buff.toString();
+  }
+}