def _complete_parsers_with_converters(self, parser, parser_supported_type, desired_type, matching_c_generic_to_type,<EOL>matching_c_approx_to_type, matching_c_exact_to_type):
matching_p_generic, matching_p_generic_with_approx_chain,matching_p_approx, matching_p_approx_with_approx_chain,matching_p_exact, matching_p_exact_with_approx_chain = [], [], [], [], [], []<EOL>desired_types = get_alternate_types_resolving_forwardref_union_and_typevar(desired_type)<EOL>for desired_type in desired_types:<EOL><INDENT>desired_type = get_validated_type(desired_type, '<STR_LIT>', enforce_not_joker=False)<EOL>if not is_any_type(parser_supported_type):<EOL><INDENT>for cv in matching_c_generic_to_type:<EOL><INDENT>if cv.is_able_to_convert(strict=True,<EOL>from_type=parser_supported_type,<EOL>to_type=desired_type):<EOL><INDENT>if ParsingChain.are_worth_chaining(parser, parser_supported_type, cv):<EOL><INDENT>chain = ParsingChain(parser, cv, strict=True,<EOL>base_parser_chosen_dest_type=parser_supported_type)<EOL>matching_p_generic.append(chain)<EOL><DEDENT><DEDENT>elif (not self.strict)and cv.is_able_to_convert(strict=False,<EOL>from_type=parser_supported_type,<EOL>to_type=desired_type):<EOL><INDENT>if ParsingChain.are_worth_chaining(parser, parser_supported_type, cv):<EOL><INDENT>chain = ParsingChain(parser, cv, strict=False,<EOL>base_parser_chosen_dest_type=parser_supported_type)<EOL>matching_p_generic_with_approx_chain.append(chain)<EOL><DEDENT><DEDENT><DEDENT><DEDENT>for cv in matching_c_approx_to_type:<EOL><INDENT>if cv.is_able_to_convert(strict=True,<EOL>from_type=parser_supported_type,<EOL>to_type=desired_type):<EOL><INDENT>if ParsingChain.are_worth_chaining(parser, parser_supported_type, cv):<EOL><INDENT>chain = ParsingChain(parser, cv, strict=True,<EOL>base_parser_chosen_dest_type=parser_supported_type)<EOL>matching_p_approx.append(chain)<EOL><DEDENT><DEDENT>elif (not self.strict)and cv.is_able_to_convert(strict=False,<EOL>from_type=parser_supported_type,<EOL>to_type=desired_type):<EOL><INDENT>if ParsingChain.are_worth_chaining(parser, parser_supported_type, cv):<EOL><INDENT>chain = ParsingChain(parser, cv, strict=False,<EOL>base_parser_chosen_dest_type=parser_supported_type)<EOL>matching_p_approx_with_approx_chain.append(chain)<EOL><DEDENT><DEDENT><DEDENT>for cv in matching_c_exact_to_type:<EOL><INDENT>if cv.is_able_to_convert(strict=True,<EOL>from_type=parser_supported_type,<EOL>to_type=desired_type):<EOL><INDENT>if ParsingChain.are_worth_chaining(parser, parser_supported_type, cv):<EOL><INDENT>chain = ParsingChain(parser, cv, strict=True,<EOL>base_parser_chosen_dest_type=parser_supported_type)<EOL>matching_p_exact.append(chain)<EOL><DEDENT><DEDENT>elif (not self.strict)and cv.is_able_to_convert(strict=False,<EOL>from_type=parser_supported_type,<EOL>to_type=desired_type):<EOL><INDENT>if ParsingChain.are_worth_chaining(parser, parser_supported_type, cv):<EOL><INDENT>chain = ParsingChain(parser, cv, strict=False,<EOL>base_parser_chosen_dest_type=parser_supported_type)<EOL>matching_p_exact_with_approx_chain.append(chain)<EOL><DEDENT><DEDENT><DEDENT><DEDENT>return matching_p_generic_with_approx_chain, matching_p_generic,matching_p_approx_with_approx_chain, matching_p_approx,matching_p_exact_with_approx_chain, matching_p_exact<EOL>
Internal method to create parsing chains made of a parser and converters from the provided lists.
Once again a JOKER for a type means 'joker' here.

:param parser:
:param parser_supported_type:
:param desired_type:
:param matching_c_generic_to_type:
:param matching_c_approx_to_type:
:param matching_c_exact_to_type:
:return: