parameters: (self, predicate)
return_statement: return str
docstring: Read from stream while condition of the predicate is met
  
          Args:
              predicate (function): Predicate that will exit current read
  
          Returns:
              str: Return resulting read string
docstring_summary: Read from stream while condition of the predicate is met
docstring_tokens: Read from stream while condition of the predicate is met
function: def read_while(self, predicate):
          """Read from stream while condition of the predicate is met
  
          Args:
              predicate (function): Predicate that will exit current read
  
          Returns:
              str: Return resulting read string
          """
          str = ''
          while not self._data.end() and predicate(self._data.peek()):
              str += self._data.next()
  
          return str
function_tokens: def read_while ( self , predicate ) : str = '' while not self . _data . end ( ) and predicate ( self . _data . peek ( ) ) : str += self . _data . next ( ) return str