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