def declare_param(self, id_, lineno, type_=None):
        """ Declares a parameter
        Check if entry.declared is False. Otherwise raises an error.
        """
        if not self.check_is_undeclared(id_, lineno, classname='parameter',
                                        scope=self.current_scope, show_error=True):
            return None

        entry = self.declare(id_, lineno, symbols.PARAMDECL(id_, lineno, type_))
        if entry is None:
            return
        entry.declared = True
        if entry.type_.implicit:
            warning_implicit_type(lineno, id_, type_)
        return entry
Declares a parameter
        Check if entry.declared is False. Otherwise raises an error.