add parser generator