Fórumok
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
Nem neztem alaposan vegig, de: http://www.gccxml.org/HTML/Index.html .
http://spirit.sourceforge.net/ univerzális parser assszem van c++os megvalósítás is benne
--
A tehén egy olyan szerkezet, ami ihatóvá teszi a füvet.
Rosszul emlékszel, de legalábbis a kérdező problémát nem oldja meg a spirit..
http://spirit.sourceforge.net/repository/applications/show_contents.php
"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 lexer nem ugyanaz mint a parser. a lexer altal tokenekre szetvagott forrasban talalja meg a kulonbozo strukturakat (pl. valtozo deklaralas) a parser.
- Use the Source Luke ! -
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.
understand for c++ ?
http://www.scitools.com/products/understand/
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