import net.sourceforge.phpdt.internal.compiler.parser.SyntaxError;
import net.sourceforge.phpdt.internal.compiler.util.Util;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.obfuscator.PHPIdentifier;
+//import net.sourceforge.phpeclipse.obfuscator.PHPIdentifier;
import org.eclipse.core.resources.IFile;
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 {
line.append('\t');
line.append(typeOfIdentifier);
line.append(identifier);
- // line.append("\to"); // Offset
- // line.append(fScanner.getCurrentTokenStartPosition());
}
/**
System.out.println(fScanner.toStringAction(fToken));
}
return;
- // } catch (InvalidInputException e) {
- // // ignore errors
- // // e.printStackTrace();
- // }
- // fToken = TokenNameERROR;
}
+ private void skipComments()
+ {
+ try {
+ getNextToken();
+ while (fToken == TokenNameCOMMENT_BLOCK || fToken == TokenNameCOMMENT_PHPDOC) {
+ getNextToken();
+ }
+ } catch (InvalidInputException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+
private void parseDeclarations(char[] parent, StringBuffer buf,
boolean goBack) {
char[] ident;
}
}
if (fToken == TokenNamefunction) {
- getNextToken();
+ skipComments();
if (fToken == TokenNameAND) {
getNextToken();
}
phpdocOffset, phpdocLength);
}
}
- getNextToken();
+ skipComments();
parseDeclarations(null, buf, true);
}
} else if (fToken == TokenNameclass
|| fToken == TokenNameinterface) {
- getNextToken();
+ skipComments();
if (fToken == TokenNameIdentifier) {
ident = fScanner.getCurrentIdentifierSource();
addIdentifierInformation('c', ident, buf,
phpdocOffset, phpdocLength);
- getNextToken();
+ skipComments();
if (fToken == TokenNameextends) {
- getNextToken();
+ skipComments();
while (fToken == TokenNameIdentifier) {
ident = fScanner
.getCurrentIdentifierSource();
// extends ident
addIdentifierInformation('e', ident, buf);
- getNextToken();
- if (fToken == TokenNameCOMMA) {
- getNextToken();
+ skipComments();
+ if (fToken == TokenNameCOMMA) {
+ skipComments();
}
}
}
if (fToken == TokenNameimplements) {
- getNextToken();
+ skipComments();
while (fToken == TokenNameIdentifier) {
ident = fScanner
.getCurrentIdentifierSource();
// implements ident
addIdentifierInformation('e', ident, buf);
- getNextToken();
+ skipComments();
if (fToken == TokenNameCOMMA) {
- getNextToken();
+ skipComments();
+// getNextToken();
}
}
}
|| fToken == TokenNamepublic
|| fToken == TokenNameprotected
|| fToken == TokenNameprivate) {
- getNextToken();
+ skipComments();
}
while (fToken == TokenNameVariable) {
ident = fScanner.getCurrentIdentifierSource();
ident.length - 1);
addClassVariableInformation('v', classVariable,
buf, phpdocOffset, phpdocLength);
- getNextToken();
+ skipComments();
if (fToken == TokenNameCOMMA) {
- getNextToken();
+ skipComments();
}
}
} else if (!hasModifiers && fToken == TokenNameIdentifier) {
StringBuffer buf) {
char[] ident;
String identifier;
- int counter = 0;
boolean hasModifiers = false;
int phpdocOffset = -1;
int phpdocLength = -1;
try {
getNextToken();
while (fToken != TokenNameEOF) { // && fToken !=
- // TokenNameERROR) {
+ // TokenNameERROR) {
phpdocOffset = -1;
hasModifiers = false;
- if (fToken == TokenNameCOMMENT_PHPDOC) {
+ switch (fToken) {
+ case TokenNameCOMMENT_PHPDOC:
phpdocOffset = fScanner.getCurrentTokenStartPosition();
phpdocLength = fScanner.getCurrentTokenEndPosition()
- fScanner.getCurrentTokenStartPosition() + 1;
if (fToken == TokenNameEOF || fToken == TokenNameERROR) {
break;
}
- }
- if (fToken == TokenNamefunction) {
- getNextToken();
+ break;
+
+ case TokenNamefunction:
+ skipComments();
if (fToken == TokenNameAND) {
getNextToken();
}
ident = fScanner.getCurrentIdentifierSource();
addIdentifierInformation('f', ident, buf,
phpdocOffset, phpdocLength);
- getNextToken();
+ skipComments();
+ if (fToken == TokenNameLPAREN) {
+ skipComments();
+ do {
+ if (fToken == TokenNameVariable) {
+ ident = fScanner.getCurrentIdentifierSource();
+ addIdentifierInformation('v', ident, buf,
+ phpdocOffset, phpdocLength);
+ skipComments();
+ if (fToken == TokenNameCOMMA) {
+ skipComments();
+ }
+ }
+ getNextToken ();
+ } while ((fToken != TokenNameRPAREN) && (fToken != 0));
+ }
parseDeclarations(null, buf, true);
}
- } else if (fToken == TokenNameclass
- || fToken == TokenNameinterface) {
- getNextToken();
+ break;
+
+ case TokenNameclass:
+ case TokenNameinterface:
+ skipComments();
if (fToken == TokenNameIdentifier) {
ident = fScanner.getCurrentIdentifierSource();
addIdentifierInformation('c', ident, buf,
phpdocOffset, phpdocLength);
- getNextToken();
+ skipComments();
if (fToken == TokenNameextends) {
- getNextToken();
+ skipComments();
while (fToken == TokenNameIdentifier) {
ident = fScanner
.getCurrentIdentifierSource();
// extends ident
addIdentifierInformation('e', ident, buf);
- getNextToken();
+ skipComments();
if (fToken == TokenNameCOMMA) {
- getNextToken();
+ skipComments();
}
}
}
if (fToken == TokenNameimplements) {
- getNextToken();
+ skipComments();
while (fToken == TokenNameIdentifier) {
ident = fScanner
.getCurrentIdentifierSource();
// implements ident
addIdentifierInformation('e', ident, buf);
- getNextToken();
+ skipComments();
if (fToken == TokenNameCOMMA) {
- getNextToken();
+ skipComments();
}
}
}
}
parseDeclarations(ident, buf, true);
}
- } else if (fToken == TokenNameVariable) {
+ break;
+
+ case TokenNameVariable:
// global variable
ident = fScanner.getCurrentIdentifierSource();
addIdentifierInformation('g', ident, buf, phpdocOffset,
phpdocLength);
getNextToken();
- } else if (!hasModifiers && fToken == TokenNameIdentifier) {
- 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) {
- getNextToken();
- if (fToken == TokenNameStringDoubleQuote) {
- ident = fScanner
- .getCurrentStringLiteralSource();
- addIdentifierInformation('d', ident, buf,
- phpdocOffset, phpdocLength);
- getNextToken();
- } else if (fToken == TokenNameStringSingleQuote) {
- ident = fScanner
- .getCurrentStringLiteralSource();
- addIdentifierInformation('d', ident, buf,
- phpdocOffset, phpdocLength);
- getNextToken();
- }
- }
- }
- } else {
+ break;
+
+ default:
getNextToken();
}
+
}
} catch (InvalidInputException e) {
// ignore errors
}
}
}
-
+
class StringComparator implements Comparator {
public int compare(Object o1, Object o2) {
String s1 = (String) o1;
}
public boolean equals(Object o) {
- String s = (String) o;
+ //String s = (String) o;
return compare(this, o) == 0;
}
}
*
*/
public void addFile(IFile fileToParse) {
- // InputStream iStream;
LineCreator lineCreator = createLineCreator();
try {
addInputStream(new BufferedInputStream(fileToParse.getContents()),
fileToParse.getProjectRelativePath().toString(),
- lineCreator);
+ lineCreator, fileToParse.getCharset());
} catch (CoreException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
* @throws CoreException
*/
public void addInputStream(InputStream stream, String filePath,
- LineCreator lineCreator) throws CoreException {
+ LineCreator lineCreator, String charset) throws CoreException {
try {
StringBuffer lineBuffer = new StringBuffer();
lineBuffer.append(filePath);
- int lineLength = lineBuffer.length();
lineCreator.parseIdentifiers(Util.getInputStreamAsCharArray(stream,
- -1, null), lineBuffer);
- // if (lineLength != lineBuffer.length()) {
- // always add the file for Open Include Action
+ -1, charset), lineBuffer);
addLine(lineBuffer.toString());
- // }
} catch (IOException e) {
e.printStackTrace();
} finally {
stream.close();
}
} catch (IOException e) {
+ // do nothing
}
}
}
String line = (String) fFileMap.get(file.getProjectRelativePath()
.toString());
if (line != null) {
- PHPIdentifierLocation ident;
+ //PHPIdentifierLocation ident;
ArrayList allClassNames = new ArrayList();
addLine(treeMap, null, line, allClassNames);
int i = 0;
}
public void addIdentifiers(TreeMap treeMap, String startClazz) {
- PHPIdentifierLocation ident;
+ //PHPIdentifierLocation ident;
ArrayList allClassNames = new ArrayList();
addClassName(treeMap, startClazz, allClassNames);
int i = 0;