A Railroad is a diagram that permits to visualize a grammar (Same as a process flow)
With RRDiagram and BNF syntax of H2 select SQL
<pre class="BNF">
'SELECT' [ 'TOP' term ] [ 'DISTINCT' | 'ALL' ] selectExpression {',' selectExpression} \
'FROM' tableExpression {',' tableExpression} [ 'WHERE' expression ] \
[ 'GROUP BY' expression {',' expression} ] [ 'HAVING' expression ] \
[ ( 'UNION' [ 'ALL' ] | 'MINUS' | 'EXCEPT' | 'INTERSECT' ) select ] [ 'ORDER BY' order {',' order} ] \
[ 'LIMIT' expression [ 'OFFSET' expression ] [ 'SAMPLE_SIZE' rowCountInt ] ] \
[ 'FOR UPDATE' ];
</pre>
A Railroad diagram is made of:
Each diagram has an entry point and an endpoint.
It describes possible paths going through :
To belong to the language, an expression must describe a path starting from the main diagram.