Để làm điều này đáng tin cậy, bạn sẽ cần phải phân tích C hoặc C++, và sau đó lấy các định nghĩa chức năng từ AST phân tích cú pháp sản xuất.
C khá dễ dàng để phân tích cú pháp. Như pavpanchekha đề cập, các PLY phân tích cú pháp đi kèm với một phân tích cú pháp C, và đã được sử dụng để thực hiện các dự án có liên quan sau đây:
Parsing C++ code đang phức tạp hơn .. "Is there a good Python library that can parse C++" nên được giúp đỡ:
C++ rất khó phân tích cú pháp. Hầu hết những người cố gắng làm điều này đúng cách kết thúc việc tách rời một trình biên dịch. Trong thực tế, đây là (một phần) tại sao LLVM bắt đầu: Apple cần một cách họ có thể phân tích cú pháp C++ để sử dụng trong XCode phù hợp với cách trình biên dịch phân tích nó.
Đó là lý do tại sao có các dự án như GCC_XML mà bạn có thể kết hợp với thư viện python xml.
Cuối cùng, nếu mã của bạn không cần phải mạnh mẽ ở tất cả, bạn có thể chạy mã mặc dù một mã reformatter, như indent (cho mã C) để thậm chí những điều trên, sau đó sử dụng biểu thức thông thường để phù hợp với định nghĩa hàm. Có, đây là ý tưởng tồi, dễ bị tấn công, có khả năng xảy ra lỗi và có thể bạn sẽ tìm thấy các định nghĩa chức năng trong các nhận xét nhiều dòng và như vậy, nhưng nó có thể hoạt động tốt ..
Bạn có biết cách xác định hàm và hỏi cách triển khai hay bạn đang hỏi cách xác định hàm c? – foosion