PCP: C++ Preprocessor
クイックスタート

PCP: C++ Preprocessorの簡単な使用例

PHPコードの挿入

PHPのコードは <?php で始まり、?> で終わるタグとして記述する。

以下は、PCPで前処理を行う時点でソースコードに乱数を埋め込む例である。

/*
* random.pcp
* ランダムな値を出力する。
*/
#include <stdio.h>
int main(void)
{
printf("%d\n", "<?php rand(); ?>");
return 0;
}

この random.pcp に対してPCPで前処理を行うには、次のコマンドを実行する。

pcp random.pcp

コマンドが成功すれば、生成されたコードが標準出力に書き込まれる。

これをリダイレクトしてファイルに書き込んでもよいが、出力先ファイルを指定したければ -o オプションを指定することもできる。

pcp -o random.c random.pcp

PCPが提供するAPIの多くは文字列を返す。 文字列や数値は echo を用いて出力することができるが、<?php の代わりに <?= を使用すれば、echo 省略することができる。

/*
* random2.pcp
* ランダムな値を出力する。
*/
#include <stdio.h>
int main(void)
{
printf("%d\n", "<?= rand(); ?>");
return 0;
}

PCP APIの各関数や定数は、pcp名前空間に属している。 PHPで名前空間を指定するには、関数名や定数名の前に pcp\ を付加する。

/**
* api_sample.pcp
* PCP APIの使用例
*/
#include <stdio.h>
int main(void)
{
puts("<?= pcp\pascal_case('this is a pen'); ?>");
return 0;
}

上の例では、APIの使用例として pcp\pascal_case 関数を使用している。 pcp\pascal_case は引数として与えた文を元にパスカルケースの識別子を生成する。 今回の例では、ThisIsAPen が生成されることになる。

PHPに関しては、PHPマニュアルを参照のこと。 PCP APIに関しては、PCP API群を参照のこと。

>> ビルド方法
>> コマンドの実行