「<% %>」をCで使う
C99のCommittee Draft(N1124)を読んでいて、また目から鱗。以下のスクリプトがコンパイルできるという話。
#include <stdio.h> main() { <% puts("Hello world!"); %> }
なんと、JSPスクリプトが記述できる…のではなく、これは次の仕様によるものでした。P64、PDF 上の P75に該当箇所があります。
In all aspects of the language, the six tokens
<: :> <% %> %: %:%:
behave,respectively,the same as the six tokens
[ ] { } # ##
except for their spelling.
C89ではどうなのかと思って -std=c89 でコンパイルしてみたらちゃんと文法エラーになりました。