<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build_multiple_tocs(filenames: list, ordered: bool = False, no_links: bool = False, no_indentation: bool = False, no_list_coherence: bool = False, keep_header_levels: int = 3, parser: str = 'github', list_marker: str = '-') -> list: r"""Parse files by line and build the table of contents of each file. :parameter filenames: the files that needs to be read. :parameter ordered: decides whether to build an ordered list or not. Defaults to ``False``. :parameter no_links: disables the use of links. Defaults to ``False``. :parameter no_indentation: disables indentation in the list. Defaults to ``False``. :parameter keep_header_levels: the maximum level of headers to be considered as such when building the table of contents. Defaults to ``3``. :parameter parser: decides rules on how to generate anchor links. Defaults to ``github``. :type filenames: list :type ordered: bool :type no_links: bool :type no_indentation: bool :type keep_header_levels: int :type parser: str :returns: toc_struct, the corresponding table of contents for each input file. :rtype: list :raises: a built-in exception. """

    if len(filenames) > 0:
        for f in filenames:
            assert isinstance(f, str)

    if len(filenames) == 0:
        filenames.append('-')
    file_id = 0
    toc_struct = list()
    while file_id < len(filenames):
        toc_struct.append(
            build_toc(filenames[file_id], ordered, no_links, no_indentation,
                      no_list_coherence, keep_header_levels, parser,
                      list_marker))
        file_id += 1

    return toc_struct