ілення лексичних одиниць з вхідного пропозиції;
Побудувати в програмі матриці змін станів і виклику підпрограм;
Забезпечити видачу повідомлень про різні види синтаксичних помилок у вхідних пропозиціях
/p>
Позначення термінальних символів при написанні граммматікі:
ц - термінальний символ "цифра" (0,1,2,3,4,5,6,7,8 , 9);
б - термінальний символ "буква" ('A' .. 'Z', 'a' .. 'z' );
/p>
Z - > Q;
P - > Q,
Q - > б | Pб | qб | Qц
Граматика описує пропозиції види:
У ході розбору пропозиції заданими ідентифікаторами повинен бути заповнений масив S.
/p>
Введення:
Введення вихідних даних здійснюється з файлу input.txt, який містить один рядок, яка містить пропозицію для розбору.
/p>
Висновок
Для рядка у вхідному файлі програма повинна вивести дві або три рядки рішення згідно следуюшего правилом:
Якщо пропозиція коректне, то програма повинна вивести в перший рядок вихідне вираз, у другий рядок число 0, і в третій рядок значення елементів масиву SS (i), розділені одним пропуском;
Якщо пропозиція некоректне, то програма повинна вивести в перший рядок вихідне вираз, а у другий рядок вивести номер помилки (1,2 або 3):
1
Якщо в процесі розбору зустрівся неприпустимий символ
2
Якщо в процесі розбору зустрівся допустимий символ, але який не може знаходиться на цьому місці < ;/ TD>
3
Якщо в процесі розбору виявилося, що пропозиція не закінчено
/p>
Приклад 1
Файл введення input.txt містить:
, bb, d7;
Файл виведення output.txt для даного вхідного файлу повинен містити такі рядки:
, bb, d7;
(1) = aaa S (2) = bb S (3) = d7
Приклад 2
Файл введення inp...