docs: def _next(self):
          """get the next character, excluding comments. peek() is used to see
             if a '/' is followed by a '/' or '*'.
          """
          c = self._get()
          if c == '/':
              p = self._peek()
              if p == '/':
                  c = self._get()
                  while c > '\n':
                      c = self._get()
                  return c
              if p == '*':
                  c = self._get()
                  while 1:
                      c = self._get()
                      if c == '*':
                          if self._peek() == '/':
                              self._get()
                              return ' '
                      if c == '\000':
                          raise UnterminatedComment()
  
          return c