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.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R> Raccept(Unifier.TermVisitor<R> visitor)Unifier.Termapply(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.intcompareTo(Unifier.Variable o)booleancontains(Unifier.Variable variable)private intordinal()If the name is "T3", returns 3.StringtoString()
-
-
-
Field Detail
-
name
final String name
-
-
Constructor Detail
-
Variable
Variable(String name)
-
-
Method Detail
-
compareTo
public int compareTo(Unifier.Variable o)
- Specified by:
compareToin interfaceComparable<Unifier.Variable>
-
ordinal
private int ordinal()
If the name is "T3", returns 3. If the name is not of the form "T{integer}" returns -1.
-
apply
public Unifier.Term apply(Map<Unifier.Variable,Unifier.Term> substitutions)
- Specified by:
applyin interfaceUnifier.Term
-
contains
public boolean contains(Unifier.Variable variable)
- Specified by:
containsin interfaceUnifier.Term
-
checkCycle
public void checkCycle(Map<Unifier.Variable,Unifier.Term> map, Map<Unifier.Variable,Unifier.Variable> active) throws Unifier.CycleException
Description copied from interface:Unifier.TermThrows CycleException if expanding this term leads to a cycle.- Specified by:
checkCyclein interfaceUnifier.Term- Throws:
Unifier.CycleException
-
accept
public <R> R accept(Unifier.TermVisitor<R> visitor)
- Specified by:
acceptin interfaceUnifier.Term
-
-