<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse(self):
 # pylint: disable=too-many-branches """ Check if some extra configuration files are existing in an `alignak.d` sub directory near the found configuration file. Parse the Alignak configuration file(s) Exit the script if some errors are encountered. :return: True/False """

        # Search if some ini files existe in an alignak.d sub-directory
        sub_directory = 'alignak.d'
        dir_name = os.path.dirname(self.configuration_file)
        dir_name = os.path.join(dir_name, sub_directory)
        self.cfg_files = [self.configuration_file]
        if os.path.exists(dir_name):
            for root, _, walk_files in os.walk(dir_name, followlinks=True):
                for found_file in walk_files:
                    if not re.search(r"\.ini$", found_file):
                        continue
                    self.cfg_files.append(os.path.join(root, found_file))
        print("Loading configuration files: %s " % self.cfg_files)

        # Read and parse the found configuration files
        self.config = configparser.ConfigParser()
        try:
            self.config.read(self.cfg_files)
            if self.config._sections == {}:
                print("* bad formatted configuration file: %s " % self.configuration_file)
                if self.embedded:
                    raise ValueError
                sys.exit(2)

            for section in self.config.sections():
                if self.verbose:
                    print("- section: %s" % section)
                for (key, value) in self.config.items(section):
                    inner_property = "%s.%s" % (section, key)

                    # Set object property
                    setattr(self, inner_property, value)

                    # Set environment variable
                    os.environ[inner_property] = value

                    if self.verbose:
                        print("  %s = %s" % (inner_property, value))

                    if self.export:
                        # Allowed shell variables may only contain: [a-zA-z0-9_]
                        inner_property = re.sub('[^0-9a-zA-Z]+', '_', inner_property)
                        inner_property = inner_property.upper()
                        print("export %s=%s" % (inner_property, cmd_quote(value)))
        except configparser.ParsingError as exp:
            print("* parsing error in config file : %s\n%s"
                  % (self.configuration_file, exp.message))
            if self.embedded:
                return False
            sys.exit(3)
        except configparser.InterpolationMissingOptionError as exp:
            print("* incorrect or missing variable: %s" % str(exp))
            if self.embedded:
                return False
            sys.exit(3)

        if self.verbose:
            print("Configuration file parsed correctly")

        return True