First pass at EBNF (no table support yet)