5.4.3. Описание работы АП
В процессе работы АТ-преобразователь должен читать символы, находящиеся в вершине магазина, и выполнять действия, связанные не только с распознаванием входной цепочки и формированием выходной цепочки, но и действия по обработке атрибутов, которые можно описать в виде следующих правил.
1) Обработка входной цепочки начинается,
когда в магазине находится начальный символ грамматики и маркер дна. Первая
инструкция преобразователя должна заносить в магазин начальный символ
грамматики и присваивать наследуемым атрибутам начального символа начальные
значения. При этом поля синтезируемых атрибутов заполняются пустыми указателями.
2) Если в вершине магазина находится входной
символ, имеющий атрибут, то производится считывание очередного символа
с входной ленты, и эти символы сравниваются. Если они совпадают, то читается
атрибут входного символа с ленты и записывается в ячейки магазина, образующие
цепочку, на которую ссылается указатель, записанный в поле атрибута рассматриваемого
входного символа. Затем входной символ и его атрибут удаляются из магазина,
и входная головка сдвигается.
3) Если в вершине магазина находится входной
символ, не имеющий атрибута, то производится считывание очередного входного
символа с входной ленты, и эти символы сравниваются. Если они совпадают,
то символ удаляется из магазина, и входная головка сдвигается на одну позицию.
4) Если в вершине магазина находится символ
действия, то выполняется чтение атрибутов, соответствующих его аргументам,
затем вычисляются значения в соответствии с функцией символа действия синтезируемых
атрибутов, и эти значения помещаются во все поля, определяемые цепочкой
указателей, на которую ссылается указатель в поле синтезируемого атрибута.
Если символ действия должен передаваться на выход, то осуществляется запись
этого символа и его атрибутов на выходную ленту.
5) Если в вершине магазина находится нетерминал,
то он удаляется из магазина и вместо него в магазине строится фрагмент,
соответствующий правой части правила грамматики, и устанавливаются связи
этого фрагмента с атрибутами удаленного символа, которые оказываются расположенными
непосредственно под создаваемым фрагментом. Такие связи должны быть определены
в инструкции построения фрагмента.
6) Если в вершине магазина находится атрибут,
значение которого определено, то он удаляется из магазина.