Uses of Interface
org.ek9lang.compiler.symbols.IScopedSymbol
Packages that use IScopedSymbol
Package
Description
Common parts of processing that can be reused across various phases.
G - Full Symbol Resolution can now take place.
K - Intermediate Representation Generation.
Contains critical general components used in the
Ek9Compiler listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of IScopedSymbol in org.ek9lang.compiler.common
Methods in org.ek9lang.compiler.common that return types with arguments of type IScopedSymbolModifier and TypeMethodDescriptionScopeStack.traverseBackUpStackToMethodOrFunction()Locates the outer function or method (if possible, not always possible Applications for example).SymbolsAndScopes.traverseBackUpStackToMethodOrFunction()Methods in org.ek9lang.compiler.common with parameters of type IScopedSymbolModifier and TypeMethodDescriptionvoidSymbolsAndScopes.defineScopedSymbol(IScopedSymbol symbol, org.antlr.v4.runtime.tree.ParseTree node) Record a new scoped symbol in the current scope on the stack.voidSymbolsAndScopes.enterModuleScopedSymbol(IScopedSymbol symbol, org.antlr.v4.runtime.tree.ParseTree node, SymbolChecker symbolChecker) To be used when defining a high level symbol at module scope.voidSymbolsAndScopes.enterNewScopedSymbol(IScopedSymbol symbol, org.antlr.v4.runtime.tree.ParseTree node) Enter a new scoped symbol and record in parsed module as a symbol and as a scope. -
Uses of IScopedSymbol in org.ek9lang.compiler.phase3
Methods in org.ek9lang.compiler.phase3 that return IScopedSymbolModifier and TypeMethodDescriptionPureCheckData.superSymbol()Returns the value of thesuperSymbolrecord component.PureCheckData.thisSymbol()Returns the value of thethisSymbolrecord component.Constructors in org.ek9lang.compiler.phase3 with parameters of type IScopedSymbolModifierConstructorDescription(package private)PureCheckData(String errorMessage, IScopedSymbol superSymbol, IScopedSymbol thisSymbol) Creates an instance of aPureCheckDatarecord class. -
Uses of IScopedSymbol in org.ek9lang.compiler.phase7
Methods in org.ek9lang.compiler.phase7 with parameters of type IScopedSymbolModifier and TypeMethodDescriptionprotected voidAbstractDfnGenerator.processSyntheticConstructor(IRConstruct construct, MethodSymbol constructorSymbol, IScopedSymbol superType) Process a synthetic constructor (default constructor created by earlier phases). -
Uses of IScopedSymbol in org.ek9lang.compiler.phase7.calls
Methods in org.ek9lang.compiler.phase7.calls with parameters of type IScopedSymbolModifier and TypeMethodDescriptionParameterPromotionProcessor.apply(CallContext context, IScopedSymbol scopedSymbol) Apply parameter promotion for any scoped symbol (method or function). -
Uses of IScopedSymbol in org.ek9lang.compiler.support
Methods in org.ek9lang.compiler.support with parameters of type IScopedSymbolModifier and TypeMethodDescriptionAggregateFactory.newDynamicClass(IScopedSymbol enclosingMainTypeOrFunction, EK9Parser.DynamicClassDeclarationContext ctx) Create a new aggregate that represents an EK9 dynamic class.SymbolFactory.newDynamicClass(IScopedSymbol enclosingMainTypeOrFunction, EK9Parser.DynamicClassDeclarationContext ctx) Create a new aggregate that represents an EK9 dynamic class.FunctionFactory.newDynamicFunction(IScopedSymbol enclosingMainTypeOrFunction, EK9Parser.DynamicFunctionDeclarationContext ctx) Create a new aggregate that represents an EK9 dynamic function.SymbolFactory.newDynamicFunction(IScopedSymbol enclosingMainTypeOrFunction, EK9Parser.DynamicFunctionDeclarationContext ctx) Create a new aggregate that represents an EK9 dynamic function.OperationFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, String methodName, IScopedSymbol scopedSymbol) Create a new method with a specific name.OperationFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, IScopedSymbol scopedSymbol) Create a new method that represents an EK9 class/component method.SymbolFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, String methodName, IScopedSymbol scopedSymbol) Create a new method with a specific name.SymbolFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, IScopedSymbol scopedSymbol) Create a new method that represents an EK9 class/component method. -
Uses of IScopedSymbol in org.ek9lang.compiler.symbols
Subinterfaces of IScopedSymbol in org.ek9lang.compiler.symbolsModifier and TypeInterfaceDescriptioninterfaceInterface for an aggregate, typically a class or something like that.interfaceInterface to abstract FunctionSymbol away as concrete implementation.Classes in org.ek9lang.compiler.symbols that implement IScopedSymbolModifier 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).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.classRepresents a symbol that also has a scope.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 IScopedSymbolModifier and TypeMethodDescriptionMethods in org.ek9lang.compiler.symbols that return types with arguments of type IScopedSymbolMethods in org.ek9lang.compiler.symbols with parameters of type IScopedSymbolModifier and TypeMethodDescriptionvoidScopedSymbol.setOuterMostTypeOrFunction(IScopedSymbol outerMostTypeOrFunction)