From 1c7864f6d4380797b07c7149111066b61f69f689 Mon Sep 17 00:00:00 2001 From: tma Date: Tue, 4 Oct 2005 15:18:22 +0000 Subject: * Moved lcc and q3asm into code/tools git-svn-id: svn://svn.icculus.org/quake3/trunk@134 edf5b092-35ff-0310-97b2-ce42778d08ea --- lcc/tst/wf1.c | 101 ---------------------------------------------------------- 1 file changed, 101 deletions(-) delete mode 100644 lcc/tst/wf1.c (limited to 'lcc/tst/wf1.c') diff --git a/lcc/tst/wf1.c b/lcc/tst/wf1.c deleted file mode 100644 index d0c6e32..0000000 --- a/lcc/tst/wf1.c +++ /dev/null @@ -1,101 +0,0 @@ -/* wf1 - print word frequencies; uses structures */ - -struct node { - int count; /* frequency count */ - struct node *left; /* left subtree */ - struct node *right; /* right subtree */ - char *word; /* word itself */ -} words[2000]; -int next; /* index of next free entry in words */ - -struct node *lookup(); - -main() { - struct node *root; - char word[20]; - - root = 0; - next = 0; - while (getword(word)) - lookup(word, &root)->count++; - tprint(root); - return 0; -} - -/* err - print error message s and die */ -err(s) char *s; { - printf("? %s\n", s); - exit(1); -} - -/* getword - get next input word into buf, return 0 on EOF */ -int getword(buf) char *buf; { - char *s; - int c; - - while ((c = getchar()) != -1 && isletter(c) == 0) - ; - for (s = buf; c = isletter(c); c = getchar()) - *s++ = c; - *s = 0; - if (s > buf) - return (1); - return (0); -} - -/* isletter - return folded version of c if it is a letter, 0 otherwise */ -int isletter(c) { - if (c >= 'A' && c <= 'Z') - c += 'a' - 'A'; - if (c >= 'a' && c <= 'z') - return (c); - return (0); -} - -/* lookup - lookup word in tree; install if necessary */ -struct node *lookup(word, p) char *word; struct node **p; { - int cond; - char *malloc(); - - if (*p) { - cond = strcmp(word, (*p)->word); - if (cond < 0) - return lookup(word, &(*p)->left); - else if (cond > 0) - return lookup(word, &(*p)->right); - else - return *p; - } - if (next >= 2000) - err("out of node storage"); - words[next].count = 0; - words[next].left = words[next].right = 0; - words[next].word = malloc(strlen(word) + 1); - if (words[next].word == 0) - err("out of word storage"); - strcpy(words[next].word, word); - return *p = &words[next++]; -} - -/* tprint - print tree */ -tprint(tree) struct node *tree; { - if (tree) { - tprint(tree->left); - printf("%d\t%s\n", tree->count, tree->word); - tprint(tree->right); - } -} - -/* strcmp - compare s1 and s2, return <0, 0, or >0 */ -int strcmp(s1, s2) char *s1, *s2; { - while (*s1 == *s2) { - if (*s1++ == 0) - return 0; - ++s2; - } - if (*s1 == 0) - return -1; - else if (*s2 == 0) - return 1; - return *s1 - *s2; -} -- cgit v1.2.3