Das Parsen von C++ ist Lichtjahre von etwas, was man mit einem regulären Ausdruck machen kann. Sie benötigen einen vollständigen C++ - Parser, und sie sind ziemlich schwer zu erstellen. Ich war über mehrere Jahre daran beteiligt, einen zu bauen und zu verfolgen, wer es tut. Ich weiß nichts von dem Versuch, in Python zu versuchen.
Der, an dem ich arbeite, ist DMS C++ Front End. Es bietet nicht nur Parsing, sondern volle Namen und Typ Auflösung. Nach dem Parsen können Sie im Detail detaillierte Informationen über den Code in beliebiger Detailtiefe extrahieren, einschließlich arbiträrer Details zum Funktionsinhalt.
Sie könnten die Verwendung von GCCXML, die einen Parser enthält, in Erwägung ziehen und werden, glaube ich, die Namen aller Klassen, Funktionen und Top-Level-Variablen erzeugen. GCCXML gibt Ihnen keine Informationen darüber, was innerhalb einer Funktion ist.
edit: Ich unterstellte nicht, dass durch Verwendung eines regulären Ausdrucks ich C++ richtig analysieren könnte, das wäre absurd, da es eine nicht-reguläre Sprache ist. Ich meinte, dass für das, was ich brauche, eine Regex genügen könnte. – Mike
Selbst für diesen begrenzten Fall bezweifle ich, dass Sie es mit einer Regex alleine machen könnten. Vielleicht, wenn Sie es auf einfache, wohlerzogene Klassen ohne Makro- oder Vorlagenmagie (und vielleicht auch ohne Vererbung) eingrenzen. – jalf
Haben Sie versucht http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/? – refi64