while (this.isViable()) {
final Instruction<T> currentInstruction = pc.getInstruction();
assert currentInstruction != null;
if (finer) {
final int index = pc.getIndex();
logger.logp(Level.FINER, this.getClass().getName(), "run", "Before running {0} {1} ({2}) at input position {3}", new Object[] { this, currentInstruction, Integer.valueOf(index), Integer.valueOf(this.getItemPointer()) });
}
this.step();
if (finer) {
if (this.isViable()) {
logger.logp(Level.FINER, this.getClass().getName(), "run", "After running {0} {1}; input position is now {2}", new Object[] { this, currentInstruction, Integer.valueOf(this.getItemPointer()) });