==========================================
recovers from errors in function calls
==========================================
stuff(|||);
---
(expression_statement (function_call (identifier) (ERROR '|')))

==========================================
recovers from errors in if statements
==========================================
stuff();
if (*nonsense*) {
    *more-nonsense*;
}
moreStuff();
---
(program
    (expression_statement (function_call (identifier)))
    (if_statement (ERROR '*')
        (statement_block (expression_statement (ERROR '*'))))
    (expression_statement (function_call (identifier))))

