Мне нравится синтаксис железнодорожных схем на json.org, которые представляют собой графическое представление языка BNF. Я не нашел никаких инструментов, которые могли бы дать результаты столь же красноречиво.
Инструмент для создания железнодорожной диаграммы, используемой на json.org
Ответ 1
Существует Генератор диаграмм электронной сети. Он создает SVG синтаксические диаграммы, также известные как железнодорожные диаграммы, из контекстно-свободные грамматики, указанные в EBNF. Вы можете скопировать SVG-код или сделать снимки экрана.
Вы должны ввести грамматику, и она сделает диаграмму.
Например, чтобы создать первую диаграмму, которую вы показываете, вы должны использовать код:
object ::= '{' ((string ':' value ) ( ',' string ':' value )*)? '}'
Затем вы можете определить string
и value
с помощью string ::= ...
и value ::= ...
Все ссылки показаны.
Ознакомьтесь с некоторыми примерами диаграмм на странице. У них есть XML и даже сам EBNF.
Ответ 2
от Дугласа Крокфорда
к Алему B
дата Вт, апр. 28, 2009 в 6:01 вечера
Тема Re: Железнодорожные диаграммы на json.orgЯ нарисовал их с Визио. творческий Docs.NET также хорошо работает.
-
Aleem B писал (а):
Привет, Дуглас,
Я полностью наслаждаюсь тем, что вы положили там и железнодорожные диаграммы на json.org ничем не отличаются. я был пытаясь оглянуться вокруг инструмента, который будет генерировать диаграммы почти как красноречивый, но не повезло:
Инструмент для создания железнодорожной диаграммы, используемой на json.org
Есть ли какой-нибудь инструмент, который вы использовали для конвертации BNF к этим диаграммам или они были ручной дизайн?
- Алейм
Ответ 3
Таб Аткинс младший создал Javascript Railroad-chart Generator, используя svg специально, потому что он не мог найти тот, который имел бы визуальную привлекательность, то есть "внешний вид JSON.org".
Ответ 4
Несколько дней назад был аналогичный вопрос: Что такое хороший инструмент для создания железнодорожных диаграмм?
Этот вопрос касался того, как были созданы диаграммы железных дорог в синтаксических диаграммах SQLite. В принятом ответе найдено, что диаграммы были сгенерированы с использованием DSL, написанного в Tcl.
Другой ответ предложил предложение использовать генератор диаграмм, который работает с грамматикой EBNL.
Ответ 5
Одна из функций, которые хорошо управляет генератором железных дорог IBM, - значения по умолчанию. Я не видел другого генератора, который делает это.
Примером является
┌─────◀────┐┌(──«defaults»─)─┐
▶▶─COMMAND┴«argument»┴┼────────────────┼──────────────────────▶◀
│ ┌────◀─────┐ │
└(┴┬«option»┬┴┬─┬┘
└Help────┘ └)┘
Ответ 6
Я нашел инструмент J-algo. Я думаю, что очень легко рисовать диаграмму, но я не могу экспортировать изображение или другой тип.
Ответ 7
Я также искал инструменты, используемые для создания этих синтаксических диаграмм и, если возможно, в js library
, чтобы их можно было редактировать и отображать, не ожидая скучного времени для появления графики.
Я знаю, что есть инструменты там, но я бы сказал, что генератор из bottlecaps.de имеет приятную графику с возможностью выбора цвета. К сожалению, я не смог получить исходный код самого инструмента.
Я также обратился к соответствующим вопросам с ответами здесь, но получил только следующее, где мы можем получить его как открытый исходный код js library
и снабдил онлайн-демонстрацией , где мы можем попробовать и поиграть с.
- генератор железнодорожных маршрутов из tabatkins, в
js
(синтаксис также существует в виде библиотекиPython
) - js-sequence-diagrams из bramp, в
js
, но UML (синтаксис генерируется с помощью bottlecaps.de) - umlClass из GoJS, в
js
, но найден только для UML
Ответ 8
См. это, например. Не совсем то, что вам нужно, но все же.
Ответ 9
Взгляните на http://code.google.com/p/html-railroad-diagram/, который генерирует диаграммы железных дорог HTML. Существует example, в котором показана железная дорога JSON, сгенерированная на HTML-странице, с помощью JavaScript со ссылками.
Ответ 10
Я, кажется, помню, что IBM имеет инструмент, который создает такие диаграммы как часть их пакета BookMaster SGML. Диаграммы железных дорог часто используются в документации по мейнфрейму.