2012年3月16日金曜日

AdLintを読む その3

ちょっと開いたけど、続けてSingleModuleAnalyzer#executeを読んでいく。

executeは他のSingleModuleAnalyzerクラスのメソッド同様、analyzer.rbにある。

まずLanguage#ofを呼んで、言語を設定している。ここで言っているのは日本語とか英語とかのことではなく、CとC++の切り替えだ。Languageクラスはlang.rb内にあり、ofは現状ハードコードでCを指定している。まぁC++のパースとか大変だもんな……
実際に返しているのは以下のようなもの。

続けてProgressMonitorのインスタンスを用意しReport#newにブロックを渡して内部で処理をやっている。PhaseContextのインスタンスを作り、ソースのパスとシンボルテーブルを用意してから、Langから取得したモジュール群を、次のようなコードで順にexecuteしていっている。

なかなか実際の中身に入れんなー。

0 件のコメント:

コメントを投稿