J'essaie d'extraire les espaces de noms définis dans les fichiers C++.
En gros, si mon fichier C++ contient:Utilisation de regex python pour extraire des espaces de noms à partir de sources C++
namespace n1 { ... namespace n2 { ... } // end namespace n2 ... namespace n3 { ...} //end namespace n3 ... } //end namespace n1
Je veux être en mesure de récupérer: n1, n1 :: n2, n1 :: n3.
Quelqu'un at-il une suggestion sur la façon dont je pourrais faire cela en utilisant python-regex?
Merci.
Cela confirme ce que j'étais inquiet. Je crois que je vais suivre votre suggestion: en utilisant regex pour extraire les noms d'espaces de noms et une autre façon de gérer le niveau de parenthèse bouclés. À ce stade, j'ignorerai les directives du préprocesseur C. Merci pour la réponse. –
Notez que vous pouvez exécuter votre source via cpp (le préprocesseur) et gérer uniquement le code C++ comme le compilateur le verra, mais cela signifie que vous verrez également les déclarations d'espace de noms #include à travers les fichiers d'en-tête (par exemple std). –