c++ forráskód parser

Sziasztok,

a következő fejlesztési problémába futottunk bele, és szükségünk lenne
a segítségetekre.

Adott egy c++ kód. Ki akarjuk belőle nyerni, hogy milyen osztályból
származik, milyen változói vannak, ezeknek milyen a típusuk, és milyen
konkrét értékekkel lettek inicializálva (pl. test = new Test(5,6,12,11,"almafa"); esetén
az 5,6,12,11,"almafa"-ra vagyunk kíváncsiak) a kódban.

Tudtok erre valamilyen megoldást? Lehet fizetős is..

Üdv.

Zsolti

Hozzászólások

"cpp_lexer
C++ Lexer implemented with Spirit. The lexer is an iterator that iterates over tokens generated on the fly from a text input. It's implementation is done in an opaque manner by means of an abstract interface. "

ez pontosan megoldja a problémáját.
lényegében kapsz egy callback-et, amibe beesik a vezérlés minden nyelvi elemnél, már csak itt kell lekezelni a konstruktoros eseteket.

A tokenekből először kéne még építeni egy szintaxisfát is, mielőtt úgy gondoljuk, hogy "már csak le kell kezelni a konstruktoros eseteket". Szorri, csak kiborít ha nem látja valaki a feladat bonyolultságát, márpedig ez a dolog nem egyszerű, egy C++ parser nem az a gyere-cipó-hamm-bekaplak dolog.

Nézzétek meg a clangot. Van elvileg C++ parserük és úgy van megcsinálva, hogy lehessen könnyen ilyen analíziseket csinálni: http://clang.llvm.org

Ha Java szimpatikusabb, akkor az Eclipse CDT-nek is van C/C++ parsere, amit szintén lehet hasonló feladatokra használni: http://www.eclipse.org/cdt

Talán Gcc-XML

Ha ez nem tudna valamit ami neked kell, akkor esetleg Elsa, legalábbis a tutorial elkészült része alapján képes lehet arra amit szeretnél.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o