<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def spellcheckable_and_shadow_contents(contents, block_out_regexes=None):
 """For contents, split into spellcheckable and shadow parts. :contents: is a list of lines in a file. The return value is a tuple of (chunks, shadow_contents). chunks is a list of _ChunkInfo, each of which contain a region of text to be spell-checked. shadow_contents is an array of characters and integers. The characters represent nonspellcheckable regions and any region which will be subject to spellcheck is denoted by a zero in place of that character. """

    if not len(contents):
        return ([], [])

    comment_system = _comment_system_for_file(contents[0])

    # Shadow contents excludes anything in quotes
    chunks = _find_spellcheckable_chunks(contents, comment_system)
    shadow_contents = _shadow_contents_from_chunks(contents,
                                                   chunks,
                                                   block_out_regexes)

    return (chunks, shadow_contents)