Checks if the current #token#s type name matches with any of the specified
    *names*. This is useful for asserting multiple valid token types at a
    specific point in the parsing process.

    # Arguments
    names (str): One or more token type names. If zero are passed,
      nothing happens.

    # Raises
    UnexpectedTokenError: If the current #token#s type name does not match
      with any of the specified *names*.

def expect(self, *names):
    """
    Checks if the current #token#s type name matches with any of the specified
    *names*. This is useful for asserting multiple valid token types at a
    specific point in the parsing process.

    # Arguments
    names (str): One or more token type names. If zero are passed,
      nothing happens.

    # Raises
    UnexpectedTokenError: If the current #token#s type name does not match
      with any of the specified *names*.
    """

    if not names:
      return
    if not self.token or self.token.type not in names:
      raise UnexpectedTokenError(names, self.token)