2017-07-31 7 views
0

私はどのソースコードもASTに変換できることを理解します。今度はASTをソースコードに変換したいが、言語には依存しない。私を助けるツールはありますか?
言語に依存しないため、具体的にはpythonjavaを意味します。ASTのソースコードを生成

+0

ASTを元のソースに戻していない場合は、既知の言語ではない場合のターゲット構文は何ですか? –

+0

ASTビルダーがASTに十分な情報を残している場合にのみ、テキストを再生成することができます。 ANTLRは主にそうではありません(たとえば、その番号の表示基数は何ですか?)これを行うために必要なことを知りたい場合は、「ASTをソースコードにコンパイルする」https://stackoverflow.com/aへの私の答えを見てください。/5834775/120163 –

答えて

1

あなたが気にしているのは、ソースコードトランスレータであり、構文解析ツリーからのコードの生成だけではありません(ANTLR4はAST btwを作成しません)。通常、このようなトランスレータは、構文解析ツリーをさまざまな言語構成を抽象化した中間表現に変換し、ターゲット言語でコードを生成するために使用します(ターゲット言語では使用できないソース言語、最適化等。)。

0

私の意見によると、ASTをソースコードに戻すことはできません。生成されたastは任意の言語である可能性があり、そのastを任意の言語に変換することはできません。

+0

特定のASTが書き込まれた言語でプログラムの構文を表しているため、別の言語に直接変換できないことを強く強調する価値があります –

+0

ASTを適切に設計すると、 ASTノードによって表される言語の同等のソーステキストを再生成する。ある言語のASTを別の言語に変換することは可能ですが、それは実際にソースコードを再生成するのではなくコードコードの移行です。なぜこのハードは、詳細については、https://stackoverflow.com/questions/3455456/what-kinds-of-patterns-could-i-force-on-the-code-to-make-it-easier-to-を参照してください。 translat/3460977#3460977 –

関連する問題