Tcl/Tk saves the day! [SQLite] users wanted syntax diagrams instead of [BNF] to describe the SQL language. Syntax diagrams look something like this: [http://www.sqlite.org/draft/images/syntax/create-table-stmt.gif] The question become: how does one generate diagrams? A quick Tcl/Tk script did the job for me nicely. A high-level description of each diagram (in the form of a nested Tcl list, though really more of a lisp predicate) is entered and a Tk script renders the diagram on a [canvas] widget. The [postscript] method of the [canvas] widget is then used to create a postscript file of the diagram. Finally, the "convert" utility of ImageMagick is invoked (via the [exec] command) to convert the postscript into an [antialias]-ed [GIF] at the appropriate resolution. ''[Lars H]: Is that "lisp predicate" an alias for [data is code], I wonder? Checking the code, I see it isn't implemented that way, but it seems plausible that it could be…'' Since the diagrams have gone up on the SQLite website [http://www.sqlite.org/], there have been multiple questions of "how did you do that?" So in answer, I present the script that does the syntax diagram generation for SQLite. (The link below is directly into the [Fossil] repository for the [SQLite] documentation [http://www.sqlite.org/docsrc]. Click on one of the "[[view]]" link to see the actual text of the script.) http://www.sqlite.org/docsrc/finfo?name=art/syntax/bubble-generator.tcl ''[Lars H]: Hmm… When just jumping to that page, there aren't any [[view]] links on it — turns out one has to log in (as anonymous) to see them. And after logging in, I'm put in some sort of limbo, from which I have to manually jump back to the bubble-generator.tcl page. Only '''then''' can I [[view]] the code!'' Direct links to the code: http://www.sqlite.org/docsrc/doc/tip/art/syntax/bubble-generator.tcl?mimetype=text/plain http://www.sqlite.org/docsrc/doc/tip/art/syntax/bubble-generator.tcl The first link above will show the code on your browser screen. The second has a mimetype of application/x-tcl and so will either try to download the code or (if you have the [Tcl/Tk Tclet Plugin] installed, it will try to execute the script in your browser (which won't work.) ---- !!!!!! %| [Category Application] | [Category Graphics] |% !!!!!!