code: private void _backupChar (final int c)
    {
      if (c != EOI)
        try
        {
          m_aReader.unread (c);
          m_nBackupChars++;
        }
        catch (final IOException ex)
        {
          throw new IllegalStateException ("Failed to unread character " + _getPrintableChar (c));
        }
    }
docs: Backup the provided char (put it back in the queue for re-reading) if it is
  not end of input
  
  @param c
  char to backup
  @throws IllegalStateException
  in case of error