package net.sourceforge.phpdt.internal.compiler.ast;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
+import java.util.List;
+import java.util.ArrayList;
+
/**
+ * A Variable assignation.
+ * $varname = initializer
* @author Matthieu Casanova
*/
public class VarAssignation extends Expression {
public static final int LSHIFT_EQUAL = 11;
public static final int RSIGNEDSHIFT_EQUAL = 12;
- public char[] variable;
- public Expression expression;
+ public Expression variableName;
+ public Expression initializer;
public int operator;
-
- public VarAssignation(char[] variable,
- Expression expression,
- int operator,
- int sourceStart,
- int sourceEnd) {
+ /**
+ * Create a new variable assignation.
+ * @param variableName the name of the variable
+ * @param initializer the expression in initializer
+ * @param operator the operator of assignation
+ * @param sourceStart the sourceStart
+ * @param sourceEnd the sourceEnd
+ */
+ public VarAssignation(final Expression variableName,
+ final Expression initializer,
+ final int operator,
+ final int sourceStart,
+ final int sourceEnd) {
super(sourceStart, sourceEnd);
- this.variable = variable;
- this.expression = expression;
+ this.variableName = variableName;
+ this.initializer = initializer;
this.operator = operator;
}
- public String operatorToString() {
+ /**
+ * Return the operator as String.
+ * @return the operator
+ */
+ public final String operatorToString() {
switch (operator) {
case EQUAL:
return "="; //$NON-NLS-1$
case REM_EQUAL:
return "%="; //$NON-NLS-1$
case TILDE_EQUAL:
- return " ="; //$NON-NLS-1$
+ return "~="; //$NON-NLS-1$
case LSHIFT_EQUAL:
return "<<="; //$NON-NLS-1$
case RSIGNEDSHIFT_EQUAL:
return ">>="; //$NON-NLS-1$
}
- return " unknown operator ";
+ return " unknown operator ";//$NON-NLS-1$
}
/**
* @return the expression
*/
public String toStringExpression() {
- final StringBuffer buff = new StringBuffer();
- buff.append(variable);
- buff.append(' ');
- buff.append(operatorToString());
- buff.append(' ');
- buff.append(expression.toStringExpression());
+ final String varName = variableName.toStringExpression();
+ final String init = initializer.toStringExpression();
+ final String operatorString = operatorToString();
+ final StringBuffer buff = new StringBuffer(varName.length() + operatorString.length() + init.length() + 2);
+ buff.append(varName);
+ buff.append(" ");//$NON-NLS-1$
+ buff.append(operatorString);
+ buff.append(" ");//$NON-NLS-1$
+ buff.append(init);
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) {
+ variableName.getUsedVariable(list);
+ initializer.getModifiedVariable(list);
+ }
+
+ /**
+ * Get the variables used.
+ */
+ public void getUsedVariable(final List list) {
+ initializer.getUsedVariable(list);
+ }
}