2012-04-17 9 views
9

W skrócie: Szukam czegoś w rodzaju Roslyn, ale w C++.

Czy istnieje kompilator jako usługa dla języka C++?

w szczegółach:

mam do czynienia z C# projektu gdzie mam do pracy z C++ plików. Mam kilka .h (około 250 plików) i .cpp i chciałbym mapować klasy i funkcje, a co nie, które są zdefiniowane w tych plikach.

Jest to zadanie do modelowania. Nie chcę używać rzeczywistej biblioteki C++.

Nie napisałem kodu C++, więc nie mogę być pewien, czy istnieją klasy zagnieżdżone w dowolnym miejscu. To nie jest "proste" zadanie regex.

Projekt jest w języku C#, a biblioteka, której chciałbym użyć, znajduje się w C++. Nie mogę tego zmienić.

+2

Nawet jeśli nie było klas zagnieżdżonych, to nadal nie byłoby to "proste" zadanie. A co z tworzeniem szablonów? Co jest warte, to właśnie robią faceci z Clang, ale AFAIK to wielki problem z pracą na niektórych platformach. –

+1

możliwy duplikat [Jak analizować/prosty analizować kod C/C++ z C#, aby uzyskać listę metod] (http://stackoverflow.com/questions/8817712/how-to-parse-simple-analyze-cc-code -z-c-sharp-to-get-a-list-of-metod) –

Odpowiedz

9

Wierzę, że libclang ma pożądaną funkcjonalność. Jest to w zasadzie interfejs C do uzyskiwania dostępu do wielu informacji przechowywanych w C/C++ AST klangu. Dokumentacja jest nieco zwięzła, więc here jest dobrym filmem na temat tego, co można zrobić z kilkoma przykładami.

+0

Przekonałeś mnie. :) Zacząłem pracować z libclang. Film był dla mnie bardzo dobrym początkiem. Jakieś dodatkowe samouczki/instruktaże, które polecasz? – Tenshiko