package org.eclipse.dltk.javascript.structure; import org.eclipse.dltk.ast.ASTNode; import org.eclipse.dltk.compiler.IElementRequestor.FieldInfo; import org.eclipse.dltk.compiler.IElementRequestor.ImportInfo; import org.eclipse.dltk.compiler.IElementRequestor.MethodInfo; import org.eclipse.dltk.compiler.IElementRequestor.TypeInfo; import org.eclipse.dltk.javascript.ast.Expression; import org.eclipse.dltk.javascript.ast.FunctionStatement; import org.eclipse.dltk.javascript.ast.Identifier; import org.eclipse.dltk.javascript.typeinfo.IModelBuilder.IMethod; import org.eclipse.dltk.javascript.typeinfo.model.JSType; public interface IStructureRequestor { public void acceptImport(ImportInfo importInfo); /** * Adds simple type name to the index */ void acceptTypeReference(ASTNode node, String typeName); void acceptTypeReference(int position, JSType type); void acceptFieldReference(Identifier node); void acceptMethodReference(Identifier node, int argCount); // void acceptTypeReference(JSType type, int position); void enterNamespace(String[] namespace); void exitNamespace(); void enterType(TypeInfo typeInfo); void exitType(int sourceEnd); void enterMethod(MethodInfo methodInfo, Expression identifier, FunctionStatement function, IMethod method); void exitMethod(int sourceEnd); void exitField(int sourceEnd); void enterField(FieldInfo fieldInfo, Expression identifier, JSType type, boolean local); void acceptLocalReference(Identifier node, IDeclaration target); void enterLocal(Identifier identifier, JSType type); void exitLocal(int sourceEnd); }