tweaked order of evaluation in parse_expr() (put parse_atomic() at the bottom)