code: def PARM_DECL(self, cursor):
          
          # try and get the type. If unexposed, The canonical type will work.
          _type = cursor.type
          _name = cursor.spelling
          if (self.is_array_type(_type) or
                  self.is_fundamental_type(_type) or
                  self.is_pointer_type(_type) or
                  self.is_unexposed_type(_type)):
              _argtype = self.parse_cursor_type(_type)
          else:  # FIXME: Which UT/case ? size_t in stdio.h for example.
              _argtype_decl = _type.get_declaration()
              _argtype_name = self.get_unique_name(_argtype_decl)
              if not self.is_registered(_argtype_name):
                  log.info('This param type is not declared: %s', _argtype_name)
                  _argtype = self.parse_cursor_type(_type)
              else:
                  _argtype = self.get_registered(_argtype_name)
          obj = typedesc.Argument(_name, _argtype)
          self.set_location(obj, cursor)
          self.set_comment(obj, cursor)
          return obj
docs: Handles parameter declarations.