home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / gnu / gperf.lzh / GPERF / EXPOUT.3 < prev    next >
Text File  |  1993-07-30  |  6KB  |  171 lines

  1. /* starting time is 23:41:14 */
  2. /* C code produced by gperf version 2.5 (GNU C++ version) */
  3. /* Command-line: ../gperf -p -j 1 -o -a -g -t -k1,4,$ gplus.gpf  */
  4. /* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$ gplus.gperf  */
  5. struct resword { char *name; short token; enum rid rid;};
  6.  
  7. #define TOTAL_KEYWORDS 71
  8. #define MIN_WORD_LENGTH 2
  9. #define MAX_WORD_LENGTH 13
  10. #define MIN_HASH_VALUE 4
  11. #define MAX_HASH_VALUE 147
  12. /* maximum key range = 144, duplicates = 0 */
  13.  
  14. #ifdef __GNUC__
  15. inline
  16. #endif
  17. static unsigned int
  18. hash (register const char *str, register int len)
  19. {
  20.   static unsigned char asso_values[] =
  21.     {
  22.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  23.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  24.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  25.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  26.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  27.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  28.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  29.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  30.      148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
  31.      148, 148, 148, 148, 148,   0, 148,  19,   6,  27,
  32.       37,   0,  12,   1,  15,  63, 148,   4,   0,  56,
  33.       20,  15,  42, 148,  31,   5,  26,  39,  32,  10,
  34.      148,  40, 148, 148, 148, 148, 148, 148,
  35.     };
  36.   register int hval = len;
  37.  
  38.   switch (hval)
  39.     {
  40.       default:
  41.       case 4:
  42.         hval += asso_values[str[3]];
  43.       case 3:
  44.       case 2:
  45.       case 1:
  46.         hval += asso_values[str[0]];
  47.     }
  48.   return hval + asso_values[str[len - 1]];
  49. }
  50.  
  51. #ifdef __GNUC__
  52. inline
  53. #endif
  54. struct resword *
  55. in_word_set (register const char *str, register int len)
  56. {
  57.   static struct resword wordlist[] =
  58.     {
  59.       {"",}, {"",}, {"",}, {"",}, 
  60.       {"else",  ELSE, NORID,},
  61.       {"",}, 
  62.       {"long",  TYPESPEC, RID_LONG,},
  63.       {"",}, {"",}, {"",}, {"",}, 
  64.       {"__alignof__",  ALIGNOF, NORID},
  65.       {"__asm__",  ASM, NORID},
  66.       {"",}, {"",}, 
  67.       {"while",  WHILE, NORID,},
  68.       {"",}, {"",}, {"",}, {"",}, {"",}, 
  69.       {"__alignof",  ALIGNOF, NORID},
  70.       {"all",  ALL, NORID            /* Extension */,},
  71.       {"sizeof",  SIZEOF, NORID,},
  72.       {"__const__",  TYPE_QUAL, RID_CONST},
  73.       {"__volatile",  TYPE_QUAL, RID_VOLATILE},
  74.       {"extern",  SCSPEC, RID_EXTERN,},
  75.       {"__volatile__",  TYPE_QUAL, RID_VOLATILE},
  76.       {"__inline",  SCSPEC, RID_INLINE},
  77.       {"exception",  AGGR, RID_EXCEPTION    /* Extension */,},
  78.       {"__inline__",  SCSPEC, RID_INLINE},
  79.       {"case",  CASE, NORID,},
  80.       {"except",  EXCEPT, NORID        /* Extension */,},
  81.       {"new",  NEW, NORID,},
  82.       {"break",  BREAK, NORID,},
  83.       {"goto",  GOTO, NORID,},
  84.       {"",}, 
  85.       {"__attribute",  ATTRIBUTE, NORID},
  86.       {"",}, 
  87.       {"__attribute__",  ATTRIBUTE, NORID},
  88.       {"this",  THIS, NORID,},
  89.       {"raise",  RAISE, NORID        /* Extension */,},
  90.       {"class",  AGGR, RID_CLASS,},
  91.       {"delete",  DELETE, NORID,},
  92.       {"typeof",  TYPEOF, NORID,},
  93.       {"typedef",  SCSPEC, RID_TYPEDEF,},
  94.       {"for",  FOR, NORID,},
  95.       {"raises",  RAISES, NORID        /* Extension */,},
  96.       {"__const",  TYPE_QUAL, RID_CONST},
  97.       {"double",  TYPESPEC, RID_DOUBLE,},
  98.       {"__typeof__",  TYPEOF, NORID},
  99.       {"",}, 
  100.       {"switch",  SWITCH, NORID,},
  101.       {"auto",  SCSPEC, RID_AUTO,},
  102.       {"do",  DO, NORID,},
  103.       {"friend",  SCSPEC, RID_FRIEND,},
  104.       {"",}, 
  105.       {"reraise",  RERAISE, NORID        /* Extension */,},
  106.       {"",}, 
  107.       {"volatile",  TYPE_QUAL, RID_VOLATILE,},
  108.       {"__typeof",  TYPEOF, NORID},
  109.       {"continue",  CONTINUE, NORID,},
  110.       {"float",  TYPESPEC, RID_FLOAT,},
  111.       {"const",  TYPE_QUAL, RID_CONST,},
  112.       {"static",  SCSPEC, RID_STATIC,},
  113.       {"virtual",  SCSPEC, RID_VIRTUAL,},
  114.       {"__asm",  ASM, NORID},
  115.       {"short",  TYPESPEC, RID_SHORT,},
  116.       {"signed",  TYPESPEC, RID_SIGNED,},
  117.       {"try",  TRY, NORID            /* Extension */,},
  118.       {"",}, {"",}, {"",}, 
  119.       {"__signed__",  TYPESPEC, RID_SIGNED},
  120.       {"catch",  CATCH, NORID,},
  121.       {"public",  PUBLIC, NORID,},
  122.       {"struct",  AGGR, RID_RECORD,},
  123.       {"if",  IF, NORID,},
  124.       {"asm",  ASM, NORID,},
  125.       {"union",  AGGR, RID_UNION,},
  126.       {"",}, 
  127.       {"private",  PRIVATE, NORID,},
  128.       {"",}, {"",}, {"",}, 
  129.       {"operator",  OPERATOR, NORID,},
  130.       {"",}, {"",}, {"",}, 
  131.       {"default",  DEFAULT, NORID,},
  132.       {"dynamic",  DYNAMIC, NORID,},
  133.       {"overload",  OVERLOAD, NORID,},
  134.       {"int",  TYPESPEC, RID_INT,},
  135.       {"char",  TYPESPEC, RID_CHAR,},
  136.       {"",}, {"",}, 
  137.       {"return",  RETURN, NORID,},
  138.       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
  139.       {"",}, {"",}, 
  140.       {"__signed",  TYPESPEC, RID_SIGNED},
  141.       {"",}, 
  142.       {"void",  TYPESPEC, RID_VOID,},
  143.       {"",}, {"",}, {"",}, 
  144.       {"protected",  PROTECTED, NORID,},
  145.       {"",}, 
  146.       {"enum",  ENUM, NORID,},
  147.       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
  148.       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
  149.       {"inline",  SCSPEC, RID_INLINE,},
  150.       {"register",  SCSPEC, RID_REGISTER,},
  151.       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
  152.       {"",}, {"",}, {"",}, {"",}, 
  153.       {"unsigned",  TYPESPEC, RID_UNSIGNED,},
  154.     };
  155.  
  156.   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
  157.     {
  158.       register int key = hash (str, len);
  159.  
  160.       if (key <= MAX_HASH_VALUE && key >= 0)
  161.         {
  162.           register char *s = wordlist[key].name;
  163.  
  164.           if (*s == *str && !strcmp (str + 1, s + 1))
  165.             return &wordlist[key];
  166.         }
  167.     }
  168.   return 0;
  169. }
  170. /* ending time is 23:41:14 */
  171.