YACC
Section: User Commands (1)
Index
JM Home Page
roff page
BSD mandoc
名称
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
ユーティリティは
St -p1003.2
準拠です。
Index
- 名称
-
- 書式
-
- 解説
-
- 環境変数
-
- テーブル
-
- 関連ファイル
-
- 診断
-
- 関連項目
-
- 規格
-
This document was created by
man2html,
using the manual pages.
Time: 16:46:43 GMT, November 24, 2023