Uses of Class
org.ek9lang.compiler.common.RuleSupport
Packages that use RuleSupport
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.
I - PRE Intermediate Representation generation checks.
Contains critical general components used in the
Ek9Compiler listeners.-
Uses of RuleSupport in org.ek9lang.compiler.common
Subclasses of RuleSupport in org.ek9lang.compiler.commonModifier 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.final classAccess the Symbol for the lhs of the preflow statement.classChecks for both abstract and override.classConstructs like methods and functions may or may not always return a value.classDesigned to be used in phase3 or after - FULL_RESOLUTION. -
Uses of RuleSupport in org.ek9lang.compiler.phase1
Subclasses of RuleSupport in org.ek9lang.compiler.phase1Modifier and TypeClassDescription(package private) final classChecks for the appropriate use of the APPLICATION of xyz on a method declaration.(package private) final classChecks if the body of a function is appropriate.(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 classOnly use when code being checked prohibits use in outer generic context.(package private) final classProcesses and checks Methods that apply in all method contexts for basic correctness.(package private) classChecks that if the aggregate is a generic class that the appropriate public constructors are in place.(package private) final classChecks methods from various contexts, typically this is delegated to other functions.(package private) classChecks that if a return is used. -
Uses of RuleSupport in org.ek9lang.compiler.phase2
Subclasses of RuleSupport in org.ek9lang.compiler.phase2Modifier and TypeClassDescription(package private) final classChecks HTTP Access for service operations because some require HTTP_SOURCE, but others do not support it.(package private) final classExamines all the service operations on a service and looks at the verbs used and the uri proto paths.(package private) classFor Constrained Types, focus on checking it is possible to constrain the type and if so then clones the appropriate methods/operators over and alters the types as appropriate.(package private) final classConfigures a dynamic class in terms of settings its super and configured traits.(package private) final classConfigures the dynamic function with it's 'super', but also checks that the super can be used in the way the EK9 source code has been defined.(package private) final classConfigures a function's 'super' in the most appropriate way.(package private) final classConfigures the trait declaration and completes a number of checks on that trait once configured.(package private) final classAdds various synthetic methods to type defined by the EK9 developer.(package private) final classChecks for inferred declarations of variables in various contexts.(package private) final classDeals with variable only declarations.(package private) final classProcesses a variable declaration - attempts to resolve the variable type.(package private) final classChecks for a type is resolved and is suitable genus and category.(package private) final classChecks for a type is resolved and is suitable to be extended from (in basic terms).(package private) final classChecks operators from various contexts, typically this is delegated to other functions.(package private) final classChecks the PATH value (if this is a path parameter) and ensures that the name appears in the path itself on the operation.(package private) final classCheck that a service operation complies with EK9 rules and return types etc.(package private) final classDoes a simple check (excluding any inheritance) for visibility rules on methods/operators on aggregates. -
Uses of RuleSupport in org.ek9lang.compiler.phase3
Subclasses of RuleSupport in org.ek9lang.compiler.phase3Modifier and TypeClassDescription(package private) final classJust gets the left and right hand side of values in an expression.(package private) final classJust gets both of the ternary expression parts (not the control).(package private) final classCheck that a symbol can be accessed issues error if not possible.(package private) final classChecks that all the text bodies that are on the super are also present in the language variant.(package private) final classChecks that the assert statement actually has a boolean result from the expression.(package private) final classJust really pulls up the appropriate symbol from the expression into this context.(package private) final classChecks the assignments for operator : := = and :=? that's all.(package private) final classUsed in the full resolution phase to check assignments.(package private) final classDesigned to add in methods on the aggregate where the 'traits' use is 'traits by'.(package private) final classThe ek9 developer does not need to redeclare incoming or returning parameters for dynamic functions.(package private) final classDesigned to deal with this following part of the EK9 grammar.(package private) final classChecks that methods from a super and one or more traits do not conflict.(package private) classGiven a symbol, this check that the type that the symbol has can support the '<=>' operator.(package private) final classChecks that a specific constructor can be called on a particular type of Aggregate.(package private) final classJust checks that an expression used in a control for if/while etc is a Boolean type.(package private) classGiven a symbol, this check that the type that the symbol has can support the '--' operator.(package private) final classChecks that operators that have been 'defaulted' could actually be implemented.(package private) final classCreates/Updates an ek9 Dict (Dictionary/Map) of a specific types if the expressions are typed correctly.(package private) final classResolves the variables to be captured and defines new variable symbols against the appropriate scopes.(package private) final classChecks if a dynamic function body is needed and provided.(package private) final classCreates/Updates an enumerated type adding methods as appropriate.(package private) final classChecks that the symbol passed has a type and that the type is compatible with an EK9 Exception.(package private) final classEnsures that 'expression' is now resolved and 'typed' or a not resolved error.(package private) final classDeals with the for loop for phase 3, which is basically working out the type of the variable being iterated over and ensuring that the expression is something that can be iterated over.(package private) final classPulls the type from the 'range' into the loop variable, so it is correctly typed or emits an error.(package private) final classDeals with checking the 'for' statement/expression.(package private) final classCheck is the data passed in enabled a delegate function to be resolved and if so return that Function.(package private) final classChecks that the function correctly overrides the signature if it has a super.(package private) final classGiven a 'type' (the IAggregateSymbol passed in), see it would be possible to iterator over it with some other type.(package private) final classChecks that the guard expression is valid.(package private) classGiven a symbol, this check that the type that the symbol has can support the '#?' operator.(package private) final classChecks the possible operation variable, literal or function for suitability for use with 'head', 'tail' and 'skip'.(package private) final classDeals with the checking and setting initialised of the identifier.(package private) final classUsed for pure identifier resolution and recording.(package private) final classEnsures that 'identifierReference' is now resolved and hangs together and is 'typed' or emit "not resolved" error.(package private) final classChecks the IfStatement is valid or emits errors.(package private) classGiven a symbol, this check that the type that the symbol has can support the '++' operator.(package private) final classChecks that variable only and variable declarations have symbols that have been referenced.(package private) classChecks if a type has the $ 'toString' method or a 'promotion' #? to a String method.(package private) final classGiven a symbol, this check that the type that the symbol has can support the '?' operation.(package private) final classChecks the left hand side and the right hand side for assignment compatibility.(package private) final classCreates/Updates an ek9 list of a specific type if the expressions are typed correctly.(package private) final classCheck overrides on methods.(package private) final classCreate a MethodSearch symbol for an operation that could have a single expression or two expressions.(package private) final classAs it is possible to have a variable that is a delegate 'function', it means that to call that function, the ek9 developer would use variable-name(parameters).(package private) final classAs all properties on records are public, it is necessary to check they do not get duplicated.(package private) final classTypically used when a direct call is being bad on the symbol.(package private) final classUsed where traits are implemented 'by' a variable.(package private) final classThis is the second part of the method/function chaining resolution and can be recursive via objectAccess.(package private) final classProcesses the Object Access start, this is the start of chained method/function calls.(package private) final classUsed for resolving operation calls on aggregates, which can include properties that are delegates to functions.(package private) classProvides a common set of operations for checking operators.(package private) final classChecks the number and types of the two sets of parameter list match exactly.(package private) final classProcess the stream pipeline part, ensuring that it can be resolved.(package private) final classChecks that the pre-flow expressions are valid.(package private) final classEnsures that 'primary' is now resolved and 'typed' or a not resolved error.(package private) final classDeals with checking the 'while' or 'do/while control variable in the statement/expression.(package private) final classChecks if there is any application associated with the program.(package private) final classUsed for resolving and recoding of fields on specific types.(package private) final classChecks if the pure modifier has been used correctly on methods and functions.(package private) final classJust check that with in the current 'context' - if pure that the processing call is pure.(package private) final classChecks the Range and ensures that there a Symbol recorded against that context.(package private) final classTo be used with operators on aggregates (except for the is-set ? operator, that has to deal with functions).(package private) final classUsed where traits are implemented 'by' a variable.(package private) final classUsed for resolving a function (by just name) or a variable that is a function delegate.(package private) final classCheck for valid function parameters.(package private) final classLocate a possible call to an identifierReference, so some sort of call.(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 classChecks the use of registering a service is valid and then ensures that the 'Application' is altered from being a general application to a service application.(package private) final classLooks at the returning param (if not null) and sets the symbol type as appropriate.(package private) final classValidates that the statement is OK and emits errors if this is not the case.classProcesses/updates and checks that a stream assembly is actually viable in terms of types.(package private) final classDeals with working out what the type being 'catted' is.(package private) final classNow does the check/processing of the whole stream pipeline.(package private) final classProcess and ensure that the stream termination can function correctly.(package private) final classDeals with working out what the type being "for'd" is.(package private) final classChecks that the arguments in the function are compatible with the current pipeline type.(package private) final class(package private) final classNow does the check/processing of the whole stream pipeline.(package private) final classProcess and ensure that the stream termination can function correctly.(package private) final classDeals with checking if the switch can be used as an expression and whether the variable being switched on has the appropriate operators to meet the case criteria.(package private) final classReturns the appropriate symbol from the symbol and scope management component.(package private) final classChecks if a symbol has been referenced or not (can be null - no error).(package private) final classJust focus on resolving 'this' or 'super' in respect to a 'call'.(package private) final classChecks and assigns type a 'this' or 'super' symbol, but only if it valid.(package private) final classChecks that the throw statement actually throws and Exception type.(package private) classChecks that a trait access like T1.xyz() - is allowed i.e.(package private) final classDeals with checking the try statement/expression.(package private) final classChecks that any recursive type constraints on a type are valid.(package private) final classChecks the covariance compatibility of two variables, this will traverse them to get their types.(package private) final classCheck that the types of two symbol ar compatible with each other.(package private) final classCheck if any dispatcher methods on the aggregate and ensure that they are valid.(package private) final classChecks if a function extends another function and if it is abstract.(package private) final classIf the Ek9 developer has used named parameters, then they must be validated.(package private) final classChecks on the assignment during a declaration and emits an error if not valid.(package private) final classFocus on checking a variable only declaration, now that types are all known.(package private) final classDeals with checking the 'while' or 'do/while statement/expression. -
Uses of RuleSupport in org.ek9lang.compiler.phase5
Subclasses of RuleSupport in org.ek9lang.compiler.phase5Modifier and TypeClassDescription(package private) classOnce an expression has been assessed as being simple enough to process, this consumer is called to mark the appropriate symbol(s) used in the expression as safe if the appropriate methods are called.(package private) final classCheck the assignment to a variable can be a single assignment or a deep copy type assignment.(package private) final classDeals with handling any returning values in a dynamic function.(package private) classOnce an expression has been assessed as being simple enough to process, this consumer is called to mark the appropriate symbol(s) used in the expression as safe if the appropriate methods are called.(package private) final classChecks the for structure via the code analysers.(package private) final classTypically checks any returning values to see if they have now been initialised on a function.(package private) final classExtracts the guard variable if there is a guard expression.classGiven an identifier, this consumer checks if it is a property of some aggregate.(package private) final classEmits an error if an identifier (typically a variable) has been used before being initialised.(package private) final classDeals with checking if all paths through if/else/else-if/else result in variables meeting criteria.(package private) final classTypically checks any returning values to see if they have now been initialised on a method.(package private) final classIn the case of specific variables of type like 'Result' and 'Optional' it is important to check if the method being called needs a previous call to isOk or isError or just '?' before accessing specific methods.(package private) final classTypically checks any returning values to see if they have now been initialised on an operator.(package private) classUsed as a base for a range of constructs that can be expressions.(package private) final classDeals with handling any returning values in a dynamic function.(package private) final classChecks on a guard expression and marks the identifier variable as initialised.(package private) final classChecks if return variables are initialised.(package private) class(package private) final classIt may be that before calling this you have determined that 'isSet' has been called or you 'know' that the value of the variable is present and set.(package private) final classTypically checks any returning values to see if they have now been initialised on a service operation.(package private) classUsed with aggregates to check that is they have any properties that are not initialised at declaration there are no default or implicit constructors being used.(package private) final classDeals with checking if all paths through switch/case/default (return) result in variables meeting criteria.(package private) final classOnly triggers the call the retrieve the appropriate symbol for the node.(package private) final classChecks the try/catch/finally structure via the code analysers.(package private) final classAccepts a variable only declaration and ensures the variable is recorded if appropriate, for transient flow checks.(package private) final classChecks the while statement via the code analysers. -
Uses of RuleSupport in org.ek9lang.compiler.support
Subclasses of RuleSupport in org.ek9lang.compiler.supportModifier and TypeClassDescriptionclassAttempts to find a common type from the CommonTypeDeterminationDetails or issues errors.classGiven a list of symbols (normally variables), this code will get the type from each of those symbols.final classCreate a new parameterised symbol from a generic type and a set of type arguments.classThe bulk of the processing is in the abstract base.classThe bulk of the processing is in the abstract base.classThe bulk of the processing is in the abstract base.classThis is a sort of hybrid resolver or definer function.classUsed as an abstract base for parameterised types.