public abstract class GenericSortCondition
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
GenericSortCondition.GSCForceInstantiation |
(package private) static class |
GenericSortCondition.GSCIdentity |
(package private) static class |
GenericSortCondition.GSCSupersort |
Modifier and Type | Field and Description |
---|---|
private GenericSort |
gs |
Modifier | Constructor and Description |
---|---|
protected |
GenericSortCondition(GenericSort p_gs) |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
check(Sort s,
GenericSortInstantiations insts)
returns true if the given sort
s satisfies this generic sort
condition |
static GenericSortCondition |
createCondition(SchemaVariable sv,
InstantiationEntry<?> p_entry)
Create the condition that needs to be fulfilled for the given
instantiation of a metavariable to be correct, i.e. if the
schemavariable is of generic sort, the instantiation of that
sort has to match the sort of the schemavariable's
instantiation
|
static GenericSortCondition |
createCondition(SortDependingFunction p0,
SortDependingFunction p1)
Create a condition ensuring that the two given symbols become
identical; "p0" may be of generic sort, "p1" not
|
protected static GenericSortCondition |
createCondition(Sort s0,
Sort s1,
boolean p_identity)
Create the condition to make a generic sort (s0) (or a
collection sort of a generic sort) and a concrete sort (s1)
equal
|
static GenericSortCondition |
createForceInstantiationCondition(GenericSort p_gs,
boolean p_maximum) |
static GenericSortCondition |
createIdentityCondition(GenericSort p_gs,
Sort p_s) |
static GenericSortCondition |
createSupersortCondition(GenericSort p_gs,
Sort p_s) |
static GenericSortCondition |
forceInstantiation(Sort p_s,
boolean p_maximum)
Create the condition to force the instantiation of a given
(possibly generic) sort
|
GenericSort |
getGenericSort() |
(package private) static boolean |
subSortsAllowed(SchemaVariable p_sv) |
private GenericSort gs
protected GenericSortCondition(GenericSort p_gs)
public static GenericSortCondition createCondition(SchemaVariable sv, InstantiationEntry<?> p_entry)
public static GenericSortCondition createCondition(SortDependingFunction p0, SortDependingFunction p1)
static boolean subSortsAllowed(SchemaVariable p_sv)
true
iff the variable p_sv
is
allowed to be instantiated with expressions that have a real
subtype of the type of p_sv
. Otherwise the sorts
have to match exactlyprotected static GenericSortCondition createCondition(Sort s0, Sort s1, boolean p_identity)
p_identity
- true iff an identity condition should be
generated (otherwise: a supersort condition is generated)public static GenericSortCondition forceInstantiation(Sort p_s, boolean p_maximum)
p_maximum
- hint whether the generic sort should be
instantiated with the maximum or mimimum possible concrete sort
(this hint is currently not used by GenericSortInstantiations)public static GenericSortCondition createSupersortCondition(GenericSort p_gs, Sort p_s)
public static GenericSortCondition createIdentityCondition(GenericSort p_gs, Sort p_s)
public static GenericSortCondition createForceInstantiationCondition(GenericSort p_gs, boolean p_maximum)
p_maximum
- hint whether the generic sort should be
instantiated with the maximum or mimimum possible concrete sort
(this hint is currently not used by GenericSortInstantiations)public GenericSort getGenericSort()
public abstract boolean check(Sort s, GenericSortInstantiations insts)
s
satisfies this generic sort
conditions
- the Sort to checkinsts
- a map containing already found instantiationss
satisfies this generic sort
condition