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

📄 vocab.c

📁 minix软件源代码
💻 C
字号:
/*  look-up vocabulary word in lex-ordered table.  words may have  two entries with different codes. if minimum acceptable type  = 0, then return minimum of different codes.  last word CANNOT  have two entries(due to binary sort).  word is the word to look up.  type  is the minimum acceptable value,  if != 0 return %1000*/#include	<string.h>#include	<stdio.h>#include	"advent.h"#include	"advdec.h"static _CONST struct wac wc[] = {				      "\"spelunker\"", 1016,				      "22", 2053,				      "22", 3012,				      "34", 2053,				      "34", 3013,				      "4-leafed", 5034,				      "7", 2053,				      "7", 3011,				      "?", 3051,				      "above", 29,				      "abra", 3050,				      "abracd", 3050,				      "across", 42,				      "alacaz", 3050,				      "all", 1109,				      "altar", 90,				      "and", 6001,				      "answer", 2035,				      "anvil", 1091,				      "ascend", 29,				      "at", 4009,				      "attack", 2012,				      "awaken", 2029,				      "awkward", 26,				      "axe", 1028,				      "back", 8,				      "ball", 1120,				      "barren", 40,				      "bat", 1104,				      "bats", 1104,				      "batshit", 1104,				      "batteries", 1039,				      "beans", 1024,				      "bear", 1035,				      "bed", 16,				      "bedquilt", 70,				      "bee", 1087,				      "beehive", 1097,				      "bees", 1087,				      "billboard", 1116,				      "bird", 1101,				      "bitch", 2048,				      "black", 5006,				      "blast", 2023,				      "blow", 2036,				      "blowup", 2023,				      "boat", 1048,				      "book", 1110,				      "booth", 1093,				      "bottle", 1020,				      "box", 1055,				      "brass", 5004,				      "break", 2028,				      "bridge", 89,				      "brief", 2026,				      "broken", 54,				      "broom", 1114,				      "brush", 1114,				      "brush", 2054,				      "building", 12,				      "bumble", 1087,				      "burn", 2047,				      "cage", 1004,				      "cake", 1107,	/* value must be							   mushrooms + 1 */				      "cakes", 1107,				      "call", 2038,				      "calm", 2010,				      "canister", 1118,				      "canyon", 25,				      "cape", 1047,				      "capture", 2001,				      "carpet", 1040,				      "carry", 2001,				      "carving", 1115,				      "cask", 1071,				      "catch", 2001,				      "cave", 67,				      "cavern", 73,				      "chain", 1064,				      "chalice", 1070,				      "chant", 2003,				      "chasm", 1021,	/* troll bridge */				      "chest", 1055,				      "chimney", 78,				      "clam", 1014,				      "click", 85,				      "climb", 56,				      "cloak", 1047,				      "close", 2006,				      "clover", 1073,				      "cobble", 18,				      "coins", 1054,				      "comb", 1096,				      "complain", 2048,				      "continue", 7,				      "continue", 2011,				      "crack", 33,				      "crap", 3106,				      "crap!", 3106,				      "crawl", 17,				      "cross", 69,				      "crown", 1066,				      "crystal", 5033,				      "cup", 1070,				      "cupcakes", 1107,				      "d", 30,				      "dark", 22,				      "debris", 51,				      "defile", 23,				      "depression", 63,				      "descend", 30,				      "describe", 2052,				      "detonate", 2023,				      "devour", 2014,				      "diagnose", 2051,				      "dial", 2039,				      "diamond", 1051,				      "diamonds", 1051,				      "dig", 3066,				      "discard", 2002,				      "disturb", 2029,				      "doff", 2002,				      "dog", 1098,				      "dome", 35,				      "don", 2033,				      "door", 1041,	/* giant door */				      "down", 30,				      "down", 4008,				      "downstream", 5,				      "downward", 30,				      "dragon", 1031,				      "drawing", 1029,				      "drink", 2015,				      "drop", 2002,				      "droplet", 1075,				      "dump", 2002,				      "dust", 2054,				      "dwarf", 1017,				      "dwarves", 1017,				      "e", 43,				      "east", 43,				      "eat", 2014,				      "egg", 1056,				      "eggs", 1056,				      "elfin", 5019,				      "emerald", 1059,				      "empty", 2013,				      "enter", 3,				      "entrance", 64,				      "everything", 1109,				      "examine", 2052,				      "excavate", 3066,				      "exit", 11,				      "explore", 2011,				      "extinguish", 2008,				      "fee", 2025,				      "fee", 3001,				      "feed", 2021,				      "fie", 2025,				      "fie", 3002,				      "fight", 2012,				      "figure", 1027,				      "fill", 2022,				      "find", 2019,				      "fissure", 1012,				      "fling", 2017,				      "floor", 58,				      "flower", 1046,				      "flowers", 1046,				      "foe", 2025,				      "foe", 3003,				      "follow", 2011,				      "foo", 2025,				      "foo", 3004,				      "food", 1019,				      "forcd", 1,				      "forest", 6,				      "fork", 77,				      "forward", 7,				      "fountain", 1103,				      "four-leafed", 5034,				      "free", 2002,				      "fresh", 5010,				      "from", 4005,				      "fuck", 3079,				      "fuck!", 3079,				      "fum", 2025,				      "fum", 3005,				      "gate", 2058,				      "get", 2044,				      "geyser", 1037,	/* same as volcano */				      "giant", 27,				      "giant", 5029,				      "glowing", 5031,				      "gnome", 1105,				      "go", 2011,				      "gold", 1050,				      "golden", 5001,				      "goto", 2011,				      "grab", 2032,				      "grail", 1070,				      "grate", 1003,				      "green", 5032,				      "grey", 5032,				      "gripe", 2048,				      "grotto", 91,				      "guano", 1104,				      "gully", 13,				      "h20", 1081,				      "hall", 38,				      "headlamp", 1002,				      "health", 2051,				      "heave", 2017,				      "heels", 1067,				      "help", 3051,				      "hike", 2011,				      "hill", 2,				      "hit", 2034,				      "hive", 1097,				      "hocus", 3050,				      "hole", 52,				      "holy", 5021,				      "honey", 1096,				      "honeycomb", 1096,				      "horn", 1052,				      "hound", 1098,				      "house", 12,				      "hurl", 2017,				      "i", 2020,				      "ice", 88,				      "ignite", 2023,				      "in", 19,				      "in", 4001,				      "insert", 2045,				      "inside", 19,				      "inside", 4001,				      "into", 4001,				      "inventory", 2020,				      "inward", 19,				      "iron", 5011,				      "issue", 1016,				      "jar", 1020,				      "jerk", 2032,				      "jewelry", 1053,				      "jewels", 1053,				      "jump", 39,				      "keep", 2001,				      "keg", 1071,				      "key", 1090,				      "keys", 1102,				      "kick", 2034,				      "kill", 2012,				      "knapsack", 1108,				      "knife", 1018,				      "knives", 1018,				      "knoll", 81,				      "l", 2052,				      "lamp", 1002,				      "lantern", 1002,				      "lead", 5023,				      "leaden", 5023,				      "leap", 39,				      "leather", 5024,				      "leave", 11,				      "leave", 2037,				      "ledge", 83,				      "left", 36,				      "light", 1002,				      "little", 5012,				      "lock", 2049,				      "look", 2052,				      "lost", 3068,				      "low", 24,				      "lyre", 1068,				      "machine", 1038,				      "magazine", 1016,				      "main", 76,				      "map", 2057,				      "message", 1036,				      "metal", 5035,				      "ming", 5016,				      "mirror", 1023,				      "mist", 3069,				      "moss", 1040,				      "mumble", 2003,				      "mushroom", 1106,				      "mushrooms", 1106,				      "n", 45,				      "ne", 47,				      "nest", 1056,				      "north", 45,				      "northeast", 47,				      "northwest", 50,				      "nothing", 2005,				      "nowhere", 21,				      "nugget", 1050,				      "null", 21,				      "nw", 50,				      "oak", 5022,				      "oaken", 5022,				      "off", 4006,				      "office", 76,				      "oil", 1083,	/* in bottle */				      "on", 4002,				      "onto", 4002,				      "onward", 7,				      "open", 2004,				      "opensesame", 3050,				      "oriental", 72,				      "out", 11,				      "outdoors", 32,				      "outside", 11,				      "over", 41,				      "oyster", 1015,				      "pantry", 57,				      "passage", 23,				      "pause", 2030,				      "pearl", 1061,				      "persian", 5002,				      "peruse", 2027,				      "peyote", 1106,				      "phone", 1094,				      "phonebooth", 1094,				      "phuce", 82,				      "pick", 2041,				      "pillow", 1010,				      "pirate", 1030,				      "pirloc", 2059,				      "piss", 3107,				      "piss!", 3107,				      "pit", 31,				      "placate", 2010,				      "plant", 1024,				      "platinum", 5017,				      "play", 2040,				      "plover", 71,				      "plugh", 65,				      "pocus", 3050,				      "pole", 1009,				      "pool", 80,				      "poster", 1113,				      "pottery", 1058,				      "pound", 2034,				      "pour", 2013,				      "pray", 92,				      "prayer", 92,				      "proceed", 2011,				      "pull", 2032,				      "punch", 2034,				      "put", 2042,				      "pyramid", 1060,				      "q", 2018,				      "quartz", 5036,				      "quit", 2018,				      "radium", 1119,				      "rare", 5018,				      "ration", 1019,				      "read", 2027,				      "refill", 2022,				      "release", 2002,				      "remove", 2046,				      "reply", 2035,				      "report", 2048,				      "reservoir", 75,				      "restore", 2031,				      "retreat", 8,				      "return", 8,				      "right", 37,				      "ring", 1072,				      "road", 2,				      "rock", 1119,				      "rock", 15,				      "rocks", 1092,				      "rocks", 1115,				      "rod", 1005,				      "room", 59,				      "rowboat", 1048,				      "rub", 2016,				      "ruby", 5020,				      "rug", 1062,				      "run", 2011,				      "rusty", 5028,				      "s", 46,				      "sack", 1108,				      "safe", 1112,				      "saint-michel", 93,				      "sandwich", 1019,				      "sapphire", 1069,				      "save", 2030,				      "say", 2003,				      "score", 2024,				      "se", 48,				      "secret", 66,				      "sesame", 3050,				      "shadowy", 5027,				      "shake", 2009,				      "shards", 1058,				      "shatter", 2028,				      "shazam", 3050,				      "shelf", 83,				      "shell", 74,				      "shield", 1118,				      "ship", 1048,				      "shit", 3106,				      "shit!", 3106,				      "shoes", 1067,				      "shut", 2006,				      "silk", 5013,				      "silken", 5013,				      "silver", 5014,				      "sing", 2003,				      "slab", 61,				      "slabroom", 61,				      "slay", 2012,				      "slide", 79,				      "slippers", 1067,				      "slit", 60,				      "slugs", 1095,				      "small", 5012,				      "smash", 2028,				      "snake", 1011,				      "south", 46,				      "southeast", 48,				      "southwest", 49,				      "spelunker", 1016,				      "sphere", 1120,				      "spices", 1063,				      "stair", 10,				      "stairs", 10,				      "stalagmite", 1026,				      "star", 5026,				      "statue", 1074,				      "steal", 2001,				      "steel", 5025,				      "steps", 1007,				      "steps", 34,				      "stick", 1049,				      "sticks", 1049,				      "stone", 1119,				      "stop", 3139,				      "stream", 14,				      "strike", 2034,				      "strum", 2040,				      "suggest", 2048,				      "surface", 20,				      "suspend", 2030,				      "sw", 49,				      "sweep", 2054,				      "swim", 3147,				      "swing", 2009,				      "sword", 1065,				      "tablet", 1013,				      "take", 2001,				      "tame", 2010,				      "tasty", 5030,				      "telephone", 1094,				      "terse", 2055,				      "then", 6002,				      "throw", 2017,				      "thunder", 84,				      "tiny", 5012,				      "to", 4004,				      "tome", 1110,				      "toss", 2017,				      "tote", 2001,				      "travel", 2011,				      "treasure", 5015,				      "tree", 1074,				      "tree", 3064,				      "trees", 3064,				      "trident", 1057,				      "troll", 1033,				      "tube", 1118,				      "tunnel", 23,				      "turn", 2043,				      "u", 29,				      "unbrief", 2026,				      "unlock", 2050,				      "unterse", 2055,				      "up", 29,				      "up", 4007,				      "upon", 4002,				      "upstream", 4,				      "upward", 29,				      "used", 5009,				      "utter", 2003,				      "valley", 9,				      "vase", 1058,				      "velvet", 5007,				      "vending", 5008,				      "view", 28,				      "volcano", 1037,				      "volume", 1110,				      "w", 44,				      "wake", 2029,				      "waken", 2029,				      "walk", 2011,				      "wall", 53,				      "wall", 1088,	/* in blue grotto */				      "wand", 1005,				      "water", 1081,	/* in bottle */				      "wave", 2009,				      "wear", 2033,				      "west", 44,				      "whack", 2034,				      "where", 2019,				      "whirl", 80,				      "whirlpool", 80,				      "whisk", 1114,				      "whiskbroom", 1114,				      "wicker", 5005,				      "wine", 1085,	/* in bottle */				      "with", 4003,				      "wiz", 2056,				      "wolf", 1098,				      "wooden", 5003,				      "worn", 5009,				      "worn-out", 5009,				      "wornout", 5009,				      "wumpus", 1099,				      "xyzzy", 62,				      "y2", 55,				      "yank", 2032};#define MAXWC	(sizeof(wc) / sizeof(struct wac))_PROTOTYPE(int binary, (char *));int vocab(word, type)char *word;int type;{    int v1, v2, temp;    if ((v1 = binary(word)) >= 0) {	if (v1 > 0 && strcmp(word, wc[v1 - 1].aword) == 0)	    v2 = v1 - 1;	else if (v1 < (MAXWC - 1) && strcmp(word, wc[v1 + 1].aword) == 0)	    v2 = v1 + 1;	else	    v2 = v1;	if (wc[v1].acode > wc[v2].acode) {	    temp = v1;	    v1 = v2;	    v2 = temp;	}	if (type <= CLASS(wc[v1].acode))	    return (wc[v1].acode);	else if (type <= CLASS(wc[v2].acode))	    return (wc[v2].acode);	else	    return (-1);    } else	return (-1);}int binary(w)char *w;{    int lo, mid, hi, check;    lo = 0;    hi = MAXWC - 1;    do {	mid = (lo + hi) / 2;	check = strcmp(w, wc[mid].aword);	if (check == 0)	    return (mid);	else if (check < 0)	    hi = mid - 1;	else	    lo = mid + 1;    } while (lo <= hi);    return (-1);}

⌨️ 快捷键说明

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