rules: rule+ rule: IDENT COLON alts NEWLINE alts: item+ (VBAR item+)* item: optional | kleene kleene: element | element STAR | element PLUS element: IDENT | group | STRING group: LPAREN alts RPAREN optional: LBRACKET alts RBRACKET