英語の「日月年」の順序にはどうにも馴染めない。馴染みたいとも思わない。
pnet は Portable.NET の略ですか。うーんと、treecc → pnet → pnetlib の順番でいいのかな。
treecc ってコンパイラコンパイラか。セマンティックパーサを実用的に使ってるのは始めて見た。
おっと、CVS 版だから autoconf が必要だ。しくしく。Makefile.in がナイって言われるヨー。automake もいるようだ。
む、pnet の support/locale.c が止まるな。CODESET が未定義? うわー、嫌だなあ。この Plamo はロケールまわりボロボロなんだわ。とりあえず _NLCTYPE_CODESET_NAME にしとこう (glibc 2.2.5 の定義を見てきただけ)。……よし、通った。
なんだ、HACKING ってファイルに CVS 版のインストール方法が書いてあるじゃん。
ところでさ、cscc って C が一個多くない? それじゃ C# Compiler Compiler になってしまうぞ。あうー、これも書いてあった。C Sharp Code Compiler だってさ。
む、バックエンドに cscc-cs なんてのがあるぞ? これは別の言語への対応用ですね?
csdoc ……また XML か。向こうの奴は好きだなあ XML。
よしっ、テストだ! Hello World だ!
% cat hello.cs
public class C
{
public static void Main()
{
Console.WriteLine("Hello, World!");
}
}
% cscc hello.cs
% ilrun a.out.exe
Hello, World!
おお、動いた!
ふむふむ、root で ilrun --register としておくと ./hello で実行することもできるのだな (要 Linux 2.2 以上)。
% ilrun --register
% cscc -ohello hello.cs
% ./hello
Hello, World!
本当だ。へー。
おかしいなあ、foreach がパースエラーになる。
public static void Main(string[] args) { foreach (string a in args) { cat(a); } }
で文法合ってるはずだが。エラーメッセージが unexpected "identifier" なのでスキャナがバグってるのかな。
合ってるように見えるけど。catが非staticか、全体をclassで囲ってないか、かな? (foreachが未実装とか?)