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
に出力します。