1 /* C code produced by gperf version 2.7 */
2 /* Command-line: ../src/gperf -g -o -j1 -t -p -N is_reserved_word */
3 /* ISO Pascal 7185 reserved words.
5 * For GNU Pascal compiler (GPC) by jtv@hut.fi
7 * run this through the Doug Schmidt's gperf program
9 * gperf -g -o -j1 -t -p -N is_reserved_word
12 struct resword { char *name; short token; short iclass;};
14 #define TOTAL_KEYWORDS 35
15 #define MIN_WORD_LENGTH 2
16 #define MAX_WORD_LENGTH 9
17 #define MIN_HASH_VALUE 2
18 #define MAX_HASH_VALUE 43
19 /* maximum key range = 42, duplicates = 0 */
26 register const char *str;
27 register unsigned int len;
29 static unsigned char asso_values[] =
31 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
32 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
33 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
34 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
35 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
36 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
37 44, 44, 44, 44, 44, 18, 29, 14, 6, 7,
38 10, 20, 44, 28, 44, 44, 28, 19, 22, 15,
39 0, 44, 9, 23, 0, 23, 26, 2, 44, 44,
40 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
41 0, 0, 13, 44, 30, 44, 44, 44, 0, 25,
42 1, 0, 44, 44, 0, 44, 1, 44, 25, 44,
43 44, 0, 44, 44, 44, 44, 44, 44, 44, 44,
44 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
45 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
46 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
47 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
48 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
49 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
50 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
51 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
52 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
53 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
54 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
55 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
56 44, 44, 44, 44, 44, 44
58 return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
65 is_reserved_word (str, len)
66 register const char *str;
67 register unsigned int len;
69 static struct resword wordlist[] =
72 {"To", TO, PASCAL_ISO},
74 {"Type", TYPE, PASCAL_ISO},
75 {"Then", THEN, PASCAL_ISO},
76 {"Packed", PACKED, PASCAL_ISO},
77 {"While", WHILE, PASCAL_ISO},
78 {"Do", DO, PASCAL_ISO},
79 {"Procedure", PROCEDURE, PASCAL_ISO},
80 {"End", END, PASCAL_ISO},
81 {"Else", ELSE, PASCAL_ISO},
82 {"Downto", DOWNTO, PASCAL_ISO},
83 {"For", FOR, PASCAL_ISO},
84 {"File", FILE_, PASCAL_ISO},
85 {"Record", RECORD, PASCAL_ISO},
86 {"Repeat", REPEAT, PASCAL_ISO},
87 {"Or", OR, PASCAL_ISO},
88 {"Case", CASE, PASCAL_ISO},
89 {"Function", FUNCTION, PASCAL_ISO},
90 {"Const", CONST, PASCAL_ISO},
91 {"And", AND, PASCAL_ISO},
92 {"Mod", MOD, PASCAL_ISO},
93 {"Array", ARRAY, PASCAL_ISO},
94 {"Goto", GOTO, PASCAL_ISO},
95 {"Nil", NIL, PASCAL_ISO},
96 {"Not", NOT, PASCAL_ISO},
97 {"Set", SET, PASCAL_ISO},
98 {"Until", UNTIL, PASCAL_ISO},
99 {"Var", VAR, PASCAL_ISO},
100 {"Of", OF, PASCAL_ISO},
101 {"In", IN, PASCAL_ISO},
102 {"Program",PROGRAM,PASCAL_ISO},
103 {"Label", LABEL, PASCAL_ISO},
104 {"Div", DIV, PASCAL_ISO},
105 {"Begin", BEGIN_, PASCAL_ISO},
106 {"With", WITH, PASCAL_ISO},
107 {""}, {""}, {""}, {""}, {""}, {""},
108 {"If", IF, PASCAL_ISO}
111 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
113 register int key = hash (str, len);
115 if (key <= MAX_HASH_VALUE && key >= 0)
117 register const char *s = wordlist[key].name;
119 if (*str == *s && !strcmp (str + 1, s + 1))
120 return &wordlist[key];