| /* C code produced by gperf version 2.7.1 (19981006 egcs) */ |
| /* Command-line: gperf -L C -F , 0, 0 -p -j1 -g -o -t -N is_reserved_word -k1,4,7,$ ./gxx.gperf */ |
| /* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */ |
| struct resword { const char *name; short token; enum rid rid;}; |
| |
| #define TOTAL_KEYWORDS 106 |
| #define MIN_WORD_LENGTH 2 |
| #define MAX_WORD_LENGTH 16 |
| #define MIN_HASH_VALUE 4 |
| #define MAX_HASH_VALUE 250 |
| /* maximum key range = 247, duplicates = 0 */ |
| |
| #ifdef __GNUC__ |
| __inline |
| #endif |
| static unsigned int |
| hash (str, len) |
| register const char *str; |
| register unsigned int len; |
| { |
| static unsigned char asso_values[] = |
| { |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 0, 251, 64, 93, 3, |
| 0, 0, 74, 35, 0, 26, 251, 2, 31, 65, |
| 23, 76, 7, 19, 45, 37, 6, 64, 12, 38, |
| 14, 4, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, |
| 251, 251, 251, 251, 251, 251 |
| }; |
| register int hval = len; |
| |
| switch (hval) |
| { |
| default: |
| case 7: |
| hval += asso_values[(unsigned char)str[6]]; |
| case 6: |
| case 5: |
| case 4: |
| hval += asso_values[(unsigned char)str[3]]; |
| case 3: |
| case 2: |
| case 1: |
| hval += asso_values[(unsigned char)str[0]]; |
| break; |
| } |
| return hval + asso_values[(unsigned char)str[len - 1]]; |
| } |
| |
| #ifdef __GNUC__ |
| __inline |
| #endif |
| struct resword * |
| is_reserved_word (str, len) |
| register const char *str; |
| register unsigned int len; |
| { |
| static struct resword wordlist[] = |
| { |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"else", ELSE, NORID,}, |
| {"", 0, 0}, |
| {"delete", DELETE, NORID,}, |
| {"case", CASE, NORID,}, |
| {"__real__", REALPART, NORID}, |
| {"", 0, 0}, |
| {"true", CXX_TRUE, NORID,}, |
| {"catch", CATCH, NORID,}, |
| {"typeid", TYPEID, NORID,}, |
| {"try", TRY, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, |
| {"void", TYPESPEC, RID_VOID,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"private", VISSPEC, RID_PRIVATE,}, |
| {"template", TEMPLATE, RID_TEMPLATE,}, |
| {"protected", VISSPEC, RID_PROTECTED,}, |
| {"extern", SCSPEC, RID_EXTERN,}, |
| {"", 0, 0}, {"", 0, 0}, |
| {"not", '!', NORID,}, |
| {"", 0, 0}, |
| {"__signed", TYPESPEC, RID_SIGNED}, |
| {"int", TYPESPEC, RID_INT,}, |
| {"__signed__", TYPESPEC, RID_SIGNED}, |
| {"__real", REALPART, NORID}, |
| {"", 0, 0}, |
| {"xor_eq", ASSIGN, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"__attribute", ATTRIBUTE, NORID}, |
| {"__asm__", ASM_KEYWORD, NORID}, |
| {"__attribute__", ATTRIBUTE, NORID}, |
| {"compl", '~', NORID,}, |
| {"public", VISSPEC, RID_PUBLIC,}, |
| {"not_eq", EQCOMPARE, NORID,}, |
| {"switch", SWITCH, NORID,}, |
| {"__extension__", EXTENSION, NORID}, |
| {"const", CV_QUALIFIER, RID_CONST,}, |
| {"static", SCSPEC, RID_STATIC,}, |
| {"", 0, 0}, |
| {"__inline", SCSPEC, RID_INLINE}, |
| {"", 0, 0}, |
| {"__inline__", SCSPEC, RID_INLINE}, |
| {"__restrict__", CV_QUALIFIER, RID_RESTRICT}, |
| {"inline", SCSPEC, RID_INLINE,}, |
| {"const_cast", CONST_CAST, NORID,}, |
| {"static_cast", STATIC_CAST, NORID,}, |
| {"__restrict", CV_QUALIFIER, RID_RESTRICT}, |
| {"xor", '^', NORID,}, |
| {"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,}, |
| {"new", NEW, NORID,}, |
| {"__alignof__", ALIGNOF, NORID}, |
| {"signed", TYPESPEC, RID_SIGNED,}, |
| {"and", ANDAND, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"explicit", SCSPEC, RID_EXPLICIT,}, |
| {"", 0, 0}, |
| {"__imag__", IMAGPART, NORID}, |
| {"while", WHILE, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"do", DO, NORID,}, |
| {"typename", TYPENAME_KEYWORD, NORID,}, |
| {"friend", SCSPEC, RID_FRIEND,}, |
| {"continue", CONTINUE, NORID,}, |
| {"class", AGGR, RID_CLASS,}, |
| {"default", DEFAULT, NORID,}, |
| {"this", THIS, NORID,}, |
| {"dynamic_cast", DYNAMIC_CAST, NORID,}, |
| {"typeof", TYPEOF, NORID,}, |
| {"virtual", SCSPEC, RID_VIRTUAL,}, |
| {"export", SCSPEC, RID_EXPORT,}, |
| {"and_eq", ASSIGN, NORID,}, |
| {"__typeof__", TYPEOF, NORID}, |
| {"__const__", CV_QUALIFIER, RID_CONST}, |
| {"__volatile", CV_QUALIFIER, RID_VOLATILE}, |
| {"short", TYPESPEC, RID_SHORT,}, |
| {"__volatile__", CV_QUALIFIER, RID_VOLATILE}, |
| {"__const", CV_QUALIFIER, RID_CONST}, |
| {"namespace", NAMESPACE, NORID,}, |
| {"char", TYPESPEC, RID_CHAR,}, |
| {"unsigned", TYPESPEC, RID_UNSIGNED,}, |
| {"double", TYPESPEC, RID_DOUBLE,}, |
| {"or_eq", ASSIGN, NORID,}, |
| {"__null", CONSTANT, RID_NULL}, |
| {"if", IF, NORID,}, |
| {"__signature__", AGGR, RID_SIGNATURE /* Extension */,}, |
| {"__label__", LABEL, NORID}, |
| {"long", TYPESPEC, RID_LONG,}, |
| {"__imag", IMAGPART, NORID}, |
| {"__asm", ASM_KEYWORD, NORID}, |
| {"", 0, 0}, |
| {"__sigof__", SIGOF, NORID /* Extension */,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"struct", AGGR, RID_RECORD,}, |
| {"", 0, 0}, |
| {"volatile", CV_QUALIFIER, RID_VOLATILE,}, |
| {"false", CXX_FALSE, NORID,}, |
| {"sizeof", SIZEOF, NORID,}, |
| {"__complex__", TYPESPEC, RID_COMPLEX}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"for", FOR, NORID,}, |
| {"or", OROR, NORID,}, |
| {"register", SCSPEC, RID_REGISTER,}, |
| {"throw", THROW, NORID,}, |
| {"", 0, 0}, |
| {"using", USING, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, |
| {"__complex", TYPESPEC, RID_COMPLEX}, |
| {"", 0, 0}, |
| {"asm", ASM_KEYWORD, NORID,}, |
| {"signature", AGGR, RID_SIGNATURE /* Extension */,}, |
| {"enum", ENUM, NORID,}, |
| {"reinterpret_cast", REINTERPRET_CAST, NORID,}, |
| {"mutable", SCSPEC, RID_MUTABLE,}, |
| {"__alignof", ALIGNOF, NORID}, |
| {"return", RETURN, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, |
| {"float", TYPESPEC, RID_FLOAT,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"bool", TYPESPEC, RID_BOOL,}, |
| {"", 0, 0}, |
| {"typedef", SCSPEC, RID_TYPEDEF,}, |
| {"__typeof", TYPEOF, NORID}, |
| {"bitand", '&', NORID,}, |
| {"break", BREAK, NORID,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"union", AGGR, RID_UNION,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"goto", GOTO, NORID,}, |
| {"sigof", SIGOF, NORID /* Extension */,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"bitor", '|', NORID,}, |
| {"auto", SCSPEC, RID_AUTO,}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, |
| {"", 0, 0}, {"", 0, 0}, |
| {"operator", OPERATOR, NORID,} |
| }; |
| |
| 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; |
| } |