docs: def _get_token_type(self, char):
          """ Returns a 2-tuple (behaviour, type).
           behaviours:
            0 - join
            1 - split
            2 - ignore
          """
          if char in '()':
              return self.SPLIT, 0
          elif char == ',':
              return self.SPLIT, 1
          elif char in '<>':
              return self.IGNORE, 2
          elif char == '.':
              return self.JOIN, 3
          elif char.isdigit():
              return self.JOIN, 4
          elif char.isalpha():
              return self.JOIN, 5
          elif char == '^':
              return self.JOIN, 6
          elif char.isspace():
              return self.IGNORE, 7
          else:
              raise ValueError('TokeniserException: "{}" can not be tokenised'.format(char))