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 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 Type
    Class
    Description
    class 
    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 Type
    Class
    Description
    (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 Type
    Class
    Description
    (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 Type
    Class
    Description
    (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 Type
    Class
    Description
    (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 Type
    Class
    Description
    final 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.