other versions
other languages
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
が定義されゼロでないときに用意されます。
関連ファイル¶
- y.code.c
- y.tab.c
- y.tab.h
- y.output
- /tmp/yacc.aXXXXXX
- /tmp/yacc.tXXXXXX
- /tmp/yacc.uXXXXXX
診断¶
もしルールを切り詰めることができなかった場合、ルール数が標準出力 に書かれます。 もし、何らかの LALR(1) の衝突があった場合、衝突数も標準エラー出力に書かれます。関連項目¶
yyfix(1)規格¶
yacc ユーティリティは IEEE Std 1003.2 (“POSIX.2”) 準拠です。July 30, 1991 | Debian |