code: def tokenize(self, data, *args, **kwargs):
          
          self.lexer.input(data)
          tokens = list()
          while True:
              token = self.lexer.token()
              if not token:
                  break
              tokens.append(token)
          return tokens
docs: Invoke the lexer on an input string an return the list of tokens.
          This is relatively inefficient and should only be used for
          testing/debugging as it slurps up all tokens into one list.
          Args:
            data: The input to be tokenized.
          Returns:
            A list of LexTokens