私は宣言型言語を設計しています。私の言語では、後で再利用できる「ノード」の定義があります。プロトタイプやテンプレートのようなものと考えてください。必要に応じてそれらのコピーを作成できます。定義段階で適切な Java オブジェクトを生成するバージョンのインタープリターがあります。最近まで、ディープ コピー ライブラリを使用してノードの Java 表現のコピーを作成し、ノードのインスタンスを作成していました。私が見つけたほとんどのディープ コピー ライブラリには制限があり、システム内のすべてのオブジェクトに対してコピー コンストラクターを作成する必要がないため、別のアプローチを採用したいと考えています。私の言語の一部は、ディープ コピー ライブラリで問題を引き起こす GUI Java Swing オブジェクトを指定しています。
オブジェクト宣言の AST サブグラフを保存し、ノードのインスタンスを作成するときに再処理する方法はありますか? ANTLR AST に関して質問していますが、言語の実装に関するアドバイスがあれば、それも歓迎します。