Puede utilizar la opción -dump
de la herramienta abi-compliance-checker para analizar las firmas de las funciones y los métodos de su archivo de cabecera (s):
abi-compliance-checker -lib NAME -dump DESC.xml -headers-only -stdout > api.dump
XML-descriptor (DESC.xml
) es la siguiente:
<version>
VERSION
</version>
<headers>
/path(s)/to/headers/
</headers>
La herramienta funciona de la siguiente manera:
- de llamadas
GCC
con -fdump-translation-unit
y un conjunto de opciones generadas automáticamente -I...
en los encabezados especificados en el descriptor XML de entrada;
- Analice el volcado de AST generado por
GCC
;
- Generar firmas de funciones y definiciones de tipos en el formato Data::Dumper o XML (si se proporciona una opción adicional
-xml
).
La firma muestra de int BZ2_bzRead (int *bzerror, BZFILE *b, void *buf, int len)
función de bzlib.h
cabecera parece:
'228' => {
'Header' => 'bzlib.h',
'Line' => '160',
'Param' => {
'0' => {
'algn' => '4',
'name' => 'bzerror',
'type' => '30'
},
'1' => {
'algn' => '4',
'name' => 'b',
'type' => '16'
},
'2' => {
'algn' => '4',
'name' => 'buf',
'type' => '68'
},
'3' => {
'algn' => '4',
'name' => 'len',
'type' => '41'
}
},
'Return' => '41',
'ShortName' => 'BZ2_bzRead'
},
+1, por cierto para el pasado 2 de año como parte de mi proyecto paralelo, he escrito un programa de análisis, que extrae firma de método/función de 'clase, espacio de nombres, clase interna', etc. Quiero hacer que se comercialice en algún momento. – iammilind
@iammilind: me enfoco en hacer que el dinero se materialice. No hay resultados definitivos todavía – sehe
@sehe, ¿significa? ¿También has escrito algo así? Bueno, de lo que estoy hablando no es solo un analizador sintáctico. Es un proyecto para el recolector de basura automático que incluye esta parte de la extracción de firmas de punteros, clases, espacios de nombres, funciones/métodos, etc. – iammilind