Синтаксическая диаграмма - Википедия - Syntax diagram
Диаграммы синтаксиса (или же железнодорожные схемы) являются способом представления контекстно-свободная грамматика. Они представляют собой графическую альтернативу Форма Бэкуса – Наура или чтобы EBNF в качестве метаязыки. Ранние книги, использующие синтаксические диаграммы, включают «Руководство пользователя Pascal», написанное Никлаус Вирт [1] (схемы начинаются на странице 47) и Берроуза КАНДА Руководство.[2]. В поле компиляции обычно предпочтительны текстовые представления, такие как BNF или его варианты. BNF основан на тексте и используется разработчиками компиляторов и генераторами парсеров. Диаграммы железных дорог наглядны и могут быть более понятны непрофессионалам, иногда они включаются в графический дизайн. Канонический источник, определяющий JSON Формат обмена данными представляет собой еще один пример популярного современного использования этих диаграмм.
Принцип синтаксических диаграмм
Представление грамматики состоит из набора синтаксических диаграмм. Каждая диаграмма определяет нетерминал. Существует основная диаграмма, которая определяет язык следующим образом: чтобы принадлежать языку, слово должно описывать путь на главной диаграмме.
Каждая диаграмма имеет точку входа и точку окончания. Схема описывает возможные пути между этими двумя точками, проходя через другие нетерминалы и терминалы. Терминалы представлены круглыми прямоугольниками, а нетерминалы - прямоугольными.
Пример
В качестве примера мы используем арифметические выражения. Сначала мы даем упрощенную грамматику BNF:
<выражение> ::= <срок> | <срок> "+" <выражение><срок> ::= <фактор> | <фактор> "*" <срок><фактор> ::= <постоянный> | <Переменная> | "(" <выражение> ")"<Переменная> ::= «х» | "у" | "z" <постоянный> ::= <цифра> | <цифра> <постоянный><цифра> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Эта грамматика также может быть выражена в EBNF:
выражение = срок , [ "+" , выражение ];срок = фактор , [ "*" , срок ];фактор = постоянный | Переменная | "(" , выражение , ")";Переменная = "Икс" | "у" | "z"; постоянный = цифра , { цифра };цифра = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
Эта статья или раздел кажется противоречит самому себе по «выражению» и «термину»; диаграммы не соответствуют EBNF.Октябрь 2020) ( |
Один из возможных наборов синтаксических диаграмм для любой из этих грамматик:
Смотрите также
Рекомендации
Примечание: первая ссылка иногда блокируется сервером за пределами своего домена, но она доступна на archive.org. Файл также был отображен на standardpascal.org.
внешняя ссылка
- Веб-сайт JSON, включая синтаксические диаграммы
- Генератор от EBNF
- Из EBNF в файл postscript с диаграммами
- EBNF Parser & Renderer
- Генератор синтаксических диаграмм SQLite для SQL
- Генератор железнодорожных диаграмм онлайн
- Грамматики расширенных синтаксических диаграмм (ASD)
- (ASD) Дополненный Демонстрационный сайт приложения Syntax Diagram
- Представление синтаксической диаграммы SRFB с помощью функции Basis + генерация svg