1) Fixed issue #858: OpenPHPPerspectiveAction error when creating a new PHP project.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / builder / IdentifierIndexManager.java
index 8874d00..78a6e2d 100644 (file)
@@ -31,14 +31,14 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
 
 /**
- * Manages the identifer index information for a specific project
+ * Manages the identifier index information for a specific project
  * 
  */
 public class IdentifierIndexManager {
        public class LineCreator implements ITerminalSymbols {
                private Scanner fScanner;
 
-               private int fToken;
+               private TokenName fToken;
 
                public LineCreator() {
                        fScanner = new Scanner(true, false, false, false, true, null, null,
@@ -132,7 +132,7 @@ public class IdentifierIndexManager {
                {
                        try {
                                getNextToken();
-                               while (fToken == TokenNameCOMMENT_BLOCK  || fToken == TokenNameCOMMENT_PHPDOC) {
+                               while (fToken == TokenName.COMMENT_BLOCK  || fToken == TokenName.COMMENT_PHPDOC) {
                                                getNextToken();
                                }
                        } catch (InvalidInputException e1) {
@@ -150,33 +150,33 @@ public class IdentifierIndexManager {
                        int phpdocOffset = -1;
                        int phpdocLength = -1;
                        try {
-                               while (fToken != TokenNameEOF && fToken != TokenNameERROR) {
+                               while (fToken != TokenName.EOF && fToken != TokenName.ERROR) {
                                        phpdocOffset = -1;
                                        hasModifiers = false;
-                                       if (fToken == TokenNameCOMMENT_PHPDOC) {
+                                       if (fToken == TokenName.COMMENT_PHPDOC) {
                                                phpdocOffset = fScanner.getCurrentTokenStartPosition();
                                                phpdocLength = fScanner.getCurrentTokenEndPosition()
                                                                - fScanner.getCurrentTokenStartPosition() + 1;
                                                getNextToken();
-                                               while (fToken == TokenNamestatic
-                                                               || fToken == TokenNamefinal
-                                                               || fToken == TokenNamepublic
-                                                               || fToken == TokenNameprotected
-                                                               || fToken == TokenNameprivate
-                                                               || fToken == TokenNameabstract) {
+                                               while (fToken == TokenName.STATIC
+                                                               || fToken == TokenName.FINAL
+                                                               || fToken == TokenName.PUBLIC
+                                                               || fToken == TokenName.PROTECTED
+                                                               || fToken == TokenName.PRIVATE
+                                                               || fToken == TokenName.ABSTRACT) {
                                                        hasModifiers = true;
                                                        getNextToken();
                                                }
-                                               if (fToken == TokenNameEOF || fToken == TokenNameERROR) {
+                                               if (fToken == TokenName.EOF || fToken == TokenName.ERROR) {
                                                        break;
                                                }
                                        }
-                                       if (fToken == TokenNamefunction) {
+                                       if (fToken == TokenName.FUNCTION) {
                                                skipComments();
-                                               if (fToken == TokenNameAND) {
+                                               if (fToken == TokenName.OP_AND) {
                                                        getNextToken();
                                                }
-                                               if (fToken == TokenNameIdentifier) {
+                                               if (fToken == TokenName.IDENTIFIER) {
                                                        ident = fScanner.getCurrentIdentifierSource();
                                                        if (parent != null
                                                                        && equalCharArrays(parent, ident)) {
@@ -197,36 +197,36 @@ public class IdentifierIndexManager {
                                                        skipComments();
                                                        parseDeclarations(null, buf, true);
                                                }
-                                       } else if (fToken == TokenNameclass
-                                                       || fToken == TokenNameinterface) {
+                                       } else if (fToken == TokenName.CLASS
+                                                       || fToken == TokenName.INTERFACE) {
                                                skipComments();
-                                               if (fToken == TokenNameIdentifier) {
+                                               if (fToken == TokenName.IDENTIFIER) {
                                                        ident = fScanner.getCurrentIdentifierSource();
                                                        addIdentifierInformation('c', ident, buf,
                                                                        phpdocOffset, phpdocLength);
                                                        skipComments();
-                                                       if (fToken == TokenNameextends) {
+                                                       if (fToken == TokenName.EXTENDS) {
                                                                skipComments();
-                                                               while (fToken == TokenNameIdentifier) {
+                                                               while (fToken == TokenName.IDENTIFIER) {
                                                                        ident = fScanner
                                                                                        .getCurrentIdentifierSource();
                                                                        // extends ident
                                                                        addIdentifierInformation('e', ident, buf);
                                                                        skipComments();
-                                                               if (fToken == TokenNameCOMMA) {
+                                                               if (fToken == TokenName.COMMA) {
                                                                        skipComments();
                                                                        }
                                                                }
                                                        }
-                                                       if (fToken == TokenNameimplements) {
+                                                       if (fToken == TokenName.IMPLEMENTS) {
                                                                skipComments();
-                                                               while (fToken == TokenNameIdentifier) {
+                                                               while (fToken == TokenName.IDENTIFIER) {
                                                                        ident = fScanner
                                                                                        .getCurrentIdentifierSource();
                                                                        // implements ident
                                                                        addIdentifierInformation('e', ident, buf);
                                                                        skipComments();
-                                                                       if (fToken == TokenNameCOMMA) {
+                                                                       if (fToken == TokenName.COMMA) {
                                                                                skipComments();
 //                                                                             getNextToken();
                                                                        }
@@ -235,28 +235,28 @@ public class IdentifierIndexManager {
                                                        // skip tokens for classname, extends and others
                                                        // until we have
                                                        // the opening '{'
-                                                       while (fToken != TokenNameLBRACE
-                                                                       && fToken != TokenNameEOF
-                                                                       && fToken != TokenNameERROR) {
+                                                       while (fToken != TokenName.LBRACE
+                                                                       && fToken != TokenName.EOF
+                                                                       && fToken != TokenName.ERROR) {
                                                                getNextToken();
                                                        }
                                                        parseDeclarations(ident, buf, true);
                                                }
-                                       } else if (fToken == TokenNamevar || hasModifiers
-                                                       || fToken == TokenNamestatic
-                                                       || fToken == TokenNamefinal
-                                                       || fToken == TokenNamepublic
-                                                       || fToken == TokenNameprotected
-                                                       || fToken == TokenNameprivate) {
-                                               while (fToken == TokenNamevar
-                                                               || fToken == TokenNamestatic
-                                                               || fToken == TokenNamefinal
-                                                               || fToken == TokenNamepublic
-                                                               || fToken == TokenNameprotected
-                                                               || fToken == TokenNameprivate) {
+                                       } else if (fToken == TokenName.VAR || hasModifiers
+                                                       || fToken == TokenName.STATIC
+                                                       || fToken == TokenName.FINAL
+                                                       || fToken == TokenName.PUBLIC
+                                                       || fToken == TokenName.PROTECTED
+                                                       || fToken == TokenName.PRIVATE) {
+                                               while (fToken == TokenName.VAR
+                                                               || fToken == TokenName.STATIC
+                                                               || fToken == TokenName.FINAL
+                                                               || fToken == TokenName.PUBLIC
+                                                               || fToken == TokenName.PROTECTED
+                                                               || fToken == TokenName.PRIVATE) {
                                                        skipComments();
                                                }
-                                               while (fToken == TokenNameVariable) {
+                                               while (fToken == TokenName.VARIABLE) {
                                                        ident = fScanner.getCurrentIdentifierSource();
                                                        classVariable = new char[ident.length - 1];
                                                        System.arraycopy(ident, 1, classVariable, 0,
@@ -264,26 +264,26 @@ public class IdentifierIndexManager {
                                                        addClassVariableInformation('v', classVariable,
                                                                        buf, phpdocOffset, phpdocLength);
                                                        skipComments();
-                                                       if (fToken == TokenNameCOMMA) {
+                                                       if (fToken == TokenName.COMMA) {
                                                                skipComments();
                                                        }
                                                }
-                                       } else if (!hasModifiers && fToken == TokenNameIdentifier) {
+                                       } else if (!hasModifiers && fToken == TokenName.IDENTIFIER) {
                                                ident = fScanner.getCurrentIdentifierSource();
                                                getNextToken();
                                                if (ident.length == 6 && ident[0] == 'd'
                                                                && ident[1] == 'e' && ident[2] == 'f'
                                                                && ident[3] == 'i' && ident[4] == 'n'
                                                                && ident[5] == 'e') {
-                                                       if (fToken == TokenNameLPAREN) {
+                                                       if (fToken == TokenName.LPAREN) {
                                                                getNextToken();
-                                                               if (fToken == TokenNameStringDoubleQuote) {
+                                                               if (fToken == TokenName.STRINGDOUBLEQUOTE) {
                                                                        ident = fScanner
                                                                                        .getCurrentStringLiteralSource();
                                                                        addIdentifierInformation('d', ident, buf,
                                                                                        phpdocOffset, phpdocLength);
                                                                        getNextToken();
-                                                               } else if (fToken == TokenNameStringSingleQuote) {
+                                                               } else if (fToken == TokenName.STRINGSINGLEQUOTE) {
                                                                        ident = fScanner
                                                                                        .getCurrentStringLiteralSource();
                                                                        addIdentifierInformation('d', ident, buf,
@@ -292,24 +292,24 @@ public class IdentifierIndexManager {
                                                                }
                                                        }
                                                }
-                                       } else if (fToken == TokenNameglobal) {
+                                       } else if (fToken == TokenName.GLOBAL) {
                                                // global variable
-                                               while (fToken != TokenNameEOF
-                                                               && fToken != TokenNameERROR
-                                                               && fToken != TokenNameSEMICOLON
-                                                               && fToken != TokenNameLBRACE
-                                                               && fToken != TokenNameRBRACE) {
+                                               while (fToken != TokenName.EOF
+                                                               && fToken != TokenName.ERROR
+                                                               && fToken != TokenName.SEMICOLON
+                                                               && fToken != TokenName.LBRACE
+                                                               && fToken != TokenName.RBRACE) {
                                                        getNextToken();
-                                                       if (fToken == TokenNameVariable) {
+                                                       if (fToken == TokenName.VARIABLE) {
                                                                ident = fScanner.getCurrentIdentifierSource();
                                                                addIdentifierInformation('g', ident, buf,
                                                                                phpdocOffset, phpdocLength);
                                                        }
                                                }
-                                       } else if (fToken == TokenNameLBRACE) {
+                                       } else if (fToken == TokenName.LBRACE) {
                                                getNextToken();
                                                counter++;
-                                       } else if (fToken == TokenNameRBRACE) {
+                                       } else if (fToken == TokenName.RBRACE) {
                                                getNextToken();
                                                --counter;
                                                if (counter == 0 && goBack) {
@@ -336,91 +336,92 @@ public class IdentifierIndexManager {
                        int phpdocLength = -1;
                        fScanner.setSource(charArray);
                        fScanner.setPHPMode(false);
-                       fToken = TokenNameEOF;
+                       fToken = TokenName.EOF;
                        try {
                                getNextToken();
-                               while (fToken != TokenNameEOF) { // && fToken !=
-                                       // TokenNameERROR) {
+                               while (fToken != TokenName.EOF) { // && fToken !=
+                                       // TokenName.ERROR) {
                                        phpdocOffset = -1;
                                        hasModifiers = false;
                                        switch (fToken) {
-                                       case TokenNameCOMMENT_PHPDOC:
+                                       case COMMENT_PHPDOC:
                                                phpdocOffset = fScanner.getCurrentTokenStartPosition();
                                                phpdocLength = fScanner.getCurrentTokenEndPosition()
                                                                - fScanner.getCurrentTokenStartPosition() + 1;
                                                getNextToken();
-                                               while (fToken == TokenNamestatic
-                                                               || fToken == TokenNamefinal
-                                                               || fToken == TokenNamepublic
-                                                               || fToken == TokenNameprotected
-                                                               || fToken == TokenNameprivate
-                                                               || fToken == TokenNameabstract) {
+                                               while (fToken == TokenName.STATIC
+                                                               || fToken == TokenName.FINAL
+                                                               || fToken == TokenName.PUBLIC
+                                                               || fToken == TokenName.PROTECTED
+                                                               || fToken == TokenName.PRIVATE
+                                                               || fToken == TokenName.ABSTRACT) {
                                                        hasModifiers = true;
                                                        getNextToken();
                                                }
-                                               if (fToken == TokenNameEOF || fToken == TokenNameERROR) {
+                                               if (fToken == TokenName.EOF || fToken == TokenName.ERROR) {
                                                        break;
                                                }
                                                break;
                                                
-                                       case TokenNamefunction:
+                                       case FUNCTION:
                                                skipComments();
-                                               if (fToken == TokenNameAND) {
+                                               if (fToken == TokenName.OP_AND) {
                                                        getNextToken();
                                                }
-                                               if (fToken == TokenNameIdentifier) {
+                                               if (fToken == TokenName.IDENTIFIER) {
                                                        ident = fScanner.getCurrentIdentifierSource();
                                                        addIdentifierInformation('f', ident, buf,
                                                                        phpdocOffset, phpdocLength);
                                                        skipComments();
-                                                       if (fToken == TokenNameLPAREN) {
+                                                       if (fToken == TokenName.LPAREN) {
                                                                skipComments();
                                                                do {
-                                                                       if (fToken == TokenNameVariable) {
+                                                                       if (fToken == TokenName.VARIABLE) {
                                                                                ident = fScanner.getCurrentIdentifierSource();
                                                                                addIdentifierInformation('v', ident, buf,
                                                                                                phpdocOffset, phpdocLength);
                                                                                skipComments();
-                                                                               if (fToken == TokenNameCOMMA) {
+                                                                               if (fToken == TokenName.COMMA) {
                                                                                        skipComments();
                                                                                }
                                                                        }       
-                                                               } while (fToken != TokenNameRPAREN );
+                                                                       getNextToken ();
+                                                               } while ((fToken != TokenName.RPAREN) && (fToken.compareTo (TokenName.EOF) > 0));
                                                        }
                                                        parseDeclarations(null, buf, true);
                                                }
                                                break;
                                                
-                                       case TokenNameclass:
-                                       case TokenNameinterface:
+                                       case CLASS:
+                                       case INTERFACE:
                                                skipComments();
-                                               if (fToken == TokenNameIdentifier) {
+                                               if (fToken == TokenName.IDENTIFIER) {
                                                        ident = fScanner.getCurrentIdentifierSource();
                                                        addIdentifierInformation('c', ident, buf,
                                                                        phpdocOffset, phpdocLength);
                                                        skipComments();
-                                                       if (fToken == TokenNameextends) {
+                                                       if (fToken == TokenName.EXTENDS) {
                                                                skipComments();
-                                                               while (fToken == TokenNameIdentifier) {
+                                                               while (fToken == TokenName.IDENTIFIER) {
                                                                        ident = fScanner
                                                                                        .getCurrentIdentifierSource();
                                                                        // extends ident
                                                                        addIdentifierInformation('e', ident, buf);
                                                                        skipComments();
-                                                                       if (fToken == TokenNameCOMMA) {
+                                                                       if (fToken == TokenName.COMMA) {
                                                                                skipComments();
                                                                        }
                                                                }
                                                        }
-                                                       if (fToken == TokenNameimplements) {
+                                                       if (fToken == TokenName.IMPLEMENTS) {
                                                                skipComments();
-                                                               while (fToken == TokenNameIdentifier) {
+                                                               while (fToken == TokenName.IDENTIFIER) {
                                                                        ident = fScanner
                                                                                        .getCurrentIdentifierSource();
                                                                        // implements ident
                                                                        addIdentifierInformation('e', ident, buf);
                                                                        skipComments();
-                                                                       if (fToken == TokenNameCOMMA) {
+                                                                       if (fToken == TokenName.COMMA) {
                                                                                skipComments();
                                                                        }
                                                                }
@@ -428,16 +429,16 @@ public class IdentifierIndexManager {
                                                        // skip fTokens for classname, extends and others
                                                        // until we have
                                                        // the opening '{'
-                                                       while (fToken != TokenNameLBRACE
-                                                                       && fToken != TokenNameEOF
-                                                                       && fToken != TokenNameERROR) {
+                                                       while (fToken != TokenName.LBRACE
+                                                                       && fToken != TokenName.EOF
+                                                                       && fToken != TokenName.ERROR) {
                                                                getNextToken();
                                                        }
                                                        parseDeclarations(ident, buf, true);
                                                }
                                                break;
 
-                                       case TokenNameVariable:
+                                       case VARIABLE:
                                                // global variable
                                                ident = fScanner.getCurrentIdentifierSource();
                                                addIdentifierInformation('g', ident, buf, phpdocOffset,
@@ -468,7 +469,7 @@ public class IdentifierIndexManager {
                }
 
                public boolean equals(Object o) {
-                       String s = (String) o;
+                       //String s = (String) o;
                        return compare(this, o) == 0;
                }
        }