Quais bibliotecas estão disponíveis para analisar o c ++ para extrair informações de tipo

Eu estou procurando uma maneira de analisar o código c + + para recuperar algumas informações básicas sobre as classes. Eu realmente não preciso de muita informação do código em si, mas eu preciso disso para lidar com coisas como macros e modelos. Em suma, quero extrair a "estrutura" do código, o que você mostraria em um diagrama UML.

Para cada classe / struct / union / enum / typedef na base de código, tudo o que preciso (depois de modelos e macros terem sido manipulados) é:

O nome delesO namespace em que eles vivemOs campos contidos dentro de (nome do tipo, nome do campo e restrições de acesso, como private / mutable / etc)Funções contidas dentro (tipo de retorno, nome, parâmetros)O arquivo declaranteNúmeros de linha / coluna (ou byte offset no arquivo) onde a definição desses dados começa

As instruções reais no código são irrelevantes para meus propósitos.

Estou antecipando muitas pessoas dizendo que eu deveria apenas usar um regex para isso (ou até mesmo o Flex & Bison), mas elas não são realmente válidas, já que eu preciso do material do pré-processador e do template tratado corretamente.

questionAnswers(7)

yourAnswerToTheQuestion