stack frame bugs fixed
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ArrayInitializer.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4
5 /**
6  * an array initializer.
7  * array('a','b','c') or array('a' => 2,'b' = '3');
8  * @author Matthieu Casanova
9  */
10 public final class ArrayInitializer extends Expression {
11
12   /** the key and values. */
13   private final ArrayVariableDeclaration[] vars;
14
15   /**
16    * Create a new array initializer.
17    * @param vars the keys and values of the array
18    * @param sourceStart the starting offset
19    * @param sourceEnd the ending offset
20    */
21   public ArrayInitializer(final ArrayVariableDeclaration[] vars,
22                           final int sourceStart,
23                           final int sourceEnd) {
24     super(sourceStart, sourceEnd);
25     this.vars = vars;
26   }
27
28   /**
29    * Return the expression as String.
30    * @return the expression
31    */
32   public String toStringExpression() {
33     final StringBuffer buff = new StringBuffer("array(");
34     for (int i = 0; i < vars.length; i++) {
35       if (i != 0) {
36         buff.append(",");
37       }
38       if (vars[i] != null) {
39         buff.append(vars[i].toStringExpression());
40       }
41     }
42     buff.append(")");
43     return buff.toString();
44   }
45
46   /**
47    * Get the variables from outside (parameters, globals ...)
48    * @param list the list where we will put variables
49    */
50   public void getOutsideVariable(final List list) {}
51
52   /**
53    * get the modified variables.
54    * @param list the list where we will put variables
55    */
56   public void getModifiedVariable(final List list) {
57     for (int i = 0; i < vars.length; i++) {
58       if (vars[i] != null) {
59         vars[i].getModifiedVariable(list);
60       }
61     }
62   }
63
64   /**
65    * Get the variables used.
66    * @param list the list where we will put variables
67    */
68   public void getUsedVariable(final List list) {
69     for (int i = 0; i < vars.length; i++) {
70       if (vars[i] != null) {
71         vars[i].getUsedVariable(list);
72       }
73     }
74   }
75 }