Package | Description |
---|---|
org.clafer.ast |
This package provides the language for building Clafer AST.
|
org.clafer.ast.analysis |
This package provides various analysis and optimizations to perform on the
AST.
|
org.clafer.ast.compiler |
This package provides a compiler to translate Clafer AST to IR.
|
org.clafer.instance |
This package provides structure for working with instances.
|
org.clafer.javascript |
This package provides classes for building Clafer models and invoking the
solver via Javascript.
|
org.clafer.scope |
This package provides classes for building and retrieving the scope.
|
Modifier and Type | Class and Description |
---|---|
class |
AstAbstractClafer
An abstract Clafer.
|
class |
AstBoolClafer
The primitive boolean Clafer.
|
class |
AstConcreteClafer
A concrete Clafer.
|
class |
AstIntClafer
The primitive integer Clafer.
|
class |
AstModel
The Clafer model.
|
class |
AstPrimClafer
A primitive Clafer.
|
Modifier and Type | Method and Description |
---|---|
AstClafer |
AstPrimClafer.extending(AstAbstractClafer superClafer)
Set the supertype of this Clafer.
|
AstClafer |
AstClafer.extending(AstAbstractClafer superClafer)
Set the supertype of this Clafer.
|
AstClafer |
AstConstraint.getContext() |
static AstClafer |
AstUtil.getLowestCommonSupertype(AstClafer... unionType)
Finds the lowest common supertype.
|
static AstClafer |
AstUtil.getLowestCommonSupertype(Iterable<AstClafer> unionType)
Finds the lowest common supertype.
|
AstClafer |
AstConcreteClafer.getParent()
Returns this Clafer's parent.
|
AstClafer |
AstRef.getSourceType() |
AstClafer |
AstDowncast.getTarget() |
AstClafer |
AstRef.getTargetType() |
static AstClafer |
AstUtil.getTopParent(AstClafer clafer)
Find the highest non-root Clafer above the supplied one.
|
AstClafer |
AstGlobal.getType()
The type of this expression.
|
AstClafer |
AstConstant.getType() |
AstClafer |
AstPrimClafer.refTo(AstClafer targetType)
Set this Clafer's reference to target type.
|
AstClafer |
AstClafer.refTo(AstClafer targetType)
Set this Clafer's reference to target type.
|
AstClafer |
AstPrimClafer.refToUnique(AstClafer targetType)
Set this Clafer's reference to target type along with a uniqueness
constraint.
|
AstClafer |
AstClafer.refToUnique(AstClafer targetType)
Set this Clafer's reference to target type along with a uniqueness
constraint.
|
AstClafer |
AstClafer.withGroupCard(Card groupCard)
Set this Clafer's group cardinality.
|
AstClafer |
AstClafer.withGroupCard(int low)
Set this Clafer's low group cardinality and set the high group
cardinality to unbounded.
|
AstClafer |
AstClafer.withGroupCard(int low,
int high)
Set this Clafer's group cardinality.
|
Modifier and Type | Method and Description |
---|---|
static List<AstClafer> |
AstUtil.getClafers(AstModel model)
Find all the nested Clafers in no specific order.
|
static List<Set<AstClafer>> |
AstUtil.getClafersInParentAndSubOrder(AstModel model)
Find the Clafers such that the parents appear before the children, and
the subclafers appear before the superclafers.
|
static List<AstClafer> |
AstUtil.getNestedClafers(AstClafer clafer)
Find all the Clafers below the supplied one, including itself.
|
List<AstClafer> |
AstAbstractClafer.getSubs()
Returns the Clafers that extend this Clafer
|
static List<AstClafer> |
AstUtil.getSuperHierarchy(AstClafer clafer)
Finds the supertype hierarchy of the Clafer.
|
Modifier and Type | Method and Description |
---|---|
static AstConstant |
Asts.constant(AstClafer type,
int... value) |
static AstSetExpr |
Asts.downcast(AstSetExpr base,
AstClafer target)
Downcast an expression.
|
static List<AstConcreteClafer> |
AstUtil.getConcreteSubs(AstClafer clafer)
Find all the concrete subtypes of the supplied Clafer, including itself
if it is concrete.
|
static AstRef |
AstUtil.getInheritedRef(AstClafer clafer)
Find the reference belonging to the Clafer or the reference it inherited.
|
static AstClafer |
AstUtil.getLowestCommonSupertype(AstClafer... unionType)
Finds the lowest common supertype.
|
static List<AstClafer> |
AstUtil.getNestedClafers(AstClafer clafer)
Find all the Clafers below the supplied one, including itself.
|
static List<AstClafer> |
AstUtil.getSuperHierarchy(AstClafer clafer)
Finds the supertype hierarchy of the Clafer.
|
static List<AstAbstractClafer> |
AstUtil.getSupers(AstClafer clafer)
Finds all the supertypes of the Clafer in order of lowest to highest.
|
static AstClafer |
AstUtil.getTopParent(AstClafer clafer)
Find the highest non-root Clafer above the supplied one.
|
static AstGlobal |
Asts.global(AstClafer type) |
static boolean |
AstUtil.hasInheritedRef(AstClafer clafer) |
static boolean |
AstUtil.hasNonEmptyIntersectionType(AstClafer t1,
AstClafer t2)
Detects if a set of
t1 can share elements with a set of
t2 . |
static boolean |
AstUtil.isAssignable(AstClafer from,
AstClafer to)
Detects if a set of
from is also a set of to . |
static boolean |
AstUtil.isTop(AstClafer clafer)
Detects if the Clafer is directly under the root.
|
static boolean |
AstUtil.isUnionType(AstClafer union,
AstClafer[] partitions)
Detects if the union type is fully covered by the partitions.
|
static boolean |
AstUtil.isUnionType(AstClafer union,
AstClafer[] partitions)
Detects if the union type is fully covered by the partitions.
|
static AstBoolExpr |
Asts.lone(AstClafer clafer) |
static AstBoolExpr |
Asts.none(AstClafer clafer) |
static AstBoolExpr |
Asts.one(AstClafer clafer) |
AstConcreteClafer |
AstConcreteClafer.refTo(AstClafer targetType)
Set this Clafer's reference to target type.
|
AstClafer |
AstPrimClafer.refTo(AstClafer targetType)
Set this Clafer's reference to target type.
|
AstAbstractClafer |
AstAbstractClafer.refTo(AstClafer targetType)
Set this Clafer's reference to target type.
|
AstModel |
AstModel.refTo(AstClafer targetType) |
AstClafer |
AstClafer.refTo(AstClafer targetType)
Set this Clafer's reference to target type.
|
AstConcreteClafer |
AstConcreteClafer.refToUnique(AstClafer targetType)
Set this Clafer's reference to target type along with a uniqueness
constraint.
|
AstClafer |
AstPrimClafer.refToUnique(AstClafer targetType)
Set this Clafer's reference to target type along with a uniqueness
constraint.
|
AstAbstractClafer |
AstAbstractClafer.refToUnique(AstClafer targetType)
Set this Clafer's reference to target type along with a uniqueness
constraint.
|
AstModel |
AstModel.refToUnique(AstClafer targetType) |
AstClafer |
AstClafer.refToUnique(AstClafer targetType)
Set this Clafer's reference to target type along with a uniqueness
constraint.
|
static AstBoolExpr |
Asts.some(AstClafer clafer) |
Modifier and Type | Method and Description |
---|---|
static AstClafer |
AstUtil.getLowestCommonSupertype(Iterable<AstClafer> unionType)
Finds the lowest common supertype.
|
Constructor and Description |
---|
AstConstraint(AstClafer context,
AstBoolExpr expr) |
AstConstraint(AstClafer context,
AstBoolExpr expr,
boolean soft) |
Modifier and Type | Method and Description |
---|---|
AstClafer |
Type.getBasicType() |
AstClafer |
Offsets.getClafer(int offset) |
AstClafer |
Type.getCommonSuperType() |
AstClafer |
Analysis.getCommonSupertype(AstExpr expr) |
Modifier and Type | Method and Description |
---|---|
Map<AstClafer,AstConcreteClafer[]> |
Analysis.getBreakableChildrenMap() |
Map<AstClafer,AstRef[]> |
Analysis.getBreakableTargetsMap() |
List<AstClafer> |
Analysis.getClafers() |
List<Set<AstClafer>> |
Analysis.getClafersInParentAndSubOrder() |
Map<AstClafer,Format> |
Analysis.getFormatMap() |
Map<AstClafer,Card> |
Analysis.getGlobalCardMap() |
List<Pair<AstClafer,Integer>> |
Analysis.getHierarcyIds(AstClafer clafer,
int id) |
List<Pair<AstClafer,Integer>> |
Analysis.getHierarcyOffsets(AstClafer clafer) |
Map<AstClafer,PartialSolution> |
Analysis.getPartialSolutionMap() |
Pair<AstClafer,Integer> |
Analysis.getSubId(AstAbstractClafer clafer,
int id) |
Set<AstClafer> |
Type.getUnionType() |
Modifier and Type | Method and Description |
---|---|
Analysis |
Analysis.setBreakableChildrenMap(Map<AstClafer,AstConcreteClafer[]> breakableChildren) |
Analysis |
Analysis.setBreakableTargetsMap(Map<AstClafer,AstRef[]> breakableTargetsMap) |
Analysis |
Analysis.setFormatMap(Map<AstClafer,Format> formatMap) |
Analysis |
Analysis.setGlobalCardMap(Map<AstClafer,Card> globalCardMap) |
Analysis |
Analysis.setPartialSolutionMap(Map<AstClafer,PartialSolution> partialSolutionMap) |
Constructor and Description |
---|
Type(Set<AstClafer> unionType,
AstClafer commonSupertype) |
Constructor and Description |
---|
Type(Set<AstClafer> unionType) |
Type(Set<AstClafer> unionType,
AstClafer commonSupertype) |
Modifier and Type | Method and Description |
---|---|
IrSetVar[] |
AstSolutionMap.getSiblingVars(AstClafer clafer)
Returns the sibling variables associated with the Clafer.
|
Modifier and Type | Method and Description |
---|---|
AstClafer |
InstanceClafer.getType() |
AstClafer |
InstanceRef.getType() |
Constructor and Description |
---|
InstanceClafer(AstClafer type,
int id,
InstanceRef ref,
InstanceClafer... children) |
InstanceRef(AstClafer type,
int value) |
Modifier and Type | Method and Description |
---|---|
Object |
JavascriptShell.maximize(AstClafer clafer)
Find an instance where the Clafer's value is maximal.
|
Object |
JavascriptShell.minimize(AstClafer clafer)
Find an instance where the Clafer's value is minimal.
|
Modifier and Type | Method and Description |
---|---|
Set<AstClafer> |
Scope.getScoped()
Returns the set of Clafers that have an explicit scope.
|
Modifier and Type | Method and Description |
---|---|
ScopeBuilder |
ScopeBuilder.adjustScope(AstClafer clafer,
int adjust)
Adjust the scope of the Clafer.
|
int |
Scope.getScope(AstClafer clafer)
Returns the scope of the Clafer.
|
ScopeBuilder |
ScopeBuilder.setScope(AstClafer clafer,
int scope)
Set the scope of the Clafer.
|
static ScopeBuilder |
Scope.setScope(AstClafer clafer,
int scope)
Equivalent to
builder().setScope(clafer, scope) . |
Constructor and Description |
---|
Scope(Map<AstClafer,Integer> scopes,
int defaultScope,
int intLow,
int intHigh)
Construct a new scope.
|
Copyright © 2013. All Rights Reserved.