/* C code produced by gperf version 2.7.2 */ /* Command-line: ../src/gperf -g -o -j1 -t -N is_reserved_word */ /* Computed positions: -k'1,$' */ /* ISO Pascal 7185 reserved words. * * For GNU Pascal compiler (GPC) by jtv@hut.fi * * run this through the Doug Schmidt's gperf program * with command * gperf -g -o -j1 -t -p -N is_reserved_word * */ struct resword { char *name; short token; short iclass;}; #define TOTAL_KEYWORDS 35 #define MIN_WORD_LENGTH 2 #define MAX_WORD_LENGTH 9 #define MIN_HASH_VALUE 2 #define MAX_HASH_VALUE 37 /* maximum key range = 36, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int hash (str, len) register const char *str; register unsigned int len; { static unsigned char asso_values[] = { 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 14, 32, 16, 13, 9, 1, 32, 38, 9, 38, 38, 22, 26, 16, 3, 2, 38, 7, 23, 0, 19, 25, 23, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 5, 1, 5, 38, 3, 38, 38, 38, 8, 16, 0, 0, 38, 38, 3, 38, 7, 38, 8, 38, 38, 4, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38 }; return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; } #ifdef __GNUC__ __inline #endif struct resword * is_reserved_word (str, len) register const char *str; register unsigned int len; { static struct resword wordlist[] = { {""}, {""}, {"To", TO, PASCAL_ISO}, {""}, {"Then", THEN, PASCAL_ISO}, {"Type", TYPE, PASCAL_ISO}, {"File", FILE_, PASCAL_ISO}, {"For", FOR, PASCAL_ISO}, {"Or", OR, PASCAL_ISO}, {"Function", FUNCTION, PASCAL_ISO}, {"Of", OF, PASCAL_ISO}, {"In", IN, PASCAL_ISO}, {"Procedure", PROCEDURE, PASCAL_ISO}, {"Packed", PACKED, PASCAL_ISO}, {"Else", ELSE, PASCAL_ISO}, {"Do", DO, PASCAL_ISO}, {"If", IF, PASCAL_ISO}, {"End", END, PASCAL_ISO}, {"Record", RECORD, PASCAL_ISO}, {"Downto", DOWNTO, PASCAL_ISO}, {"Repeat", REPEAT, PASCAL_ISO}, {"Case", CASE, PASCAL_ISO}, {"And", AND, PASCAL_ISO}, {"Array", ARRAY, PASCAL_ISO}, {"Div", DIV, PASCAL_ISO}, {"Program",PROGRAM,PASCAL_ISO}, {"Not", NOT, PASCAL_ISO}, {"Nil", NIL, PASCAL_ISO}, {"Const", CONST, PASCAL_ISO}, {"While", WHILE, PASCAL_ISO}, {"With", WITH, PASCAL_ISO}, {"Var", VAR, PASCAL_ISO}, {"Until", UNTIL, PASCAL_ISO}, {"Set", SET, PASCAL_ISO}, {"Mod", MOD, PASCAL_ISO}, {"Label", LABEL, PASCAL_ISO}, {"Goto", GOTO, PASCAL_ISO}, {"Begin", BEGIN_, PASCAL_ISO} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register const char *s = wordlist[key].name; if (*str == *s && !strcmp (str + 1, s + 1)) return &wordlist[key]; } } return 0; }