簡単にしようと思います。
現在、GNU Bisonを使用してインタープリターツリーを構築しています。インタープリターツリーは、独自の形式で保存され、サーバーによって読み込まれます。そのため、Bisonコード内で多くの動的割り当てを使用します。問題は、最近、Bisonで構文エラーが発生した場合、解析中にツリーの一部がすでに割り当てられているため、多くのメモリリークが発生することを発見したことです。いくつかの本を読んで、「エラー回復」と%destructorについて少し見つけました。最初のものは正しい方法のようですが、%destructorの使用はまだ私にはそれほど明確ではありませんでした。
したがって、何らかの理由でBisonが再同期できない場合、作成されたすべてのトークン/シンボルを削除するために%destructorが呼び出されることを意味しますか?