+++ /dev/null
-package net.sourceforge.phpdt.internal.compiler.parser;
-
-import java.util.List;
-
-import net.sourceforge.phpdt.core.ICompilationUnit;
-import net.sourceforge.phpdt.core.IType;
-import net.sourceforge.phpdt.core.JavaCore;
-import net.sourceforge.phpdt.core.JavaModelException;
-import net.sourceforge.phpdt.internal.compiler.ast.ImportReference;
-import net.sourceforge.phpdt.internal.compiler.ast.SingleTypeReference;
-
-import org.eclipse.core.resources.IFile;
-
-public class ParserUtil {
-
- public static SingleTypeReference getTypeReference(Scanner scanner,
- List includesList, char[] ident) {
- String identStr = new String(ident);
- ImportReference ir;
- IFile file = null;
- for (int i = 0; i < includesList.size(); i++) {
- ir = (ImportReference) includesList.get(i);
- file = ir.getFile();
- if (file != null) {
- ICompilationUnit unit = JavaCore
- .createCompilationUnitFrom(file);
- if (unit != null) {
- try {
- // TODO avoid recursion here. Sometimes we get a
- // java.lang.StackOverflowError
- IType[] types = unit.getAllTypes();
- if (types != null) {
- for (int j = 0; j < types.length; j++) {
- if (types[j].getElementName().equals(identStr)) {
- return new SingleTypeReference(
- file,
- ident,
- scanner
- .getCurrentTokenStartPosition(),
- scanner
- .getCurrentTokenEndPosition());
- }
- }
- }
- } catch (JavaModelException e) {
- e.printStackTrace();
- }
- }
- }
- }
- return null;
- }
-}