code: def parse_element(self, raw=None):
          
          # TODO: retrieve return from element external code (in parameter)
          if raw is None:
              l = self.element['raw'].strip()
          else:
              l = raw.strip()
          is_class = False
          if l.startswith('def ') or l.startswith('class '):
              # retrieves the type
              if l.startswith('def'):
                  self.element['type'] = 'def'
                  l = l.replace('def ', '')
              else:
                  self.element['type'] = 'class'
                  l = l.replace('class ', '')
                  is_class = True
              # retrieves the name
              self.element['name'] = l[:l.find('(')].strip()
              if not is_class:
                  if l[-1] == ':':
                      l = l[:-1].strip()
                  # retrieves the parameters
                  l = l[l.find('(') + 1:l.rfind('):')].strip()
                  lst = [c.strip() for c in l.split(',')]
                  for e in lst:
                      if '=' in e:
                          k, v = e.split('=', 1)
                          self.element['params'].append((k.strip(), v.strip()))
                      elif e and e != 'self' and e != 'cls':
                          self.element['params'].append(e)
          self.parsed_elem = True
docs: Parses the element's elements (type, name and parameters) :)
          e.g.: def methode(param1, param2='default')
          def                      -> type
          methode                  -> name
          param1, param2='default' -> parameters
  
          :param raw: raw data of the element (def or class). (Default value = None)