実はかなりできているPCP

高木です。おはようございます。

先日からこの話題ばかりですが、今回もPCP: C++ Preprocessorについてです。

タイトルの通り、PCPは既にかなりのところまでできています。
あとは、いろいろなケースをテストするのと、ライブラリを充実させるのが主な仕事になっています。
機能拡張もそれなりにはやりたいと思っています。

このページの最後にダウンロード用のリンクを貼っておきますので、興味がある方は触ってみてください。
動作させるにはPHP 7.1以上が必要です。

ZIPファイルにはpcp.pharというファイルが入っています。
これをPHPで実行すれば動かすことができます。

たとえば、コマンドラインから次のようにして実行します。

php pcp.phar foo.pcp

ここでは、foo.pcpというソースファイルを前処理しています。
前処理した結果は標準出力に吐き出されますが、-oオプションを使えば出力先のファイルを指定することも可能です。

なお、Unix系の環境なら(Msys2でしか確認していませんが)、パーミッションを実行可能にしてあげればpcp.pharを直接実行できるかと思います。
pcp.pharをpcpにシンボリックリンクしておくと便利でしょう。

ほかには、-dオプションを使えば#line指令を埋め込むことができます。

C++コンパイラではおなじみの-Iオプションや-Dオプションも使えます。

別のソースファイルを取りこむには、pcp_include関数を使ってください。
pcp_include関数には取りこむファイル名を渡しますが、-Iオプションで指定したディレクトリからファイルを探索します。

-Dオプションは、マクロではなく(PHPにはマクロがないので)定数を定義します。

-hオプションを使えばオプションの一覧を取得できます。
まだ、あまり意味をなさない(指定しても定数が定義されるだけとか)オプションもありますが、いろいろ試してみてください。

ダウンロード: pcp-20170508-1.zip

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です