Uses of Class
org.ek9lang.compiler.search.SymbolSearch
Package
Description
B - For the EK9 compiler itself.
The directives are really aimed at helping the creation of the EK9 language, but they
maybe very useful in the early stages of adoption of ek9 (should there be any).
Used primarily to hold structures that are related to searching for symbols.
Contains critical general components used in the
Ek9Compiler
listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of SymbolSearch in org.ek9lang.compiler
Modifier and TypeMethodDescriptionCompilableProgram.getOriginalReferenceLocation
(String moduleName, SymbolSearch search) Locates the token when the first reference was established.CompilableProgram.resolveByFullyQualifiedSearch
(SymbolSearch search) Resolve some symbol via a fully qualified search.CompilableProgram.resolveFromImplicitScopes
(SymbolSearch search) Search in the implicit ek9 module namespaces of: org.ek9.lang etc.CompilableProgram.resolveFromModule
(String moduleName, SymbolSearch search) A package name (moduleName) can actually have multiple parsedModules (i.e.CompilableProgram.resolveReferenceFromModule
(String moduleName, SymbolSearch search) Check the existing set of references in the moduleName. -
Uses of SymbolSearch in org.ek9lang.compiler.directives
-
Uses of SymbolSearch in org.ek9lang.compiler.search
Modifier and TypeClassDescriptionfinal class
Search for a symbol of any category with the matching name.final class
Search for a symbol of any types category with the matching name.final class
Search just for a matching function by name.final class
Quite a few option to a method search.final class
A Search for a TEMPLATE of a FUNCTION.final class
A Search for a TEMPLATE of a TYPE like a CLASS.final class
A Search for a concrete actual TYPE like a RECORD or a CLASS for example.Modifier and TypeMethodDescriptionSymbolSearch.addTypeParameter
(Optional<ISymbol> parameter) Add a type parameter to the search.SymbolSearch.addTypeParameter
(ISymbol parameter) Add a parameter to the search parameters.SymbolSearch.setExampleSymbolToMatch
(ISymbol exampleSymbolToMatch) SymbolSearch.setLimitToBlocks
(boolean limitToBlocks) SymbolSearch.setOfTypeOrReturn
(Optional<ISymbol> ofTypeOrReturn) What type of symbol is being searched for or its return type.SymbolSearch.setOfTypeOrReturn
(ISymbol ofTypeOrReturn) SymbolSearch.setSearchType
(ISymbol.SymbolCategory searchType) SymbolSearch.setTypeParameters
(List<ISymbol> typeParameters) Set any parameters that might be needed as part of this search.SymbolSearch.setVetoSearchTypes
(List<ISymbol.SymbolCategory> vetoSearchTypes) Modifier and TypeMethodDescriptionprotected void
SymbolSearch.cloneIntoSearchSymbol
(SymbolSearch symbolSearch) ModifierConstructorDescriptionMethodSymbolSearch
(String newName, SymbolSearch from) Create a method search from an existing search, but with a new name.SymbolSearch
(String newName, SymbolSearch from) Create a new search from an existing search with a new search name.SymbolSearch
(SymbolSearch from) Clone from Symbol search into a new instance. -
Uses of SymbolSearch in org.ek9lang.compiler.support
Modifier and TypeMethodDescriptionvoid
SymbolMatcher.addMatchesToResult
(MethodSymbolSearchResult result, SymbolSearch criteria, List<MethodSymbol> methodSymbols) Match the search criteria against one or more symbol methods.boolean
NoNameCollisionOrError.errorsIfResolved
(IScope inScope, ISymbol symbol, SymbolSearch search, ErrorListener.SemanticClassification classificationError) If a symbol is resolved then this will emit an error. -
Uses of SymbolSearch in org.ek9lang.compiler.symbols
Modifier and TypeMethodDescriptionModuleScope.getOriginalReferenceLocation
(SymbolSearch search) Returns the original location a reference was made (if present).IScope.resolve
(SymbolSearch search) Find the nearest symbol of that name up the scope tree.MethodSymbol.resolve
(SymbolSearch search) ModuleScope.resolve
(SymbolSearch search) PossibleGenericSymbol.resolve
(SymbolSearch search) So this is where we alter the mechanism of normal symbol resolution.ScopedSymbol.resolve
(SymbolSearch search) StackConsistencyScope.resolve
(SymbolSearch search) SymbolTable.resolve
(SymbolSearch search) Search and resolve from a symbol search.CaptureScopedSymbol.resolveExcludingCapturedVariables
(SymbolSearch search) ICanCaptureVariables.resolveExcludingCapturedVariables
(SymbolSearch search) Try and resolve a symbol but exclude looking in captured variables.StackConsistencyScope.resolveExcludingCapturedVariables
(SymbolSearch search) PossibleGenericSymbol.resolveFromParameterTypes
(SymbolSearch search) Used when the type/function is one that is generic/template.ModuleScope.resolveInThisModuleOnly
(SymbolSearch search) Looks to resolve search in either the references held or the symbols in all the scopes for this module.CaptureScopedSymbol.resolveInThisScopeOnly
(SymbolSearch search) FunctionSymbol.resolveInThisScopeOnly
(SymbolSearch search) IScope.resolveInThisScopeOnly
(SymbolSearch search) Just look in own scope.MethodSymbol.resolveInThisScopeOnly
(SymbolSearch search) ModuleScope.resolveInThisScopeOnly
(SymbolSearch search) Just does a search in this particular module scope.PossibleGenericSymbol.resolveInThisScopeOnly
(SymbolSearch search) ScopedSymbol.resolveInThisScopeOnly
(SymbolSearch search) StackConsistencyScope.resolveInThisScopeOnly
(SymbolSearch search) SymbolTable.resolveInThisScopeOnly
(SymbolSearch search) Resolve a symbol in this symbol table only.AggregateSymbol.resolveMember
(SymbolSearch search) Just try and resolve a member in this or super scopes.AggregateWithTraitsSymbol.resolveMember
(SymbolSearch search) IAggregateSymbol.resolveMember
(SymbolSearch search) Just try and resolve a member in this or super scopes.IScope.resolveMember
(SymbolSearch search) Just resolve on this or supers/traits - but not anything outside of the class hierarchy.ScopedSymbol.resolveMember
(SymbolSearch search) SymbolTable.resolveMember
(SymbolSearch search) ModuleScope.resolveReferenceInThisScopeOnly
(SymbolSearch search) Does a check if there is a references of that symbol already held in this module scope.CaptureScope.resolveWithEnclosingScope
(SymbolSearch search) LocalScope.resolveWithEnclosingScope
(SymbolSearch search) ModuleScope.resolveWithEnclosingScope
(SymbolSearch search) SymbolTable.resolveWithEnclosingScope
(SymbolSearch search) This class is the root and so there is no enclosing scope.AggregateWithTraitsSymbol.resolveWithParentScope
(SymbolSearch search) Resolve using super aggregate and or any traits we have.ScopedSymbol.resolveWithParentScope
(SymbolSearch search) Resolve with super type/function or via enclosing scope.protected boolean
SymbolTable.searchIsNotInThisScope
(SymbolSearch search) If search is unqualified (i.e.