statements
    |--- :default
    |    |--- ::=
    |    |--- action
    |    |--- =>
    |    |--- [values]
    |--- :start
    |    |--- ::=
    |    |--- graph_grammar
    |--- graph_grammar
    |    |--- ::=
    |    |--- graph_definition
    |    |--- action
    |    |--- =>
    |    |--- graph
    |--- graph_definition
    |    |--- ::=
    |    |--- node_definition
    |    |--- |
    |    |--- edge_definition
    |--- node_definition
    |    |--- ::=
    |    |--- node_statement
    |    |--- |
    |    |--- node_statement
    |    |--- graph_definition
    |--- node_statement
    |    |--- ::=
    |    |--- node_name
    |    |--- |
    |    |--- node_name
    |    |--- attribute_definition
    |    |--- |
    |    |--- node_statement
    |    |--- (',')
    |    |--- node_statement
    |--- node_name
    |    |--- ::=
    |    |--- start_node
    |    |--- end_node
    |--- :lexeme
    |    |--- ~
    |    |--- start_node
    |    |--- pause
    |    |--- =>
    |    |--- before
    |    |--- event
    |    |--- =>
    |    |--- start_node
    |--- start_node
    |    |--- ~
    |    |--- '['
    |--- :lexeme
    |    |--- ~
    |    |--- end_node
    |--- end_node
    |    |--- ~
    |    |--- ']'
    |--- edge_definition
    |    |--- ::=
    |    |--- edge_statement
    |    |--- |
    |    |--- edge_statement
    |    |--- graph_definition
    |--- edge_statement
    |    |--- ::=
    |    |--- edge_name
    |    |--- |
    |    |--- edge_name
    |    |--- attribute_definition
    |    |--- |
    |    |--- edge_statement
    |    |--- (',')
    |    |--- edge_statement
    |--- edge_name
    |    |--- ::=
    |    |--- directed_edge
    |    |--- |
    |    |--- undirected_edge
    |--- :lexeme
    |    |--- ~
    |    |--- directed_edge
    |    |--- pause
    |    |--- =>
    |    |--- before
    |    |--- event
    |    |--- =>
    |    |--- directed_edge
    |--- directed_edge
    |    |--- ~
    |    |--- '->'
    |--- :lexeme
    |    |--- ~
    |    |--- undirected_edge
    |    |--- pause
    |    |--- =>
    |    |--- before
    |    |--- event
    |    |--- =>
    |    |--- undirected_edge
    |--- undirected_edge
    |    |--- ~
    |    |--- '--'
    |--- attribute_definition
    |    |--- ::=
    |    |--- attribute_statement
    |--- attribute_statement
    |    |--- ::=
    |    |--- start_attributes
    |    |--- end_attributes
    |--- :lexeme
    |    |--- ~
    |    |--- start_attributes
    |    |--- pause
    |    |--- =>
    |    |--- before
    |    |--- event
    |    |--- =>
    |    |--- start_attributes
    |--- start_attributes
    |    |--- ~
    |    |--- '{'
    |--- :lexeme
    |    |--- ~
    |    |--- end_attributes
    |--- end_attributes
    |    |--- ~
    |    |--- '}'
    |--- :discard
    |    |--- =>
    |    |--- whitespace
    |--- whitespace
         |--- ~
         |--- [\s]
