rewrite exp parser