2012-04-17 10 views
9

In breve: Sto cercando qualcosa come Roslyn ma per C++.

Esiste un compilatore come servizio per C++?

In dettaglio:

ho a che fare con un progetto C# in cui devo lavorare con i file C++. Ho un sacco di .h (circa 250 file) e .cpp e mi piacerebbe mappare le classi e le funzioni e cosa no, che sono definite in questi file.

È per un'attività di modellazione. Non desidero utilizzare la libreria C++ attuale.

Non ho scritto il codice C++, quindi non posso essere sicuro se ci sono classi annidate ovunque. Quindi questo non è un compito di "regex" semplice.

Il progetto è in C# e la libreria che vorrei utilizzare è in C++. Non posso cambiarlo.

+2

Anche se non ci fossero classi annidate, quella non sarebbe stata una cosa "semplice" da fare. Che dire delle istanze dei template? Per quello che vale, questo è quello che i ragazzi di Clang stanno cercando di fare, ma AFAIK è un grosso problema lavorare su alcune piattaforme. –

+1

possibile duplicato di [Come analizzare/analizzare semplice codice C/C++ da C# per ottenere un elenco di metodi] (http://stackoverflow.com/questions/8817712/how-to-parse-simple-analyze-cc-code -da-c-sharp-to-get-a-list-of-methods) –

risposta

9

Credo che libclang abbia la funzionalità che si desidera. È fondamentalmente un'interfaccia C per accedere a gran parte delle informazioni memorizzate in C/C++ AST di clang. La documentazione è un po 'concisa, quindi here è un buon video su ciò che può fare con alcuni esempi.

+0

Mi hai convinto. :) Ho iniziato a lavorare con libclang. Il video è stato un ottimo inizio per me. Altri tutorial/procedure dettagliate che consigli? – Tenshiko