スポンサーリンク

YACC(1) FreeBSD 一般コマンドマニュアル YACC(1)

名称

yacc − LALR(1) パーサジェネレータ

書式

yacc [−dlrtv] [−b file_prefix] [−o output_filename] [−p symbol_prefix] filename

解説

yacc ユーティリティは、 filename から文法仕様を読み取り、その仕様から LR(1) パーサを生成します。パーサは、C 言語で書かれた LALR(1) 解析テーブル とドライバルーチンのセットから構成されています。 yacc ユーティリティは通 常、 y.tab.c というファイルに解析テーブルとドライバルーチンを書き込みま す。

以下のオプションが使えます:

       −b file_prefix

出力ファイル名の先頭に加えるプレフィックス文字列を file_prefix に 変更します。デフォルトのプレフィックスは y です。

−d
ヘッダファイル y.tab.h を生成するよう指示します。

−l
もし −l オプションが指定されていなければ、 yacc は生成コードに #line ディレクティブを挿入します。 #line ディレクティブは、生成さ れたコードの中のエラーとユーザのオリジナルコードとの関連づけを C コンパイラに行わせます。もし −l オプションが指定されていれば、 yacc は #line ディレクティブを挿入しません。ユーザによって指定さ れた #line ディレクティブはそのまま残されます。

−o output_filename
yacc
に対し、デフォルトファイルの y.tab.c の代りに output_filename に生成コードを出力させます。

−p symbol_prefix
yacc によって生成されたシンボルの先頭につけるプレフィックスを symbol_prefix で指定された文字列に変更します。デフォルトのプレ フィックスは、文字列 yy です。

−r
yacc
はコードとテーブルを別々のファイルに出力します。コードファイ ル名は y.code.c となり、テーブルファイル名は y.tab.c となります。

−t
yacc
によって生成されるプリプロセッサディレクティブを変更し、デ バッグ用の文をコンパイルされたコードの中に埋め込みます。

−v
生成されたパーザの詳細を人間に読める形式で、ファイル y.output に 出力します。

環境変数

       TMPDIR

テンポラリファイルが作られるディレクトリ名。

テーブル

本バージョンの yacc が作成するテーブル名は yylhs, yylen, yydefred, yydgoto, yysindex, yyrindex, yygindex, yytable, yycheck です。 2 個の追加 テーブル yynameyyrule は、 YYDEBUG を非 0 に定義すると作成されます。

関連ファイル

       y.code.c

y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXXXXXX
/tmp/yacc.tXXXXXXXXXX
/tmp/yacc.uXXXXXXXXXX

診断

もし還元できないルールがあった場合、そのルール数が標準エラー出力に表示さ れます。もし何らかの LALR(1) の衝突があった場合、衝突数も標準エラー出力に 表示されます。

関連項目

yyfix(1)

歴史

yacc コマンドは PWB UNIX に登場しました。

規格

yacc ユーティリティは IEEE Std 1003.2 (‘‘POSIX.2’’) に適合しています。

FreeBSD 10.0 May 24, 1993 FreeBSD 10.0

スポンサーリンク