parseExpr & parseTerm now rely on unique_ptr