A small DSL to generate syntax diagrams using this library.
{...}is a horizontal stack of connected elements[...]is a vertical sequence of connected elements<...>is a choice of multiple options, exactly one of which has to be picked"foobar"is a terminal'foobar'is a non-terminal`foobar`is a comment...?is an optional element...*...is a repeated element!is the empty element
Quotes (and backslashes) can be escaped using backslashes.
For example:
{["CONSTRAINT" "name"]?,
<["PRIMARY" "KEY" <!, "ASC", "DESC"> 'conflict-clause' <!, "AUTOINCREMENT">],
["NOT" "NULL" 'conflict-clause'],
["UNIQUE" 'conflict-clause'],
["CHECK" "(" 'expr' ")"],
["DEFAULT" <'signed-number', 'literal-value', ["(" 'expr' ")"]>],
["COLLATE" "collation-name"],
'foreign-key-clause'>}
