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

99

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

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

альтернативный текст

альтернативный текст

алемб
источник

Ответы:

94

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

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

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

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

введите описание изображения здесь

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

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

Питер Айтай
источник
Есть идеи, как добавить графику в ваш собственный документ, кроме а) создания снимка экрана б) копирования источника svg из источника страницы?
rudolfson
1
@rudolfson - Вы можете написать свою собственную, центральная логика не так уж плоха, и весь код есть, чтобы увидеть. Затем просто вставьте в свой документ. На основе этого я написал плагин WP. - Самое сложное - сделать графику красивой.
Peter Ajtai
2
Упомянутый здесь онлайн-генератор железнодорожных диаграмм теперь предлагает ZIP-файл с PNG-версией сгенерированных диаграмм. Отличный инструмент!
Себастьян Гриньоли
2
Кажется, что веб-приложение переместилось сюда: bottlecaps.de/rr
enrico.bacis
Спасибо @ enrico.bacis - обновленная ссылка
Peter Ajtai
50

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

Я нарисовал их с помощью Visio. Creative Docs.NET также работает хорошо.

-

Алим Б писал:

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

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

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

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

- Алим

алемб
источник
7
Для полноты: Таб Аткинс-младший создал Javascript-генератор железнодорожных диаграмм с использованием SVG. особенно потому, что он не смог найти тот, который имел бы желаемую визуальную привлекательность, то есть «внешний вид JSON.org».
Potherca
8

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

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

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

Coobird
источник
Чтобы добавить к этому, есть также список инструментов в статье Википедии, на которую я ссылаюсь. На настоящей диаграмме железной дороги стрелки не нужны - если вы представите поезд, едущий по этим путям, должно быть ясно, по каким маршрутам вы можете идти, а какие нельзя. И диаграммы json.org настолько хороши, что я должен знать, есть ли для них инструмент =) Я уже видел эти ссылки, но может помочь другим.
aleemb
4

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

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

          ┌─────◀────┐┌(──«defaults»─)─┐                        
▶▶─COMMAND┴«argument»┴┼────────────────┼──────────────────────▶◀
                      │ ┌────◀─────┐   │                        
                      └(┴┬«option»┬┴┬─┬┘                        
                         └Help────┘ └)┘                         
Лесли Туррифф
источник
4

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

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

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

Четабахана
источник
3

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

введите описание изображения здесь

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

Wendel
источник
0

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

Майк Сэмюэл
источник
0

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

Рон
источник