\begin{syntax}
  lalpha ::= "a"-"z" | "_"
  \
  ualpha ::= "A"-"Z"
  \
  alpha ::= lalpha | ualpha
  \
  suffix ::= (alpha | digit | "'")*
  \
  lident ::= lalpha suffix
  \
  uident ::= ualpha suffix
  \
  ident ::= lident | uident
  \
  lqualid ::= lident | uqualid "." lident
  \
  uqualid ::= uident | uqualid "." uident
  \
  qualid ::= ident | uqualid "." ident
  \
  digit-or-us ::= "0"-"9" | "_"
  \
  alpha-no-us ::= "a"-"z" | "A"-"Z"
  \
  suffix-nq ::= (alpha-no-us | "'"* digit-or-us)* "'"*
  \
  lident-nq ::= lalpha suffix-nq
  \
  uident-nq ::= ualpha suffix-nq
  \
  ident-nq ::= lident-nq | uident-nq  ;%
\end{syntax}
