code: def text(self, data):
          
          data = data
          middle = data.lstrip(spaceCharacters)
          left = data[:len(data) - len(middle)]
          if left:
              yield {"type": "SpaceCharacters", "data": left}
          data = middle
          middle = data.rstrip(spaceCharacters)
          right = data[len(middle):]
          if middle:
              yield {"type": "Characters", "data": middle}
          if right:
              yield {"type": "SpaceCharacters", "data": right}
docs: Generates SpaceCharacters and Characters tokens
  
          Depending on what's in the data, this generates one or more
          ``SpaceCharacters`` and ``Characters`` tokens.
  
          For example:
  
              >>> from html5lib.treewalkers.base import TreeWalker
              >>> # Give it an empty tree just so it instantiates
              >>> walker = TreeWalker([])
              >>> list(walker.text(''))
              []
              >>> list(walker.text('  '))
              [{u'data': '  ', u'type': u'SpaceCharacters'}]
              >>> list(walker.text(' abc '))  # doctest: +NORMALIZE_WHITESPACE
              [{u'data': ' ', u'type': u'SpaceCharacters'},
              {u'data': u'abc', u'type': u'Characters'},
              {u'data': u' ', u'type': u'SpaceCharacters'}]
  
          :arg data: the text data
  
          :returns: one or more ``SpaceCharacters`` and ``Characters`` tokens