X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java index bbbf44c..4ba1ba5 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java @@ -1,39 +1,82 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import net.sourceforge.phpdt.internal.compiler.ast.Expression; +import net.sourceforge.phpdt.internal.compiler.ast.AbstractVariableDeclaration; +import net.sourceforge.phpdt.internal.compiler.parser.Outlineable; +import net.sourceforge.phpdt.internal.ui.PHPUiImages; +import org.eclipse.jface.resource.ImageDescriptor; + /** * A variable declaration. * @author Matthieu Casanova */ -public class VariableDeclaration extends AbstractVariableDeclaration { +public class VariableDeclaration extends AbstractVariableDeclaration implements Outlineable { /** The value for variable initialization. */ public Expression initialization; + private Object parent; + private boolean reference; + /** * Create a variable. * @param initialization the initialization - * @param name the name + * @param name the name of the variable * @param sourceStart the start point - * @param sourceEnd the end point */ - public VariableDeclaration(Expression initialization, + public VariableDeclaration(Object parent, char[] name, - int sourceStart, - int sourceEnd) { + Expression initialization, + int sourceStart) { + super(name, sourceStart, initialization.sourceEnd); this.initialization = initialization; - this.name = name; - //due to some declaration like - // int x, y = 3, z , x ; - //the sourceStart and the sourceEnd is ONLY on the name - this.sourceStart = sourceStart; - this.sourceEnd = sourceEnd; + this.parent = parent; } - public String toString(int tab) { - String s = tabString(tab); + public void setReference(boolean reference) { + this.reference = reference; + } + + /** + * Create a variable. + * @param initialization the initialization + * @param name the name of the variable + * @param sourceStart the start point + */ + public VariableDeclaration(char[] name, + Expression initialization, + int sourceStart) { + super(name, sourceStart, initialization.sourceEnd); + this.initialization = initialization; + } + /** + * Return the variable into String. + * @return a String + */ + public String toStringExpression() { + final StringBuffer buff; + if (reference) { + buff = new StringBuffer('&'); + } else { + buff = new StringBuffer(); + } + buff.append(name); if (initialization != null) { - s += " = " + initialization.toStringExpression(tab); //$NON-NLS-1$ + buff.append(" = "); //$NON-NLS-1$ + buff.append(initialization.toStringExpression()); } - return s; + return buff.toString(); } + + public Object getParent() { + return parent; + } + + /** + * Get the image of a variable. + * @return the image that represents a php variable + */ + public ImageDescriptor getImage() { + return PHPUiImages.DESC_VAR; + } }