docs: def t_ID(self, t):
          r'[a-zA-Z]+'
          if t.value in self._RESERVED.keys():
              t.type = self._RESERVED[t.value]
              return t
  
          if Information.is_valid_symbol(t.value) or \
                  Information.is_valid_category(t.value):
              t.type = self._INFORMATION_UNIT
              return t
  
          if Duration.is_valid_symbol(t.value):
              t.type = self._DURATION_UNIT
              return t
  
          raise LexingError('Unrecognised token or unit \'{0.value}\' at '
                            'position {0.lexpos}'.format(t))