Мне нравится синтаксис железнодорожных диаграмм на json.org, которые являются графическим представлением языка BNF. Я не нашел инструментов, которые бы давали столь красноречивые результаты.
Мне нравится синтаксис железнодорожных диаграмм на json.org, которые являются графическим представлением языка BNF. Я не нашел инструментов, которые бы давали столь красноречивые результаты.
Ответы:
Есть онлайн-генератор железнодорожных диаграмм . Он создает синтаксические диаграммы SVG , также известные как железнодорожные диаграммы, из контекстно-свободных грамматик, указанных в EBNF . Вы можете скопировать код SVG или сделать снимок экрана.
Вы должны ввести грамматику, и она составит диаграмму.
Например, чтобы создать первую показанную вами схему железной дороги, вы должны использовать код:
object ::= '{' ((string ':' value ) ( ',' string ':' value )*)? '}'
Затем вы можете перейти к определению string
и value
использованию, string ::= ...
и value ::= ...
будут показаны все ссылки.
Ознакомьтесь с некоторыми примерами диаграмм на странице. У них есть XML и даже сам EBNF.
от Дугласа Крокфорда
до Алима Б.
Дата Вт, 28 апреля 2009 г., 18:01,
тема Re: Железнодорожные диаграммы на json.orgЯ нарисовал их с помощью Visio. Creative Docs.NET также работает хорошо.
-
Алим Б писал:
Привет Дуглас,
Мне очень нравится большинство вещей, которые вы там размещаете, и железнодорожные диаграммы на json.org ничем не отличаются. Я пытался найти инструмент, который мог бы генерировать диаграммы почти так же красноречиво, но мне не повезло:
Инструмент для создания железнодорожной диаграммы, используемый на json.org
Есть ли какой-нибудь инструмент, который вы использовали для преобразования BNF в эти диаграммы, или они были созданы вручную?
- Алим
Таб Аткинс-младший создал Javascript-генератор железнодорожных диаграмм, используяsvgособенно потому, что он не смог найти тот, который имел бы желаемую визуальную привлекательность, то есть « внешний вид JSON.org ».
Несколько дней назад был подобный вопрос: какой хороший инструмент для создания железнодорожных диаграмм?
Этот вопрос касался того, как были созданы железнодорожные диаграммы в синтаксических диаграммах SQLite. Принял ответ нашел , что диаграммы были получены с использованием DSL , написанной на Tcl.
В другом ответе предлагалось использовать генератор диаграмм, который работает на грамматике EBNL.
Одна из вещей, с которой хорошо справляется генератор железнодорожных путей IBM, - это значения по умолчанию. Я не видел другого генератора, который бы это делал.
Примером является
┌─────◀────┐┌(──«defaults»─)─┐
▶▶─COMMAND┴«argument»┴┼────────────────┼──────────────────────▶◀
│ ┌────◀─────┐ │
└(┴┬«option»┬┴┬─┬┘
└Help────┘ └)┘
Я также искал инструменты, используемые для создания этих синтаксических диаграмм, и, если возможно, js library
их можно было редактировать и отображать, не дожидаясь скучного времени появления графики.
Я знаю, что есть инструменты , но я бы сказал, что генератор из bottlecaps.de имеет красивую графику с опцией цвета. К сожалению, я не смог получить там исходный код самого инструмента.
Я также перешел к связанным вопросам с ответами здесь, но получил только следующие, где мы можем получить его с открытым исходным кодом js library
и предоставили онлайн-демонстрацию, с которой мы можем попробовать поиграть .
js
( Синтаксис также существует как Python
библиотека)js
но на UML ( синтаксис генерируется через bottlecaps.de )js
но найден только для UMLЯ нашел инструмент J-algo. Я думаю, что очень легко нарисовать диаграмму, но я не могу экспортировать ее в изображение или другой тип.
Взгляните на http://code.google.com/p/html-railroad-diagram/, который создает диаграммы железных дорог в формате HTML. Вот пример , показывающий железную дорогу JSON, созданную на HTML-странице с помощью JavaScript со ссылками.