2010-11-03 13 views
6

Tengo un script de python que genera muchos códigos repetitivos en C++. El enfoque que he tomado hace que sea difícil mantener cosas como la sangría correcta mientras escupe el código. Obviamente, mi principal preocupación es producir código correcto, que compila y hace lo que se supone que debe hacer, pero sería bueno si también fuera legible y fácil de leer.¿Hay un buen embellecedor de código de C++, escrito en python?

Propongo dirigir la salida de mi generador a un embellecedor de código. En última instancia, esto tendrá que suceder en un servidor de compilación automatizado, así que, idealmente, quiero un módulo de Python que pueda usar fácilmente.

sé que hay muchas soluciones no Python para este problema, pero una pitón es lo que realmente necesita, y yo preferiría no tener que escribir yo mismo

+0

Esto es bastante subjetivo – Woot4Moo

+4

"El enfoque que he adoptado hace que sea difícil mantener cosas como la sangría correcta". Puede considerar que su enfoque es menos que ideal. Considere describir su enfoque para que podamos decirle qué paquete de plantilla es mejor. Por lo general, 'Jinja2', pero queda por ver cuáles son sus requisitos y cuál es su problema ** real **. –

+0

He considerado que S.Lott, pero la forma en que lo veo, el módulo que tengo produce código funcional, legible por máquina. Existen herramientas que convierten el código desordenado en código legible. Si puedo encontrar una herramienta así en Python, no necesito complicar la generación del código con un montón de código que no da formato correcto. –

Respuesta

7

No estoy al tanto de una herramienta de este tipo, por lo tanto, si yo fuera usted, seguiría una de estas dos rutas:

  1. Haga que el código generado por mi secuencia de comandos de Python sea legible. En mi experiencia (bastante generación de código para varios idiomas) esto no es difícil.
  2. Alimenta el código generado a través de una herramienta externa como astyle ("Estilo artístico") que embellece el código C++. Esto se puede automatizar fácilmente dentro de la secuencia de comandos de Python, de modo que el usuario ni siquiera sepa que se trata de una herramienta externa.

estilo artístico es una fuente de código penetrador, formateador y embellecedor para el C, C++, C# y Java lenguajes de programación.

+3

+1: envíe la salida de su herramienta a astyle, luego envíe la salida al producto final (idealmente use STDOUT). Envuelva el proceso en un script bash, permitiendo el intercambio posterior de astyle o su herramienta o agregando otro componente en la tubería. –

Cuestiones relacionadas