The lexer recognizes a new rule when the target nonterminal and definition operator are on the same line like <GQL-program> ::=. This simplification is fine for the GQL grammar file but not correct in general.
Fix to allow rules like
<program activity>
::=
<session activity>
| <transaction activity>