struct
‘-t’オプション、または同じ働きをする‘%struct-type’宣言が有効な場合、入力ファイルの宣言セクションの最後の要素として、Cのstructを指定する必要があります。このstructの最初のフィールドの型は、‘-P’オプションを指定しない場合はchar *またはconst char *、‘-P’オプション、または同じ働きをする‘%pic’宣言が有効な場合はintでなければなりません。最初のフィールドは‘name’という名前にする必要がありますが、後述の‘-K’オプション、または同じ働きをする‘%define slot-name’宣言を使うと名前を変更できます。
一年の各月とその属性を入力とする簡単な例を示します。
struct month { char *name; int number; int days; int leap_days; };
%%
january, 1, 31, 31
february, 2, 28, 29
march, 3, 31, 31
april, 4, 30, 30
may, 5, 31, 31
june, 6, 30, 30
july, 7, 31, 31
august, 8, 31, 31
september, 9, 30, 30
october, 10, 31, 31
november, 11, 30, 30
december, 12, 31, 31
structの宣言と、キーワードおよびその他のフィールドの一覧を区切るのは、連続する2つのパーセント記号‘%%’です。UNIXユーティリティのlexと同様に、行の最初の列から左詰めで記述します。
structがすでにインクルードファイル内で宣言されている場合は、次のような省略形で示すことができます。
struct month; %% january, 1, 31, 31 ...