parser.add_argument('--cfunction', help='name of function') args = parser.parse_args() return args if __name__ == '__main__': args = parse() capp = CApplication(args.path) def p(a): print(a) def q(fn): print('Function ' + fn.getname()) fn.getapi().apiassumptioniter(p) def r(f): print('File ' + f.getfilename()) f.fniter(q) if not args.cfile is None: cfile = capp.getfile(args.cfile) if not args.cfunction is None: cfunction = cfile.getfunctionbyname(args.cfunction) cfunction.getapi().apiassumptioniter(p) else: cfile.fniter(q) else: capp.fileiter(r)
semdir = os.path.join(args.path, 'semantics') capp = CApplication(semdir) lines = [] if not args.cfile is None: cfile = capp.getfile(args.cfile) if cfile is None: print('*' * 80) print('File ' + args.cfile + ' not found in this application') print('Valid filenames for this application are: ') def f(cf): print(' - ' + cf.getfilename()) capp.fileiter(f) print('*' * 80) exit(1) if not args.cfunction is None: cfun = cfile.getfunctionbyname(args.cfunction) if cfun is None: print('*' * 80) print('Function ' + args.cfunction + ' not found in file ' + cfile.getfilename()) print('Functions in this file are: ') def f(fn): print(' - ' + fn.getname()) cfile.fniter(f) print('*' * 80)
sempath = os.path.join(cpath,'semantics') if (not os.path.isdir(sempath)) or args.deletesemantics: success = UF.unpack_tar_file(cpath,args.deletesemantics) if not success: print(UP.semantics_tar_not_found_err_msg(cpath)) exit(1) capp = CApplication(sempath) linker = CLinker(capp) linker.linkcompinfos() linker.linkvarinfos() def savexrefs(f): capp.indexmanager.savexrefs(capp.getpath(),f.getfilename(),f.getindex()) capp.fileiter(savexrefs) linker.saveglobalcompinfos() capp = CApplication(sempath) am = AnalysisManager(capp,wordsize=32) if args.resetsemantics: am.reset() capp = CApplication(sempath) am = AnalysisManager(capp) am.create_app_primaryproofobligations() am.generate_app_localinvariants(['llvis']) am.generate_app_localinvariants(['llvis'])