Optomize dump() abstraction. (You muss optomize, always optomize.)
Chris Pressey
4 years ago
60 | 60 | if options.optimize_fallthru: |
61 | 61 | def dump(label, data): |
62 | 62 | import json |
63 | if not options.dump_fallthru_info: | |
64 | return | |
63 | 65 | if label: |
64 | 66 | sys.stdout.write("*** {}:\n".format(label)) |
65 | 67 | sys.stdout.write(json.dumps(data, indent=4, sort_keys=True)) |
69 | 71 | |
70 | 72 | fa = FallthruAnalyzer(debug=options.debug) |
71 | 73 | fa.analyze_program(program) |
72 | ||
73 | if options.dump_fallthru_info: | |
74 | dump(None, fa.fall_in_map) | |
74 | dump(None, fa.fall_in_map) | |
75 | 75 | |
76 | 76 | fa.find_cycles() |
77 | ||
78 | 77 | while fa.cycles_found: |
79 | if options.dump_fallthru_info: | |
80 | ||
81 | if options.debug: | |
82 | dump('ancestors', fa.ancestor_map) | |
83 | dump('cycles found', sorted(fa.cycles_found)) | |
84 | ||
78 | if options.debug: | |
79 | dump('ancestors', fa.ancestor_map) | |
80 | dump('cycles found', sorted(fa.cycles_found)) | |
85 | 81 | fa.break_cycle() |
86 | ||
87 | if options.dump_fallthru_info: | |
88 | dump('after breaking cycle', fa.fall_in_map) | |
89 | ||
82 | dump('after breaking cycle', fa.fall_in_map) | |
90 | 83 | fa.find_cycles() |
91 | 84 | |
92 | 85 | if options.analyze_only: |