a small AWK clone このプログラムは、Minix 1.2 用に書いたものです。浮動小数点演算を使い ますから、Minix 1.5 以前の ACK-C ではコンパイルできません。そのため makefile では、Peter S. Houselさんの浮動小数点パッケージを使うようになっています。 CFLAGS の -f が、その指示です。この浮動小数点パッケージは、非常によくできて いますが、atan(x, y) の引き数の順序が逆になっていますので、修正しておいてく ださい。他にも何かあったような記憶がありますが、忘れてしまいました。もし、何 か問題があるようでしたら、ご連絡いただければ、私が自分で使っているものを公表 するようにします。 このプログラムは、Shift-JIS の漢字コードを扱うようになっています。 EUC に対応させる場合は、正規表現の扱い等、漢字コードに関係する部分の書換が必 要ですが、大した手間ではありません。どなたか変更された場合は、パッチを用意し ていただけると嬉しいです。 当初は、昔の awk の仕様になっていましたが、「AWK Programming Language」 が出版され、POSIX 1003.2 の draft でも nawk 仕様が採用されたのを機会に、nawk の仕様に書き換えました。オリジナルの awk と違って、parser も lexical analizer も hand maid ですから、64K+64K のメモリに収まっています。 本来は、Minix らしい、教材的なプログラムにすべきですし、そうしたかっ たのですが、もともと、自分たちが使うために、メモもとらずにスクリーンを見なが ら書いてしまったため、きれいなコーディングになっていません。しかし、64K+64K のメモリで使える awk が他にありませんので、とりあえず現行の状態で公開しておく ことにしました。 プログラムそのものは、正規表現の評価順序に依存するものを除いて、「AWK Programming Language」に掲載されているテストプログラムに通ることを確認してあ ります。 32-bit Minix の場合は、AT&T オジナルの awk とか gawk, mawk といった プログラムが使えますが、浮動小数点をサポートした、c386 でこのプログラムをコ ンパイルすることもできます。 平林 浩一 (kh@hiraide.mogami-wire.co.jp) 1995-01-29