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

  1. /* starting time is 23:41:14 */
  2. /* C code produced by gperf version 2.5 (GNU C++ version) */
  3. /* Command-line: ../gperf -n -k1-8 -l modula2.gpf  */
  4.  
  5. #define TOTAL_KEYWORDS 40
  6. #define MIN_WORD_LENGTH 2
  7. #define MAX_WORD_LENGTH 14
  8. #define MIN_HASH_VALUE 1
  9. #define MAX_HASH_VALUE 256
  10. /* maximum key range = 256, duplicates = 0 */
  11.  
  12. static unsigned int
  13. hash (str, len)
  14.      register char *str;
  15.      register int unsigned len;
  16. {
  17.   static unsigned short asso_values[] =
  18.     {
  19.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  20.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  21.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  22.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  23.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  24.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  25.      257, 257, 257, 257, 257,  25,  30,  35,  21,   0,
  26.       30,  15,  30,  45, 257, 257,   0,   5,  45,   0,
  27.       10,   0,   1,  20,  25,  15,  30,  40,  15,   5,
  28.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  29.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  30.      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
  31.      257, 257, 257, 257, 257, 257, 257, 257,
  32.     };
  33.   register int hval = 0;
  34.  
  35.   switch (len)
  36.     {
  37.       default:
  38.       case 8:
  39.         hval += asso_values[str[7]];
  40.       case 7:
  41.         hval += asso_values[str[6]];
  42.       case 6:
  43.         hval += asso_values[str[5]];
  44.       case 5:
  45.         hval += asso_values[str[4]];
  46.       case 4:
  47.         hval += asso_values[str[3]];
  48.       case 3:
  49.         hval += asso_values[str[2]];
  50.       case 2:
  51.         hval += asso_values[str[1]];
  52.       case 1:
  53.         hval += asso_values[str[0]];
  54.     }
  55.   return hval;
  56. }
  57.  
  58. char *
  59. in_word_set (str, len)
  60.      register char *str;
  61.      register unsigned int len;
  62. {
  63.  
  64.   static unsigned char lengthtable[] =
  65.     {
  66.       0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,
  67.       0,  0,  0,  0,  0,  0,  4,  2,  0,  0,  0,  2,  3,  0,
  68.       0,  0,  2,  3,  0,  0,  0,  2,  4,  0,  0,  0,  4,  6,
  69.       0,  0,  0,  3,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,
  70.       3,  5,  6,  0,  0,  6,  0,  0,  0,  0,  3,  0,  0,  0,
  71.       3,  0,  0,  0,  0,  2,  0,  0,  0,  0,  4,  0,  0,  9,
  72.       0,  4,  6,  6,  0,  0,  2,  3,  0,  0,  0,  5,  3,  0,
  73.       0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0,
  74.       0,  0,  0,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,
  75.       7,  0,  0,  0,  5,  0,  0,  0,  0,  5,  0,  0,  0,  0,
  76.       4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  77.       0,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,
  78.       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  79.       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  80.       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  81.       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  82.       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  83.       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  84.       0,  0,  0,  0, 10,
  85.     };
  86.   static char *wordlist[] =
  87.     {
  88.       "", 
  89.       "OR", 
  90.       "", "", "", "", "", "", "", "", 
  91.       "LOOP", 
  92.       "", "", "", "", "", "", "", "", "", 
  93.       "ELSE", 
  94.       "DO", 
  95.       "", "", "", 
  96.       "TO", 
  97.       "MOD", 
  98.       "", "", "", 
  99.       "OF", 
  100.       "FOR", 
  101.       "", "", "", 
  102.       "BY", 
  103.       "FROM", 
  104.       "", "", "", 
  105.       "TYPE", 
  106.       "MODULE", 
  107.       "", "", "", 
  108.       "SET", 
  109.       "", "", "", "", "", 
  110.       "EXPORT", 
  111.       "", "", "", "", 
  112.       "VAR", 
  113.       "ARRAY", 
  114.       "RECORD", 
  115.       "", "", 
  116.       "REPEAT", 
  117.       "", "", "", "", 
  118.       "END", 
  119.       "", "", "", 
  120.       "NOT", 
  121.       "", "", "", "", 
  122.       "IF", 
  123.       "", "", "", "", 
  124.       "CASE", 
  125.       "", "", 
  126.       "PROCEDURE", 
  127.       "", 
  128.       "EXIT", 
  129.       "IMPORT", 
  130.       "RETURN", 
  131.       "", "", 
  132.       "IN", 
  133.       "AND", 
  134.       "", "", "", 
  135.       "ELSIF", 
  136.       "DIV", 
  137.       "", "", "", 
  138.       "THEN", 
  139.       "", "", "", "", "", "", "", "", "", 
  140.       "IMPLEMENTATION", 
  141.       "", "", "", "", 
  142.       "WHILE", 
  143.       "", "", "", "", "", "", "", "", "", 
  144.       "CONST", 
  145.       "POINTER", 
  146.       "", "", "", 
  147.       "UNTIL", 
  148.       "", "", "", "", 
  149.       "BEGIN", 
  150.       "", "", "", "", 
  151.       "WITH", 
  152.       "", "", "", "", "", "", "", "", "", 
  153.       "", "", "", "", "", "", "", "", "", 
  154.       "", "QUALIFIED", 
  155.       "", "", "", "", "", "", "", "", "", 
  156.       "", "", "", "", "", "", "", "", "", 
  157.       "", "", "", "", "", "", "", "", "", 
  158.       "", "", "", "", "", "", "", "", "", 
  159.       "", "", "", "", "", "", "", "", "", 
  160.       "", "", "", "", "", "", "", "", "", 
  161.       "", "", "", "", "", "", "", "", "", 
  162.       "", "", "", "", "", "", "", "", "", 
  163.       "", "", "", "", "", "", "", "", "", 
  164.       "", "", "", "", "", "", "", "", "", 
  165.       "", "", "", "", "", 
  166.       "DEFINITION", 
  167.     };
  168.  
  169.   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
  170.     {
  171.       register int key = hash (str, len);
  172.  
  173.       if (key <= MAX_HASH_VALUE && key >= 0)
  174.         {
  175.           register char *s = wordlist[key];
  176.  
  177.           if (len == lengthtable[key]
  178.               && *s == *str && !strcmp (str + 1, s + 1))
  179.             return s;
  180.         }
  181.     }
  182.   return 0;
  183. }
  184. /* ending time is 23:41:14 */
  185.