=====================================================
recovers from errors at the top level
=====================================================
x * * y
---
(ERROR '*')

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