from CweCheckerParser import CweWarning

class IdaGenerator(object):

    def __init__(self, results):
        self._results = results

    def generate(self):
        script = "import sark\nimport idaapi\n"
        for res in self._results:
            if isinstance(res, CweWarning):
                if res.highlight and res.address:
                    first_address = res.address[0]
                    script += "sark.Line(%s).color = %s\n" % (first_address, res.color)
                    script += "sark.Line(%s).comments.regular = '%s'\n" % (first_address, res.description)
                    script += "print('[ %s ] %s')\n" % (first_address, res.description)
                else:
                    script += "print('[ GENERAL ] %s')\n" % res.description
            else:
                script += "print('[CheckPath] %s ( %s ) -> %s via %s')\n" % (res.source,
                                                                           res.source_addr,
                                                                           res.destination,
                                                                           res.path_str)
        return script