tutorial coffeescript abstract-syntax-tree

tutorial - coffeescript vs javascript



¿Cómo puedo compilar CoffeeScript AST en CoffeeScript en lugar de JavaScript? (2)

Es posible, pero requiere que juegues con el código fuente de Coffeescript. Debes familiarizarte con la forma en que Coffeescript realiza la tokenización, y luego cómo convierte los tokens en AST. El código fuente en cuestión está en coffee-script / src en Github.

Si observa el archivo coffee-script / src / nodes.coffee , verá una gran cantidad de subclases Node, cada una con sus propias funciones de compilación (como compile() , compileNode() , etc.). Estos definen cómo el árbol se convierte en código JavaScript. Si desea generar el código de Coffeescript en su lugar, debe sobrescribir todos ellos, en su propio tenedor del proyecto.

¿Es posible volver a convertir el AST en CoffeeScript en lugar de convertirlo en JavaScript? Un proyecto en el que estoy trabajando básicamente requiere convertir todo el CoffeeScript en AST, analizar el AST, luego convertir porciones del AST nuevamente en CoffeeScript. Entiendo que la transformación de vuelta sería ''con pérdida'' con respecto al código original, pero está bien.

Realmente me gustaría evitar tener que compilar esas partes en JavaScript y luego volver a CoffeeScript.


Ver round_trip.coffee en el proyecto CoffeeCoffee (soy el autor):

No cubro todos los casos, pero es un comienzo.