parse alternation