ubc.cs.JLog.Terms
Class jDCG

java.lang.Object
  extended by ubc.cs.JLog.Foundation.jType
      extended by ubc.cs.JLog.Terms.jTerm
          extended by ubc.cs.JLog.Terms.iPredicate
              extended by ubc.cs.JLog.Terms.jBuiltinPredicate
                  extended by ubc.cs.JLog.Terms.jBinaryBuiltinPredicate
                      extended by ubc.cs.JLog.Terms.jDCG
All Implemented Interfaces:
iType, iUnifiable, iConsultable, iName, iNameArity, iTerm, iValue

public class jDCG
extends jBinaryBuiltinPredicate


Nested Class Summary
protected  class jDCG.dcgFork
           
protected  class jDCG.dcgNotFork
           
protected  class jDCG.dcgPredicateUpdate
           
protected  class jDCG.dcgTerminalPredicateUpdate
           
protected  class jDCG.dcgUnifyPredicateUpdate
           
protected  class jDCG.dcgVariableGenerator
           
protected static interface jDCG.iPredicateUpdate
           
 
Field Summary
 
Fields inherited from class ubc.cs.JLog.Terms.jBinaryBuiltinPredicate
lhs, rhs
 
Fields inherited from class ubc.cs.JLog.Foundation.jType
type
 
Fields inherited from interface ubc.cs.JLog.Terms.iTerm
EQUAL, GREATER_THAN, LESS_THAN
 
Fields inherited from interface ubc.cs.JLog.Foundation.iType
TYPE_ARITHMETIC, TYPE_ATOM, TYPE_BUILTINPREDICATE, TYPE_COMMAND, TYPE_COMPARE, TYPE_COMPOUND, TYPE_CONS, TYPE_IF, TYPE_INTEGER, TYPE_LIST, TYPE_NULLLIST, TYPE_NUMERICCOMPARE, TYPE_OBJECT, TYPE_OPERATOR, TYPE_OR, TYPE_ORPREDICATE, TYPE_PREDICATE, TYPE_PREDICATETERMS, TYPE_REAL, TYPE_TYPE, TYPE_UNARYARITHMETIC, TYPE_UNARYOPERATOR, TYPE_UNDEFINED, TYPE_VARIABLE
 
Constructor Summary
jDCG(jTerm r)
           
jDCG(jTerm l, jTerm r)
           
 
Method Summary
protected  void addDCGFork(java.util.Vector pr, java.util.Vector l, java.util.Vector r)
           
 void addGoals(jGoal g, iGoalStack goals)
          Adds goal to prove this predicate onto goal stack.
 void addGoals(jGoal g, jVariable[] vars, iGoalStack goals)
          Adds goal to prove this predicate onto goal stack.
protected  jPredicate adjustPredicate(jPredicate src, jTerm t2, jTerm t3)
           
protected  jListPair adjustTerminalList(jListPair src, jTerm SN)
           
 jBinaryBuiltinPredicate duplicate(jTerm l, jTerm r)
           
 java.lang.String getName()
          Returns the name of this instance.
protected  jCompoundTerm makeCompoundTerm(jCompoundTerm t)
           
protected  jTerm makeDCGBase(jTerm S0, jTerm SN)
           
protected  void makeDCGBaseCompoundTerm(jTerm r, jCompoundTerm terms, java.util.Vector pr)
           
protected  jTerm makeDCGBaseTerm(jTerm r, java.util.Vector pr)
           
protected  void makeDCGConsList(jListPair src, jCompoundTerm terms, java.util.Vector pr)
           
protected  jPredicate makeDCGHead(jTerm S0, jTerm SN)
           
protected  jPredicate makeDCGPhrase(jVariable v, java.util.Vector pr)
           
 jRule makeDCGRule()
           
 jTerm makeDCGTerm()
           
 jTerm makeDCGTerm(jTerm S, jTerm E)
           
protected  jPredicate makeDCGTERMINAL(jTerm t, java.util.Vector pr)
           
 java.lang.String toString(boolean usename)
          Produces a string identifying this term, suitable for display to the console.
protected  void updateDCGPredicateRegistry(java.util.Vector pr, jTerm S, jTerm E, jDCG.dcgVariableGenerator g)
           
 
Methods inherited from class ubc.cs.JLog.Terms.jBinaryBuiltinPredicate
compareArguments, consult, consultReset, copy, duplicate, enumerateVariables, equivalenceArguments, getArguments, getArity, getLHS, getRHS, isConsultNeeded, prove, registerUnboundVariables, registerVariables, unifyArguments
 
Methods inherited from class ubc.cs.JLog.Terms.jBuiltinPredicate
equivalence, unify
 
Methods inherited from class ubc.cs.JLog.Terms.iPredicate
compare
 
Methods inherited from class ubc.cs.JLog.Terms.jTerm
compare, copy, getTerm, getValue, requiresCompleteVariableState, toString
 
Methods inherited from class ubc.cs.JLog.Foundation.jType
getType, objectToString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

jDCG

public jDCG(jTerm l,
            jTerm r)

jDCG

public jDCG(jTerm r)
Method Detail

getName

public java.lang.String getName()
Description copied from interface: iName
Returns the name of this instance.

Specified by:
getName in interface iName
Specified by:
getName in interface iTerm
Overrides:
getName in class jTerm
Returns:
String containing name of this instance.

makeDCGRule

public jRule makeDCGRule()

makeDCGTerm

public jTerm makeDCGTerm(jTerm S,
                         jTerm E)

makeDCGTerm

public jTerm makeDCGTerm()

makeDCGBase

protected jTerm makeDCGBase(jTerm S0,
                            jTerm SN)

makeDCGBaseTerm

protected jTerm makeDCGBaseTerm(jTerm r,
                                java.util.Vector pr)

updateDCGPredicateRegistry

protected void updateDCGPredicateRegistry(java.util.Vector pr,
                                          jTerm S,
                                          jTerm E,
                                          jDCG.dcgVariableGenerator g)

makeDCGBaseCompoundTerm

protected void makeDCGBaseCompoundTerm(jTerm r,
                                       jCompoundTerm terms,
                                       java.util.Vector pr)

makeDCGConsList

protected void makeDCGConsList(jListPair src,
                               jCompoundTerm terms,
                               java.util.Vector pr)

makeDCGTERMINAL

protected jPredicate makeDCGTERMINAL(jTerm t,
                                     java.util.Vector pr)

makeDCGPhrase

protected jPredicate makeDCGPhrase(jVariable v,
                                   java.util.Vector pr)

addDCGFork

protected void addDCGFork(java.util.Vector pr,
                          java.util.Vector l,
                          java.util.Vector r)

makeCompoundTerm

protected jCompoundTerm makeCompoundTerm(jCompoundTerm t)

makeDCGHead

protected jPredicate makeDCGHead(jTerm S0,
                                 jTerm SN)

adjustTerminalList

protected jListPair adjustTerminalList(jListPair src,
                                       jTerm SN)

adjustPredicate

protected jPredicate adjustPredicate(jPredicate src,
                                     jTerm t2,
                                     jTerm t3)

addGoals

public void addGoals(jGoal g,
                     jVariable[] vars,
                     iGoalStack goals)
Description copied from class: iPredicate
Adds goal to prove this predicate onto goal stack. This version is called when the original predicate must duplicate itself (or its arguments). Add goals in the reverse order you want them evaluated.

Overrides:
addGoals in class jBinaryBuiltinPredicate
Parameters:
g - The super-goal jGoal for the sub-goal that this function will add.
vars - The vector of duplicate variables produced from the previous call to registerVariables. Needed for call to duplicate.
goals - The iGoalStack to add the goal to.

addGoals

public void addGoals(jGoal g,
                     iGoalStack goals)
Description copied from class: iPredicate
Adds goal to prove this predicate onto goal stack. This version is called when the original predicate is already duplicated (usually as part of an argument for another predicate). Add goals in the reverse order you want them evaluated.

Overrides:
addGoals in class jBinaryBuiltinPredicate
Parameters:
g - The super-goal jGoal for the sub-goal that this function will add.
goals - The iGoalStack to add the goal to.

duplicate

public jBinaryBuiltinPredicate duplicate(jTerm l,
                                         jTerm r)
Specified by:
duplicate in class jBinaryBuiltinPredicate

toString

public java.lang.String toString(boolean usename)
Description copied from class: jTerm
Produces a string identifying this term, suitable for display to the console. param usename determines whether to display variables by name or identity. false is the default for displaying the term, true for displaying this term in a user query.

Specified by:
toString in interface iTerm
Overrides:
toString in class jBinaryBuiltinPredicate
Returns:
String which is a textual representation of this term.