私は大量のコード生成を行ってきましたが、スコープの問題がめったに出てこないので、この質問には少し驚いています (一意の名前を生成したい場合を除いて)。
あなたの例の質問に答えるには、スコープをはるかに超えた深刻なプログラム分析が必要です。エスケープ分析自体は自明ではありません。Use-before-initialization は、ターゲット言語に応じて、自明または自明ではない場合があります。
私の経験では、プログラム分析用の API は設計が難しく、多くの場合言語固有です。低レベル言語をターゲットにしている場合は、Machine SUIF API から何か役立つことを学ぶことができます。
あなたの代わりに、誰かのプログラム分析用のフレームワークを盗みたいと思うでしょう。 George Neculaと彼の学生たちは、C コードを分析するための現在の標準と思われる CILを作成しました。Laurie Hendrenのグループは、Java を分析するための優れたツールをいくつか作成しました。
自分で作成する必要がある場合は、API について心配するよりも、抽象構文ツリーの本当に適切な表現について心配する方がよいでしょう。
João Dias と私は、データフロー分析 (初期化されていない変数の質問を含む) の非常に限られた領域で、Sorin Lerner、David Grove、および Craig Chambers による優れた作業を採用しました。暫定的な結果のみが公開されています。
最後に、複数の言語でコードを生成したい場合、これはワームの完全な缶です。私は何度かそれをひどくしました。気に入ったものを作成したら、公開してください。