VC ++ 용 Visual Studio IntelliSense에는 "완전한" EDG C ++ 파서 (Intel 및 기타 업체에서도 사용됨)가 포함되어 있습니다. 애드온에서 C # 코드 DOM에 액세스 할 수 있으므로 (내가 틀렸다면 수정) C ++ 코드 DOM도 액세스 할 수 있습니까? VS 환경에서 개방형 VC ++ 프로젝트를 분석하는 데 사용할 수 있습니까?
VC ++ 용 Visual Studio IntelliSense에는 "완전한" EDG C ++ 파서 (Intel 및 기타 업체에서도 사용됨)가 포함되어 있습니다. 애드온에서 C # 코드 DOM에 액세스 할 수 있으므로 (내가 틀렸다면 수정) C ++ 코드 DOM도 액세스 할 수 있습니까? VS 환경에서 개방형 VC ++ 프로젝트를 분석하는 데 사용할 수 있습니까?
답변:
비주얼 C ++ 리팩토링의 확장은 프로젝트 전체 멤버의 이름을 변경 할 수 있습니다. MS에 의해 구축되었지만 분명히 내부 코드 DOM을 사용하여이를 달성했습니다. 그래서 가능합니다. 나는 아직 방법을 모릅니다.
CppLister의 확장은 클래스 내에서 다양한 구성원을 나열 VS에 의해 생성 된 인텔리 데이터베이스를 읽을 수있다.
언제든지 오픈 소스 Clang C ++ 파서 (실제로 컴파일러)를 사용하고 AST를 C # 개체 모델로 읽을 수 있습니다. Clang에 대한 C # 바인딩 은 CppSharp 및 ClangSharp 를 참조하세요 .
"C ++ 코드 DOM"이 존재하는지 확실하지 않습니다. 중요한 것은 MSVS가 MSVS IDE 작업을 지원하기 위해 EDG 프런트 엔드를 사용하여 심볼의 의미를 구문 분석하고 결정한다는 것입니다. EDG IIRC는 프로그램을 나타내는 자체 내부 데이터 구조를 구축합니다. 나는 이러한 데이터 구조가 "C ++ 코드 DOM"이라고 믿을 이유가 없거나, 사용자에게 표시되거나 MSDN에서 확인할 수있을 것이라고 믿을 이유가 없습니다.
실제 문제는 C ++ 소스 코드를 분석하려는 것입니다. 나는 EDG 프런트 엔드 정보를 갖는 것이 그렇게하는 데 큰 도움이 될 것이라는 데 동의합니다. 당신은 정말 정말 자신의 C ++ 파서를 작성하려고 시도하고 싶지 않아요 (당신은 "구문 분석 후 삶"내 에세이 구글, 구문 분석 과거의 물건을 많이 필요).
따라서 다음과 같은 선택 사항이 있습니다.