Parser Generator
Инструментарий для построения компиляторов.
   

Главная

О сайте

Документация

Download

Ссылки

Библиография

О нас


Описание формата файла формальной грамматики.

Формальная грамматика- это четверка объектов: <Vt,Vn,R,S>, где
Vt - множество терминальных символов
Vn - множество нетерминальных символов
R - множество правил вывода
S - начальный символ грамматики

Таким образом, имеем следующий формат файла формальной грамматики.

<FormalGrammar>
  <terms>
    <term name="S" type="notterminal" id="1"/>
    <term name="A" type="notterminal" id="1"/>
    <term name="+" type="terminal" id="1"/>
    <term name="i" type="terminal" id="1"/>
  </terms>
  <rules>
    <rule s="S::=A + A" id="1" />
    <rule s="A::=i" id="2" />
  </rules>
  </StartSymbol name="S">
</FormalGrammar>

Как видите множества Vt и Vn объединены в одном контейнере, тэга terms. Внутри этого контейнера находятся тэги term описыающие терминалы и нетерминалы. Чтобы отличать терминал, от нетерминала используется свойство type тэга term. Присутствует также необязательное свойство id.

Правила грамматики находятся в секции rules. Каждое правило определяется тэгом rule с параметрами s- текст правила и id- уникальный идентификатор правила. Текст правила задается в формате:
A::=T1 T2 t1 t2
где:
A- определяемый нетерминал,
::=- разделитель левой и правой части
Ti, ti- терминалы и нетерминалы разделенные пробелами.

Тэг StartSymbol определяет начальный символ грамматики.


 
   
© С. Григорчук 2001, Содержание, дизайн

ukman@yandex.ru
Hosted by uCoz