Package net.hydromatic.morel.util
Class Unifier.Variable
- java.lang.Object
-
- net.hydromatic.morel.util.Unifier.Variable
-
- All Implemented Interfaces:
java.lang.Comparable<Unifier.Variable>,Unifier.Term
- Enclosing class:
- Unifier
public static final class Unifier.Variable extends java.lang.Object implements Unifier.Term, java.lang.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 Modifier and Type Field Description (package private) java.lang.Stringname
-
Constructor Summary
Constructors Constructor Description Variable(java.lang.String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R> Raccept(Unifier.TermVisitor<R> visitor)Unifier.Termapply(java.util.Map<Unifier.Variable,Unifier.Term> substitutions)voidcheckCycle(java.util.Map<Unifier.Variable,Unifier.Term> map, java.util.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.java.lang.StringtoString()
-
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
compareTo
public int compareTo(Unifier.Variable o)
- Specified by:
compareToin interfacejava.lang.Comparable<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(java.util.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(java.util.Map<Unifier.Variable,Unifier.Term> map, java.util.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
-
-