Uses of Class
org.ek9lang.compiler.symbols.MethodSymbol
Packages that use MethodSymbol
Package
Description
Common parts of processing that can be reused across various phases.
E - Initial Symbol definition by traversing the 'ANTLR' - 'AST'.
F - Resolution of Explicitly Defined Type Symbols - at this point phase3 processing should have defined
most of the explicitly defined symbols, so they should be resolvable.
G - Full Symbol Resolution can now take place.
K - Intermediate Representation Generation.
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 MethodSymbol in org.ek9lang.compiler.common
Classes in org.ek9lang.compiler.common that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionclassChecks if the body of a method/operator is appropriate.classChecks for the containing construct type and whether it is marked as abstract or not.classChecks for both abstract and override.classCheck trait specifics on constructors/methods/operators, Allowing missing body but marking as abstract.classCheck trait specifics on methods/operators.Methods in org.ek9lang.compiler.common that return MethodSymbolModifier and TypeMethodDescriptionMethodAndAggregateData.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.common that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionScopeStack.traverseBackUpStackToEnclosingMethod()Navigate back up the scope stack to find the first enclosing method (there may not be one).Methods in org.ek9lang.compiler.common with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidAppropriateBodyOrError.accept(MethodSymbol methodSymbol, EK9Parser.OperationDetailsContext ctx) voidContextSupportsAbstractMethodOrError.accept(MethodSymbol methodSymbol, org.antlr.v4.runtime.ParserRuleContext ctx) voidOverrideOrAbstractOrError.accept(MethodSymbol methodSymbol) voidProcessTraitMethodOrError.accept(MethodSymbol method, EK9Parser.OperationDetailsContext ctx) voidTraitMethodAcceptableOrError.accept(MethodSymbol method, EK9Parser.OperationDetailsContext ctx) Constructors in org.ek9lang.compiler.common with parameters of type MethodSymbolModifierConstructorDescriptionMethodAndAggregateData(MethodSymbol methodSymbol, IAggregateSymbol aggregateSymbol) Creates an instance of aMethodAndAggregateDatarecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.phase1
Classes in org.ek9lang.compiler.phase1 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classJust checks that named operator methods: mod, rem, abs, sqrt, open, close, contains, matches, empty, length are not being used as just method names.(package private) final classTypically used for Constructors, but could be used in other contexts where a method is not expected to return anything.(package private) final classAimed at methods in services and a program (which is a method).(package private) final classCheck not dispatcher methods.(package private) final classProcesses and checks Methods that apply in all method contexts for basic correctness.(package private) final classA program can only accept specific types of arguments to it.(package private) final classA program can only return an Integer (exit code).(package private) final classChecks methods from various contexts, typically this is delegated to other functions.Methods in org.ek9lang.compiler.phase1 with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidMethodNotOperatorOrError.accept(MethodSymbol methodSymbol, EK9Parser.MethodDeclarationContext methodDeclarationContext) voidNoMethodReturnOrError.accept(MethodSymbol methodSymbol, EK9Parser.MethodDeclarationContext ctx) voidNonExtendableMethodOrError.accept(MethodSymbol methodSymbol, EK9Parser.MethodDeclarationContext methodDeclarationContext) voidNotDispatcherMethodOrError.accept(MethodSymbol method, EK9Parser.MethodDeclarationContext ctx) voidProcessCommonMethodsOrError.accept(MethodSymbol method, EK9Parser.MethodDeclarationContext ctx) voidProgramArgumentsOrError.accept(IToken token, MethodSymbol methodSymbol) voidProgramReturnOrError.accept(IToken token, MethodSymbol methodSymbol) voidValidMethodOrError.accept(MethodSymbol method, EK9Parser.MethodDeclarationContext ctx) -
Uses of MethodSymbol in org.ek9lang.compiler.phase2
Classes in org.ek9lang.compiler.phase2 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classChecks operators from various contexts, typically this is delegated to other functions.Methods in org.ek9lang.compiler.phase2 with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidValidOperatorOrError.accept(MethodSymbol methodSymbol, EK9Parser.OperatorDeclarationContext ctx) -
Uses of MethodSymbol in org.ek9lang.compiler.phase3
Classes in org.ek9lang.compiler.phase3 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classGiven a search for a method from an aggregate - and include supers/traits etc., this function will try and locate the method.(package private) final classAccesses the aggregate and gets just the 'default' operators defined on that aggregate (not any hierarchy).(package private) final classJust focus on resolving 'this' or 'super' in respect to a 'call'.(package private) final classGets the abstract methods and then resolves each to see what the resulting method would be.Methods in org.ek9lang.compiler.phase3 that return MethodSymbolModifier and TypeMethodDescriptionResolveMethodOrError.apply(IToken errorLocation, MethodSearchInScope searchOnAggregate) ThisOrSuperCallOrError.apply(EK9Parser.CallContext ctx) AggregateMethodData.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.phase3 that return types with arguments of type MethodSymbolMethod parameters in org.ek9lang.compiler.phase3 with type arguments of type MethodSymbolModifier and TypeMethodDescriptionvoidTraverseAbstractMethods.accept(IAggregateSymbol aggregateSymbol, Consumer<MethodSymbol> actionToTake) Constructors in org.ek9lang.compiler.phase3 with parameters of type MethodSymbolModifierConstructorDescription(package private)AggregateMethodData(IToken location, IAggregateSymbol aggregate, MethodSymbol methodSymbol) Creates an instance of aAggregateMethodDatarecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.phase7
Methods in org.ek9lang.compiler.phase7 with parameters of type MethodSymbolModifier and TypeMethodDescriptionprotected voidAbstractDfnGenerator.processSyntheticConstructor(IRConstruct construct, MethodSymbol constructorSymbol, IScopedSymbol superType) Process a synthetic constructor (default constructor created by earlier phases). -
Uses of MethodSymbol in org.ek9lang.compiler.phase7.support
Classes in org.ek9lang.compiler.phase7.support that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionclassLocates the Operation details context for a method - or throws a compiler exception.Methods in org.ek9lang.compiler.phase7.support that return MethodSymbolModifier and TypeMethodDescriptionMethodResolutionResult.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.phase7.support with parameters of type MethodSymbolModifier and TypeMethodDescriptionOperationDetailContextOrError.apply(MethodSymbol method, EK9Parser.AggregatePartsContext ctx) Constructors in org.ek9lang.compiler.phase7.support with parameters of type MethodSymbolModifierConstructorDescriptionMethodResolutionResult(MethodSymbol methodSymbol, double matchPercentage, boolean requiresPromotion) Creates an instance of aMethodResolutionResultrecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.search
Classes in org.ek9lang.compiler.search that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionclassJust uses the name of a method in the search, to get a list of all possible method name.Methods in org.ek9lang.compiler.search that return MethodSymbolMethods in org.ek9lang.compiler.search that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionPossibleMatchingMethods.apply(MethodSearchInScope searchOnAggregate) MethodSymbolSearchResult.getSingleBestMatchSymbol()If there is a single best match for the search; then return it.Constructors in org.ek9lang.compiler.search with parameters of type MethodSymbolModifierConstructorDescriptionMethodSymbolSearch(String newName, MethodSymbol methodSymbol) Create a method search given a method symbol, but used a new method name.ยง But this does not set the expected type.MethodSymbolSearch(MethodSymbol methodSymbol) Create a method search given a method symbol.PercentageMethodSymbolMatch(MethodSymbol methodSymbol, double percentageMatch) -
Uses of MethodSymbol in org.ek9lang.compiler.support
Classes in org.ek9lang.compiler.support that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) classDeals with normal operators (i.e.Methods in org.ek9lang.compiler.support that return MethodSymbolModifier and TypeMethodDescriptionAggregateManipulator.addComparatorOperator(IAggregateSymbol aggregateSymbol, String comparatorType, Optional<ISymbol> returnType) Adds a form of a comparison operator.AggregateManipulator.addConstructor(AggregateSymbol t, Optional<ISymbol> s) Add another constructor to type t, but passing in an s as the value in the construction.AggregateManipulator.addConstructor(AggregateSymbol t, ISymbol s) Add a constructor to the type aggregate with a particular parameter.AggregateManipulator.addConstructor(IAggregateSymbol t) Create a new constructor for the aggregate with no params.AggregateManipulator.addPublicMethod(AggregateSymbol aggregate, String methodName, List<ISymbol> methodParameters, Optional<ISymbol> returnType) Just add a method to an aggregate with the name and parameters and return type.AggregateManipulator.addPurePublicSimpleOperator(IAggregateSymbol aggregateSymbol, String methodName, Optional<ISymbol> returnType) Adds a simple operator, that is 'pure' (no side effects) and accepts no parameters, but just returns a value.CheckAndPopulateOperator.apply(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) AggregateManipulator.cloneMethodWithNewType(MethodSymbol method, IAggregateSymbol to) AggregateManipulator.createMutatorOperator(IAggregateSymbol aggregateSymbol, String operatorType) Create an operator of the name supplied.AggregateManipulator.createMutatorOperatorReturnVoid(IAggregateSymbol aggregateSymbol, String operatorType) Create an operator of the name supplied.AggregateManipulator.createOperator(IAggregateSymbol aggregateSymbol, String operatorType, boolean isPure) Create an operator of the name supplied.AggregateManipulator.createPureAcceptSameTypeOperatorAndReturnType(IAggregateSymbol aggregateSymbol, String comparatorType, Optional<ISymbol> returnType) Creates a pure method with an argument the same as the main type.AggregateManipulator.createPureArgumentOperatorAndReturnType(IAggregateSymbol aggregateSymbol, IAggregateSymbol arg0, String comparatorType, Optional<ISymbol> returnType) Creates a pure method with an argument of a different type as the main type.AggregateManipulator.createPurePublicReturnSameTypeMethod(IAggregateSymbol aggregateSymbol, String methodName) AggregateManipulator.createPurePublicSimpleOperator(IAggregateSymbol aggregateSymbol, String methodName, Optional<ISymbol> returnType) Just creates a public operator with the name specified.AggregateManipulator.createToJsonSimpleOperator(IAggregateSymbol aggregateSymbol) Create operator for json.(package private) MethodSymbolOperatorFactory.getDefaultOperator(IAggregateSymbol aggregate, String operator) 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.OperationFactory.newOperator(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) Create a new aggregate that represents an EK9 operator, uses a method for this.SymbolFactory.newOperator(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) Create a new aggregate that represents an EK9 operator, uses a method for this.SymbolFactory.newTextBody(EK9Parser.TextBodyDeclarationContext ctx, IScope scope) Create a new aggregate that represents an EK9 text body - this is represented by a method.TextFactory.newTextBody(EK9Parser.TextBodyDeclarationContext ctx, IScope scope) Create a new aggregate that represents an EK9 text body - this is represented by a method.Methods in org.ek9lang.compiler.support that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionAggregateManipulator.getAllPossibleDefaultOperators(IAggregateSymbol aggregate) Provides all the possible default operators.(package private) List<MethodSymbol> OperatorFactory.getAllPossibleDefaultOperators(IAggregateSymbol aggregate) (package private) List<MethodSymbol> OperatorFactory.getAllPossibleSyntheticOperators(IAggregateSymbol aggregate) AggregateManipulator.getDefaultOperator(IAggregateSymbol aggregate, String operator) If the operator provided can be defaulted then a Method symbol with the correct signature will be returned.protected Consumer<MethodSymbol> CommonFactory.getDefaultOperatorSymbolInitializer(Consumer<ISymbol> initialise) Methods in org.ek9lang.compiler.support with parameters of type MethodSymbolModifier and TypeMethodDescriptionAggregateManipulator.cloneMethodWithNewType(MethodSymbol method, IAggregateSymbol to) voidSymbolFactory.ensureTextBodyIsInSuper(MethodSymbol textMethodSymbol) Ensures that any method in a specific text block is always added to the base text for that component.voidTextFactory.ensureTextBodyIsInSuper(MethodSymbol textMethodSymbol) Ensures that any method in a specific text block is always added to the base text for that component.Method parameters in org.ek9lang.compiler.support with type arguments of type MethodSymbolModifier and TypeMethodDescriptionvoidSymbolMatcher.addMatchesToResult(MethodSymbolSearchResult result, SymbolSearch criteria, List<MethodSymbol> methodSymbols) Match the search criteria against one or more symbol methods. -
Uses of MethodSymbol in org.ek9lang.compiler.symbols
Subclasses of MethodSymbol in org.ek9lang.compiler.symbolsModifier and TypeClassDescriptionclassJust re-uses the bulk of method symbol for when we want to make a symbol that is a call to an actual method.classScope for callable methods (operations) that are part of a Service.classJust re-uses the bulk of method symbol.Methods in org.ek9lang.compiler.symbols that return MethodSymbolModifier and TypeMethodDescriptionprotected MethodSymbolMethodSymbol.cloneIntoMethodSymbol(MethodSymbol newCopy) MethodSymbol.copyMethodProperties(MethodSymbol newCopy) Just copies the properties over.MethodSymbol.setConstructor(boolean constructor) MethodSymbol.setOperator(boolean operator) Methods in org.ek9lang.compiler.symbols that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionAggregateSymbol.getAllAbstractMethods()Gets all abstract methods in this aggregate and any super classes.AggregateWithTraitsSymbol.getAllAbstractMethods()Gets all abstract methods in this aggregate and any super classes.default List<MethodSymbol> IAggregateSymbol.getAllAbstractMethods()Get all methods marked as abstract in this or any supers.AggregateSymbol.getAllAbstractMethodsInThisScopeOnly()default List<MethodSymbol> IAggregateSymbol.getAllAbstractMethodsInThisScopeOnly()Get all methods in this scope only that are abstract.AggregateSymbol.getAllEffectiveMethods()AggregateWithTraitsSymbol.getAllEffectiveMethods()default List<MethodSymbol> IAggregateSymbol.getAllEffectiveMethods()Gets all methods that are effective, by this I mean if supers (classes or traits) have the same method name but, it has been overridden then we would only retain the 'overridden' one as that has taken effect.AggregateSymbol.getAllMethodInThisScopeOnly()default List<MethodSymbol> IAggregateSymbol.getAllMethodInThisScopeOnly()All methods abstract and non-abstract in this scope.AggregateSymbol.getAllMethods()AggregateWithTraitsSymbol.getAllMethods()default List<MethodSymbol> IAggregateSymbol.getAllMethods()Get all methods on this and any supers or traits.AggregateSymbol.getAllNonAbstractMethods()AggregateWithTraitsSymbol.getAllNonAbstractMethods()default List<MethodSymbol> IAggregateSymbol.getAllNonAbstractMethods()Get all methods not marked as abstract in this or any supers.AggregateSymbol.getAllNonAbstractMethodsInThisScopeOnly()default List<MethodSymbol> IAggregateSymbol.getAllNonAbstractMethodsInThisScopeOnly()Get all methods in this scope only that are not abstract.AggregateSymbol.getAllOperators()default List<MethodSymbol> IAggregateSymbol.getAllOperators()Get all operators on this and any supers or traits.AggregateSymbol.getConstructors()IAggregateSymbol.getConstructors()A list of all the defined constructors.Methods in org.ek9lang.compiler.symbols with parameters of type MethodSymbolModifier and TypeMethodDescriptionprotected MethodSymbolMethodSymbol.cloneIntoMethodSymbol(MethodSymbol newCopy) MethodSymbol.copyMethodProperties(MethodSymbol newCopy) Just copies the properties over.booleanMethodSymbol.isExactSignatureMatchTo(MethodSymbol toMethod) This method just checks that the signature has exactly the same types as parameters.booleanMethodSymbol.isSignatureMatchTo(MethodSymbol toMethod) Does the signature of this method match that of the method passed in.protected booleanAggregateSymbol.methodNotPresent(List<MethodSymbol> defined, MethodSymbol checkMethod) protected booleanAggregateSymbol.methodsMatch(MethodSymbol m1, MethodSymbol m2) Method parameters in org.ek9lang.compiler.symbols with type arguments of type MethodSymbolModifier and TypeMethodDescriptionprotected booleanAggregateSymbol.methodNotPresent(List<MethodSymbol> defined, MethodSymbol checkMethod)