eRubyのembedded patternを変更する
RubyからCのヘッダ定義を読み込みたい - きみのハートを8ビットキャスト
erubyの<% %>ってhtmlに埋め込むとhtmlタグにまぎれて 気にならないけどC言語とかに埋め込むと微妙に見えますねー、という感想でした。 Cとかの代替案だと/% %/とかが良いのかなー
erubisならばeRubyのembedded patternを「<% %>」から変更できる。
$ cat hoge.rc /* -*- mode: c -*- */ #include <stdio.h> #include "/usr/include/linux/soundcard.h" /% ary = [ :SOUND_PCM_READ_RATE , :SOUND_PCM_READ_CHANNELS, :SOUND_PCM_READ_BITS, :SNDCTL_DSP_GETBLKSIZE, ] %/ int main(void) { printf("module SoundCard\n Param = {\n"); /% ary.each do |i| %/ printf(" :/%= i.to_s %/ => 0x%x,\n", /%=i%/); /% end %/ printf(" }\nend\n"); return 0; } $ erubis -p '/% %/' hoge.rc | tee hoge.c; gcc -o hoge hoge.c /* -*- mode: c -*- */ #include <stdio.h> #include "/usr/include/linux/soundcard.h" int main(void) { printf("module SoundCard\n Param = {\n"); printf(" :SOUND_PCM_READ_RATE => 0x%x,\n", SOUND_PCM_READ_RATE); printf(" :SOUND_PCM_READ_CHANNELS => 0x%x,\n", SOUND_PCM_READ_CHANNELS); printf(" :SOUND_PCM_READ_BITS => 0x%x,\n", SOUND_PCM_READ_BITS); printf(" :SNDCTL_DSP_GETBLKSIZE => 0x%x,\n", SNDCTL_DSP_GETBLKSIZE); printf(" }\nend\n"); return 0; } $ ./hoge module SoundCard Param = { :SOUND_PCM_READ_RATE => 0x80045002, :SOUND_PCM_READ_CHANNELS => 0x80045006, :SOUND_PCM_READ_BITS => 0x80045005, :SNDCTL_DSP_GETBLKSIZE => 0xc0045004, } end