doc/ja/man/man1/bison.1
Hiroyuki Hanai 4aacbe2a6b Now, the Japanese Manual is for 2.2-980511.
Reviewed by: The Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by: horikawa@jp.freebsd.org
1998-05-18 01:06:55 +00:00

354 lines
5.9 KiB
Groff

.TH BISON 1 local
.\" jpman %Id: bison.1,v 1.3 1997/08/20 12:18:34 horikawa Stab %
.SH 名称
bison \- GNU プロジェクト パーサ・ジェネレータ (yacc 置き換え)
.SH 書式
.B bison
[
.BI \-b " file-prefix"
] [
.BI \-\-file-prefix= file-prefix
] [
.B \-d
] [
.B \-\-defines
] [
.B \-k
] [
.B \-\-token-table
] [
.B \-l
] [
.B \-\-no-lines
] [
.B \-n
] [
.B \-\-no-parser
] [
.BI \-o " outfile"
] [
.BI \-\-output-file= outfile
] [
.BI \-p " prefix"
] [
.BI \-\-name-prefix= prefix
] [
.B \-r
] [
.B \-\-raw
] [
.B \-t
] [
.B \-\-debug
] [
.B \-v
] [
.B \-\-verbose
] [
.B \-V
] [
.B \-\-version
] [
.B \-y
] [
.B \-\-yacc
] [
.B \-h
] [
.B \-\-help
] [
.B \-\-fixed-output-files
]
file
.SH 解説
.I bison
.IR yacc (1)
風のパーサ・ジェネレータです。
.IR yacc
用に作成された入力ファイルについて上位互換になっているはずです。
.PP
入力ファイルは
.I yacc
の流儀に従い、末尾は
.BR .y
で終わるべきです。
.IR yacc
と異なり、生成されるファイルの名前は固定ではなく、
入力ファイルのプレフィックスが用いられます。
例えば、
.B parse.y
という名前の文法記述ファイルからは、
.IR yacc
のような
.BR y.tab.c
ではなく、
.BR parse.tab.c
というファイル名のパーサが生成されます。
.PP
ここに示す
.I bison
のオプション説明は、正式なドキュメントである
.B bison.texinfo
マニュアルの
.B Invocation
ノードからの抜粋です。
.PP
.I bison
は、従来の単一文字オプションと覚えやすい長形式オプション名の
両方をサポートしています。
長形式のオプション名は
.BR \-
ではなく
.B \-\-
で指定します。
一意に決められる限り、オプション名は略して記述して構いません。
.BR \-\-file-prefix
のように引数を取る長形式オプションの場合、
オプション名とその引数とを
.BR =
で連結します。
.SS オプション
.TP
.BI \-b " file-prefix"
.br
.ns
.TP
.BI \-\-file-prefix= file-prefix
.I bison
の全ての出力ファイルで用いるプレフィックスを指定します。
出力ファイルの名前は、あたかも入力ファイルが
\fIfile-prefix\fB.c\fR
という名前であったかのように決められます。
.TP
.B \-d
.br
.ns
.TP
.B \-\-defines
追加の出力ファイルを書き出します。
このファイルには、
少数の
.B extern
変数宣言に加え、
文法記述で定義されたトークンの型名や
セマンティックバリューの型
.BR YYSTYPE
を定義するマクロが含まれます。
.sp
パーサの出力ファイルが
\fIname\fB.c\fR
ならば、この追加出力ファイルの名前は
\fIname\fB.h\fR
となります。
.sp
.B yylex
の定義を別のソースファイルに記述したい場合は、
この出力ファイルが必ず必要になります。
なぜなら、
.B yylex
はトークンの型コードや変数
.BR yylval
を参照可能である必要があるからです。
.TP
.B \-r
.br
.ns
.TP
.B \-\-raw
\fIname\fB.h\fR ファイルのトークン番号は通常、Yacc 互換の置き換えです。
このオプションを指定すると、
それに代わって Bison のトークン番号が出力されます。
(Yacc では、単一文字トークンを除き、トークン番号は 257 から始まります。
Bison は全てのトークンについて、3 から始まる連番を割り当てます。)
.TP
.B \-k
.br
.ns
.TP
.B \-\-token-table
出力ファイル \fIname\fB.tab.c\fR
トークン名のリストをその番号順に含むようにします。
このリストは配列
.IR yytname
で定義されます。また、
.IR YYNTOKENS ,
.IR YYNNTS ,
.IR YYNRULES ,
.IR YYNSTATES
がそれぞれ #define されます。
.TP
.B \-l
.br
.ns
.TP
.B \-\-no-lines
パーサファイルにプリプロセッサコマンド
.B #line
を入れません。
通常
.I bison
はパーサファイルに
.B #line
を挿入し、C コンパイラおよびデバッガがエラーとソースファイル、
つまり文法ファイルとを結びつけられるようにします。
このオプションを指定すると、エラーはパーサファイルと結びつけられ、
自分の責任で独立したソースファイルとして取り扱うようになります。
.TP
.B \-n
.br
.ns
.TP
.B \-\-no-parser
パーサコードを出力に生成せず、宣言のみ生成します。
生成された \fIname\fB.tab.c\fR ファイルには
定数宣言のみ含まれます。
更に、変換した全てのアクションを含む switch 文本体
を含むファイル \fIname\fB.act\fR を生成します。
.TP
.BI \-o " outfile"
.br
.ns
.TP
.BI \-\-output-file= outfile
出力するパーサファイルの名前を
.I outfile
とします。
.sp
.B \-v
オプションおよび
.B \-d
オプションのところで述べたように、
この他の出力ファイルの名前は
.I outfile
から作られます。
.TP
.BI \-p " prefix"
.br
.ns
.TP
.BI \-\-name-prefix= prefix
パーサで使われる外部シンボルの名前を変更し、
.BR yy
ではなく
.I prefix
で始まるようにします。
名前を変更されるシンボルの正確なリストは以下の通り。
.BR yyparse ,
.BR yylex ,
.BR yyerror ,
.BR yylval ,
.BR yychar ,
.BR yydebug
.sp
例えば
.BR "\-p c"
と指定すると、これらは
.BR cparse ,
.BR clex
等という名前になります。
.TP
.B \-t
.br
.ns
.TP
.B \-\-debug
マクロ
.B YYDEBUG
の定義をパーサファイルに出力し、デバッグ機能がコンパイルされるようにします。
.TP
.B \-v
.br
.ns
.TP
.B \-\-verbose
追加の出力ファイルを書き出します。
このファイルには、
パーサの状態と、その状態で各先読みトークンに対してどういう動作を行うか、
に関する詳細説明が含まれます。
.sp
このファイルには、演算子の順位によって解決したものと
解決していないものを合わせた、
全ての競合についても記述されています。
.sp
このファイルの名前は、パーサの出力ファイル名から
.B .tab.c
あるいは
.B .c
を取り除き、代わって
.B .output
を付けたものになります。
.sp
従って、入力ファイルが
.BR foo.y
ならパーサファイルはデフォルトでは
.B foo.tab.c
となり、その結果、詳細出力ファイル名は
.BR foo.output
となります。
.TP
.B \-V
.br
.ns
.TP
.B \-\-version
.I bison
のバージョン番号を出力して終了します。
.TP
.B \-h
.br
.ns
.TP
.B \-\-help
.I bison
のオプション要約を表示して終了します。
.TP
.B \-y
.br
.ns
.TP
.B \-\-yacc
.br
.ns
.TP
.B \-\-fixed-output-files
.BR "\-o y.tab.c"
と等価です。つまり、パーサ出力ファイルは
.BR y.tab.c
となり、他の出力ファイルは
.B y.output
および
.BR y.tab.h
となります。
このオプションの目的は、
.IR yacc
の出力ファイル名規則を真似ることです。
従って、次のシェルスクリプトは
.IR yacc
の代用となります:
.sp
.RS
.ft B
bison \-y $*
.ft R
.sp
.RE
.PP
以前のリリースとの互換性のため、
長形式オプションは `\-\-' のほか、`+' で始めることもできます。
ただしこれは POSIX.2 標準と非互換であるため、
将来 `+' サポートはなくなるでしょう。
.SH 関連ファイル
/usr/share/misc/bison.simple 単純なパーサ
.br
/usr/share/misc/bison.hairy 複雑なパーサ
.SH 関連項目
.IR yacc (1)
.br
.I bison
のソースディストリビューションに
.B bison.texinfo
として含まれている
.IR "Bison Reference Manual"
.SH 診断
メッセージ自身で理解できるようになっています。