我对sqlite's syntax diagrams印象非常深刻,并且想知道是否有人可以推荐可以让我创建类似图表的软件。
答案 0 :(得分:29)
看起来他们写了their own script来生成这些,作为TCL中的一个小嵌入式DSL。您可以重新编写脚本。
编辑:是的,它很容易使用,虽然看起来需要稍微调整一下才能使输出更漂亮(出于某种原因,convert
无法抗锯齿这在我的系统上; postscript输出看起来不错。)
hello {
line HELLO {or WORLD {line MY FRIEND {opt ANDREY}} }
}
编辑2 :这里有brief article有关其工作原理,以及如果您无法立即查看来源,如何匿名登录以查看来源的一些说明。
答案 1 :(得分:5)
如果您使用EBNF作为语法,那么EBNF Visualizer就是为了这个目的。
您也可以尝试Graphviz。它是开源的,它们存在几个用于处理它的GUI工具。它主要用于通用图,但也可以适用于语法图。
另一个名为SYNGEN的免费工具也存在。
答案 2 :(得分:4)
我不知道任何具体的工具,但我可以告诉你,它们通常被称为Recursive Transition Networks (RTNs)。因此,您可以使用它来扩展搜索范围。
您也可以从SQLite mailing list获得回复,并确切了解他们使用的内容。
答案 3 :(得分:3)
我认为应该可以在Dot language中定义RTN图表,然后使用Dot-enabled tools之一生成。
答案 4 :(得分:3)
Wikipedia article上有一个不错的列表。
Here's one that is online, and seems to work quite well (albeit the text needs aliasing).(死链接)
答案 5 :(得分:1)
您可以与RFFlow
取得联系答案 6 :(得分:1)
(抱歉,我没有足够的代表来简单地在答案上添加评论)
在accepted answer上:转到第1035行,只需更改“gif”输出的文件扩展名即“png”,这将创建PNG格式的抗锯齿图片。
同样在我的系统上“xv”不可用,只需将其注释掉(第1036行,以下):
if 0 {
if {$do_xv} {
exec xv $name.gif &
}
}
欢呼声
答案 7 :(得分:0)
如果SmartDraw无法做到这一点,我会感到惊讶 - 它的经验限制很少。
答案 8 :(得分:0)
我使用OpenOffice Draw来满足我的许多绘图需求。免费,开源和多平台对我来说是件大事。它在流程图上做得很好,学习曲线很小。
之前我使用过SmartDraw,发现它很有能力,但我需要