graph:strictdigraphgraphid{stmt-list}graph ::= 'strict'? ( 'digraph' | 'graph' ) id '{' stmt-list '}'referenced by:attr-stmtstmt-list:stmt;stmt-liststmt-list ::= ( stmt ';'? stmt-list? )?referenced by:graphstmt-listsubgraphstmt:attr-stmtnode-stmtedge-stmtsubgraphid=idstmt ::= attr-stmt | node-stmt | edge-stmt | subgraph | id '=' idreferenced by:stmt-listattr-stmt:graphnodeedgeattr-listattr-stmt ::= ( graph | node | edge ) attr-listreferenced by:stmtattr-list:[a-list]attr-listattr-list ::= '[' a-list? ']' attr-list?referenced by:a-listattr-listattr-stmtedge-stmtnode-stmta-list:id=id,attr-lista-list ::= id '=' id ','? attr-list?referenced by:attr-listnode-stmt:node-idattr-listnode-stmt ::= node-id attr-list?referenced by:stmtnode-id:idportnode-id ::= id port?referenced by:edge-stmtedgeRHSnode-stmtport:port-locationport-angleport-angleport-locationport ::= port-location port-angle? | port-angle port-location?referenced by:node-idport-location::id:(id,id)port-location ::= ':' id | ':' '(' id ',' id ')'referenced by:portport-angle:@idport-angle ::= '@' idreferenced by:portedge-stmt:node-idsubgraphedgeRHSattr-listedge-stmt ::= ( node-id | subgraph ) edgeRHS attr-list?referenced by:stmtedgeRHS:edgeopnode-idsubgraphedgeRHSedgeRHS ::= edgeop ( node-id | subgraph ) edgeRHS?referenced by:edge-stmtedgeRHSsubgraph:subgraphid{stmt-list}subgraphidsubgraph ::= ( 'subgraph' id )? '{' stmt-list '}' | 'subgraph' idreferenced by:edge-stmtedgeRHSstmtid:[a-z][A-Z][0-9][a-z][A-Z]id ::= [a-zA-Z] [0-9a-zA-Z]*referenced by:a-listgraphnode-idport-angleport-locationstmtsubgraphedgeop:->--edgeop ::= '->' | '--'referenced by:edgeRHS ... generated by Railroad Diagram GeneratorRR