Cypher

EBNF

Cypher = [SP], Statement, [[SP], ';'], [SP], EOI ;
Statement = Query ;
Query = RegularQuery
      | StandaloneCall
      ;
RegularQuery = SingleQuery, { [SP], Union } ;
SingleQuery = SinglePartQuery
            | MultiPartQuery
            ;
Union = ((U,N,I,O,N), SP, (A,L,L), [SP], SingleQuery)
      | ((U,N,I,O,N), [SP], SingleQuery)
      ;