public class EqualityInference extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
EqualityInference.Builder |
static class |
EqualityInference.EqualityPartition |
| Modifier and Type | Method and Description |
|---|---|
static EqualityInference |
createEqualityInference(Expression... expressions) |
EqualityInference.EqualityPartition |
generateEqualitiesPartitionedBy(com.google.common.base.Predicate<Symbol> symbolScope)
Dumps the inference equalities as equality expressions that are partitioned by the symbolScope.
|
static com.google.common.base.Predicate<Expression> |
isInferenceCandidate()
Determines whether an Expression may be successfully applied to the equality inference
|
static Iterable<Expression> |
nonInferrableConjuncts(Expression expression)
Provides a convenience Iterable of Expression conjuncts which have not been added to the inference
|
Expression |
rewriteExpression(Expression expression,
com.google.common.base.Predicate<Symbol> symbolScope)
Attempts to rewrite an Expression in terms of the symbols allowed by the symbol scope
given the known equalities.
|
Expression |
rewriteExpressionAllowNonDeterministic(Expression expression,
com.google.common.base.Predicate<Symbol> symbolScope)
Attempts to rewrite an Expression in terms of the symbols allowed by the symbol scope
given the known equalities.
|
public Expression rewriteExpression(Expression expression, com.google.common.base.Predicate<Symbol> symbolScope)
public Expression rewriteExpressionAllowNonDeterministic(Expression expression, com.google.common.base.Predicate<Symbol> symbolScope)
public EqualityInference.EqualityPartition generateEqualitiesPartitionedBy(com.google.common.base.Predicate<Symbol> symbolScope)
Example:
Stored Equalities:
a = b = c
d = e = f = g
Symbol Scope:
a, b, d, e
Output EqualityPartition:
Scope Equalities:
a = b
d = e
Complement Scope Equalities
f = g
Scope Straddling Equalities
a = c
d = f
public static com.google.common.base.Predicate<Expression> isInferenceCandidate()
public static Iterable<Expression> nonInferrableConjuncts(Expression expression)
public static EqualityInference createEqualityInference(Expression... expressions)
Copyright © 2012–2019. All rights reserved.