YACC

Section: User Commands (1)
Index JM Home 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 準拠です。

関連キーワード

生成, テーブル, YACC, コード, 出力, tmp, TMPDIR, もし, 名称, LALR

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

名称
書式
解説
環境変数
テーブル
関連ファイル
診断
関連項目
規格

This document was created by man2html, using the manual pages.
Time: 12:08:55 GMT, June 11, 2022