JSHOP2
Class TermConstant

java.lang.Object
  extended by JSHOP2.CompileTimeObject
      extended by JSHOP2.Term
          extended by JSHOP2.TermConstant

public class TermConstant
extends Term

Each constant symbol, both at compile time and at run time, is an instance of this class.

Version:
1.0.3
Author:
Okhtay Ilghami, http://www.cs.umd.edu/~okhtay

Field Summary
private static TermConstant[] constants
          To represent the constant symbols that we already know exist, so that there will be no duplicate copies of those symbols.
private  int index
          Constant symbols are mapped to integers at compile time, and these integers are used thereafter to represent the constant symbols.
 
Fields inherited from class JSHOP2.CompileTimeObject
endl
 
Constructor Summary
TermConstant(int indexIn)
          To initialize this constant symbol.
 
Method Summary
 Term bind(Term[] binding)
          Since this term is a constant symbol, binding will not change it, therefore, simply this constant symbol itself is returned.
 boolean equals(Term t)
          Whether or not another term is equivalent to this constant symbol.
 boolean findUnifier(Term t, Term[] binding)
          Find a unifier between this constant symbol and another given term.
static TermConstant getConstant(int index)
          To return the correponding existing constant symbol.
 int getIndex()
          To get the index for this constant symbol.
static void initialize(int size)
          To initialize an array of constant symbols that we already know exist, so that there will be no duplicate copies of those symbols.
 boolean isGround()
          This function always returns true because a constant symbol is always ground by definition.
 java.lang.String toCode()
          This function produces Java code to create this constant symbol as a term.
 java.lang.String toString()
          Constant symbols are mapped at compile time to integers, this function, for printing purposes, maps them back to the strings they were before.
 
Methods inherited from class JSHOP2.Term
isNil, merge, merge, print
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

constants

private static TermConstant[] constants
To represent the constant symbols that we already know exist, so that there will be no duplicate copies of those symbols. In other words, all constant symbols that represent the same thing in different places point to the corresponding element in this array at run time.


index

private int index
Constant symbols are mapped to integers at compile time, and these integers are used thereafter to represent the constant symbols.

Constructor Detail

TermConstant

public TermConstant(int indexIn)
To initialize this constant symbol.

Parameters:
indexIn - the integer associated with this constant symbol.
Method Detail

bind

public Term bind(Term[] binding)
Since this term is a constant symbol, binding will not change it, therefore, simply this constant symbol itself is returned.

Specified by:
bind in class Term
Parameters:
binding - an array of terms, indexed by the integers associated with variable symbols.
Returns:
the result of binding.

equals

public boolean equals(Term t)
Whether or not another term is equivalent to this constant symbol.

Specified by:
equals in class Term
Parameters:
t - the term being compared to this term.
Returns:
true if the two terms are equal, false otherwise.

findUnifier

public boolean findUnifier(Term t,
                           Term[] binding)
Find a unifier between this constant symbol and another given term. Since this term is a constant symbol, this boils down to whether or not the other given term is equal to this one.

Specified by:
findUnifier in class Term
Parameters:
t - the term with which we are finding a unifier.
binding - the unifier to be returned.
Returns:
false if the two terms can not be unified, true otherwise.

getConstant

public static TermConstant getConstant(int index)
To return the correponding existing constant symbol.

Parameters:
index - the index of the constant symbol to be returned.
Returns:
the corresponding existing constant symbol.

getIndex

public int getIndex()
To get the index for this constant symbol.

Returns:
the integer associated with this constant symobl.

initialize

public static void initialize(int size)
To initialize an array of constant symbols that we already know exist, so that there will be no duplicate copies of those symbols. In other words, all constant symbols that represent the same thing in different places point to the corresponding element in this array at run time.

Parameters:
size - the number of existing constant symbols.

isGround

public boolean isGround()
This function always returns true because a constant symbol is always ground by definition.

Specified by:
isGround in class Term
Returns:
true if this term is ground, false otherwise.

toCode

public java.lang.String toCode()
This function produces Java code to create this constant symbol as a term.

Specified by:
toCode in class CompileTimeObject
Returns:
the produced code as a String.

toString

public java.lang.String toString()
Constant symbols are mapped at compile time to integers, this function, for printing purposes, maps them back to the strings they were before.

Specified by:
toString in class Term
Returns:
the printable String that shows the value of this term.