Better parser generator