aboutsummaryrefslogtreecommitdiff
path: root/6.1.1/main.c
blob: 3d35bb08a89f9f5223bcc3bef474cfc463641607 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <ctype.h>
#include "word.h"
#include "key.h"

#define MAXWORD 100

struct key keytab[] = {
	"#define", 0,
	"#elif", 0,
	"#else", 0,
	"#endif", 0,
	"#error", 0,
	"#if", 0,
	"#ifdef", 0,
	"#ifndef", 0,
	"#include", 0,
	"#pragma", 0,
	"#undef", 0,
	"auto", 0,
	"break", 0,
	"case", 0,
	"char", 0,
	"const", 0,
	"continue", 0,
	"default", 0,
	"do", 0,
	"double", 0,
	"else", 0,
	"enum", 0,
	"extern", 0,
	"float", 0,
	"for", 0,
	"goto", 0,
	"if", 0,
	"int", 0,
	"long", 0,
	"register", 0,
	"return", 0,
	"short", 0,
	"signed", 0,
	"sizeof", 0,
	"static", 0,
	"struct", 0,
	"switch", 0,
	"typedef", 0,
	"union", 0,
	"unsigned", 0,
	"void", 0,
	"volatile", 0,
	"while", 0,
};

int main(void)
{
	char word[MAXWORD];
	struct key *p;

	while (getword(word, MAXWORD) != EOF)
		if (isalpha(word[0]) || word[0] == '#')
			if ((p = bsearch(word, keytab, NKEYS)) != NULL)
				p->count++;

	for (p = keytab; p < keytab + NKEYS; ++p)
		if(p->count > 0)
			printf("%4d %s\n", p->count, p->word);

	return 0;
}