| package jp.ac.kobe_u.cs.prolog.lang; |
| import java.io.Serializable; |
| /** |
| * The superclass of classes for predicates. |
| * The subclasses of <code>Predicate</code> must override |
| * the <code>exec</code> and <code>arity</code> methods. |
| * |
| * @author Mutsunori Banbara (banbara@kobe-u.ac.jp) |
| * @author Naoyuki Tamura (tamura@kobe-u.ac.jp) |
| * @version 1.0 |
| */ |
| public abstract class Predicate implements Serializable { |
| /** Holds a continuation goal */ |
| public Predicate cont = null; |
| |
| /** |
| * Executes this predicate and returns a continuation goal. |
| * @param engine current Prolog engine |
| * @exception PrologException if a Prolog exception is raised. |
| * @see Prolog |
| */ |
| public abstract Predicate exec(Prolog engine) throws PrologException; |
| |
| /** Returns the arity of this predicate. */ |
| public abstract int arity(); |
| |
| /** Sets the specified arguments and continuation goal. */ |
| public void setArgument(Term[] args, Predicate cont){} |
| } |