Để làm điều này một cách chính xác, bạn cần trình phân tích cú pháp và phân tích tên đầy đủ C++ vì bạn không chỉ cần khai báo hàm mà còn là ngữ cảnh làm cho chúng được xác định rõ. Ví dụ, nếu bạn có một tuyên bố
void foo<T>(...){ ... }
trong tập tin, và có một loại T trong file, bạn giữ lại tốt hơn việc khai báo cho T, và bất cứ điều gì tờ khai được sử dụng để xác định T, vv Vì vậy, bạn có giữ cho trang web của các định nghĩa hỗ trợ foo ... và bạn phải quyết định xem bạn có muốn giữ những định dạng có chứa tệp hay không.
DMS Software Reengineering Toolkit là máy phân tích và chuyển đổi chương trình mục đích chung có thể tùy chỉnh của chúng tôi. Với C++ Front End, người ta có thể phân tích cú pháp mã C++ (bao gồm cả #includes), xây dựng Abstract Syntax Trees (ASTs), phân giải tên và loại ra khỏi hộp. Sau đó, mã tùy chỉnh sẽ xác định trang web của các tham chiếu cần thiết và cho mỗi tham chiếu, chuyển đổi nó thành chữ ký (thay vì triển khai) nếu cần, bằng cách áp dụng source-to-source program transformations cho các AST. Dp của prettyprinter sau đó có thể sản xuất văn bản đầu ra cuối cùng.
DMS đã được sử dụng cho quy mô lớn C++ (lại) kỹ thuật trên các dự án lớn khác.
Tất nhiên, bạn luôn có thể viết một số lỗi xấu để mô phỏng điều này, nếu bạn không nhớ câu trả lời, bạn có thể phải vá bằng tay.
Nguồn
2011-12-22 23:55:02
thể trùng lặp của [Seeking tạo mã còn sơ khai (từ các tập tin tiêu đề)] (http: // stackoverflow .com/68568/search-code-stub-generator-from-header-files) –
Tìm kiếm và thay thế '{' bằng ';/*' và '}' bằng '* /' sẽ thực hiện, mặc dù không phải là giải pháp tốt. – Pubby
@Tim: Đó là cách khác, không? – Xeo