Changes:
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / FunctionCall.java
index 4e127ca..721354a 100644 (file)
@@ -1,18 +1,24 @@
 package net.sourceforge.phpdt.internal.compiler.ast;
 
+import java.util.List;
+
 /**
+ * A Function call.
  * @author Matthieu Casanova
  */
 public class FunctionCall extends AbstractSuffixExpression {
 
-  public Expression prefix;
+  /** the function name. */
+  public Expression functionName;
+
+  /** the arguments. */
   public Expression[] args;
 
-  public FunctionCall(Expression prefix,
-                      Expression[] args,
-                      int sourceEnd) {
+  public FunctionCall(final Expression prefix,
+                      final Expression[] args,
+                      final int sourceEnd) {
     super(prefix.sourceStart, sourceEnd);
-    this.prefix = prefix;
+    this.functionName = prefix;
     this.args = args;
   }
 
@@ -21,16 +27,47 @@ public class FunctionCall extends AbstractSuffixExpression {
    * @return the expression
    */
   public String toStringExpression() {
-    final StringBuffer buff = new StringBuffer(prefix.toStringExpression());
+    final StringBuffer buff = new StringBuffer(functionName.toStringExpression());
     buff.append('(');
-    for (int i = 0; i < args.length; i++) {
-      Expression arg = args[i];
-      if (i != 0) {
-        buff.append(',');
+    if (args != null) {
+      for (int i = 0; i < args.length; i++) {
+        final Expression arg = args[i];
+        if (i != 0) {
+          buff.append(',');
+        }
+        buff.append(arg.toStringExpression());
       }
-      buff.append(arg.toStringExpression());
     }
     buff.append(')');
     return buff.toString();
   }
+
+  /**
+   * Get the variables from outside (parameters, globals ...)
+   */
+  public void getOutsideVariable(final List list) {
+  }
+
+  /**
+   * get the modified variables.
+   */
+  public void getModifiedVariable(final List list) {
+    if (args != null) {
+      for (int i = 0; i < args.length; i++) {
+        args[i].getModifiedVariable(list);
+      }
+    }
+  }
+
+  /**
+   * Get the variables used.
+   */
+  public void getUsedVariable(final List list) {
+    functionName.getUsedVariable(list);
+    if (args != null) {
+      for (int i = 0; i < args.length; i++) {
+        args[i].getUsedVariable(list);
+      }
+    }
+  }
 }