GNU Prolog for Java

gnu.prolog.vm.interpreter.instruction
Class Instruction

java.lang.Object
  extended by gnu.prolog.vm.interpreter.instruction.Instruction
All Implemented Interfaces:
Installable
Direct Known Subclasses:
IAllocate, ICall, ICreateCompoundTerm, ICreateVariable, ICut, IDup, IFail, IJump, IPop, IPushArgument, IPushConstant, IPushEnvironment, IRestoreState, IReturn, ISaveCut, ISaveState, IStoreEnvironment, IThrow, ITrue, ITrustMe, IUnify, RetryInstruction

public abstract class Instruction
extends Object
implements Installable

base call for instruction


Field Summary
 int codePosition
          code position of instruction
 
Constructor Summary
Instruction()
           
 
Method Summary
abstract  int execute(ExecutionState state, BacktrackInfo bi)
          execute instruction
 void install(Environment env)
          install instruction to environment
 void uninstall(Environment env)
          uninstall instruction from environment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

codePosition

public int codePosition
code position of instruction

Constructor Detail

Instruction

public Instruction()
Method Detail

execute

public abstract int execute(ExecutionState state,
                            BacktrackInfo bi)
                     throws PrologException
execute instruction

Parameters:
state - state within which instruction will be executed
bi -
Returns:
ExecutionState.{BACKTRACK,NEXT,JUMP,RETURN}: instruction to caller how to execute next instruction
Throws:
PrologException - if code is throwing prolog exception

install

public void install(Environment env)
install instruction to environment

Specified by:
install in interface Installable
Parameters:
env - Environment to install the predicate

uninstall

public void uninstall(Environment env)
uninstall instruction from environment

Specified by:
uninstall in interface Installable
Parameters:
env - Environment to install the predicate

GNU Prolog for Java