Package it.unive.lisa.program.language
Class LanguageFeatures
- java.lang.Object
-
- it.unive.lisa.program.language.LanguageFeatures
-
public abstract class LanguageFeatures extends java.lang.Object
Logical grouping of all language-specific features, such as strategies for matching call parameters or traversing type hierarchies.
-
-
Constructor Summary
Constructors Constructor Description LanguageFeatures()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract ParameterAssigningStrategy
getAssigningStrategy()
Yields theParameterAssigningStrategy
defining how actual parameters of a call are matched against the formal ones of its targets.abstract ParameterMatchingStrategy
getMatchingStrategy()
Yields theParameterMatchingStrategy
encoding how actual parameters of a call are matched against the formal ones of its targets.abstract ProgramValidationLogic
getProgramValidationLogic()
Yields theProgramValidationLogic
that validates the structure of a program, identifying erroneous situations (e.g., code members with the same signature) that can crash the analysis.abstract HierarcyTraversalStrategy
getTraversalStrategy()
Yields theHierarcyTraversalStrategy
that expresses how a class hierarchy is traversed, starting from a leaf and visiting all of its ancestors recursively, when searching for program members in it.
-
-
-
Method Detail
-
getMatchingStrategy
public abstract ParameterMatchingStrategy getMatchingStrategy()
Yields theParameterMatchingStrategy
encoding how actual parameters of a call are matched against the formal ones of its targets.- Returns:
- the matching strategy
-
getTraversalStrategy
public abstract HierarcyTraversalStrategy getTraversalStrategy()
Yields theHierarcyTraversalStrategy
that expresses how a class hierarchy is traversed, starting from a leaf and visiting all of its ancestors recursively, when searching for program members in it.- Returns:
- the traversal strategy
-
getAssigningStrategy
public abstract ParameterAssigningStrategy getAssigningStrategy()
Yields theParameterAssigningStrategy
defining how actual parameters of a call are matched against the formal ones of its targets.- Returns:
- the assigning strategy
-
getProgramValidationLogic
public abstract ProgramValidationLogic getProgramValidationLogic()
Yields theProgramValidationLogic
that validates the structure of a program, identifying erroneous situations (e.g., code members with the same signature) that can crash the analysis.- Returns:
- the validation logic
-
-