Нотация для записи синтаксических конструкций Назад В начало Вперед

Синтаксические конструкции представлены в виде расширенных форм Бэкуса-Науэра (РБНФ). Определение языковой конструкции в РБНФ состоит из терминальных символов, нетерминальных символов и правил продукции.

терминальный символ

Одиночный символ или строка символов, написание и смысл которых предопределен в данном языке.

нетерминальный символ

Нетерминальные символы используются для описания частей допустимой конструкции языка. Нетерминальный символ обозначает правило продукции, определяющее этот символ, или имеет текстовое описание. Нетерминальные символы всегда могут быть расширены в последовательность из одного или более терминальных символов.

Правило продукции

Правило продукции описывает валидную конструкцию языка. Оно определяет каким образом нетерминальный символ в левой части продукции расширяется в последовательность терминальных и нетерминальных символов из правой части продукции. Последовательное расширение всех нетерминальных символов в правых частях правил продукций в конечном итоге приводит к допустимой последовательности терминальных символов.

Нетерминальный символ всегда обозначается одним словом, заключенным в уголки.

Помимо терминальных и нетерминальных символов и правил продукции в РБНФ используется ряд символов, имеющих специальное значение (метасимволы):

(выражение)

Группирование. Выражение является синтаксических конструкцией.

A = B | C

Альтернатива. Конструкция A состоит либо из B, либо из C.

A = [ B ]

Условное вхождение. Конструкция A состоит либо из B, либо из пустой цепочки.

A = B C

Конкатенация. Конструкция A состоит из следующих друг за другом конструкций B и C включая ноль)

A = { B }

Повторение. A может состоять из конкатенации любого числа конструкций B.

Все остальные слова и символы является частью синтаксической конструкции. Для удобства чтения они выделены в тексте шрифтом. В многострочных синтаксических конструкциях строки продолжения выделяются отступом.

Для повышения наглядности используются следующие соглашения:

Примеры продукций.

<имя-файла-данных> =
  <имя-файла-данных-таблицы-если-необходимо-то-с-DOS-путем>
<заголовок-таблицы> = <строка>
<опция> = noProtect
<опция> = header
<опция> = jornal
<опция> = corpo
<опция1> = noProtect | header | jornal | corpo