X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java index cd32d4b..3c8699e 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java @@ -1,9 +1,13 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; + /** + * A Variable assignation. + * $varname = initializer * @author Matthieu Casanova */ -public class VarAssignation extends Expression { +public final class VarAssignation extends Expression { public static final int EQUAL = 0; public static final int PLUS_EQUAL = 1; @@ -19,22 +23,33 @@ 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 int operator; - + public final Expression variableName; + public final Expression initializer; + public final 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; } + /** + * Return the operator as String. + * @return the operator + */ public String operatorToString() { switch (operator) { case EQUAL: @@ -58,13 +73,13 @@ public class VarAssignation extends Expression { 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$ } /** @@ -72,12 +87,37 @@ public class VarAssignation extends Expression { * @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); + } }