是否可以将AST转换为CoffeeScript而不是JavaScript?我正在工作的项目基本上需要将所有CoffeeScript转换为AST,分析AST,然后将部分AST转换回CoffeeScript。我知道关于原始代码的转换将是“有损的”,但这没关系。
我真的想避免将这些部分编译成JavaScript然后再回到CoffeeScript。
答案 0 :(得分:4)
请参阅CoffeeCoffee项目中的round_trip.coffee(我是作者):
我没有涵盖所有案例,但这是一个开始。
答案 1 :(得分:3)
这是可能的,但它需要您使用Coffeescript的源代码。你需要熟悉Coffeescript执行标记化的方式,然后知道它如何将标记转换为AST。有问题的源代码位于Github上的coffee-script/src。
如果你查看文件coffee-script/src/nodes.coffee,你会看到一堆Node子类,每个子类都有自己的编译功能(如compile()
,compileNode()
等)。这些定义了树如何变成javascript代码。如果你想要生成Coffeescript代码,你需要在你自己的项目分支上覆盖所有这些代码。