a little bugfix in the variable parsing
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / FunctionCall.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4 import java.util.ArrayList;
5
6 /**
7  * A Function call.
8  * @author Matthieu Casanova
9  */
10 public class FunctionCall extends AbstractSuffixExpression {
11
12   /** the function name. */
13   public Expression functionName;
14
15   /** the arguments. */
16   public Expression[] args;
17
18   public FunctionCall(final Expression prefix,
19                       final Expression[] args,
20                       final int sourceEnd) {
21     super(prefix.sourceStart, sourceEnd);
22     this.functionName = prefix;
23     this.args = args;
24   }
25
26   /**
27    * Return the expression as String.
28    * @return the expression
29    */
30   public String toStringExpression() {
31     final StringBuffer buff = new StringBuffer(functionName.toStringExpression());
32     buff.append('(');
33     if (args != null) {
34       for (int i = 0; i < args.length; i++) {
35         final Expression arg = args[i];
36         if (i != 0) {
37           buff.append(',');
38         }
39         buff.append(arg.toStringExpression());
40       }
41     }
42     buff.append(')');
43     return buff.toString();
44   }
45
46   /**
47    * Get the variables from outside (parameters, globals ...)
48    */
49   public void getOutsideVariable(final List list) {
50   }
51
52   /**
53    * get the modified variables.
54    */
55   public void getModifiedVariable(final List list) {
56     if (args != null) {
57       for (int i = 0; i < args.length; i++) {
58         args[i].getModifiedVariable(list);
59       }
60     }
61   }
62
63   /**
64    * Get the variables used.
65    */
66   public void getUsedVariable(final List list) {
67     functionName.getUsedVariable(list);
68     if (args != null) {
69       for (int i = 0; i < args.length; i++) {
70         args[i].getUsedVariable(list);
71       }
72     }
73   }
74 }