Visual Studio IntelliSense für VC ++ enthält den "vollständigen" EDG C ++ - Parser (auch von Intel und anderen verwendet). Da das C # -Code-DOM für Addons zugänglich ist (korrigieren Sie mich, wenn ich falsch liege), ist das C ++ - Code-DOM auch zugänglich? Kann dies verwendet werden, um ein offenes VC ++ - Projekt in der VS-Umgebung zu analysieren?
.net
visual-studio
visual-c++
c++-cli
codedom
Der Blitz
quelle
quelle
Antworten:
Die Visual C ++ Refactoring- Erweiterung kann ein Mitglied projektweit umbenennen. Es wurde von MS erstellt, aber offensichtlich haben sie das interne Code-DOM verwendet, um dies zu erreichen. Es ist also möglich, ich weiß nur noch nicht wie.
Die CppLister- Erweiterung kann die von VS erstellten Intellisense-Datenbanken lesen, um die verschiedenen Mitglieder innerhalb einer Klasse aufzulisten.
Sie können jederzeit den Open Source Clang C ++ - Parser (eigentlich Compiler) verwenden und den AST in ein C # -Objektmodell einlesen. Siehe CppSharp und ClangSharp für C # -Bindungen an Clang.
quelle
Ich bin mir nicht sicher, was das "C ++ Code DOM" ist, wenn es überhaupt existiert. Entscheidend ist, dass MSVS das EDG-Frontend verwendet, um die Bedeutung von Symbolen zu analysieren und zu bestimmen und MSVS-IDE-Aktionen zu unterstützen. EDG IIRC baut seine eigenen internen Datenstrukturen auf, die das Programm repräsentieren. Ich habe keinen Grund zu der Annahme, dass diese Datenstrukturen das "C ++ Code DOM" sind oder dass sie für Sie sichtbar sind oder dass Sie sie bei MSDN herausfinden können.
Ihr eigentliches Problem ist, dass Sie C ++ - Quellcode analysieren möchten. Ich stimme zu, dass die EDG-Front-End-Informationen eine bedeutende Hilfe dafür wären. Sie möchten wirklich wirklich nicht versuchen, Ihren eigenen C ++ - Parser zu schreiben (und Sie benötigen viele Dinge nach dem Parsen, googeln Sie meinen Aufsatz über "Leben nach dem Parsen").
Sie haben also folgende Möglichkeiten:
quelle