2010-11-03 2 views
6

J'ai un script python qui génère beaucoup de code standard dans C++. L'approche que j'ai prise rend si difficile de maintenir des choses comme une indentation correcte pendant qu'elle crache le code. Évidemment, ma principale préoccupation est de produire du code correct, qui compile et fait ce qu'il est censé faire, mais ce serait bien si c'était aussi lisible par l'homme et facile à regarder.Y a-t-il un bon embellisseur de code C++, écrit en python?

Je propose de diriger la sortie de mon générateur vers un embellisseur de code. Cela doit finalement se produire sur un serveur de compilation automatisé, donc idéalement, je veux un module python que je peux facilement utiliser.

Je sais qu'il ya beaucoup de solutions non-python à ce problème, mais un python est ce que j'ai vraiment besoin, et je préférerais ne pas avoir à l'écrire moi-même

+0

Ceci est assez subjectif – Woot4Moo

+4

"L'approche que j'ai prise rend difficile de maintenir les choses comme une indentation correcte". Vous pourriez considérer que votre approche est loin d'être idéale. Pensez à décrire votre approche afin que nous puissions vous dire quel est le meilleur package. Habituellement 'Jinja2', mais il reste à voir quelles sont vos exigences et quel est votre problème ** réel **. –

+0

J'ai considéré que S.Lott, mais de la manière dont je le vois, le module que j'ai produit produit un code fonctionnel, lisible par machine. Il existe des outils qui transforment le code désordonné en code lisible. Si je peux trouver un tel outil en python, je n'ai pas besoin de compliquer la génération du code avec beaucoup de code qui corrige le formatage. –

Répondre

7

Je ne suis pas au courant d'un tel outil, par conséquent, si j'étais vous, je suivrais l'un de ces deux chemins:

  1. Rendre le code généré par mon script Python lisible. Dans mon expérience (beaucoup de génération de code fait pour plusieurs langues) ce n'est pas difficile.
  2. Alimentez le code généré via un outil externe tel que astyle ("Style artistique") qui simule le code C++. Cela peut être facilement automatisé dans votre script Python, de sorte que l'utilisateur ne saura même pas qu'un outil externe est impliqué.

Style artistique est un code source pénétrateur, formatter et beautifier pour les langages de programmation C, C++, C# et Java .

+3

+1: Envoyez la sortie de votre outil vers astyle, puis envoyez la sortie vers le produit final (idéalement, utilisez STDOUT). Enveloppez le processus dans un script bash, ce qui permet de remplacer ultérieurement l'outil astyle ou votre outil ou d'ajouter un autre composant dans le pipeline. –

Questions connexes