para hacer esto de forma fiable, que había necesidad de analizar el código C o C++, y luego tomar las definiciones de las funciones de la AST produce el analizador.
C es bastante fácil de analizar. Como pavpanchekha menciones, la capa analizador viene con un analizador de C, y se ha utilizado para realizar los siguientes proyectos relevantes:
de análisis de C++ es más complicado .. "Is there a good Python library that can parse C++" debería ser de ayuda:
C++ es notoriamente difícil de analizar. La mayoría de las personas que intentan hacer esto correctamente terminan desarmando un compilador. De hecho, esto es (en parte) por lo que comenzó LLVM: Apple necesitaba una forma en que pudieran analizar C++ para usar en XCode que coincidiera con la forma en que el compilador lo analizó.
Es por eso que hay proyectos como GCC_XML que se pueden combinar con una biblioteca python xml.
Por último, si el código no tiene que ser robusto en absoluto, podría ejecutar el código a través de un código-reformador, como indent (para el código C) para igualar las cosas, a continuación, utilizar expresiones regulares para que coincida la definición de la función. Sí, esta es una idea mala, hacky, propensa a errores, y probablemente encontrará definiciones de funciones en comentarios de líneas múltiples y tal, pero podría funcionar bastante bien ...
¿Sabe cómo identificar una función y está preguntando cómo implementarla, o está preguntando cómo identificar una función c def? – foosion