uk.ac.man.cs.rainbow.rapa.data
Class Binary

java.lang.Object
  |
  +--uk.ac.man.cs.rainbow.rapa.data.Expression
        |
        +--uk.ac.man.cs.rainbow.rapa.data.Application
              |
              +--uk.ac.man.cs.rainbow.rapa.data.Binary
All Implemented Interfaces:
Argument, Cloneable, Serializable, Value, VariableContainer
Direct Known Subclasses:
Binary.Add, Binary.Conj, Binary.Disj, Binary.Div, Binary.Equal, Binary.GT, Binary.LT, Binary.Mul, Binary.Sub

public abstract class Binary
extends Application
implements Cloneable

See Also:
Serialized Form

Inner Class Summary
static class Binary.Add
          Addition operator.
static class Binary.Conj
          Boolean conjunction operator.
static class Binary.Disj
          Boolean disjunction operator.
static class Binary.Div
          Division operator.
static class Binary.Equal
          Equality operator.
static class Binary.GT
          "Greater-than" comparison operator.
static class Binary.LT
          "Less-than" comparison operator.
static class Binary.Mul
          Multiplication operator.
static class Binary.Sub
          Subtraction operator.
 
Field Summary
protected  Value e1
           
protected  Value e2
           
 
Fields inherited from class uk.ac.man.cs.rainbow.rapa.data.Application
args, name, resultType
 
Constructor Summary
Binary()
           
Binary(Value e1, Value e2, Type resultType)
           
 
Method Summary
 Value apply(Unifier u)
          Apply a unifier to this value to get a new value.
 Value apply(Value[] args)
           
abstract  Value apply(Value x, Value y)
           
 boolean equals(Value o)
           
abstract  String getName()
           
 int hashCode()
           
 boolean hasVariable()
           
 int inputSize()
           
 boolean occurs(Substitution s, Variable v)
          Check whether the variable occurs in this value under the given substitution.
 Value subst(GeneralSubstitution s)
          Apply a substitution to this value to get a new value.
 Value subst(Substitution s)
          Apply a substitution to this value to get a new value.
 String toString()
           
 Substitution unify(Substitution s, Value e)
          Get the substitution which unifies this value with the given value, after applying the given substitution.
 
Methods inherited from class uk.ac.man.cs.rainbow.rapa.data.Application
evaluate, getArg, getNodeType, getResultType, numArguments
 
Methods inherited from class uk.ac.man.cs.rainbow.rapa.data.Expression
compatableWith, equals
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

e1

protected Value e1

e2

protected Value e2
Constructor Detail

Binary

public Binary(Value e1,
              Value e2,
              Type resultType)

Binary

public Binary()
Method Detail

inputSize

public int inputSize()

apply

public abstract Value apply(Value x,
                            Value y)

apply

public Value apply(Value[] args)

getName

public abstract String getName()
Overrides:
getName in class Application

toString

public String toString()
Overrides:
toString in class Application

apply

public Value apply(Unifier u)
Description copied from interface: Value
Apply a unifier to this value to get a new value.
Overrides:
apply in class Application

occurs

public boolean occurs(Substitution s,
                      Variable v)
Description copied from interface: Value
Check whether the variable occurs in this value under the given substitution.
Overrides:
occurs in class Application

unify

public Substitution unify(Substitution s,
                          Value e)
                   throws NotUnifiable
Description copied from interface: Value
Get the substitution which unifies this value with the given value, after applying the given substitution.
Overrides:
unify in class Application
Following copied from interface: uk.ac.man.cs.rainbow.rapa.data.Value
Parameters:
subst - The substitution to apply first.
val - The value to unify with this value.
Returns:
The substitution that is the combination of the given substitution and whatever extra substitutions are necessary to unify the two values.
Throws:
NotUnifiable - If the two values cannot be unified.

hashCode

public int hashCode()
Overrides:
hashCode in class Application

equals

public boolean equals(Value o)
Overrides:
equals in class Application

hasVariable

public boolean hasVariable()
Overrides:
hasVariable in class Application

subst

public Value subst(Substitution s)
Description copied from interface: Value
Apply a substitution to this value to get a new value.
Overrides:
subst in class Application

subst

public Value subst(GeneralSubstitution s)
Description copied from interface: Value
Apply a substitution to this value to get a new value.
Overrides:
subst in class Application