Расширенная форма Бэкуса — Наура(РБНФ)
Расширенная форма Бэкуса — Наура(РБНФ) — это тип формального синтаксиса, используемый для описания структуры языка программирования или другого формального языка. Это расширение формы Бэкуса — Наура(БНФ), которая была первоначально разработана Джоном Бэкусом и Питером Науром для описания синтаксиса языка программирования Алгол. РБНФ добавляет несколько дополнительных метасимволов к оригинальным метасимволам БНФ, что позволяет более кратко и читабельно описать синтаксис языка. Он широко используется в спецификации языков программирования, а также иногда применяется для описания синтаксиса других типов формальных языков, таких как языки запросов к базам данных или языки разметки. В PlantUML была введена базовая поддержка РБНФ. [Ref. QA-16529]WARNING
This translation need to be updated. WARNING
Минимальная диаграмма двоичных цифр
Все элементы EBNF
Элементы EBNF, обрабатываемые PlantUML, описаны ниже.
Использование специальной последовательности с special-sequence-symbol "?"
Можно использовать специальную последовательность при помощи special-sequence-symbol "?".
Комплексное использование повторений с repetition-symbol "*"
Можно указать количество повторений при помощи repetition-symbol "*".
Режим рисования
До версии V1.2025.1 можно было выбрать режим рисования и использовать компактный режим с помощью команды !pragma compact.
Развернутый режим (по умолчанию)
Компактный режим
Заметки к элементам
К элементам диаграммы можно добавлять примечания с помощью тегов комментариев РБНФ.
Использование (глобального) стиля
Без стиля (по умолчанию)
Со стилем
Для изменения отрисовки элементов можно использовать style.
Пример грамматики LISP
Грамматика LISP с использованием PlantUML.
РБНФ грамматики PlantUML РБНФ
РБНФ позволяет сделать описание себя, так что вот оно!
Спецификация языка Java
Реальный пример детально описанного языка программирования.
Пакеты и модули
Лексическая структура
Типы, значения и переменные
Имена
Классы
Интерфейсы
Массивы
Блоки, утверждения и шаблоны
WARNING
This translation need to be updated. WARNING
Оставшиеся дефекты
Could you put 'arrow head' on all rerouted lines?
Order issue
Allow accentuated or Unicode char on EBNF meta-identifier or rule name.
Allow full restriction management with except-symbol "-"