Next: , Previous: Invocation, Up: Top


Appendix A Bisonの記号一覧

error
エラー回復のために予約されているトークン名です。 このトークンが文法規則の中で使われていると、Bison構文解析器は、 構文エラーを認識し、プロセスの実行を中断しません。 実質的には、エラーを含む文が、有効であると認識されます。 エラーが起きると、errorトークンが現在の先読みトークンになります。 errorに対応するアクションが実行されて、 先読みトークンがエラーの原因になったトークンに戻されます。 See Error Recovery
YYABORT
回復不可能な構文エラーが発生した場合のためのマクロで、 実行するとただちにyyparseが1を返します。 エラー報告関数yyerrorは呼び出されません。 See The Parser Function yyparse
YYACCEPT
構文解析器が言語を完全に読み終えた場合のためのマクロで、 実行するとただちにyyparseが0を返します。 See The Parser Function yyparse
YYBACKUP
構文解析器のスタックから1個の値を捨て、先読みトークンのふりをさせます。 See Special Features for Use in Actions
YYERROR
構文エラーがちょうど検出された場合のためのマクロで、 yyerrorを呼び、可能ならば通常のエラー回復処理 (see Error Recovery)を実行し、不可能ならば yyparseが1を返します。 See Error Recovery
YYERROR_VERBOSE
Bison宣言部で#defineによってこのマクロを定義すると、 yyerrorが呼ばれたときに表示されるエラー報告が詳しくなります。
YYINITDEPTH
構文解析器スタックの最初の大きさを指定するマクロです。 See Stack Overflow
YYLEX_PARAM
yyparseyylexに渡すための、追加の引数または 引数の並びを指定するためのマクロです。 See Calling Conventions for Pure Parsers
YYLTYPE
yylocのデータ型を示すマクロで、4個のメンバからなる構造体です。 See Textual Positions of Tokens
yyltype
YYLTYPEの省略時の値です。
YYMAXDEPTH
構文解析器のスタックの最大の大きさを指定するマクロです。 See Stack Overflow
YYPARSE_PARAM
yyparseが受け取るべき引数の名前を指定するマクロです。 See Calling Conventions for Pure Parsers
YYRECOVERING
構文解析器が構文エラーから回復している途中かどうかを示す値のマクロです。 See Special Features for Use in Actions
YYSTYPE
意味値のデータ型を指定するためのマクロで、省略するとintになります。 See Data Types of Semantic Values
yychar
広域的なint型の変数で、現在の先読みトークンの番号を記憶しています (再入可能な構文解析器では、この変数はyyparseに局所的です)。 エラー回復規則のアクションは、この変数の値を調べられます。 See Special Features for Use in Actions
yyclearin
エラー回復規則のアクションで使われるマクロです。 直前の先読みトークンを消去します。 See Error Recovery
yydebug
int型の広域変数で、初期値は0です。 yydebugの値が0でないと、構文解析器は、 読み込んだ記号と構文解析器のアクションに関する情報を表示します。 See Debugging Your Parser
yyerrok
構文エラーの後で、構文解析器をただちに通常の状態に戻すためのマクロです。 See Error Recovery
yyerror
エラーが起きたときにyyparseから呼び出される、ユーザー定義関数です。 この関数は1個の引数を受け取り、その引数はエラーの報告を含む文字列への ポインタです。 See The Error Reporting Function yyerror
yylex
ユーザー定義の字句解析関数で、次のトークンを得るために、 引数なしで呼び出されます。 See The Lexical Analyzer Function yylex
yylval
トークンに関連する意味値をyylexが置くための広域変数です (再入可能な構文解析器では、これはyyparseの局所変数で、 その番地がyylexに渡されます)。 See Semantic Values of Tokens
yylloc
トークンに関連する行番号と桁番号をyylexが置くための 広域変数です(再入可能な構文解析器では、この変数はyyparseに 局所的で、その番地がyylexに渡されます)。 文法アクションで‘@’機能を使わないならば、 この値を無視してかまいません。 See Textual Positions of Tokens
yynerrs
構文エラーが発生するたびにBisonが値を1増やす広域変数です (再入可能な構文解析器では、この変数はyyparseに局所的です)。 See The Error Reporting Function yyerror
yyparse
Bisonによって生成される構文解析器関数で、 この関数を呼び出すことによって構文解析が始まります。 See The Parser Function yyparse
%left
トークンに左結合性を与えるBison宣言です。 See Operator Precedence
%no_lines
構文解析器ファイルの中に#lineディレクティブを生成しないための Bison宣言です。 See Decl Summary
%nonassoc
トークンに非結合性を与えるためのBison宣言です。 See Operator Precedence
%prec
指定された規則に優先順位を与えるためのBison宣言です。 See Context-Dependent Precedence
%pure_parser
再入可能な構文解析器を生成するためのBison宣言です。 See A Pure (Reentrant) Parser
%raw
通常のYacc互換トークン番号の代わりに、 トークン表のBison内部トークン番号を使うための、Bison宣言です。 See Decl Summary
%right
トークンに右結合性を与えるためのBison宣言です。 See Operator Precedence
%start
開始記号を指定するためのBison宣言です。 See The Start-Symbol
%token
優先順位を指定せずにトークンを宣言するためのBison宣言です。 See Token Type Names
%token_table
構文解析器ファイルの中でトークン名の表を挿入するためのBison宣言です。 See Decl Summary
%type
非終端記号を宣言するためのBison宣言です。 See Nonterminal Symbols
%union
意味値として可能ないくつかのデータ型を指定するためのBison宣言です。 See The Collection of Value Types.

Bison文法ファイルの中で使う、区切り記号があります。

%%
Bison宣言部、文法規則部、(省略可能な)Cプログラム部を区切る記号です。 See The Overall Layout of a Bison Grammar
%{ %}
文法ファイルの‘%{’と‘%}’の間に書かれたすべてのプログラムは、 そのまま構文解析器ファイルに複写されます。 このようなプログラムが、文法ファイルのC宣言部を構成します。 See Outline of a Bison Grammar
/*...*/
C言語と同様のコメントです。
:
規則の結果と構成要素を分離する記号です。 See Syntax of Grammar Rules
;
規則の終わりの記号です。 See Syntax of Grammar Rules
|
同一の非終端記号を結果とする複数の規則を区切る記号です。 See Syntax of Grammar Rules