Je ne sais pas si vous êtes familier avec sed
, le programme de traitement de texte basé sur UNIX (mais disponible sur Windows), mais j'ai trouvé un script sed ici qui supprimera les commentaires C/C++ d'un fichier. Il est très intelligent; par exemple, il ignorera '//' et '/*' s'ils sont trouvés dans une déclaration de chaîne, etc. Depuis Python, il peut être utilisé en utilisant le code suivant:
import subprocess
from cStringIO import StringIO
input = StringIO(source_code) # source_code est une chaîne avec le code source.
output = StringIO()
process = subprocess.Popen(['sed', '/path/to/remccoms3.sed'],
input=input, output=output)
return_code = process.wait()
stripped_code = output.getvalue()
Dans ce programme, source_code
est la variable contenant le code source C/C++, et finalement stripped_code
contiendra le code C/C++ sans les commentaires. Bien sûr, si vous avez le fichier sur le disque, vous pourriez avoir les variables input
et output
être des gestionnaires de fichier pointant vers ces fichiers (input
en mode lecture, output
en mode écriture). remccoms3.sed
est le fichier du lien ci-dessus, et il devrait être enregistré dans un emplacement lisible sur le disque. sed
est également disponible sur Windows, et est installé par défaut sur la plupart des distributions GNU/Linux et Mac OS X.
Cela sera probablement meilleur qu'une solution purement Python; pas besoin de réinventer la roue.
0 votes
Pourquoi diable voudriez-vous supprimer des commentaires du code source ???
2 votes
@QuantumPete, pour améliorer la lisibilité et la compréhension. L'approche la plus rapide est d'utiliser un éditeur de couleur et de définir la couleur des commentaires égale à la couleur de fond.
2 votes
@QuantumPete Ou parce que nous essayons de prétraiter le code source pour un processeur ultérieur qui ne prend pas en charge les commentaires sains
0 votes
Je suggérerais ce lien. (Je l'ai écrit.)