railroad_dsl 0.1.1

A small DSL to generate syntax-diagrams
<'literal-value',
 'bind-parameter',
 [[["schema-option" "."]? "table-name" "."]? "column-name"],
 ["unary-operator" 'expr'],
 ["function-name" "(" <["DISTINCT"? 'expr'*","], "*">? ")"],
 ["(" 'expr'*"," ")"],
 ["CAST" "(" 'expr' "AS" 'type-name' ")"],
 ['expr' "COLLATE" "collation-name"],
 ['expr' "NOT"? <"LIKE", "GLOB", "REGEXP", "MATCH"> 'expr' ["ESCAPE" 'expr']?],
 ['expr' <"ISNULL", "NOTNULL", ["NOT" "NULL"]>],
 ['expr' "IS" "NOT"? 'expr'],
 ['expr' "NOT"? "BETWEEN" 'expr' "AND" 'expr'],
 ['expr' "NOT"? "IN" <["(" <!, 'select-stmt', 'expr'*","> ")"],
                      [["schema-name" "."]? "table-name"],
                      [["schema-name" "."]? "table-function" "(" ['expr'*","]? ")"]>],
 [["NOT"? "EXISTS"]? "(" 'select-stmt' ")"],
 ["CASE" 'expr'? ["WHEN" 'expr' "THEN" 'expr']*! ["ELSE" 'expr']? "END"],
 'raise-function'
>