Previous: Pure Decl, Up: Declarations
%union
%token
%right
%left
%nonassoc
%type
%start
%expect
%pure_parser
%no_lines
#line
プリプロセッサディレクティブを生成しません。
Bisonは、通常、Cコンパイラとデバッガがエラーとあなたのソースファイル
(文法ファイル)を関連づけられるように、構文解析器ファイルに
#line
ディレクティブを書き込みます。
%no_lines
宣言は、エラーを構文解析器ファイルの行数と関連づけ、
構文解析器ファイルをそれ自身で独立したソースファイルと
みなすことを意味します。
%raw
%token_table
yytname
で、yytname[
i]
が
Bison内部トークン番号iのトークンの名前です。
最初の3個の要素は常に、"$"
、"error"
、"$illegal"
で、
この後に文法ファイルで定義された記号が続きます。
表の中で、1文字リテラルトークンにはシングルクォート記号が、
文字列リテラルトークンにはダブルクォート記号が含まれます。
たとえば、"'+'"
は1文字リテラルトークンで、
"\"<=\""
は文字列リテラルトークンです。
文字列リテラルトークンのすべての文字はそのまま表に現れ、
ダブルクォート記号もエスケープされません。
たとえば、トークンが3文字‘*"*’からなれば、
yytname
中の文字列は‘"*"*"’となります
(Cでは"\"*\"*\""
と書きます)。
%token_table
を指定すると、Bisonは、マクロ
YYNTOKENS
、YYNNTS
、YYNRULES
、YYNSTATES
の
定義も生成します。
YYNTOKENS
YYNNTS
YYNRULES
YYNSTATES