public class StackMachineV2 extends StackMachine{
  protected Instruction makeInstruction( String opcode, int[] operands){
	return StackMachineV2InstructionExp.make( opcode, operands);
  }


abstract class StackMachineV2InstructionExp extends StackMachineInstruction{
  public static Instruction make( String opcode, int[] operands){
	if (opcode.equals( "xor")) 	return( new Xor() );
	if (opcode.equals( "not")) 	return( new Not() );
	return StackMachineInstruction.make( opcode, operands);
  }
}


class Xor extends ZeroOpStackMachineInstruction{
  public void exec( Machine m ){ ((StackMachine) m).XOR(); }
}//Xor

class Not extends ZeroOpStackMachineInstruction{
  public void exec( Machine m ){ ((StackMachine) m).NOT(); }
}//Not


