Uses of Class
org.ek9lang.compiler.symbols.ScopedSymbol
Packages that use ScopedSymbol
Package
Description
G - Full Symbol Resolution can now take place.
I - PRE Intermediate Representation generation checks.
Contains critical general components used in the
Ek9Compiler listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of ScopedSymbol in org.ek9lang.compiler.phase3
Classes in org.ek9lang.compiler.phase3 that implement interfaces with type arguments of type ScopedSymbolModifier and TypeClassDescription(package private) final classUsed for resolving operation calls on aggregates, which can include properties that are delegates to functions.(package private) final classLocate a possible call to an identifierReference, so some sort of call.Methods in org.ek9lang.compiler.phase3 that return ScopedSymbolModifier and TypeMethodDescriptionOperationCallOrError.apply(EK9Parser.OperationCallContext ctx, IAggregateSymbol aggregate) ResolveIdentifierReferenceCallOrError.apply(EK9Parser.CallContext ctx) -
Uses of ScopedSymbol in org.ek9lang.compiler.phase5
Methods in org.ek9lang.compiler.phase5 that return ScopedSymbolModifier and TypeMethodDescriptionMutatedOnlyVariables.ReturningCallable.callable()Returns the value of thecallablerecord component.Methods in org.ek9lang.compiler.phase5 with parameters of type ScopedSymbolModifier and TypeMethodDescription(package private) static ReturnSourceKindReturnSourceKind.of(ParsedModule parsedModule, ScopedSymbol callable, EK9Parser.ExpressionContext source) Classify one source of a callable's returning variable.Constructors in org.ek9lang.compiler.phase5 with parameters of type ScopedSymbolModifierConstructorDescription(package private)ReturningCallable(ParsedModule parsedModule, ScopedSymbol callable, List<EK9Parser.ExpressionContext> sources) Creates an instance of aReturningCallablerecord class. -
Uses of ScopedSymbol in org.ek9lang.compiler.phase7.calls
Methods in org.ek9lang.compiler.phase7.calls that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionOperatorTargetMethodResolver.apply(ISymbol targetType, String methodName, List<ISymbol> argumentTypes) Resolve a method/operator on the target type, returning the resolved symbol itself (not just type names), so callers can read its defining type, return type and metadata rather than re-deriving them. -
Uses of ScopedSymbol in org.ek9lang.compiler.support
Methods in org.ek9lang.compiler.support that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionstatic Optional<ScopedSymbol> ReturnRetention.calleeOf(EK9Parser.ExpressionContext expression, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol> recorded) The method, operator or function an expression CALLS when the whole expression is that call -a.get(k),first(),a + b,(a.get(k))- so its value is whatever the call handed back.static Optional<ScopedSymbol> The method or function a recorded symbol CALLS, when it is a call that hands back a value made elsewhere: a method, operator or function call - never a constructor, whose result is always fresh.Methods in org.ek9lang.compiler.support with parameters of type ScopedSymbolModifier and TypeMethodDescriptionstatic booleanReturnRetention.mayAlias(ScopedSymbol callee) Does whatcalleereturns possibly share an object with its receiver or an argument.static booleanReturnRetention.retainsArgument(ScopedSymbol callee, int parameterIndex) Maycalleekeep (a reference to) the argument it is given atparameterIndex- into its receiver, another argument, its result or anywhere else (receiver <- item,return <- other, orunknown)? An argument the callee keeps is no longer the caller's alone.static booleanReturnRetention.returnsReceiverInterior(ScopedSymbol callee) Does whatcalleereturns possibly share an object with its RECEIVER. -
Uses of ScopedSymbol in org.ek9lang.compiler.symbols
Subclasses of ScopedSymbol in org.ek9lang.compiler.symbolsModifier and TypeClassDescriptionclassThis is typically a 'class' or an interface type where it can include the definitions of new properties.classAn aggregate, but one that can have zero or more traits (like interfaces).classSpecial type that is super of Aggregate and super of Function (if they don't have supers).classEK9 assertDoesNotThrow expression - validates that an expression does not throw.classEK9 assertPanic expression - asserts that the wrapped expression fires anorg.ek9.lang::Panic.classEK9 assertThrows expression - captures an expected exception type and expression.classJust re-uses the bulk of method symbol for when we want to make a symbol that is a call to an actual method.classJust focuses on the ability to possible capture variables from an enclosing scope.classEK9 switch/try control type symbol - this can effectively return a value if it is configured with returning part.classEK9 'for' type symbol - we need a scope because we declare a new variable as the loop variable.classScope for functions that are part of a module.classRepresents some type of method that exists on an aggregate type scope.classAdded as a common symbol type for both Functions and Aggregates that could possibly be generic in nature and also be a parameterised type.classScope for callable methods (operations) that are part of a Service.classUsed when duplicate symbols are found, where we need to add a placeholder.classJust re-uses the bulk of method symbol.classEK9 switch statement - this can effectively return a value if it is configured with returning part.classEK9 try statement - this can effectively return a value if it is configured with returning part.classEK9 'while' or 'do/while' type symbol - we need a scope because we can declare new variables as part of the pre-flow semantics.Methods in org.ek9lang.compiler.symbols that return ScopedSymbolModifier and TypeMethodDescriptionprotected ScopedSymbolScopedSymbol.cloneIntoScopeSymbol(ScopedSymbol newCopy) ScopedSymbol.copyScopedSymbolProperties(ScopedSymbol newCopy) Just copies the properties over.CallSymbol.getResolvedSymbolToCall()Methods in org.ek9lang.compiler.symbols that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionLocalScope.findNearestDynamicBlockScopeInEnclosingScopes()ScopedSymbol.findNearestDynamicBlockScopeInEnclosingScopes()SymbolTable.findNearestDynamicBlockScopeInEnclosingScopes()LocalScope.findNearestNonBlockScopeInEnclosingScopes()Traverses up the scope tree of enclosing scopes to find the first scope type that is an aggregate.ScopedSymbol.findNearestNonBlockScopeInEnclosingScopes()SymbolTable.findNearestNonBlockScopeInEnclosingScopes()Methods in org.ek9lang.compiler.symbols with parameters of type ScopedSymbolModifier and TypeMethodDescriptionprotected ScopedSymbolScopedSymbol.cloneIntoScopeSymbol(ScopedSymbol newCopy) ScopedSymbol.copyScopedSymbolProperties(ScopedSymbol newCopy) Just copies the properties over.voidCallSymbol.setResolvedSymbolToCall(ScopedSymbol symbol) Set the actual method/function that should be called.