O Visual Studio IntelliSense para VC ++ inclui o analisador EDG C ++ "completo" (também usado pela Intel e outros). Como o DOM do código C # pode ser acessado por complementos (corrija-me se estiver errado), o DOM do código C ++ também está acessível? Isso pode ser usado para analisar um projeto VC ++ aberto dentro do ambiente VS?
.net
visual-studio
visual-c++
c++-cli
codedom
O Flash
fonte
fonte
Respostas:
A Refatoração Visual C ++ extensão é capaz de renomear um membro em todo o projeto. É construído pela MS, mas obviamente eles usaram o Code DOM interno para fazer isso. Então é possível, só não sei como, ainda.
A extensão CppLister é capaz de ler os bancos de dados Intellisense criados pelo VS para listar os vários membros de uma classe.
Você sempre pode usar o analisador Clang C ++ de código aberto (na verdade, o compilador) e ler o AST em um modelo de objeto C #. Consulte CppSharp e ClangSharp para vinculações C # ao Clang.
fonte
Não tenho certeza do que é o "C ++ Code DOM", se é que existe. O que importa é que o MSVS está usando o front end EDG para analisar e determinar o significado dos símbolos, para oferecer suporte às ações do IDE do MSVS. EDG IIRC constrói suas próprias estruturas de dados internas representando o programa; Não tenho nenhuma razão para acreditar que essas estruturas de dados sejam o "C ++ Code DOM", ou que sejam visíveis para você ou que você possa descobrir mais sobre elas no MSDN.
O seu verdadeiro problema é que você deseja analisar o código-fonte C ++. Eu concordo, ter as informações de front-end do EDG seria uma ajuda significativa para fazer isso; você realmente realmente não quero tentar escrever seu próprio analisador C ++ (e você precisa de um monte de coisas passadas análise, google meu ensaio sobre a "vida após a análise").
Então você meio que tem as seguintes opções:
fonte