Инструмент для создания железнодорожной диаграммы, используемой на json.org

Мне нравится синтаксис железнодорожных схем на json.org, которые представляют собой графическое представление языка BNF. Я не нашел никаких инструментов, которые могли бы дать результаты столь же красноречиво.

Кто-нибудь может определить инструмент, используемый для создания этих диаграмм?

alt text

alt text

Ответ 1

Существует Генератор диаграмм электронной сети. Он создает SVG синтаксические диаграммы, также известные как железнодорожные диаграммы, из контекстно-свободные грамматики, указанные в EBNF. Вы можете скопировать SVG-код или сделать снимки экрана.

Вы должны ввести грамматику, и она сделает диаграмму.

Например, чтобы создать первую диаграмму, которую вы показываете, вы должны использовать код:

object ::= '{' ((string ':' value ) ( ',' string ':' value )*)? '}'

enter image description here

Затем вы можете определить string и value с помощью string ::= ... и value ::= ... Все ссылки показаны.

Ознакомьтесь с некоторыми примерами диаграмм на странице. У них есть XML и даже сам EBNF.

Ответ 2

от Дугласа Крокфорда
к Алему B
дата Вт, апр. 28, 2009 в 6:01 вечера
Тема Re: Железнодорожные диаграммы на json.org

Я нарисовал их с Визио. творческий Docs.NET также хорошо работает.

-

Aleem B писал (а):

Привет, Дуглас,

Я полностью наслаждаюсь тем, что вы положили там и железнодорожные диаграммы на json.org ничем не отличаются. я был пытаясь оглянуться вокруг инструмента, который будет генерировать диаграммы почти как красноречивый, но не повезло:

Инструмент для создания железнодорожной диаграммы, используемой на json.org

Есть ли какой-нибудь инструмент, который вы использовали для конвертации BNF к этим диаграммам или они были ручной дизайн?

- Алейм

Ответ 4

Несколько дней назад был аналогичный вопрос: Что такое хороший инструмент для создания железнодорожных диаграмм?

Этот вопрос касался того, как были созданы диаграммы железных дорог в синтаксических диаграммах SQLite. В принятом ответе найдено, что диаграммы были сгенерированы с использованием DSL, написанного в Tcl.

Другой ответ предложил предложение использовать генератор диаграмм, который работает с грамматикой EBNL.

Ответ 5

Одна из функций, которые хорошо управляет генератором железных дорог IBM, - значения по умолчанию. Я не видел другого генератора, который делает это.

Примером является

          ┌─────◀────┐┌(──«defaults»─)─┐                        
▶▶─COMMAND┴«argument»┴┼────────────────┼──────────────────────▶◀
                      │ ┌────◀─────┐   │                        
                      └(┴┬«option»┬┴┬─┬┘                        
                         └Help────┘ └)┘                         

Ответ 6

Я нашел инструмент J-algo. Я думаю, что очень легко рисовать диаграмму, но я не могу экспортировать изображение или другой тип.

enter image description here

http://j-algo.binaervarianz.de/index.php

Ответ 7

Я также искал инструменты, используемые для создания этих синтаксических диаграмм и, если возможно, в js library, чтобы их можно было редактировать и отображать, не ожидая скучного времени для появления графики.

Я знаю, что есть инструменты там, но я бы сказал, что генератор из bottlecaps.de имеет приятную графику с возможностью выбора цвета. К сожалению, я не смог получить исходный код самого инструмента.

Я также обратился к соответствующим вопросам с ответами здесь, но получил только следующее, где мы можем получить его как открытый исходный код js library и снабдил онлайн-демонстрацией , где мы можем попробовать и поиграть с.

Ответ 8

См. это, например. Не совсем то, что вам нужно, но все же.

Ответ 9

Взгляните на http://code.google.com/p/html-railroad-diagram/, который генерирует диаграммы железных дорог HTML. Существует example, в котором показана железная дорога JSON, сгенерированная на HTML-странице, с помощью JavaScript со ссылками.

Ответ 10

Я, кажется, помню, что IBM имеет инструмент, который создает такие диаграммы как часть их пакета BookMaster SGML. Диаграммы железных дорог часто используются в документации по мейнфрейму.