У розділі правил, якщо вхідна послідовність відповідає одному з них, то управління передається основній програмі. Розділ правил і користувальницький розділ відокремлюються рядком відсотка. Користувальницький розділ програми використовуємо для коректного завершення модуля лексичного аналізатора. У нашому випадку цей розділ складається з одного рядка end. , яка повинна бути поміщена в результат для коректного завершення модуля.
2. Синтаксичний аналіз
В якості методу синтаксичного аналізу заданий В«метод рекурсивного спускуВ». Необхідно побудувати граматику, що описує задані параметри. Текст граматики наведено нижче:
GOAL? HTML
HTML? HEAD BODY
HEAD? TITLE
| ? ?
HEADLINE
| ? ? str_ru
| ? ? CONTENT ? TABLE0 CONTENT
| str_ru CONTENT
| id CONTENT
| ? ? TR0 ? TD0 TR_0
| TR_0? TR0
| ?
TD0?
str_ru
TD0? id = param ATTRIB
| ?
3. Візуальне подання
Для візуального представлення вхідної послідовності використовуємо дерево.
Щоб візуально відобразити дерево використовували стандартний компонент Embarcadero RAD Studio 2010 - TreeView. Так само відбувається автоматичне експортування дерева з візуального компонента в xml файл і звичайний текстовий файл, які можна знайти в директорії з програмою. Для побудови абстрактного синтаксичного дерева по ходу роботи нам вдалося вивчити даний компонент. p align="justify"> До вузлів дерева кріпляться листя, якщо ж листа немає, то вузол сам стає листом (наприклад, після тега йде тег , якщо ж таблиці не буде, то вузол < body>, стане листом дерева)
Що б розпізнати батька вузла завели лічильник, який вказує на батька тієї чи іншого вузла.
Зовнішній вигляд створеного інтерпретатора відповідає зображенню на малюнку 1.
В
Рисунок 1 - Зовнішній вигляд
На формі розташовані такі об'єкти:
1. Кнопка ОК , яка запускає основну процедуру програми...