4.1.2 キーワード項目の形式

入力ファイルの2番目のセクションには、キーワードと、必要に応じて指定する関連属性の行を記述します。最初の列が‘#’で始まる行はコメントとみなされます。‘#’の後から、その次の改行までを含めてすべて無視されます。最初の列が‘%’で始まる行はオプション宣言なので、キーワードのセクション内に置いてはいけません。

コメントでない各行の最初のフィールドは、必ずキーワードそのものです。指定方法は2つあります。文字列を囲む引用符を付けない単純な名前として指定するか、二重引用符で囲むC構文の文字列として指定します。後者では、\"、\234、\xa8などのバックスラッシュによるエスケープも使用できます。どちらの場合も、先頭に空白を置かず、行の最初から始めなければなりません。ここで「フィールド」は、最初の空白、カンマ、改行の直前までの範囲を指し、それらの区切り自体は含みません。Cの予約語の一部を使った簡単な例を次に示します。

# These are a few C reserved words, see the c.gperf file 
# for a complete list of ANSI C reserved words.
unsigned
sizeof
switch
signed
if
default
for
while
return

flexやbisonとは異なり、宣言セクションが空なら、最初の‘%%’の印を省略できることに注意してください。

先頭のキーワードの後には、必要に応じて追加のフィールドを置けます。フィールドはカンマで区切り、行末で終わるようにします。その意味はすべて利用者が決めます。宣言セクションで指定する、利用者定義のstructの各要素を初期化するために使われます。‘-t’オプション、または同じ働きをする‘%struct-type’宣言が有効でない場合、これらのフィールドは単に無視されます。最後の例を除き、それまでのすべての例にはキーワードの属性が含まれています。