]>
Commit | Line | Data |
---|---|---|
45df431b | 1 | # $Header$ |
2 | ||
59631538 | 3 | BEGIN { 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; } |
10 | NF == 0 { next; } | |
11 | NF == 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 | |
81 | END { | |
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 | } |