def make_loop()

in cbmc_viewer/loopt.py [0:0]


def make_loop(viewer_loop, cbmc_loop, srcdir, goto):
    """The implementation of make-loop"""

    if viewer_loop:
        if filet.all_json_files(viewer_loop):
            return LoopFromJson(viewer_loop)
        fail("Expected json files: {}".format(viewer_loop))

    if cbmc_loop and srcdir:
        if filet.all_json_files(cbmc_loop):
            return LoopFromCbmcJson(cbmc_loop, srcdir)
        if filet.all_xml_files(cbmc_loop):
            return LoopFromCbmcXml(cbmc_loop, srcdir)
        fail("Expected json files or xml files, not both: {}"
             .format(cbmc_loop))

    if goto and srcdir:
        return LoopFromGoto(goto, srcdir)

    logging.info("make-loop: nothing to do: need "
                 "--goto and --srcdir, or "
                 "cbmc loop listing results (cbmc --show-loops) and --srcdir, or "
                 "--viewer-loop")
    return Loop()