重构 parseExpr