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çaAs 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.