context free grammar xml parser