X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ISourceElementRequestor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ISourceElementRequestor.java index 58c2541..2d1e256 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ISourceElementRequestor.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ISourceElementRequestor.java @@ -13,115 +13,116 @@ package net.sourceforge.phpdt.internal.compiler; import net.sourceforge.phpdt.core.compiler.IProblem; /* - * Part of the source element parser responsible for building the output. - * It gets notified of structural information as they are detected, relying - * on the requestor to assemble them together, based on the notifications it got. - * - * The structural investigation includes: - * - package statement - * - import statements - * - top-level types: package member, member types (member types of member types...) - * - fields - * - methods - * + * Part of the source element parser responsible for building the output. It + * gets notified of structural information as they are detected, relying on the + * requestor to assemble them together, based on the notifications it got. + * + * The structural investigation includes: - package statement - import + * statements - top-level types: package member, member types (member types of + * member types...) - fields - methods + * * If reference information is requested, then all source constructs are * investigated and type, field & method references are provided as well. - * + * * Any (parsing) problem encountered is also provided. - * + * * All positions are relative to the exact source fed to the parser. - * - * Elements which are complex are notified in two steps: - * - enter : once the element header has been identified - * - exit : once the element has been fully consumed - * - * other simpler elements (package, import) are read all at once: - * - accept + * + * Elements which are complex are notified in two steps: - enter : + * once the element header has been identified - exit : once the + * element has been fully consumed + * + * other simpler elements (package, import) are read all at once: - accept */ public interface ISourceElementRequestor { - void acceptConstructorReference(char[] typeName, int argCount, int sourcePosition); - //void acceptFieldReference(char[] fieldName, int sourcePosition); - /** - * @param declarationStart This is the position of the first character of the - * import keyword. - * @param declarationEnd This is the position of the ';' ending the import statement - * or the end of the comment following the import. - * @param name This is the name of the import like specified in the source including the dots. The '.*' - * is never included in the name. - * @param onDemand set to true if the import is an import on demand (e.g. import java.io.*). False otherwise. - */ - void acceptImport( - int declarationStart, - int declarationEnd, - char[] name, - boolean onDemand); - /* - * Table of line separator position. This table is passed once at the end - * of the parse action, so as to allow computation of normalized ranges. - * - * A line separator might corresponds to several characters in the source, - * - */ - void acceptLineSeparatorPositions(int[] positions); - void acceptMethodReference(char[] methodName, int argCount, int sourcePosition); - //void acceptPackage( - // int declarationStart, - // int declarationEnd, - // char[] name); - void acceptProblem(IProblem problem); - void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd); - void acceptTypeReference(char[] typeName, int sourcePosition); - void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd); - void acceptUnknownReference(char[] name, int sourcePosition); - void enterClass( - int declarationStart, - int modifiers, - char[] name, - int nameSourceStart, - int nameSourceEnd, - char[] superclass, - char[][] superinterfaces); - void enterCompilationUnit(); - void enterConstructor( - int declarationStart, - int modifiers, - char[] name, - int nameSourceStart, - int nameSourceEnd, - char[][] parameterTypes, - char[][] parameterNames, - char[][] exceptionTypes); - void enterField(int declarationStart, int modifiers, char[] type, char[] name, int nameSourceStart, int nameSourceEnd); - //void enterInitializer( - // int declarationStart, - // int modifiers); - void enterInterface( - int declarationStart, - int modifiers, - char[] name, - int nameSourceStart, - int nameSourceEnd, - char[][] superinterfaces); - void enterMethod( - int declarationStart, - int modifiers, - char[] returnType, - char[] name, - int nameSourceStart, - int nameSourceEnd, - char[][] parameterTypes, - char[][] parameterNames, - char[][] exceptionTypes); - void exitClass(int declarationEnd); - void exitCompilationUnit(int declarationEnd); - void exitConstructor(int declarationEnd); - /* - * initializationStart denotes the source start of the expression used for initializing - * the field if any (-1 if no initialization). - */ - void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd); - void exitInitializer(int declarationEnd); - void exitInterface(int declarationEnd); - void exitMethod(int declarationEnd); + void acceptConstructorReference(char[] typeName, int argCount, + int sourcePosition); + + // void acceptFieldReference(char[] fieldName, int sourcePosition); + /** + * @param declarationStart + * This is the position of the first character of the import + * keyword. + * @param declarationEnd + * This is the position of the ';' ending the import statement or + * the end of the comment following the import. + * @param name + * This is the name of the import like specified in the source + * including the dots. The '.*' is never included in the name. + * @param onDemand + * set to true if the import is an import on demand (e.g. import + * java.io.*). False otherwise. + */ + void acceptImport(int declarationStart, int declarationEnd, char[] name, + boolean onDemand); + + /* + * Table of line separator position. This table is passed once at the end of + * the parse action, so as to allow computation of normalized ranges. + * + * A line separator might corresponds to several characters in the source, + * + */ + void acceptLineSeparatorPositions(int[] positions); + + void acceptMethodReference(char[] methodName, int argCount, + int sourcePosition); + + // void acceptPackage( + // int declarationStart, + // int declarationEnd, + // char[] name); + void acceptProblem(IProblem problem); + + void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd); + + void acceptTypeReference(char[] typeName, int sourcePosition); + + void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd); + + void acceptUnknownReference(char[] name, int sourcePosition); + + void enterClass(int declarationStart, int modifiers, char[] name, + int nameSourceStart, int nameSourceEnd, char[] superclass, + char[][] superinterfaces); + + void enterCompilationUnit(); + + void enterConstructor(int declarationStart, int modifiers, char[] name, + int nameSourceStart, int nameSourceEnd, char[][] parameterTypes, + char[][] parameterNames, char[][] exceptionTypes); + + void enterField(int declarationStart, int modifiers, char[] type, + char[] name, int nameSourceStart, int nameSourceEnd); + + // void enterInitializer( + // int declarationStart, + // int modifiers); + void enterInterface(int declarationStart, int modifiers, char[] name, + int nameSourceStart, int nameSourceEnd, char[][] superinterfaces); + + void enterMethod(int declarationStart, int modifiers, char[] returnType, + char[] name, int nameSourceStart, int nameSourceEnd, + char[][] parameterTypes, char[][] parameterNames, + char[][] exceptionTypes); + + void exitClass(int declarationEnd); + + void exitCompilationUnit(int declarationEnd); + + void exitConstructor(int declarationEnd); + + /* + * initializationStart denotes the source start of the expression used for + * initializing the field if any (-1 if no initialization). + */ + void exitField(int initializationStart, int declarationEnd, + int declarationSourceEnd); + + void exitInitializer(int declarationEnd); + + void exitInterface(int declarationEnd); + + void exitMethod(int declarationEnd); }