3 BEGIN { numfields = 0; nummenus = 0;
4 printf("/* This file is machine generated, do not edit. */");
5 printf("\n#include <Xm/Text.h>\n");
6 printf("#include \"mmoira.h\"\n\n");
12 $1 == "=" { if (menuname != "") {
13 menuno = menumap[menuname] = nummenus++;
14 printf("static MenuItem *menu%dsub[] = {\n", menuno);
15 for (i = 0; i < count; i++)
16 printf("\t&menu%d,\n", save[i]);
17 printf("\t(MenuItem *) NULL\n};\n");
18 printf("static MenuItem menu%d = { \"%s\", menu%dsub };\n", \
19 menuno, menuname, menuno);
23 for (i = 3; i <= NF; i++)
24 menuname = sprintf("%s %s", menuname, $i);
29 $NF == "}" { itemname = $1;
30 for (i = 2; i <= NF && $i != "{"; i++)
31 itemname = sprintf("%s %s", itemname, $i);
33 printf("static MenuItem menu%d = { \"%s\", NULL, %s \"%s\", \"%s\", %d };\n", \
35 $(i + 1), $(i + 2), $(i + 3), $(i + 4));
36 save[count++] = menuno;
41 for (i = 2; i <= NF && $i != "{"; i++)
42 itemname = sprintf("%s %s", itemname, $i);
43 save[count++] = menumap[itemname];
47 END { menuno = menumap[menuname] = nummenus++;
48 printf("static MenuItem *menu%dsub[] = {\n", menuno);
49 for (i = 0; i < count; i++)
50 printf("\t&menu%d,\n", save[i]);
51 printf("\t(MenuItem *) NULL\n};\n");
52 printf("MenuItem MenuRoot = { \"%s\", menu%dsub };\n", \