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

def tokenize(self, data, *args, **kwargs):
        """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
        """
        self.lexer.input(data)
        tokens = list()
        while True:
            token = self.lexer.token()
            if not token:
                break
            tokens.append(token)
        return tokens