contenttaichino.com永遠のネバーランドphc(PHPコンパイラ)でphpの構文木をXMLで出力してみるphcというphpコンパイラを使ってphpの構文木を取得してみたので記録しておきます。インストールに手こずりました。phcについてphcとはphpのコンパイラで、phpスクリプトをコンパイルして実行ファイルを作成する事ができます。以下のようにコンパイルする事ができます。速くなるのかもしれませんが試していません。worldコンパイルだけだとあまり使い道が思いつかないのですが、コンパイラ機能を一部解放してくれていて、読み込んだスクリプトの構文木をxmlで出力する事ができます。このツールを利用するとphpの構文木に手軽にアクセスできて便利です。以下のように変換できます。phpをenable-embedを有効にしてビルドしてインストールあまり理解していないのですが、phcを使用するにはphpが–enable-embedというフラグが有効状態でインストールされている必要があります。このフラグはyumやapt等のパッケージ管理ツールでインストールした場合は、ほぼ無効状態なので、ソースからビルドし直します。僕はここでハマりました。完全に正しいかどうかは解らないのですが、試行錯誤の結果、手元で動作した際のconfigureオプションを以下に書いておきます。phpのソースは最新の5.2.10を使いました。osxでも試してみましたが上手く行きませんでした。phcをインストールphpのインストールが完了したら、phcをソースコードからインストールします。boostやその他パッケージが何かと必要になりますが、configureがエラーを吐くので、エラーに従って必要なライブラリをインストールして下さい。installなお、手順1でphpが上手くインストールされていないと、configureが以下のような警告を出します。この警告が出た場合は、phc自体のインストールは出来ますが、動きませんので手順1をやり直して下さい。********************************************************************************まとめという訳で、以上でphpの構文木にアクセスする手段が出来ました。以下のようにすると標準出力に構文木を表すXMLが得られます。他にも幾つか出力形式が選べるようですが、詳しくはドキュメントを参照して下さいませ。一応上記sample1.phpのXML出力を貼付けておきます。実用レベルの構文木が得られてると思います。