コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Interpreter"/> class.
        /// </summary>
        /// <param name="instructions">The instructions.</param>
        /// <param name="version">The version.</param>
        public Interpreter(string instructions, BFVersion version = BFVersion.Classic)
        {
            switch (version)
            {
            case BFVersion.ExtT1:
            {
                interpreter = new InterpreterExtendedOne(instructions);
                break;
            }

            case BFVersion.ExtT2:
            {
                interpreter = new InterpreterExtendedTwo(instructions);
                break;
            }

            case BFVersion.ExtT3:
            {
                interpreter = new InterpreterExtendedThree(instructions);
                break;
            }

            default:
            {
                interpreter = new InterpreterClassic(instructions);
                break;
            }
            }

            Init();
        }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Interpreter"/> class.
        /// </summary>
        /// <param name="instructions">The instructions.</param>
        /// <param name="input">The input.</param>
        /// <param name="output">The output.</param>
        /// <param name="version">The version.</param>
        public Interpreter(string instructions, Func <byte> input, Action <byte> output,
                           BFVersion version = BFVersion.Classic)
        {
            switch (version)
            {
            case BFVersion.ExtT1:
            {
                interpreter = new InterpreterExtendedOne(instructions, input, output);
                break;
            }

            case BFVersion.ExtT2:
            {
                interpreter = new InterpreterExtendedTwo(instructions, input, output);
                break;
            }

            default:
            {
                interpreter = new InterpreterClassic(instructions, input, output);
                break;
            }
            }

            Init();
        }