Лист 5.1. Класс СPushDownBase

1. Назначение
Представляет собой базовый класс для реализации объектов типа магазинный автомат (АМП) для реализации грамматики любых вложенных символов. Инкапсулирует свойства и методы типичные для объектов данного типа.

2. Базовые классы
LFsaAppl (базовый автоматный класс)

3. Связи
Имеет связь с блоком, поставляющим на вход АМП символы.

4. Функционирование
Данный класс не задает какую-то конкретную грамматику. Последняя определяется моделью поведения автомата производного класса.
В данном случае предполагается следующий алгоритм работы с базовой моделью (моделью АМП).

  1. В конструкторе порожденного класса определяет через модель автомата соответствующая грамматика (алгоритм разбора строк вложенных символов).
  2. Устанавливаются значения левого и правого символов грамматики.
  3. С помощью метода Init АМП инициализируется. Например, устанавливается в исходное состояние стек.
  4. На вход АМП подается символ.
  5. По состоянию модели АМП определяется результат разбора очередного символа.

Примечание 1. Детально конкретный алгоритм разбора, представляющий некую грамматику, описывается в производном классе.