KM-yacc version 3.08 (1993/11/03) ================================= これは、yacc(1) と互換性のあるパーサージェネレータです。 UNIX (SunOS 4.1.2) と MS-DOS で動作しますが、それ以外の環境でも、 少しの修正で対応できるのではないかと思います。 yacc で書かれたいくつかのプログラムが処理できることを確認してい ますが、まだ十分とは言えません。とりあえず、perl をコンパイルし て動かし、テストケースが通ることは確認しています。 生成される表は、AT&T yacc, Berkeley yacc, Bison にくらべてかなり 小さいので、メモリの小さいマシンに向いていると思います。また、 kmyacc 自身も、メモリ消費を小さくするように工夫しています。 みなさんのご意見をお待ちしています。 インストール ============ makefile をよく読んで、適切に変更してください。PARLIB を変更する 場合は、config.h 中の PARSERFN の定義も変更する必要があります。 make したのち make install で install は完了します。 AT&T yacc との違い ================== 1. -b オプションにより、生成されるファイルの名前を変更することが できます。例えば、 kmyacc -b xyz -dv abc.y とすると、xyz.tab.c, xyz.tab.h, xyz.output の 3 つのファイルが生 成されます(MS-DOS版ではxyz.c, xyz.h, xyz.out)。 2. -p オプションにより、パーサ中に現れるグローバルな識別子のプリ フィックスを変更することができます。このオプションを使うことによ り、一つのプログラム中に複数のパーサを共存させることができます。 3. GNU Bison と同様、%expect n によって shift/reduce conflict の 数を指定し、警告メッセージを抑制することができます。 4. コメントとして /* ... */ のほか、// で始まり行末で終わる形式も 許しています。 5. リテラル・トークンはダブルクオートで囲むことはできません。 6. \ を % の代りに用いることはできません。 7. %left の同義語の %<、%right の同義語の %>、%nonassoc の同義語 の%binary と %2、%token の同義語の %0、%prec の同義語の %= はサ ポートしていません。 8. YYBACKUP マクロは使えません。 取扱について ============ このプログラムの著作権は私(森 公一郎)が所持しています。しかし ながら、著作権表示を変更しない限り、このプログラムの配布、変更、 変更したものの再配布を許可します。ただし、変更したバージョンを公 開する場合は、誰がいつ、どのような変更を行なったかがわかるように してください。 また、このプログラムが生成したプログラム(パーサ)の取扱には一切 制限を設けません。 本プログラムは無保証で提供されます。作者は本プログラムの実行結果 に対する責任を一切負いません。本プログラムの使用、変更等は、各自 の責任で行なってください。 作者の連絡先 ============ このプログラムに対するご意見やバグ報告は下記へお願いします。 電子メール: kmori@lsi-j.co.jp NIFTY-Serve: NAB00435 日経MIX: kmori FAX: (03)3478-0576 手紙: 〒151 東京都渋谷区千駄ケ谷1-8-14 エル・エス・アイ ジャパン(株) 森 公一郎