PCPにおけるASP形式タグと二文字表記
まだ、アイデアが出かけたばかりで、具体的に何に使えるのか十分に検討できていないのですが、PCP: C PreprocessorでASP形式のタグを許可する/しないの切り替えによって、コンパイル時の処理と実行時の処理を切り替えられる可能性があります。
ASP形式のタグというのは、<% 〜 %>をPHPの開始/終了タグに使うというもので、php.ini の設定で使用の可否を切り替えられます。一方で、<% や %> はCにおける二文字表記でもあり、{ と } の代替表記にあたります。つまり、php.ini の設定を切り替えてやれば、PHPによる前処理と複合文を切り替えられるわけです。
具体的には、
int func(void)
{
<% check(); %>
...
return 0;
}
{
<% check(); %>
...
return 0;
}
のようにすることで、前処理でチェックを行うのか、実行時にチェックを行うのかを切り替えられる可能性があるわけです。ただ、引数を伴わない関数の呼び出しならよいのですが、引数がある場合には、PHPの変数は$で始まるのに対して、Cでは$は使わないわけで、両方に共通するコードを書くにはいろいろ工夫がいりそうです。GCCなら、識別子に$を使うこともできるので、もしかするとそれが解決の糸口になるかもしれません。
この記事のトラックバックURL:
http://www.kijineko.co.jp/trackback/762
