other sections
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) の衝突があった場合、衝突数も標準エラー出力に書かれます。
関連項目¶
規格¶
yacc
ユーティリティは
IEEE Std 1003.2 (“POSIX.2”)
準拠です。
July 30, 1991 | Linux 5.14.0-427.18.1.el9_4.x86_64 |