GNU Prolog for Java

gnu.prolog.vm.interpreter.instruction
Class ICall

java.lang.Object
  extended by gnu.prolog.vm.interpreter.instruction.Instruction
      extended by gnu.prolog.vm.interpreter.instruction.ICall
All Implemented Interfaces:
Installable, PrologCodeListener, EventListener

public class ICall
extends Instruction
implements PrologCodeListener

call instruction.


Field Summary
 PrologCode code
          code to call, if predicate is dynamic it changes after each update
 CompoundTermTag tag
          tag of predicate to call
 
Fields inherited from class gnu.prolog.vm.interpreter.instruction.Instruction
codePosition
 
Constructor Summary
ICall(CompoundTermTag tag)
          a constructor
 
Method Summary
protected  void ensureLoaded(Environment env)
          ensure that code is loaded in predicate
 int execute(ExecutionState state, BacktrackInfo bi)
          execute call instruction within specified sate
 void install(Environment env)
          install instruction to environment
 void prologCodeUpdated(PrologCodeUpdatedEvent evt)
          notify instruction that prolog code for predicate was updated
 String toString()
          convert instruction to string
 void uninstall(Environment env)
          uninstall instruction from environment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tag

public CompoundTermTag tag
tag of predicate to call


code

public transient PrologCode code
code to call, if predicate is dynamic it changes after each update

Constructor Detail

ICall

public ICall(CompoundTermTag tag)
a constructor

Parameters:
tag -
Method Detail

toString

public String toString()
convert instruction to string

Overrides:
toString in class Object

execute

public int execute(ExecutionState state,
                   BacktrackInfo bi)
            throws PrologException
execute call instruction within specified sate

Specified by:
execute in class Instruction
Parameters:
state - state within which instruction will be executed
Returns:
instruction to caller how to execute next instruction
Throws:
PrologException - if code is throwing prolog exception

prologCodeUpdated

public void prologCodeUpdated(PrologCodeUpdatedEvent evt)
notify instruction that prolog code for predicate was updated

Specified by:
prologCodeUpdated in interface PrologCodeListener

install

public void install(Environment env)
install instruction to environment

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

uninstall

public void uninstall(Environment env)
uninstall instruction from environment

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

ensureLoaded

protected void ensureLoaded(Environment env)
                     throws PrologException
ensure that code is loaded in predicate

Parameters:
env -
Throws:
PrologException

GNU Prolog for Java