⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-3.exp

📁 ACE源码
💻 EXP
字号:
/* C code produced by gperf version 2.8 (ACE version) */
/* Command-line: ../src/gperf -p -j 1 -o -a -C -g -t -k1,4,$  */
/* Command-line: gperf -p -j1 -o -t -N is_reserved_word -k1,4,$ gplus.gperf  */
#include <string.h>
struct resword { const char *name; short token; enum rid rid;};

#define TOTAL_KEYWORDS 71
#define MIN_WORD_LENGTH 2
#define MAX_WORD_LENGTH 13
#define MIN_HASH_VALUE 4
#define MAX_HASH_VALUE 147
#define HASH_VALUE_RANGE 144
#define DUPLICATES 0
#define WORDLIST_SIZE 75

inline
static unsigned int
hash (const char *str, unsigned int len)
{
  static const unsigned char asso_values[] =
    {
#if defined (ACE_MVS)
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148,   0,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148,  19,
       6,  27,  37,   0,  12,   1,  15,  63, 148, 148,
     148, 148, 148, 148, 148, 148,   4,   0,  56,  20,
      15,  42, 148,  31, 148, 148, 148, 148, 148, 148,
     148, 148,   5,  26,  39,  32,  10, 148,  40, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148,
#else
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
     148, 148, 148, 148, 148,   0, 148,  19,   6,  27,
      37,   0,  12,   1,  15,  63, 148,   4,   0,  56,
      20,  15,  42, 148,  31,   5,  26,  39,  32,  10,
     148,  40, 148, 148, 148, 148, 148, 148,
#endif /* ACE_MVS */
    };
  unsigned int hval = len;

  switch (hval)
    {
      default:
      case 4:
        hval += asso_values[(int) str[3]];
      case 3:
      case 2:
      case 1:
        hval += asso_values[(int) str[0]];
    }
  return hval + asso_values[(int) str[len - 1]];
}

inline
const struct resword *
in_word_set (const char *str, unsigned int len)
{
  static const struct resword  wordlist[] =
    {
      {"",},{"",},{"",},{"",},
      {"else",  ELSE, NORID,},
      {"",},
      {"long",  TYPESPEC, RID_LONG,},
      {"",},{"",},{"",},{"",},
      {"__alignof__",  ALIGNOF, NORID},
      {"__asm__",  ASM, NORID},
      {"",},{"",},
      {"while",  WHILE, NORID,},
      {"",},{"",},{"",},{"",},{"",},
      {"__alignof",  ALIGNOF, NORID},
      {"all",  ALL, NORID			/* Extension */,},
      {"sizeof",  SIZEOF, NORID,},
      {"__const__",  TYPE_QUAL, RID_CONST},
      {"__volatile",  TYPE_QUAL, RID_VOLATILE},
      {"extern",  SCSPEC, RID_EXTERN,},
      {"__volatile__",  TYPE_QUAL, RID_VOLATILE},
      {"__inline",  SCSPEC, RID_INLINE},
      {"exception",  AGGR, RID_EXCEPTION	/* Extension */,},
      {"__inline__",  SCSPEC, RID_INLINE},
      {"case",  CASE, NORID,},
      {"except",  EXCEPT, NORID		/* Extension */,},
      {"new",  NEW, NORID,},
      {"break",  BREAK, NORID,},
      {"goto",  GOTO, NORID,},
      {"",},
      {"__attribute",  ATTRIBUTE, NORID},
      {"",},
      {"__attribute__",  ATTRIBUTE, NORID},
      {"this",  THIS, NORID,},
      {"raise",  RAISE, NORID		/* Extension */,},
      {"class",  AGGR, RID_CLASS,},
      {"delete",  DELETE, NORID,},
      {"typeof",  TYPEOF, NORID,},
      {"typedef",  SCSPEC, RID_TYPEDEF,},
      {"for",  FOR, NORID,},
      {"raises",  RAISES, NORID		/* Extension */,},
      {"__const",  TYPE_QUAL, RID_CONST},
      {"double",  TYPESPEC, RID_DOUBLE,},
      {"__typeof__",  TYPEOF, NORID},
      {"",},
      {"switch",  SWITCH, NORID,},
      {"auto",  SCSPEC, RID_AUTO,},
      {"do",  DO, NORID,},
      {"friend",  SCSPEC, RID_FRIEND,},
      {"",},
      {"reraise",  RERAISE, NORID		/* Extension */,},
      {"",},
      {"volatile",  TYPE_QUAL, RID_VOLATILE,},
      {"__typeof",  TYPEOF, NORID},
      {"continue",  CONTINUE, NORID,},
      {"float",  TYPESPEC, RID_FLOAT,},
      {"const",  TYPE_QUAL, RID_CONST,},
      {"static",  SCSPEC, RID_STATIC,},
      {"virtual",  SCSPEC, RID_VIRTUAL,},
      {"__asm",  ASM, NORID},
      {"short",  TYPESPEC, RID_SHORT,},
      {"signed",  TYPESPEC, RID_SIGNED,},
      {"try",  TRY, NORID			/* Extension */,},
      {"",},{"",},{"",},
      {"__signed__",  TYPESPEC, RID_SIGNED},
      {"catch",  CATCH, NORID,},
      {"public",  PUBLIC, NORID,},
      {"struct",  AGGR, RID_RECORD,},
      {"if",  IF, NORID,},
      {"asm",  ASM, NORID,},
      {"union",  AGGR, RID_UNION,},
      {"",},
      {"private",  PRIVATE, NORID,},
      {"",},{"",},{"",},
      {"operator",  OPERATOR, NORID,},
      {"",},{"",},{"",},
      {"default",  DEFAULT, NORID,},
      {"dynamic",  DYNAMIC, NORID,},
      {"overload",  OVERLOAD, NORID,},
      {"int",  TYPESPEC, RID_INT,},
      {"char",  TYPESPEC, RID_CHAR,},
      {"",},{"",},
      {"return",  RETURN, NORID,},
      {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
      {"",},{"",},
      {"__signed",  TYPESPEC, RID_SIGNED},
      {"",},
      {"void",  TYPESPEC, RID_VOID,},
      {"",},{"",},{"",},
      {"protected",  PROTECTED, NORID,},
      {"",},
      {"enum",  ENUM, NORID,},
      {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
      {"",},{"",},{"",},{"",},{"",},{"",},
      {"inline",  SCSPEC, RID_INLINE,},
      {"register",  SCSPEC, RID_REGISTER,},
      {"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},{"",},
      {"",},{"",},{"",},{"",},
      {"unsigned",  TYPESPEC, RID_UNSIGNED,},
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      unsigned int key = hash (str, len);

      if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
        {
          const char *s = wordlist[key].name;

          if (*str == *s && !strcmp (str + 1, s + 1))
            return &wordlist[key];
        }
    }
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -