The Instruction class has the following structure :
abstract public class Instruction implements ReturnCodes, Cloneable { protected boolean terminated = false; public void reset(){ terminated = false; } final public void terminate(){ terminated = true; } final public boolean isTerminated(){ return terminated; } abstract protected byte activation(Machine machine); final public byte activ(Machine machine) { if (terminated){ return TERM; } byte res = activation(machine); if (res == TERM){ terminated = true; } return res; } public boolean equals(Instruction inst){ return this.getClass() == inst.getClass(); } abstract public String toString(); public Object clone(){ ... } }
Note that activ and activation have a parameter which is the reactive machine running the instruction. Reactive machines are described in section 2.2.