]> andersk Git - moira.git/blame - clients/mmoira/forms.awk
specify path to synctree
[moira.git] / clients / mmoira / forms.awk
CommitLineData
45df431b 1# $Header$
2
59631538 3BEGIN { numfields = 0; numforms = 0; orfield = 0;
45df431b 4 printf("/* This file is machine generated, do not edit. */");
5 printf("\n#include <Xm/Text.h>\n");
04077a7d 6 printf("#include \"mmoira.h\"\n\n");
45df431b 7 }
8
59631538 9/^;/ { next; }
10NF == 0 { next; }
11NF == 1 && $1 == "or" { orfield = 1; next; }
45df431b 12
f6fdc1a4 13$1 == "{" { formname = sprintf("form%d", numforms);
04077a7d 14 formrealname = $2;
f6fdc1a4 15 numforms++;
45df431b 16 instructions = $3;
17 for (i = 4; i <= NF; i++)
18 instructions = sprintf("%s %s", instructions, $i);
59631538 19 next;
45df431b 20 }
21
22$1 == "}" { printf("static UserPrompt *%s_fields[] = {\n", formname);
23 for (i = 0; i < numfields; i++)
24 printf("\t&%s_fld%d,\n", formname, i);
25 printf("\t(UserPrompt *)NULL\n};\n");
f6fdc1a4 26 printf("static EntryForm %s = {\n\t\"%s\",\n", \
04077a7d 27 formname, formrealname);
45df431b 28 printf("\t\"%s\",\n\t%s_fields\n};\n", \
29 instructions, formname);
30 numfields = 0;
31 next
32 }
33
34$NF == "s" || $NF == "S" \
35 { printf("static UserPrompt %s_fld%d = { \"", \
36 formname, numfields);
37 for (i = 1; i < NF; i++) printf("%s ", $i);
59631538 38 if (orfield) {
39 printf("\", FT_STRING, True };\n");
40 orfield = 0;
41 } else {
42 printf("\", FT_STRING, False };\n");
43 }
45df431b 44 numfields++;
45 next
46 }
47
48$NF == "b" || $NF == "B" \
49 { printf("static UserPrompt %s_fld%d = { \"", \
50 formname, numfields);
51 for (i = 1; i < NF; i++) printf("%s ", $i);
59631538 52 if (orfield) {
53 printf("\", FT_BOOLEAN, True };\n");
54 orfield = 0;
55 } else {
56 printf("\", FT_BOOLEAN, False };\n");
57 }
45df431b 58 numfields++;
59 next
60 }
61
62$NF == "k" || $NF == "K" \
63 { printf("static UserPrompt %s_fld%d = { \"", \
64 formname, numfields);
65 for (i = 1; i < NF; i++) printf("%s ", $i);
59631538 66 if (orfield) {
67 printf("\", FT_KEYWORD, True };\n");
68 orfield = 0;
69 } else {
70 printf("\", FT_KEYWORD, False };\n");
71 }
45df431b 72 numfields++;
73 next
74 }
75
76 { printf("forms syntax error on line %d of file %s:\n%s\n", \
77 NR, FILENAME, $0);
78 exit 1
79 }
f6fdc1a4 80
81END {
82 printf("EntryForm *MoiraForms[] = {\n");
83 for (i = 0; i < numforms; i++)
84 printf("\t&form%d,\n", i);
04077a7d 85 printf("\t(EntryForm *)NULL,\n};\n");
f6fdc1a4 86 }
This page took 0.105332 seconds and 5 git commands to generate.