===================================================== recovers from errors at the top level ===================================================== x * * y --- (ERROR '*') ===================================================== recovers from errors inside parenthesized expressions ===================================================== x + (y * + z) * 5 --- (sum (variable) (product (group (ERROR '+')) (number)))