示例#1
0
        private void _run(Op[] program, Tape tape)
        {
            foreach (Op op in program)
            {
                switch (op.op)
                {
                case OpT.INC: tape.Inc(op.v); break;

                case OpT.MOVE: tape.Move(op.v); break;

                case OpT.LOOP: while (tape.CurrentCell > 0)
                    {
                        _run(op.loop, tape);
                    }
                    break;

                case OpT.PRINT: p.Print(tape.CurrentCell); break;
                }
            }
        }