<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def args_builder(prefix, current_target, args_dict, value_found_fn):
 """ Process arguments a tool cares about. Since most tools require configuration, this function helps deal with the boilerplate. Each option will be processed based on all modifications supported by dev-pipeline (i.e., profiles and overrides) in the proper order. Arguments: prefix -- The prefix for each argument. This will be applied to everything in args_dict. current_target -- Information about the current target being processed. args_dict -- Something that acts like a dictionary. The keys should be options to deal with and the value should be the separtor value the option requires. The separator can be any type that has a join method, or None if lists are supported for that key. value_found_fn -- A function to call when a match is found. """

    current_config = current_target.config
    for key, separator in args_dict.items():
        option = "{}.{}".format(prefix, key)
        value = current_config.get_list(option)
        if value:
            if separator is None:
                separator = _NullJoiner(current_config.name, option)
            value_found_fn(separator.join(value), key)