C で Hello, world!

なんじゃこりゃ

%:include <stdio.h>

int main(void) <%
    char str<::> = "Hello, world!";
    printf("%s\n", str);

    return 0;
%>

これが

$ gcc main.c

コンパイルすると

$ ./a.out
Hello, world

動いてしまう。

<:, :>, <%, %>, %:, %:%: の6つのトークンは, [, ], {, }, #, ## と同じように解釈されるらしい。

なんじゃそりゃ。

参照