¿Qué bibliotecas están disponibles para analizar c ++ para extraer información de tipo

Estoy buscando una manera de analizar el código c ++ para recuperar información básica sobre las clases. Realmente no necesito mucha información del código en sí, pero sí la necesito para manejar cosas como macros y plantillas. En resumen, quiero extraer la "estructura" del código, lo que mostraría en un diagrama UML.

Para cada clase / struct / union / enum / typedef en el código base, todo lo que necesito (después de que se hayan manejado las plantillas y las macros) es:

Su nombreEl espacio de nombres en el que viven.Los campos contenidos en (nombre del tipo, nombre del campo y restricciones de acceso, como private / mutable / etc)Funciones contenidas dentro (tipo de retorno, nombre, parámetros)El archivo declaranteNúmeros de línea / columna (o byte offset en el archivo) donde comienza la definición de estos datos

Las instrucciones reales en el código son irrelevantes para mis propósitos.

Estoy anticipando que mucha gente dice que debería usar una expresión regular para esto (o incluso Flex & Bison), pero esto no es realmente válido, ya que necesito que el preprocesador y la plantilla se manejen correctamente.

Respuestas a la pregunta(7)

Su respuesta a la pregunta