JSHOP2
Class TermCall

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

public class TermCall
extends Term

Each call term, 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  List args
          The list that represents the arguments of the call term.
private  Calculate calculate
          The Java implementation of the function that is called in this call term.
private  java.lang.String func
          The name of the function that is called in this call term as a String.
 
Fields inherited from class JSHOP2.CompileTimeObject
endl
 
Constructor Summary
TermCall(List argsIn, Calculate calculateIn, java.lang.String funcIn)
          To initialize this call term.
TermCall(List argsIn, java.lang.String funcIn)
          To initialize this call term.
 
Method Summary
 Term bind(Term[] binding)
          To apply a given binding to the list of arguments of the function call.
 boolean equals(Term t)
          Whether or not another term is equivalent to the result of this call term.
 boolean findUnifier(Term t, Term[] binding)
          Find a unifier between the result of this call term and another given term.
 boolean isGround()
          Check the argument list of this call term for variables.
 java.lang.String toCode()
          This function produces Java code to create this call term.
 java.lang.String toString()
          This function is used to print this call term.
 
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

args

private List args
The list that represents the arguments of the call term. Using LISP terminology, this is equal to (CDR ct) where ct is this call term.


calculate

private Calculate calculate
The Java implementation of the function that is called in this call term.


func

private java.lang.String func
The name of the function that is called in this call term as a String.

Constructor Detail

TermCall

public TermCall(List argsIn,
                java.lang.String funcIn)
To initialize this call term. This constructor is used at compile time.

Parameters:
argsIn - the argument list.
funcIn - the name of the function to be applied.

TermCall

public TermCall(List argsIn,
                Calculate calculateIn,
                java.lang.String funcIn)
To initialize this call term. This constructor is used at run time.

Parameters:
argsIn - the argument list.
calculateIn - the Java implementation of the function to be applied.
funcIn - the name of the function to be applied.
Method Detail

bind

public Term bind(Term[] binding)
To apply a given binding to the list of arguments of the function call.

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 the result of this call term.

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 the result of this call term and another given term.

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.

isGround

public boolean isGround()
Check the argument list of this call term for variables.

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 call term.

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

toString

public java.lang.String toString()
This function is used to print this call term.

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