p align="justify">% token AP_DN_KW AP_NUMBER AP_CPND_KW AP_NAME_KW AP_XPLN_KW AP_DISPLAYFMT_KW AP_FIRSTLAST_KW AP_VMB_KW AP_VMBCOS_KW AP_SECONDDN_KW AP_THIRDDN_KW AP_VMBSTATE_KW AP_CONFIGURED_KW AP_TYPE_KW AP_SL AP_TN_KW AP_TN AP_KEY AP_KEY_KW AP_H_KW AP_MARP_KW AP_DES_KW AP_NAME AP_DATE AP_YEAR
% type list record userinfo dopinfo type summary
%%: record | list record;: userinfo dopinfo type summary;: AP_DN_KW AP_NUMBER AP_CPND_KW AP_NAME_KW AP_NAME AP_NAME AP_XPLN_KW AP_NUMBER AP_DISPLAYFMT_KW AP_FIRSTLAST_KW
{("% s t", $ 2); ("% s t", $ 5); (" t% s", $ 6); (" n --------------------------------- "); (" n ");
};: AP_VMB_KW AP_VMBCOS_KW AP_NUMBER AP_SECONDDN_KW AP_THIRDDN_KW AP_VMBSTATE_KW AP_CONFIGURED_KW
{};: AP_TYPE_KW
{};: AP_TN_KW AP_TN AP_KEY_KW AP_KEY AP_H_KW AP_MARP_KW AP_DES_KW AP_DATE AP_YEAR
{};
%%
4. Опис детермінованою автоматної моделі синтаксичного аналізатора
Основне завдання синтаксичного аналізу - розбір структури програми. Як правило, під структурою розуміється дерево, відповідне розбору в контекстно-вільної граматики мови. В даний час найчастіше використовується або LL (1) - аналіз (і його варіант - рекурсивний спуск), або LR (1) - аналіз і його варіанти (LR (0), SLR (1), LALR (1) та ін ). Рекурсивний спуск частіше використовується при ручному програмуванні синтаксичного аналізатора, LR (1) - при використанні систем автоматизації побудови синтаксичних аналізаторів. Результатом синтаксичного аналізу є синтаксичне дерево з посиланнями на таблицю імен. У процесі синтаксичного аналізу також виявляються помилки, пов'язані зі структурою програми. p align="justify"> Синтаксичний аналізатор, генерований програмою Bison будується на основі LR (1) - граматики
Алгоритм синтаксичного аналізу на основі LR (k) - граматики відноситься до класу алгоритмів висхідного розбору.
рядку керуючої таблиці М (LR-таблиця розбору) ставляться у відповідність стану, в яких може перебувати аналізатор, стовпцями - елементи множини {V Г€ T Г€ $}. Кожен запис робочого стека являє собою пару: (символ, номер стану).
Перед початком роботи алгоритму в робочий стек заноситься пара (? , 1), де 1 - символ початкового стану аналізатора . Можливі значення елементів таблиці і їх інтерпретація алгоритмом розбору наведені в таблиці.
програмування строковий синтаксичнийаналіз
Таблиця можливих значень елементів керуючої таблиці
Знач...