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: 03:27:05 GMT, April 25, 2010