CLN/ENH: pass engine and parser to recursive calls to eval