Reviewed by: The Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG> Submitted by: horikawa@jp.freebsd.org
354 lines
5.9 KiB
Groff
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 診断
|
|
メッセージ自身で理解できるようになっています。
|