空白とコメント
通常、ASTには空白、行末記号、コメントは含まれません。
意味のあるフォーマット
ほとんどの場合、これは肯定的であり(神聖な戦争の書式設定は不要)、元のコードの書式設定が複数行の文字列リテラルや「コード段落」(空行のあるステートメント)。
コンパイルできないコード
多くのパーサーは欠落している構文に対して非常に回復力がありますが、エラーのあるコードはしばしば非常に奇妙な構文ツリーをもたらします。これはユーザーがファイルをリロードする時点までうまくいきます。IDEでミスをして、突然ファイル全体が「波打つ」ようになったことはありませんか?それが別の言語でどのように再ロードされるか想像してみてください。
ユーザーは解析できないコードをコミットしないかもしれませんが、ローカルに保存する必要があることは確かです。
2つの言語が完全に一致することはありません
他の人が指摘したように、完全な機能パリティを持つ言語はほとんどありません。私が考えることができる最も近いものはVBとC#、またはJavaScriptとCoffeeScriptですが、それでもVBにはC#に相当するものがないXMLリテラルなどの機能があり、JavaScriptからCoffeeScriptへの変換は多くのJavaScriptリテラルをもたらす可能性があります。
個人的体験:
ユーザーがバックグラウンドでJSに変換される「単純な英語」表現を入力することが期待されるため、私が作成するソフトウェアアプリケーションでは、実際にこれを行う必要があります。JSバージョンのみを保存することを検討しましたが、確実にロードおよびアンロードするための受け入れ可能な方法がほとんど見つからなかったため、常にユーザーテキストとJSバージョンの両方を保存することになりました。 「完全に解析されたバージョンかどうか。