===================================================
one invalid token right after the viable prefix
===================================================

if (a b) {
  c d;
}
e f;

---

(program
  (if_statement
    (ERROR (identifier))
    (identifier)
    (statement_block
      (expression_statement
        (ERROR (identifier))
        (identifier))))
  (expression_statement
    (ERROR (identifier))
    (identifier)))

=======================================================
multiple invalid tokens right after the viable prefix
=======================================================

if (a b c) {
  d e f g;
}
h i j k;

---

(program
  (if_statement
    (ERROR (identifier) (identifier))
    (identifier)
    (statement_block
      (expression_statement
        (ERROR (identifier) (identifier) (identifier))
        (identifier))))
  (expression_statement
    (ERROR (identifier) (identifier) (identifier))
    (identifier)))

===================================================
one invalid subtree right after the viable prefix
===================================================

if ({a: 'b'} {c: 'd'}) {
  function(a) { b; }    function(c) { d; }
}

---

(program
  (if_statement
    (object (pair (identifier) (string)))
    (ERROR (object (pair (identifier) (string))))
    (statement_block
      (ERROR (function
        (formal_parameters (identifier))
        (statement_block (expression_statement (identifier)))))
      (expression_statement (function
        (formal_parameters (identifier))
        (statement_block (expression_statement (identifier))))))))
