2011-11-24 17 views
5

JavaScriptではなくASTをCoffeeScriptに戻すことはできますか?私が取り組んでいるプロジェクトでは、基本的にすべてのCoffeeScriptをASTに変換し、ASTを分析し、ASTの一部をCoffeeScriptに戻す必要があります。私は元のコードに関して変換が「損失」になることは理解していますが、これは問題ありません。JavaScriptの代わりにCoffeeScript ASTをCoffeeScriptにコンパイルするにはどうすればよいですか?

これらの部分をJavaScriptにコンパイルしてCoffeeScriptに戻すことを避けたいと思っています。

答えて

4

CoffeeCoffeeプロジェクト(私は著者だ)でround_trip.coffeeを参照してください:

私はすべてのケースをカバーしていないが、それはスタートです。

+0

これは有望です!私はここで私の頭の上に少しです... どのように(ブラウザ環境で)私はASTの部分を入力し、coffeescriptコードを受け取ることができるでしょうか?それも可能ですか?ありがとう! – gkz

3

可能ですが、Coffeescriptのソースコードを使用する必要があります。 Coffeescriptがトークン化を行う方法に慣れてから、それがどのようにトークンをASTに変換するかを理解する必要があります。問題のソースコードはGithubのcoffee-script/srcにあります。

ファイルcoffee-script/src/nodes.coffeeを見ると、それぞれ独自のコンパイル機能(例えばcompile(),compileNode()など)を持つ一連のノードサブクラスが表示されます。これらは、ツリーがJavaScriptコードに変換される方法を定義します。代わりにCoffeescriptコードを生成したい場合は、プロジェクトの独自のフォークですべてをオーバーライドする必要があります。

関連する問題