docs: def expect_token(token, tok_type, tok_str=None):
    """
    Verifies that the given token is of the expected type. If tok_str is given, the token string
    is verified too. If the token doesn't match, raises an informative ValueError.
    """
    if not match_token(token, tok_type, tok_str):
      raise ValueError("Expected token %s, got %s on line %s col %s" % (
        token_repr(tok_type, tok_str), str(token),
        token.start[0], token.start[1] + 1))