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