Ejemplo n.º 1
0
        public void Processing()
        {
            _text = _input.Read();
            if (_errors.FindReport(_text))
            {
                _count = 0;
                for (int i = 0; i < _text.Length; i++)
                {
                    switch (_text[i])
                    {
                    case '+':
                        _massChars[_count]++;
                        break;

                    case '-':
                        _massChars[_count]--;
                        break;

                    case '>':
                        _count++;
                        break;

                    case '<':
                        _count--;
                        break;

                    case '[':
                        if (_massChars[_count] == 0)
                        {
                            i = (FindEndWhile(i) + 1);
                        }
                        break;

                    case ']':
                        if (_massChars[_count] != 0)
                        {
                            i = (FindStartWhile(i) - 1);
                        }
                        break;

                    case '.':
                        _output.Show(_massChars[_count].ToString());
                        break;
                    }
                    if ((_count < 0) || (_count >= 30000))
                    {
                        _output.Show("Индекс находился вне границ массива\r\n");
                        return;
                    }
                }
            }
            else
            {
                _output.Show("Ошибка компиляции");
            }
        }