many changes and fixes
authorkpouer <kpouer>
Sun, 10 Aug 2003 15:46:27 +0000 (15:46 +0000)
committerkpouer <kpouer>
Sun, 10 Aug 2003 15:46:27 +0000 (15:46 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayDeclarator.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassDeclaration.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EchoStatement.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FieldDeclaration.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FunctionCall.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/LabeledStatement.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Variable.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java

index 92fcd24..8d2930a 100644 (file)
@@ -35,7 +35,7 @@ public class ArrayDeclarator extends AbstractVariable {
 
   /**
    * Return the name of the variable.
-   * @return the name of the prefix variable
+   * @return the name of the functionName variable
    */
   public String getName() {
     return prefix.getName();
index 5bdc3c6..af9ed52 100644 (file)
@@ -2,14 +2,12 @@ package net.sourceforge.phpdt.internal.compiler.ast;
 
 import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
-import net.sourceforge.phpdt.internal.compiler.ast.declarations.VariableUsage;
 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.text.Position;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Enumeration;
 
 
 /**
@@ -21,9 +19,9 @@ import java.util.Enumeration;
 public class ClassDeclaration extends Statement implements OutlineableWithChildren {
 
   /** The name of the class. */
-  public char[] name;
+  public String name;
   /** The superclass. */
-  public char[] superclass;
+  public String superclass;
 
   public int declarationSourceStart;
   public int declarationSourceEnd;
@@ -48,15 +46,15 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
    * @param sourceEnd ending offset
    */
   public ClassDeclaration(final Object parent,
-                          final char[] name,
-                          final char[] superclass,
+                          final String name,
+                          final String superclass,
                           final int sourceStart,
                           final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.parent = parent;
     this.name = name;
     this.superclass = superclass;
-    position = new Position(sourceStart, name.length);
+    position = new Position(sourceStart, name.length());
   }
 
   /**
@@ -65,15 +63,19 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
    * @param sourceEnd ending offset
    */
   public ClassDeclaration(final Object parent,
-                          final char[] name,
+                          final String name,
                           final int sourceStart,
                           final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.parent = parent;
     this.name = name;
-    position = new Position(sourceStart, name.length);
+    position = new Position(sourceStart, name.length());
   }
 
+  /**
+   * Add a method to the class.
+   * @param method the method declaration
+   */
   public void addMethod(final MethodDeclaration method) {
     methods.add(method);
     add(method);
@@ -169,7 +171,7 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
   }
 
   public String toString() {
-    final StringBuffer buff = new StringBuffer(new String(name));
+    final StringBuffer buff = new StringBuffer(name);
     if (superclass != null) {
       buff.append(":"); //$NON-NLS-1$
       buff.append(superclass);
@@ -190,7 +192,7 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
    * @return the variables from outside
    */
   public List getOutsideVariable() {
-    return new ArrayList();
+    return new ArrayList(1);
   }
 
   /**
@@ -198,7 +200,7 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
    * @return the variables from we change value
    */
   public List getModifiedVariable() {
-    return new ArrayList();
+    return new ArrayList(1);
   }
 
   /**
@@ -206,6 +208,6 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
    * @return the variables used
    */
   public List getUsedVariable() {
-    return new ArrayList();
+    return new ArrayList(1);
   }
 }
index c5f3e98..0122b26 100644 (file)
@@ -13,8 +13,8 @@ public class EchoStatement extends Statement {
   /** An array of expressions in this echo statement. */
   public Expression[] expressions;
 
-  public EchoStatement (final Expression[] expressions, final int sourceStart) {
-    super(sourceStart, expressions[expressions.length-1].sourceEnd);
+  public EchoStatement (final Expression[] expressions, final int sourceStart, final int sourceEnd) {
+    super(sourceStart, sourceEnd);
     this.expressions = expressions;
   }
 
index 71fc91e..61d4c8b 100644 (file)
@@ -77,7 +77,7 @@ public class FieldDeclaration extends Statement implements Outlineable {
    * @return the variables from outside
    */
   public List getOutsideVariable() {
-    return new ArrayList();
+    return new ArrayList(1);
   }
 
   /**
@@ -85,7 +85,7 @@ public class FieldDeclaration extends Statement implements Outlineable {
    * @return the variables from we change value
    */
   public List getModifiedVariable() {
-    return new ArrayList();
+    return new ArrayList(1);
   }
 
   /**
@@ -93,6 +93,6 @@ public class FieldDeclaration extends Statement implements Outlineable {
    * @return the variables used
    */
   public List getUsedVariable() {
-    return new ArrayList();
+    return new ArrayList(1);
   }
 }
index 19fcbee..6e270c7 100644 (file)
@@ -10,7 +10,7 @@ import java.util.ArrayList;
 public class FunctionCall extends AbstractSuffixExpression {
 
   /** the function name. */
-  public Expression prefix;
+  public Expression functionName;
 
   /** the arguments. */
   public Expression[] args;
@@ -19,7 +19,7 @@ public class FunctionCall extends AbstractSuffixExpression {
                       final Expression[] args,
                       final int sourceEnd) {
     super(prefix.sourceStart, sourceEnd);
-    this.prefix = prefix;
+    this.functionName = prefix;
     this.args = args;
   }
 
@@ -28,7 +28,7 @@ public class FunctionCall extends AbstractSuffixExpression {
    * @return the expression
    */
   public String toStringExpression() {
-    final StringBuffer buff = new StringBuffer(prefix.toStringExpression());
+    final StringBuffer buff = new StringBuffer(functionName.toStringExpression());
     buff.append('(');
     if (args != null) {
       for (int i = 0; i < args.length; i++) {
@@ -71,7 +71,7 @@ public class FunctionCall extends AbstractSuffixExpression {
    * @return the variables used
    */
   public List getUsedVariable() {
-    final List list = prefix.getUsedVariable();
+    final List list = functionName.getUsedVariable();
     if (args != null) {
       for (int i = 0; i < args.length; i++) {
         list.addAll(args[i].getUsedVariable());
index ea7a95c..c9730ea 100644 (file)
@@ -7,11 +7,14 @@ import java.util.List;
  */
 public class LabeledStatement extends Statement {
 
-  public char[] label;
+  public String label;
 
   public Statement statement;
 
-  public LabeledStatement(final char[] label, final Statement statement, final int sourceStart, final int sourceEnd) {
+  public LabeledStatement(final String label,
+                          final Statement statement,
+                          final int sourceStart,
+                          final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.label = label;
     this.statement = statement;
@@ -23,7 +26,7 @@ public class LabeledStatement extends Statement {
    * @return a String
    */
   public String toString() {
-    return new String(label) + statement.toString();
+    return label + statement.toString();
   }
 
   /**
index 663735a..1acab1d 100644 (file)
@@ -23,7 +23,7 @@ import test.PHPParserSuperclass;
 public class MethodDeclaration extends Statement implements OutlineableWithChildren {
 
   /** The name of the method. */
-  public char[] name;
+  public String name;
   public Hashtable arguments;
 
 
@@ -44,16 +44,20 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
   private Position position;
 
   public MethodDeclaration(final Object parent,
-                           final char[] name,
+                           final String name,
                            final Hashtable arguments,
                            final boolean reference,
                            final int sourceStart,
-                           final int sourceEnd) {
+                           final int sourceEnd,
+                           final int bodyStart,
+                           final int bodyEnd) {
     super(sourceStart, sourceEnd);
     this.name = name;
     this.arguments = arguments;
     this.parent = parent;
     this.reference = reference;
+    this.bodyStart = bodyStart;
+    this.bodyEnd = bodyEnd;
     position = new Position(sourceStart, sourceEnd);
   }
 
@@ -252,9 +256,9 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
   private void findUnknownUsedVars(final List usedVars, final List declaredVars) {
     for (int i = 0; i < usedVars.size(); i++) {
       VariableUsage variableUsage = (VariableUsage) usedVars.get(i);
+      if (variableUsage.getName().equals("this")) continue; // this is a special variable
       if (!isVariableDeclaredBefore(declaredVars, variableUsage)) {
         try {
-          PHPeclipsePlugin.log(1,variableUsage.getName()+" "+variableUsage.getStartOffset());
           PHPParserSuperclass.setMarker("warning, usage of an unknown variable : " + variableUsage.getName(),
                                         variableUsage.getStartOffset(),
                                         variableUsage.getStartOffset() + variableUsage.getName().length(),
index 443de28..c091d8b 100644 (file)
@@ -24,7 +24,9 @@ public class Variable extends AbstractVariable {
    * @param sourceStart the starting position
    * @param sourceEnd the ending position
    */
-  public Variable(final String name, final int sourceStart, final int sourceEnd) {
+  public Variable(final String name,
+                  final int sourceStart,
+                  final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.name = name;
   }
@@ -35,7 +37,9 @@ public class Variable extends AbstractVariable {
    * @param sourceStart the starting position
    * @param sourceEnd the ending position
    */
-  public Variable(final AbstractVariable variable, final int sourceStart, final int sourceEnd) {
+  public Variable(final AbstractVariable variable,
+                  final int sourceStart,
+                  final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.variable = variable;
   }
index 6b9facd..8d08f65 100644 (file)
@@ -35,6 +35,7 @@ public class VariableDeclaration extends Expression implements Outlineable {
 
   private Object parent;
   private boolean reference;
+
   private Position position;
 
   private int operator;
@@ -71,6 +72,7 @@ public class VariableDeclaration extends Expression implements Outlineable {
     super(sourceStart, sourceEnd);
     this.variable = variable;
     this.parent = parent;
+    position = new Position(sourceStart, sourceEnd);
   }
 
   public void setReference(final boolean reference) {
@@ -213,7 +215,7 @@ public class VariableDeclaration extends Expression implements Outlineable {
    */
   public List getUsedVariable() {
     if (initialization != null) {
-      return initialization.getModifiedVariable();//yes it's getModified variable (in a variable declaration $a = $b, $a is modified, event if you have only $a and no initialization
+      return initialization.getUsedVariable();
     }
     return new ArrayList(1);
   }