Phân tích chính xác C++ là năm ánh sáng từ thứ bạn có thể làm với cụm từ thông dụng. Bạn cần một trình phân tích cú pháp C++ đầy đủ và chúng khá khó xây dựng. Tôi đã tham gia xây dựng một vài năm qua và theo dõi ai đang làm việc đó; Tôi không biết bất kỳ ai đang cố gắng thử trong Python.
Tôi đang làm việc là DMS C++ Front End. Nó cung cấp không chỉ phân tích cú pháp, nhưng tên đầy đủ và độ phân giải loại. Sau khi phân tích cú pháp, bạn về cơ bản có thể trích xuất thông tin chi tiết về mã ở bất kỳ mức chi tiết nào bạn thích, bao gồm chi tiết về nội dung hàm.
Bạn có thể xem xét sử dụng GCCXML, trong đó có chứa một trình phân tích cú pháp và sẽ tạo ra, tôi tin rằng tên của tất cả các lớp, hàm và các biến cấp cao nhất. GCCXML sẽ không cung cấp cho bạn bất kỳ thông tin nào về những gì bên trong một chức năng.
Nguồn
2010-03-06 18:16:13
chỉnh sửa: Tôi không ngụ ý rằng bằng cách sử dụng cụm từ thông dụng, tôi có thể phân tích cú pháp C++ đúng cách, điều đó sẽ vô lý vì đó là ngôn ngữ không thường xuyên. Tôi có nghĩa là cho những gì tôi cần một regex có thể đủ. – Mike
Ngay cả đối với trường hợp giới hạn đó, tôi nghi ngờ bạn có thể làm điều đó với một regex một mình. Có lẽ nếu bạn thu hẹp nó xuống các lớp đơn giản, cư xử tốt mà không có ma thuật macro hoặc mẫu (và có lẽ không có thừa kế). – jalf
Bạn đã thử http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/? – refi64