2010-11-03 13 views
6

Ich habe ein Python-Skript, das viel Code in C++ generiert. Der Ansatz, den ich gemacht habe, macht es schwierig, Dinge wie den richtigen Einzug beizubehalten, während er den Code ausspuckt. Offensichtlich liegt mein Hauptanliegen darin, korrekten Code zu erzeugen, der kompiliert und tut, was er zu tun hat, aber es wäre schön, wenn es auch für Menschen lesbar und einfach für das Auge wäre.Gibt es einen guten C++ - Code-Beautifier, geschrieben in Python?

Ich schlage vor, die Ausgabe meines Generators in einen Codeverschönerer zu lenken. Dies wird letztendlich auf einem automatisierten Build-Server passieren müssen, daher möchte ich idealerweise ein Python-Modul, das ich leicht verwenden kann.

Ich kenne viele Nicht-Python-Lösungen für dieses Problem gibt es, aber ein Python ist das, was ich wirklich brauche, und ich würde lieber nicht es selbst

+0

Das ist ziemlich subjektiv – Woot4Moo

+4

"Der Ansatz, den ich gemacht habe, macht es schwierig, Dinge wie korrekte Einrückung zu erhalten". Sie könnten meinen, dass Ihr Ansatz nicht ideal ist. Erwägen Sie, Ihren Ansatz zu beschreiben, damit wir Ihnen sagen können, welches Vorlagenpaket besser ist. Normalerweise 'Jinja2', aber es bleibt abzuwarten, was Ihre Anforderungen sind und was Ihr ** echtes ** Problem ist. –

+0

Ich habe gedacht, dass S.Lott, aber die Art, wie ich es sehe, das Modul, das ich habe, produziert funktionale, maschinenlesbare, Code. Es gibt Werkzeuge, die chaotischen Code in lesbaren Code umwandeln. Wenn ich ein solches Tool in Python finden kann, muss ich die Erstellung des Codes nicht mit viel Code erschweren, der die Formatierung korrigiert. –

Antwort

7

ich nicht von einem solchen Werkzeug bewusst bin, zu schreiben, Daher würde ich, wenn ich du wäre, einem dieser beiden Pfade folgen:

  1. Machen Sie den Code von meinem Python-Skript lesbar generiert. Meiner Erfahrung nach (ziemlich viel Codegenerierung für mehrere Sprachen) ist das nicht schwer.
  2. Feed den generierten Code über ein externes Tool wie astyle ("Artistic Style"), die C++ - Code prettifies. Dies kann in Ihrem Python-Skript leicht automatisiert werden, sodass der Benutzer nicht einmal weiß, dass ein externes Tool beteiligt ist.

Kunststil ist ein Quellcode Eindringkörper, Formatierer und beautifier für C, C++, C# und Java Programmiersprachen.

+3

+1: Senden Sie die Ausgabe von Ihrem Werkzeug zu Astyle, dann senden Sie die Ausgabe an das Endprodukt (idealerweise verwenden Sie STDOUT). Wickeln Sie den Prozess in ein Bash-Skript ein und erlauben Sie später das Austauschen von Astyle oder Ihrem Werkzeug oder das Hinzufügen einer anderen Komponente in der Pipeline. –

Verwandte Themen