erubisを使って埋め込みパターンをCのコメントのパターンにしてみた

メモ.

何をやっているかはコードで判断して下さいm(_ _)m

sample.c.erbの内容:

#include <stdio.h>
/*
 * ここは普通のコメント
 */
/**=%[/\* これもコメント *\/]**/
int main() {
  printf(/**=%w["Hello\ world!"
                "Hello\ Hatena!"].join(" \"\\n\" ")**/ "\n");
  return 0;
}

以下,コマンド実行の結果:

$ erubis -p '/\*\* \*\*/' sample.c.erb > sample.c
$ gcc sample.c
$ ./a
Hello world!
Hello Hatena!

erubisで生成したsample.cの内容:

#include <stdio.h>
/*
 * ここは普通のコメント
 */
/* これもコメント */
int main() {
  printf("Hello world!" "\n" "Hello Hatena!" "\n");
  return 0;
}

黒魔術の匂いがする.

もっと上手いやり方がありそうだ.

例えば「%w[ ]」じゃなくて普通に「%[ ]」とか…