# Нотация НШ Эта нотация является современным вариантом расширенной формы Бэкуса—Наура (`РБНФ`). Для описания грамматики языка используется несколько простых правил. ## Определение продукции Ключевым понятием является `продукция`. При определении `продукции` слева устанавливается имя `продукции`, справа от знака `присвоить` описывается определение продукции. Предложение завершается `терминальный символом` -- `;`. Пример ниже: > Имя = Буква; ## Необязательность символа в продукции При определении имени продукции символ (символы) с правой стороны могут быть необязательными. > Объект = Тип?; ## Один или больше символов в продукции Если для определения имени продукции необходимо указать слева один или больше символов -- используется нотация имени символа с двоеточием после имени символа. > Объект = Тип..; ## Символы на выбор в продукции Бывает, что продуция можэет быть одним из нескольких допустимых символов. Форма записи представлена ниже: > Объект = Тип1 | Тип2 | Тип3; ## Комбинация обязательных и необязательных символов Для обозначения того, что для продукции используется один обязательный и список необязательные символы следует использовать литеру `,`. Форма записи: > Объект = Тип0, Типы..? ## Комбинация символов и литер Для показа спосба комбинации продукции из символов и литер следует использовать литеру `+`: > ТипПоле = Тип0 + "." + Имя; ## Комментарии В определение продукции можно добавить комментарий. > ТипПоле = Тип0 + "." + Имя; // Определение поля в типе ## Определение категории продукции К таким элементам, например, относятся кючевые символы ```bash МОДУЛЬ = "МОДУЛЬ"; ФУНКЦИЯ = "ФН"; КлючевойСимвол = МОДУЛЬ | ФУНКЦИЯ; ``` ## Обозначение области определения Бывает полезно в продукции показать границы определения, например: ```bash Модуль = МОДУЛЬ Имя; Импорт?, Типы?, Переменные?, Функции?; { Выражение..? } ```