notation.md 3.2 KB

Нотация НШ

Эта нотация является современным вариантом расширенной формы Бэкуса—Наура (РБНФ).

Для описания грамматики языка используется несколько простых правил.

Определение продукции

Ключевым понятием является продукция.

При определении продукции слева устанавливается имя продукции, справа от знака присвоить описывается определение продукции. Предложение завершается терминальный символом -- ;. Пример ниже:

Имя = Буква;

Необязательность символа в продукции

При определении имени продукции символ (символы) с правой стороны могут быть необязательными.

Объект = Тип?;

Один или больше символов в продукции

Если для определения имени продукции необходимо указать слева один или больше символов -- используется нотация имени символа с двоеточием после имени символа.

Объект = Тип..;

Символы на выбор в продукции

Бывает, что продуция можэет быть одним из нескольких допустимых символов. Форма записи представлена ниже:

Объект = Тип1 | Тип2 | Тип3;

Комбинация обязательных и необязательных символов

Для обозначения того, что для продукции используется один обязательный и список необязательные символы следует использовать литеру ,. Форма записи:

Объект = Тип0, Типы..?

Комбинация символов и литер

Для показа спосба комбинации продукции из символов и литер следует использовать литеру +:

ТипПоле = Тип0 + "." + Имя;

Комментарии

В определение продукции можно добавить комментарий.

ТипПоле = Тип0 + "." + Имя; // Определение поля в типе

Определение категории продукции

К таким элементам, например, относятся кючевые символы

МОДУЛЬ = "МОДУЛЬ";
ФУНКЦИЯ = "ФН";
КлючевойСимвол = МОДУЛЬ | ФУНКЦИЯ;

Обозначение области определения

Бывает полезно в продукции показать границы определения, например:

Модуль = МОДУЛЬ Имя;
Импорт?, Типы?, Переменные?, Функции?;
{
    Выражение..?
}