Реферат: Розробка системних програмних модулів систем програмування
Блок 15 - Перевіряє чи наступний символ READ
Блок 16 - Виконання функції ParseREAD()
Блок 17 - Виконання функції ParseSTART()
Блок 18 - Перевіряє чи наступний символ <ident>
Блок 19 - Виконання функції ParseEqution()
Блок 20 - Виконання функції ParseSTART()
Блок 21 - Перевіряє чи наступний символ WHILE
Блок 22 - Виконання функції ParseWHILE()
Блок 23 - Виконання функції ParseSTART()
Блок 24 – Якщо інший символ?
Блок 25 – Функція Error();
Блок 26 - Виконання функції ParseSTART()
Блок 27 - Перевіряє чи наступний символ FINISH
Блок 28 – Якщо не фініш виконання функції Error();
Блок 29 - Завершення Синтаксичного аналізатора
3.4.3 Опис програми реалізації синтаксичного та семантичного аналізатора
На вхід синтаксичного аналізатора подається таблиця лексем, створена на етапі лексичного аналізу.
В синтаксичному аналізі використовуються функції для робору всіх конструкції вхідної мови, вони рекурсивно викликають одна одну відповідно до заданих правил. Для кожного нетерміналу розроблена функція, яка перевіряє правило, яке відповідає даному нетерміналові. Також додатково описані функції Infix_to_Postfix() і Infix_to_Postfix_b() і функція isDeclaredVariable() яка виконує семантичний аналіз, тобто перевіряє чи змінна оголошена, чи вона відповідно до контексту має правельний тип і чи має значення.
3.5.Розробка генератора коду
3.5.1 Розробка граф-схеми алгоритму
Так як генерація коду тісно пов’язана з синтаксичним аналізом, тобто код конструкції генерується відразу після розпізнавання.
Рис 3 .Граф-схема роботи генератора коду
Блок 1 – Початок синтаксичного аналізатора
Блок 2 – Основна функція аналізатора
Блок 3 – Перевіряє чи наступний символ Var
Блок 4 – Генерація блоку даних
Блок 5 - Перевіряє чи наступний символ INT32_t
Блок 6 – Генерація 4-х байтних хмінних