C++ Code parsen

h^2

hat ne Keule +1
Hallo.

Also ich habe ein bisschen danach gesucht und offensichtlich ist das Parsen von C++-Code eine Wissenschaft für sich (das hätte ich mir auch denken können). Trotzdem muss es doch Tools geben einigermaßeb zuverlässig, z.B. alle Funktionsheader in einer (oder mehrerer) Dateien ausspucken, oder nicht?

Ich meine die IDEs bekommen das ja auch irgendwie hin… Vielleicht sollte ich dazu sagen, dass ich Meta-Template-Programming mache, also keine von der Implementierung getrennten Deklarationen habe, Vererbung, member oder ähnliches. Also einfach ganze vie Header mit ganz vielen Funktionen und Structs. Da muss ich doch irgendwie ne Liste rausgenerieren können, bzw. es muss doch außer mir noch Menschen geben, die sowas schon gebraucht haben…

Danke für eure Hilfe!
 
Hallo.

Also ich habe ein bisschen danach gesucht und offensichtlich ist das Parsen von C++-Code eine Wissenschaft für sich (das hätte ich mir auch denken können). Trotzdem muss es doch Tools geben einigermaßeb zuverlässig, z.B. alle Funktionsheader in einer (oder mehrerer) Dateien ausspucken, oder nicht?

Ich meine die IDEs bekommen das ja auch irgendwie hin… Vielleicht sollte ich dazu sagen, dass ich Meta-Template-Programming mache, also keine von der Implementierung getrennten Deklarationen habe, Vererbung, member oder ähnliches. Also einfach ganze vie Header mit ganz vielen Funktionen und Structs. Da muss ich doch irgendwie ne Liste rausgenerieren können, bzw. es muss doch außer mir noch Menschen geben, die sowas schon gebraucht haben…

Danke für eure Hilfe!

Hallo,

also hoffentlich verstehe ich Dein Anliegen richtig, aber bei dem was Du beschreibst dürfte Boost dein Freund sein

# http://www.highscore.de/cpp/boost/parser.html

# http://www.boost.org/doc/libs/1_44_0/libs/mpl/doc/index.html

Boost findest Du auch in den Ports dort unter Devel mit Dokumentation >

# http://www.freebsd.org/cgi/ports.cgi?query=boost&stype=all

# http://www.freebsd.org/cgi/url.cgi?ports/devel/boost-all/pkg-descr

# http://www.freebsd.org/cgi/url.cgi?ports/devel/boost-docs/pkg-descr

Hoffe ich konnte Dir etwas weiterhelfen

MFG
 
Mit ctags geht sowas auch. Bei cpp wuerde ich dir aber das ctags aus den Ports empfehlen. devel/ctags und dann zb:
$ exctags -x *
 
ctags ist schonmal sehr hilfreich, danke! Der Boost-Parser sieht so aus, als würde er erstmal mehr Interaktion verlangen. Den benutze ich vielleicht wenns komplizierter wird. Aber vielleicht reicht ja schon ctags mit ein bisschen awk und sh.

thx
 
Zurück
Oben