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

📄 keywhash.c

📁 一个C格式的脚本处理函数库源代码,可让你的C程序具有执行C格式的脚本文件
💻 C
字号:
/* Perfect hash generated by command line: * ./a.out 1 */#define MIN_HASH_VALUE	2#define MAX_HASH_VALUE	118#define MIN_KEYWORD_LEN 2#define MAX_KEYWORD_LEN 11static SLCONST unsigned char Keyword_Hash_Table [256] ={  119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119,   1, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,     9,   7,   1,   8,   2, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119,   0,   0, 119,   0, 119, 119, 119,   7, 119,   0,   0, 119, 119,   0,   119, 119,   0,   0,   0,   0, 119, 119,   0, 119, 119, 119, 119, 119, 119,   2,   119,  41,   1,   1,   9,   0,  55,   8,   0,   0, 119,   0,  27,   0,   0,   0,     7,   2,   0,  21,   0,   0,   0,   3,   2,   0, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,   119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119};static unsigned char keyword_hash (char *s, unsigned int len){   unsigned int sum;   sum = len;   while (len)     {	len--;	sum += (unsigned int) Keyword_Hash_Table [(unsigned char)s[len]];     }   return sum;}typedef SLCONST struct{   char *name;   unsigned int type;}Keyword_Table_Type;static Keyword_Table_Type Keyword_Table [/* 117 */] ={   {"or",	OR_TOKEN},   {"not",	NOT_TOKEN},   {NULL,0},   {"xor",	BXOR_TOKEN},   {"return",	RETURN_TOKEN},   {"exch",	EXCH_TOKEN},   {NULL,0},   {"continue",	CONT_TOKEN},   {NULL,0},   {"do",	DO_TOKEN},   {"mod",	MOD_TOKEN},   {"ERROR_BLOCK",	ERRBLK_TOKEN},   {"USER_BLOCK2",	USRBLK2_TOKEN},   {"USER_BLOCK4",	USRBLK4_TOKEN},   {"__tmp",	TMP_TOKEN},   {"pop",	POP_TOKEN},   {NULL,0},   {"EXIT_BLOCK",	EXITBLK_TOKEN},   {"USER_BLOCK1",	USRBLK1_TOKEN},   {"USER_BLOCK3",	USRBLK3_TOKEN},   {"USER_BLOCK0",	USRBLK0_TOKEN},   {NULL,0},   {"shr",	SHR_TOKEN},   {"chs",	CHS_TOKEN},   {"sqr",	SQR_TOKEN},   {NULL,0},   {"struct",	STRUCT_TOKEN},   {NULL,0},   {NULL,0},   {"switch",	SWITCH_TOKEN},   {"mul2",	MUL2_TOKEN},   {"sign",	SIGN_TOKEN},   {"using",	USING_TOKEN},   {"while",	WHILE_TOKEN},   {NULL,0},   {NULL,0},   {"loop",	LOOP_TOKEN},   {NULL,0},   {NULL,0},   {NULL,0},   {"public",	PUBLIC_TOKEN},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {"break",	BREAK_TOKEN},   {NULL,0},   {"do_while",	DOWHILE_TOKEN},   {NULL,0},   {"shl",	SHL_TOKEN},   {"else",	ELSE_TOKEN},   {"and",	AND_TOKEN},   {"orelse",	ORELSE_TOKEN},   {"private",	PRIVATE_TOKEN},   {NULL,0},   {"if",	IF_TOKEN},   {"for",	FOR_TOKEN},   {"!if",	IFNOT_TOKEN},   {NULL,0},   {"_for",	_FOR_TOKEN},   {"forever",	FOREVER_TOKEN},   {NULL,0},   {NULL,0},   {NULL,0},   {"abs",	ABS_TOKEN},   {"case",	CASE_TOKEN},   {NULL,0},   {"static",	STATIC_TOKEN},   {"define",	DEFINE_TOKEN},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {"typedef",	TYPEDEF_TOKEN},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {"foreach",	FOREACH_TOKEN},   {"andelse",	ANDELSE_TOKEN},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {NULL,0},   {"variable",	VARIABLE_TOKEN},};static Keyword_Table_Type *is_keyword (char *str, unsigned int len){   unsigned int hash;   char *name;   Keyword_Table_Type *kw;   if ((len < MIN_KEYWORD_LEN)       || (len > MAX_KEYWORD_LEN))     return NULL;   hash = keyword_hash (str, len);   if ((hash > MAX_HASH_VALUE) || (hash < MIN_HASH_VALUE))     return NULL;   kw = &Keyword_Table[hash - MIN_HASH_VALUE];   if ((NULL != (name = kw->name))       && (*str == *name)       && (0 == strcmp (str, name)))     return kw;   return NULL;}

⌨️ 快捷键说明

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