A System for Generating Reverse Engineering Tools