プロが教える店舗&オフィスのセキュリティ対策術

Eclipseのリファクタリング機能の仕組みとは?
Eclipseという開発環境を使用し始めて疑問に思ったのですが、メソッドやプロパティ名、クラス名などを置換するリファクタリング機能が存在します。
疑問なのは、Eclipseは置換の対象をどうやって認識しているのでしょうか?

プロパティとか変数とかクラス名って、スコープの範囲とか参照先かあるから、単に文字列で検索して置換しているだけではないのでは?と思っています。

ちょっと予想してみたのですが、パッケージやクラス名などを含めた、絶対位置のようなものをどこかに保持しているのでしょうか?中間コードみたいな場所とかに・・・?

考えると気になって仕方がありません。
出来れば、根拠とかソースを提示してもらえると助かります。

A 回答 (1件)

Eclipse や IntellJ などでは、ソース編集時にメモリ内に構文木を作って、それを使って補完機能やリファクタリング機能を実現しているようです。



下記のページの「言語ワークベンチの要素」が分かりやすいかと。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Langua …

コンパイラがやっていることの一部を編集時にやっていると言っても良いでしょう。
    • good
    • 0
この回答へのお礼

まさかお返事をいただけるとは思いませんでした!
ありがとうございます。参考になりました。

まだ完全に理解できてないので、もっと勉強します!

お礼日時:2010/05/30 10:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!