Visual Studio IntelliSense pour VC ++ inclut l’ analyseur "complet" EDG C ++ (également utilisé par Intel et d’autres). Puisque le code DOM C # est accessible aux addons (corrigez-moi si je me trompe), le code DOM C ++ est-il également accessible? Cela peut-il être utilisé pour analyser un projet VC ++ ouvert dans l'environnement VS?
Réponses
Trop de publicités?Le Visual C++ Refactoring extension est capable de renommer un membre à l'échelle du projet. Ses construit par MS mais, évidemment, ils ont utilisé le Code interne DOM pour atteindre cet objectif. Il est donc possible, je ne sais pas comment faire, pourtant.
Le CppLister extension est capable de lire les intellisense les bases de données créées par VS d'énumérer les différents membres au sein d'une classe.
Vous pouvez toujours utiliser l'open source Clang analyseur C++ (en fait, le compilateur) et la lecture de l'AST dans un Objet de C# de Modèle. Voir CppSharp et ClangSharp pour C# liaisons à grand Bruit de ferraille.
Je ne suis pas sûr de ce que le "Code C++ DOM" est, même s'il existe. Ce qui importe, c'est que MSVS est l'aide de l'EDG avant fin à analyser et à déterminer la signification des symboles, à l'appui de MSVS IDE actions. GDE IIRC construit de ses propres structures de données représentant le programme; je n'ai aucune raison de croire que ces structures de données sont le "Code C++ DOM", ou qu'ils sont visibles ou si vous voulez être en mesure de les trouver sur le site MSDN.
Votre vrai problème énoncé est que vous voulez analyser le code source C++. Je suis d'accord, avoir la GDE avant la fin de l'information serait une aide importante à faire; vous avez vraiment vraiment ne voulez pas tenter d'écrire votre propre analyseur C++ (et vous avez besoin de beaucoup de choses en dernière analyse, google mon texte sur "la vie après l'analyse").
Si vous avez les choix suivants:
- Trouver une porte d'entrée dans le GROUPE de discussion machines dans MSVS. Puisque vous n'avez pas eu beaucoup de chance et il semble y avoir rien documentée à partir de MS qui disent que c'est disponible, vous n'aurez probablement pas beaucoup de chance de cette façon.
- L'utilisation commerciale GDE frontal, directement à partir de GDE. Ma compréhension est qu'ils offrent individuels des licences d'utilisation sans aucun frais. (Ma compréhension peut-être mal). De cette façon, vous passez toutes les restrictions que MS peut avoir sur l'accès, au prix d'avoir à configurer le GROUPE de discussion avant la fin de vous-même. Un inconvénient: EDG veut être l'extrémité avant d'un compilateur, pas avant la fin de l'analyseur. Cette distinction peut paraître subtile, mais elle ne sera probablement vous mordre. Par exemple, je soupçonne GDE jette commentaires; compilateur frontaux n'en avez pas besoin. Si vous voulez inspecter les commentaires dans votre analyseur, ce peut être un réel problème.
- Utiliser Clang. C'est un open source analyseur C++, conçu à utiliser pour une grande variété de programme à des fins d'analyse ainsi que pour l'avant se terminant un compilateur C++. Je n'ai aucune expérience de ce type, mais il semble assez bien pensé, et semble offrir de nombreux équipements.
- Utiliser un autre commercial, notre (DMS) C++ Avant la Fin. L'architecte de cela, je suis sûr que c'est bien pensé; il est spécifique de l'expérience avec l'utilisation de ce pour mener à bien complexe C++ analyse et la transformation des tâches. Contrairement à EDG, il est conçu pour appuyer l'analyse, la transformation et la production (par exemple, il capture des commentaires et même la base de littéraux de sorte qu'ils peuvent être régénérées correctement). La fondation, de la ged, a beaucoup de machines construites en charge l'analyse personnalisée: AST et de la table des symboles de la construction, attribut des grammaires, des flux de données cadres, intraprocédurale de contrôle et d'analyse de flux de données à l'AST niveau, BDD de gestion, modèle de source de matchs, source-à-source de transformations. Clang et GDE offre AST et de la table des symboles de la construction; Clang (mais je ne pense pas EDG) a a analyse des flux (au LLVM niveau), mais pas l'analyse des flux à l'AST niveau (autant que je sache). Ni Bruit, ni GDE offre le modèle de source/de transformation de la capacité, ce qui est mieux dépend de vous à long terme des tâches. Par rapport aux autres options, notre interface C++ n'est pas open source ou libre.