X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java index e686abf..237ce92 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java @@ -1,30 +1,70 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; + /** * It will be the mother of our own ast tree for php just like the ast tree of Eclipse. * @author Matthieu Casanova */ public abstract class AstNode { + /** Starting and ending position of the node in the sources. */ public int sourceStart, sourceEnd; /** + * Create a node giving starting and ending offset + * @param sourceStart starting offset + * @param sourceEnd ending offset + */ + public AstNode(final int sourceStart, final int sourceEnd) { + this.sourceStart = sourceStart; + this.sourceEnd = sourceEnd; + } + + /** * Add some tabulations. * @param tab the number of tabulations * @return a String containing some spaces */ - public static String tabString(int tab) { - StringBuffer s = new StringBuffer(); - for (int i = tab; i > 0; i--) + public static String tabString(final int tab) { + final StringBuffer s = new StringBuffer(2 * tab); + for (int i = tab; i > 0; i--) { s.append(" "); //$NON-NLS-1$ + } return s.toString(); } + /** + * Return the object into String. + * It should be overriden + * @return a String + */ public String toString() { - return toString(0); - } - - public String toString(int tab) { return "****" + super.toString() + "****"; //$NON-NLS-2$ //$NON-NLS-1$ } + + /** + * Return the object into String. + * @param tab how many tabs (not used here + * @return a String + */ + public abstract String toString(int tab); + + /** + * Get the variables from outside (parameters, globals ...) + * @return the variables from outside + */ + public abstract List getOutsideVariable(); + + /** + * get the modified variables. + * @return the variables modified + */ + public abstract List getModifiedVariable(); + + /** + * Get the variables used. + * @return the variables used + */ + public abstract List getUsedVariable(); }