Uses of Class
org.ek9lang.compiler.common.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 phase1 processing should have defined
most of the explicitly defined symbols, so they should be resolvable.
G - Full Symbol Resolution can now take place.
Contains critical general components used in the
Ek9Compiler
listeners.-
Uses of RuleSupport in org.ek9lang.compiler.common
Modifier and TypeClassDescriptionclass
Checks if the body of a method/operator is appropriate.class
Checks for the containing construct type and whether it is marked as abstract or not.class
Checks for both abstract and override.class
Designed to be used in phase3 only on or after - FULL_RESOLUTION. -
Uses of RuleSupport in org.ek9lang.compiler.phase1
Modifier and TypeClassDescription(package private) final class
Checks for the appropriate use of the APPLICATION of xyz on a method declaration.(package private) final class
Checks if the body of a function is appropriate.(package private) final class
Just 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 class
Typically used for Constructors, but could be used in other contexts where a method is not expected to return anything.(package private) final class
Only use when code being checked prohibits use in outer generic context.(package private) final class
Processes and checks Methods that apply in all method contexts for basic correctness.(package private) class
Constructs like methods and functions may or may not always retun a value.(package private) final class
Checks methods from various contexts, typically this is delegated to other functions.(package private) class
Checks that if a return is used (i.e. -
Uses of RuleSupport in org.ek9lang.compiler.phase2
Modifier and TypeClassDescription(package private) final class
Checks HTTP Access for service operations because some require HTTP_SOURCE, but others do not support it.(package private) final class
Examines all the service operations on a service and looks at the verbs used and the uti proto paths.(package private) class
For 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 class
(package private) final class
(package private) final class
(package private) final class
(package private) final class
(package private) final class
Checks for inferred declarations of variables in various contexts.(package private) final class
(package private) final class
(package private) final class
Checks for a type is resolved and is suitable genus and category.(package private) final class
Checks for a type is resolved and is suitable to be extended from (in basic terms).(package private) final class
Checks operators from various contexts, typically this is delegated to other functions.(package private) final class
Checks 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 class
Check that a service operation complies with ek9 rules or return types etc.(package private) final class
Does a simple check (excluding any inheritance) for visibility rules on methods/operators on aggregates. -
Uses of RuleSupport in org.ek9lang.compiler.phase3
Modifier and TypeClassDescription(package private) final class
Just gets the left and right hand side of values in an expression.(package private) final class
Check that a symbol can be accessed issues error if not possible.(package private) final class
Checks that all the text bodies that are on the super are also present in the language variant.(package private) final class
Just really pulls up the appropriate symbol from the expression into this context.(package private) final class
Checks the assignments for operator : := = and :=? that's all.(package private) final class
Used in the full resolution phase to check assignments.(package private) final class
Designed to add in methods on the aggregate where the 'traits' use is 'traits by'.(package private) final class
The ek9 developer does not need to redeclare incoming or returning parameters for dynamic functions.(package private) final class
Designed to deal with this following part of the EK9 grammar.(package private) final class
Just checks and records the appropriate type for the case expression, based on how it is used.(package private) final class
Checks that methods from a super and one or more traits do not conflict.(package private) class
Given a symbol, this check that the type that the symbol has can support the '<=>' operator.(package private) final class
Just checks that an expression used in a control for if/while etc is a Boolean type.(package private) class
Given a symbol, this check that the type that the symbol has can support the '--' operator.(package private) final class
Checks that operators that have been 'defaulted' could actually be implemented.(package private) final class
Creates/Updates an ek9 Dict (Dictionary/Map) of a specific types if the expressions are typed correctly.(package private) final class
Resolves the variables to be captured and defines new variable symbols against the appropriate scopes.(package private) final class
Checks if a dynamic function body is needed and provided.(package private) final class
Creates/Updates an enumerated type adding methods as appropriate.(package private) final class
Checks that the symbol passed has a type and that the type is compatible with an EK9 Exception.(package private) final class
Ensures that 'expression' is now resolved and 'typed' or a not resolved error.(package private) final class
Deals 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 class
Pulls the type from the 'range' into the loop variable, so it is correctly typed or emits an error.(package private) final class
Deals with checking the 'for' statement/expression.(package private) final class
Check is the data passed in enabled a delegate function to be resolved and if so return that Function.(package private) final class
Checks that the function correctly overrides the signature if it has a super.(package private) final class
Given a 'type' (the IAggregateSymbol passed in), see it would be possible to iterator over it with some other type.(package private) final class
Checks that the guard expression is valid.(package private) class
Given a symbol, this check that the type that the symbol has can support the '#?' operator.(package private) final class
Checks the possible operation variable, literal or function for suitability for use with 'head', 'tail' and 'skip'.(package private) final class
Deals with the checking and setting initialised of the identifier.(package private) final class
Used for pure identifier resolution and recording.(package private) final class
Ensures that 'identifierReference' is now resolved and hangs together and is 'typed' or emit "not resolved" error.(package private) final class
Checks the IfStatement is valid or emits errors.(package private) class
Given a symbol, this check that the type that the symbol has can support the '++' operator.(package private) final class
Checks that variable only and variable declarations have symbols that have been referenced.(package private) final class
Given a symbol, this check that the type that the symbol has can support the '?' operation.(package private) final class
Checks the left hand side and the right hand side for assignment compatibility.(package private) final class
Creates/Updates an ek9 list of a specific type if the expressions are typed correctly.(package private) final class
Check overrides on methods.(package private) final class
Create a MethodSearch symbol for an operation that could have a single expression or two expressions.(package private) final class
As 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 class
As all properties on records are public, it is necessary to check they do not get duplicated.(package private) final class
Typically used when a direct call is being bad on the symbol.(package private) final class
Used where traits are implemented 'by' a variable.(package private) final class
This is the second part of the method/function chaining resolution and can be recursive via objectAccess.(package private) final class
Processes the Object Access start, this is the start of chained method/function calls.(package private) final class
Used for resolving operation calls on aggregates, which can include properties that are delegates to functions.(package private) class
Provides a common set of operations for checking operators.(package private) final class
Checks the number and types of the two sets of parameter list match exactly.(package private) final class
Process the stream pipeline part, ensuring that it can be resolved.(package private) final class
Checks that the pre-flow expressions are valid.(package private) final class
Ensures that 'primary' is now resolved and 'typed' or a not resolved error.(package private) final class
Deals with checking the 'while' or 'do/while control variable in the statement/expression.(package private) final class
Used for resolving and recoding of fields on specific types.(package private) final class
Checks if the pure modifier has been used correctly on methods and functions.(package private) final class
Just check that with in the current 'context' - if pure that the processing call is pure.(package private) final class
Checks the Range and ensures that there a Symbol recorded against that context.(package private) final class
To be used with operators on aggregates (except for the is-set ? operator, that has to deal with functions).(package private) final class
Used where traits are implemented 'by' a variable.(package private) final class
Used for resolving a function (by just name) or a variable that is a function delegate.(package private) final class
Check for valid function parameters.(package private) final class
Locate a possible call to an identifierReference, so some sort of call.(package private) final class
Given a search for a method from an aggregate - and include supers/traits etc, this function will try and locate the method.(package private) final class
Checks 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 class
Looks at the returning param (if not null) and sets the symbol type as appropriate.(package private) final class
Validates that the statement is OK and emits errors if this is not the case.class
Processes/updates and checks that a stream assembly is actually viable in terms of types.(package private) final class
Deals with working out what the type being 'catted' is.(package private) final class
Now does the check/processing of the whole stream pipeline.(package private) final class
Process and ensure that the stream termination can function correctly.(package private) final class
Deals with working out what the type being "for'd" is.(package private) final class
Checks that the arguments in the function are compatible with the current pipeline type.(package private) final class
(package private) final class
Now does the check/processing of the whole stream pipeline.(package private) final class
Process and ensure that the stream termination can function correctly.(package private) final class
Deals 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 class
Returns the appropriate symbol from the symbol and scope management component.(package private) final class
Checks if a symbol has been referenced or not (can be null - no error).(package private) final class
Just focus on resolving 'this' or 'super' in respect to a 'call'.(package private) final class
Checks and assigns type a 'this' or 'super' symbol, but only if it valid.(package private) final class
Checks that the throw statement actually throws and Exception type.(package private) final class
Deals with checking the try statement/expression.(package private) final class
Checks that any recursive type constraints on a type are valid.(package private) final class
Checks the covariance compatibility of two variables, this will traverse them to get their types.(package private) final class
Check that the types of two symbol ar compatible with each other.(package private) final class
Checks if a function extends another function and if it is abstract.(package private) final class
Checks on the assignment during a declaration and emits an error if not valid.(package private) final class
Focus on checking a variable only declaration, now that types are all known.(package private) final class
Deals with checking the 'while' or 'do/while statement/expression. -
Uses of RuleSupport in org.ek9lang.compiler.phase5
Modifier and TypeClassDescription(package private) final class
Check the assignment to a variable can be a single assignment or a deep copy type assignment.(package private) final class
Deals with handling any returning values in a dynamic function.(package private) final class
Checks the for structure via the code analysers.(package private) final class
Typically checks any returning values to see if they have now been initialised on a function.(package private) final class
Extracts the guard variable if there is a guard expression.class
Given an identifier, this consumer checks if it is a property of some aggregate.(package private) final class
(package private) final class
Deals with checking if all paths through if/else/else-if/else result in variables meeting criteria.(package private) final class
Typically checks any returning values to see if they have now been initialised on a method.(package private) final class
Typically checks any returning values to see if they have now been initialised on an operator.(package private) class
Used as a base for a range of constructs that can be expressions.(package private) final class
Deals with handling any returning values in a dynamic function.(package private) final class
Checks on a guard expression and marks the identifier variable as initialised.(package private) final class
(package private) final class
Typically checks any returning values to see if they have now been initialised on a service operation.(package private) final class
Deals with checking if all paths through switch/case/default (return) result in variables meeting criteria.(package private) final class
Checks the try/catch/finally structure via the code analysers.(package private) final class
Accepts a variable only declaration and ensures the variable is recorded if appropriate, for transient flow checks.(package private) final class
Checks the while statement via the code analysers. -
Uses of RuleSupport in org.ek9lang.compiler.support
Modifier and TypeClassDescriptionfinal class
Create a new parameterised symbol from a generic type and a set of type arguments.class
The bulk of the processing is in the abstract base.class
The bulk of the processing is in the abstract base.class
The bulk of the processing is in the abstract base.class
This is a sort of hybrid resolver or definer function.class
Used as an abstract base for parameterised types.