+++ /dev/null
-package net.sourceforge.phpdt.internal.compiler.ast;
-
-import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
-import net.sourceforge.phpdt.internal.ui.PHPUiImages;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.Position;
-
-import java.util.List;
-
-/**
- * A variable declaration.
- *
- * @author Matthieu Casanova
- */
-public class VariableDeclaration extends Expression implements Outlineable {
-
- public static final int EQUAL = 0;
- public static final int PLUS_EQUAL = 1;
- public static final int MINUS_EQUAL = 2;
- public static final int STAR_EQUAL = 3;
- public static final int SLASH_EQUAL = 4;
- public static final int AND_EQUAL = 5;
- public static final int OR_EQUAL = 6;
- public static final int XOR_EQUAL = 7;
- public static final int DOT_EQUAL = 8;
- public static final int REM_EQUAL = 9;
- public static final int TILDE_EQUAL = 10;
- public static final int LSHIFT_EQUAL = 11;
- public static final int RSIGNEDSHIFT_EQUAL = 12;
-
- protected final AbstractVariable variable;
-
- /** The value for variable initialization. */
- public Expression initialization;
-
- private Object parent;
- protected boolean reference;
-
- private Position position;
-
- private int operator;
-
- /**
- * Create a variable.
- *
- * @param variable the name of the variable
- * @param initialization the initialization
- * @param operator the assign operator
- * @param sourceStart the start point
- */
- public VariableDeclaration(final Object parent,
- final AbstractVariable variable,
- final Expression initialization,
- final int operator,
- final int sourceStart) {
- super(sourceStart, initialization.sourceEnd);
- this.initialization = initialization;
- this.variable = variable;
- this.operator = operator;
- this.parent = parent;
- position = new Position(sourceStart, sourceEnd);
- }
-
- /**
- * Create a variable.
- *
- * @param variable a variable (in case of $$variablename)
- * @param sourceStart the start point
- */
- public VariableDeclaration(final Object parent,
- final AbstractVariable variable,
- final int sourceStart,
- final int sourceEnd) {
- super(sourceStart, sourceEnd);
- this.variable = variable;
- this.parent = parent;
- position = new Position(sourceStart, sourceEnd);
- }
-
- public final void setReference(final boolean reference) {
- this.reference = reference;
- }
-
- /**
- * Create a variable.
- *
- * @param initialization the initialization
- * @param variable a variable (in case of $$variablename)
- * @param sourceStart the start point
- */
- public VariableDeclaration(final AbstractVariable variable,
- final Expression initialization,
- final int operator,
- final int sourceStart) {
- super(sourceStart, initialization.sourceEnd);
- this.variable = variable;
- this.initialization = initialization;
- this.operator = operator;
- }
-
- /**
- * Create a variable.
- *
- * @param variable a variable (in case of $$variablename)
- * @param sourceStart the start point
- */
- public VariableDeclaration(final AbstractVariable variable,
- final int sourceStart) {
- super(sourceStart, variable.sourceEnd);
- this.variable = variable;
- }
-
- /**
- * Return the operator as String.
- *
- * @return the operator
- */
- private String operatorToString() {
- switch (operator) {
- case EQUAL:
- return "="; //$NON-NLS-1$
- case PLUS_EQUAL:
- return "+="; //$NON-NLS-1$
- case MINUS_EQUAL:
- return "-="; //$NON-NLS-1$
- case STAR_EQUAL:
- return "*="; //$NON-NLS-1$
- case SLASH_EQUAL:
- return "/="; //$NON-NLS-1$
- case AND_EQUAL:
- return "<="; //$NON-NLS-1$
- case OR_EQUAL:
- return "|=";//$NON-NLS-1$
- case XOR_EQUAL:
- return "^=";//$NON-NLS-1$
- case DOT_EQUAL:
- return ".="; //$NON-NLS-1$
- case REM_EQUAL:
- return "%="; //$NON-NLS-1$
- case TILDE_EQUAL:
- return "~="; //$NON-NLS-1$
- case LSHIFT_EQUAL:
- return "<<="; //$NON-NLS-1$
- case RSIGNEDSHIFT_EQUAL:
- return ">>="; //$NON-NLS-1$
- }
- return " unknown operator ";//$NON-NLS-1$
- }
-
- /**
- * Return the variable into String.
- *
- * @return a String
- */
- public String toStringExpression() {
- final String variableString = variable.toStringExpression();
- if (initialization == null) {
- if (reference) return '&' + variableString; else return variableString;
- } else {
- final String operatorString = operatorToString();
- final String initString = initialization.toStringExpression();
- final StringBuffer buff = new StringBuffer(variableString.length() +
- operatorString.length() +
- initString.length() +
- 1);
- buff.append(variableString);
- buff.append(operatorString); //$NON-NLS-1$
- buff.append(initString);
- return buff.toString();
- }
- }
-
- public final Object getParent() {
- return parent;
- }
-
- public final String toString() {
- return toStringExpression();
- }
-
- /**
- * Get the image of a variable.
- *
- * @return the image that represents a php variable
- */
- public final ImageDescriptor getImage() {
- return PHPUiImages.DESC_VAR;
- }
-
- public final Position getPosition() {
- return position;
- }
-
- /**
- * Get the name of the field as String.
- *
- * @return the name of the String
- */
- public final String name() {
- return variable.getName();
- }
-
- /**
- * Get the variables from outside (parameters, globals ...)
- */
- public final void getOutsideVariable(final List list) {
- }
-
- /**
- * get the modified variables.
- */
- public final void getModifiedVariable(final List list) {
- variable.getUsedVariable(list);
- if (initialization != null) {
- initialization.getModifiedVariable(list);
- }
- }
-
- /**
- * Get the variables used.
- */
- public final void getUsedVariable(final List list) {
- if (initialization != null) {
- initialization.getUsedVariable(list);
- }
- }
-}