yacc

yacc LALR(1) パーサジェネレータ
yacc Fl dlrtv Fl b Ar prefix filename
yacc は、 filename のファイルから文法仕様を読み取り、その仕様から LR(1) パーサを生成します。 パーサは、 LALR(1) 解析テーブルと、C 言語で書かれたドライバルーチンのセットから構成 されています。 yacc は通常、 y.tab.c というファイルに解析テーブルとドライバルーチンを書き込みます。 以下のオプションが提供されています: -tag -width Ar Fl b Ar prefix b オプションは、出力ファイル名の先頭に加えるプリフィックス文字列を prefix に変更します。 デフォルトのプリフィックスは y. です。 Fl d d オプションは、ヘッダファイル y.tab.h を生成するよう指示します。 Fl l もし l オプションが指定されていなければ、 yacc は #line ディレクティブを生成したコードに挿入します。 #line ディレクティブは、生成されたコードの中のエラーとユーザのオ リジナルコードとの関係を C コンパイラに知らせます。 もし l オプションが指定されていれば、 yacc は #line ディレクティブを挿入しません。 ユーザによって指定された #line ディレクティブは保持されます。 Fl r r オプションを指定すると、 yacc はコードとテーブルのファイルを分けて出力します。 コードファイル名は y.code.c となり、テーブルファイル名は y.tab.c となります。 Fl t t オプションを指定すると、 yacc によって生成されるプリプロセッサディレクティブを変更し、デバッグ 用の文をコンパイルされたコードの中に埋め込みます。 Fl v v オプションを指定すると、生成されたパーザの詳細を人間に読める形式 で、ファイル y.output に出力します。
以下の環境変数が yacc によって参照されます: -tag -width TMPDIR Ev TMPDIR もし環境変数 TMPDIR が設定されていれば、 TMPDIR に設定されている文字列は、テンポラリファイルが生成されるディレク トリ名として使用されます。
本バージョンの yacc によって生成されるテーブルの名称は、 yylhs , yylen , yydefred , yydgoto , yysindex , yyrindex , yygindex , yytable , そして yycheck です。さらに、追加のテーブルとして yyname および yyrule が、 YYDEBUG が定義されゼロでないときに用意されます。
-tag -width /tmp/yacc.uXXXXXXXX -compact Pa y.code.c Pa y.tab.c Pa y.tab.h Pa y.output Pa /tmp/yacc.aXXXXXX Pa /tmp/yacc.tXXXXXX Pa /tmp/yacc.uXXXXXX
もしルールを切り詰めることができなかった場合、ルール数が標準出力 に書かれます。 もし、何らかの LALR(1) の衝突があった場合、衝突数も標準エラー出力に書かれます。
yyfix 1
yacc ユーティリティは -p1003.2 準拠です。