gn="justify">
Вихідний файл:
Laba0101. pas або Laba0101. c
Вхідний файл:
input. txt
Вихідний файл:
output. txt
Постановка завдання
Для заданої регулярної граматики написати і налагодити програму синтаксичного аналізу пропозицій породжуваного мови. У ході виконання завдання:
Розробити підпрограми, що забезпечують виділення лексичних одиниць з вхідного пропозиції;
Побудувати в програмі матриці змін станів і виклику підпрограм;
Забезпечити видачу повідомлень про різні види синтаксичних помилок у вхідних пропозиціях
/p>
Позначення термінальних символів при написанні граммматікі:
ц - термінальний символ "цифра" (0,1,2,3,4,5,6,7,8 , 9);
б - термінальний символ "буква" ('A'. 'Z', 'a'. 'z');
/p>
Z - > Tц | Zц
T - & gt ; P + | P-
P - > Rб | Pб | & ; nbsp; Pц
R - > Q =
Q - > б | Qб & nbsp; | Qц
Граматика описує пропозиції види: < ідентифікатор > = < ідентифікатор > {+ | -} < ціле & gt ;.
У ході розбору пропозиції повинні бути отримані дві змінні з ідентифікаторами і значення константи (можливо негативне).
/p>
Введення:
Введення вихідних даних здійснюється з файлу input. txt, який містить рядок, що містить пропозицію для розбору.
/p>
Висновок
Для рядка у вхідному файлі програма повинна вивести дві або три рядки рішення згідно следуюшего правилом:
Якщо пропозиція коректне, то програма повинна вивести в перший рядок вихідне вираз, у другий рядок число 0, і в третій рядок дві змінні з ідентифікаторами p1 і p2, і значення константи k, розділені одним пропуском;
Якщо пропозиція некоректне, то програма повинна вивести в перший рядок вихідне вираз, а у другий рядок вивести номер помилки (1,2 або 3):
1
Якщо в процесі розбору зустрівся неприпустимий символ
<...