package org.rubypeople.rdt.internal.compiler; import org.rubypeople.rdt.core.compiler.CategorizedProblem; public interface ISourceElementRequestor { public static class TypeInfo { public int declarationStart; public boolean isModule = false; public String name; public int nameSourceStart; public int nameSourceEnd; public String superclass; public String[] modules; public boolean secondary; } public static class MethodInfo { public boolean isConstructor = false; public boolean isClassLevel = false; public int visibility; public int declarationStart; public String name; public int nameSourceStart; public int nameSourceEnd; public String[] parameterNames; public String[] blockVars; } public static class FieldInfo { public int declarationStart; // public String type; TODO Pre populate our guesses at type? public String name; public boolean isDynamic; public int nameSourceStart; public int nameSourceEnd; } public void enterMethod(MethodInfo method); public void enterConstructor(MethodInfo constructor); public void enterField(FieldInfo field); public void enterType(TypeInfo type); public void enterScript(); public void exitMethod(int endOffset); public void exitConstructor(int endOffset); public void exitField(int endOffset); public void exitType(int endOffset); public void exitScript(int endOffset); public void acceptMethodReference(String name, int argCount, int offset); public void acceptConstructorReference(String name, int argCount, int offset); public void acceptFieldReference(String name, int offset); public void acceptTypeReference(String name, int startOffset, int endOffset); public void acceptImport(String value, int startOffset, int endOffset); public void acceptUnknownReference(String name, int startOffset, int endOffset); public void acceptProblem(CategorizedProblem problem); public void acceptMixin(String string); public void acceptModuleFunction(String function); public void acceptMethodVisibilityChange(String methodName, int visibility); public void acceptYield(String name); public void acceptBlock(int startOffset, int endOffset); }