tail head cat sleep
QR code linking to this page

manページ  — YACC

名称

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 個の追加テーブル yyname yyrule は、 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") に適合しています。

YACC (1) May 24, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.