/plugins/PHPParser/tags/v1_2_3/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayInitializer.java

# · Java · 106 lines · 58 code · 10 blank · 38 comment · 16 complexity · b183d486ce4729064b823919aa20d556 MD5 · raw file

  1. package net.sourceforge.phpdt.internal.compiler.ast;
  2. import gatchan.phpparser.parser.PHPParser;
  3. import java.util.List;
  4. /**
  5. * an array initializer. array('a','b','c') or array('a' => 2,'b' = '3');
  6. *
  7. * @author Matthieu Casanova
  8. * @version $Id: ArrayInitializer.java 8511 2005-08-31 12:32:58Z kpouer $
  9. */
  10. public final class ArrayInitializer extends Expression {
  11. /** the key and values. The last value can be null because of <code>syntax array('bar',)</code> */
  12. private final ArrayVariableDeclaration[] vars;
  13. /**
  14. * Create a new array initializer.
  15. *
  16. * @param vars the keys and values of the array
  17. * @param sourceStart the starting offset
  18. * @param sourceEnd the ending offset
  19. * @param beginLine begin line
  20. * @param endLine ending line
  21. * @param beginColumn begin column
  22. * @param endColumn ending column
  23. */
  24. public ArrayInitializer(ArrayVariableDeclaration[] vars,
  25. int sourceStart,
  26. int sourceEnd,
  27. int beginLine,
  28. int endLine,
  29. int beginColumn,
  30. int endColumn) {
  31. super(Type.ARRAY, sourceStart, sourceEnd, beginLine, endLine, beginColumn, endColumn);
  32. this.vars = vars;
  33. }
  34. /**
  35. * Return the expression as String.
  36. *
  37. * @return the expression
  38. */
  39. public String toStringExpression() {
  40. StringBuffer buff = new StringBuffer("array(");
  41. for (int i = 0; i < vars.length; i++) {
  42. if (i != 0) {
  43. buff.append(',');
  44. }
  45. if (vars[i] != null) {
  46. buff.append(vars[i].toStringExpression());
  47. }
  48. }
  49. buff.append(')');
  50. return buff.toString();
  51. }
  52. /**
  53. * Get the variables from outside (parameters, globals ...)
  54. *
  55. * @param list the list where we will put variables
  56. */
  57. public void getOutsideVariable(List list) {
  58. }
  59. /**
  60. * get the modified variables.
  61. *
  62. * @param list the list where we will put variables
  63. */
  64. public void getModifiedVariable(List list) {
  65. for (int i = 0; i < vars.length; i++) {
  66. if (vars[i] != null) {
  67. vars[i].getModifiedVariable(list);
  68. }
  69. }
  70. }
  71. /**
  72. * Get the variables used.
  73. *
  74. * @param list the list where we will put variables
  75. */
  76. public void getUsedVariable(List list) {
  77. for (int i = 0; i < vars.length; i++) {
  78. if (vars[i] != null) {
  79. vars[i].getUsedVariable(list);
  80. }
  81. }
  82. }
  83. public Expression expressionAt(int line, int column) {
  84. for (int i = 0; i < vars.length; i++) {
  85. ArrayVariableDeclaration var = vars[i];
  86. if (var.isAt(line, column)) return var;
  87. }
  88. return null;
  89. }
  90. public void analyzeCode(PHPParser parser) {
  91. for (int i = 0; i < vars.length; i++) {
  92. if (vars[i] != null)
  93. vars[i].analyzeCode(parser);
  94. }
  95. }
  96. }