2012-04-17 3 views
9

Kurz gesagt: Ich bin auf der Suche nach etwas wie Roslyn, aber für C++.

Gibt es einen Compiler als Service für C++?

Im Detail:

ich mit einem C# -Projekt zu tun habe, wo ich mit C++ Dateien zu arbeiten. Ich habe eine Menge .h (ca. 250 Dateien) und .cpp und ich möchte die Klassen und Funktionen zuordnen und was nicht, die in diesen Dateien definiert sind.

Es ist für eine Modellierungsaufgabe. Ich möchte nicht die tatsächliche C++ Bibliothek verwenden.

Ich habe den C++ - Code nicht geschrieben, daher kann ich nicht sicher sein, ob es verschachtelte Klassen gibt. Das ist also keine "einfache" Regex-Aufgabe.

Das Projekt ist in C#, und die Bibliothek, die ich verwenden möchte, ist in C++. Ich kann das nicht ändern.

+2

Selbst wenn es keine verschachtelten Klassen gäbe, wäre das immer noch nicht "einfach". Was ist mit Template-Instanziierungen? Für das, was es wert ist, versuchen die Clang-Jungs, aber AFAIK ist es ein großer Schmerz, auf einigen Plattformen zu arbeiten. –

+1

mögliches Duplikat von [Wie kann man C/C++ - Code aus C# analysieren/analysieren, um eine Liste von Methoden zu erhalten] (http://stackoverflow.com/questions/8817712/how-to-parse-simple-analyze-cc-code -von-c-spitz-zu-bekommen-eine-liste-von-methoden) –

Antwort

9

Ich glaube, libclang hat die Funktionalität, die Sie wollen. Es ist im Grunde eine C-Schnittstelle für den Zugriff auf einen Großteil der Informationen, die in clangs C/C++ AST gespeichert sind. Die Dokumentation ist ein bisschen knapp, so ist here ein gutes Video, was es mit einigen Beispielen tun kann.

+0

Sie haben mich überzeugt. :) Ich begann mit libclang zu arbeiten. Das Video war ein sehr guter Anfang für mich. Noch mehr Tutorials/Komplettlösungen, die Sie empfehlen? – Tenshiko