Package net.hydromatic.morel.util
Class Unifier.Variable
java.lang.Object
net.hydromatic.morel.util.Unifier.Variable
- All Implemented Interfaces:
Comparable<Unifier.Variable>,Unifier.Term
- Enclosing class:
Unifier
public static final class Unifier.Variable
extends Object
implements Unifier.Term, Comparable<Unifier.Variable>
A variable that represents a symbol or a sequence; unification's
task is to find the substitutions for such variables.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<R> Raccept(Unifier.TermVisitor<R> visitor) apply(Map<Unifier.Variable, Unifier.Term> substitutions) voidcheckCycle(Map<Unifier.Variable, Unifier.Term> map, Map<Unifier.Variable, Unifier.Variable> active) Throws CycleException if expanding this term leads to a cycle.intbooleancontains(Unifier.Variable variable) toString()
-
Field Details
-
name
-
ordinal
final int ordinal
-
-
Constructor Details
-
Variable
Variable(String name, int ordinal) -
Variable
Variable(String name) Creates a variable with a name. The name must not be like "T0" or "T123", because those are the names created for variables with ordinals. -
Variable
Variable(int ordinal) Creates a variable with an ordinal. If the ordinal is "34" the name will be "T34". The ordinal must be non-negative.
-
-
Method Details
-
toString
-
compareTo
- Specified by:
compareToin interfaceComparable<Unifier.Variable>
-
apply
- Specified by:
applyin interfaceUnifier.Term
-
contains
- Specified by:
containsin interfaceUnifier.Term
-
checkCycle
public void checkCycle(Map<Unifier.Variable, Unifier.Term> map, Map<Unifier.Variable, throws Unifier.CycleExceptionUnifier.Variable> active) Description copied from interface:Unifier.TermThrows CycleException if expanding this term leads to a cycle.- Specified by:
checkCyclein interfaceUnifier.Term- Throws:
Unifier.CycleException
-
accept
- Specified by:
acceptin interfaceUnifier.Term
-