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