Visual Studio IntelliSense dla VC ++ zawiera „kompletny” parser EDG C ++ (używany także przez firmę Intel i inne). Skoro C # Code DOM jest dostępny dla dodatków (popraw mnie, jeśli się mylę), czy C ++ Code DOM jest również dostępny? Czy można to wykorzystać do analizy otwartego projektu VC ++ w środowisku VS?
100
Odpowiedzi:
Visual C ++ Refaktoryzacja rozszerzenie jest w stanie zmienić nazwę elementu całego projektu. Został zbudowany przez MS, ale oczywiście użyli wewnętrznego kodu DOM, aby to osiągnąć. Więc jest to możliwe, po prostu jeszcze nie wiem jak.
CppLister rozszerzenie jest w stanie odczytać baz danych utworzonych przez IntelliSense VS notować różne elementy w klasie.
Zawsze możesz użyć parsera Clang C ++ typu open source (właściwie kompilatora) i wczytać AST do modelu obiektowego C #. Zobacz CppSharp i ClangSharp dla powiązań C # z Clang.
źródło
Nie jestem pewien, co to jest „C ++ Code DOM”, jeśli w ogóle istnieje. Liczy się to, że MSVS używa interfejsu EDG do analizowania i określania znaczenia symboli, aby wspierać działania MSVS IDE. EDG IIRC buduje własne wewnętrzne struktury danych reprezentujące program; Nie mam powodu, by sądzić, że te struktury danych to „C ++ Code DOM” lub że są one dla Ciebie widoczne lub możesz się o nich dowiedzieć w MSDN.
Twoim prawdziwym problemem jest to, że chcesz przeanalizować kod źródłowy C ++. Zgadzam się, posiadanie informacji wyjściowych EDG byłoby w tym znaczącą pomocą; ty naprawdę naprawdę nie chce próbować napisać własny parser C ++ (i trzeba wiele rzeczy przeszłe parsowania, google mój esej o „życiu po parsowania”).
Masz więc do wyboru następujące możliwości:
źródło