public static IInstruction Create(char instruction, TapeMemory tapeMemory, BrainmessProgram program)
 {
     IInstruction iInstruction = null;
     switch (instruction)
     {
         case '>':
             iInstruction = new ForwardInstruction(tapeMemory, program);
             break;
         case '<':
             iInstruction = new BackwardInstruction(tapeMemory, program);
             break;
         case '+':
             iInstruction = new IncreamentInstruction(tapeMemory, program);
             break;
         case '-':
             iInstruction = new DecreamentInstruction(tapeMemory, program);
             break;
         case '.':
             iInstruction = new OutputInstruction(tapeMemory, program);
             break;
         case ',':
             iInstruction = new InputInstruction(tapeMemory, program);
             break;
         case '[':
             iInstruction = new LoopForwardInstruction(tapeMemory, program);
             break;
         case ']':
             iInstruction = new LoopBackwardInstruction(tapeMemory, program);
             break;
     }
     return iInstruction;
 }
 public LoopForwardInstruction(TapeMemory tapeMemory, BrainmessProgram program)
 {
     TapeMemory = tapeMemory;
     Program = program;
 }
 public BrainmessInterpreter()
 {            
     TapeMemory = new TapeMemory();
 }
 public DecreamentInstruction(TapeMemory tapeMemory, BrainmessProgram program)
 {
     TapeMemory = tapeMemory;
     Program = program;
 }
 public InputInstruction(TapeMemory tapeMemory, BrainmessProgram program)
 {
     TapeMemory = tapeMemory;
     Program = program;
 }