/*
* xr.c - a cross-reference generator
*/
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct listnode listnode;
struct listnode
{
unsigned number;
listnode *next;
};
typedef struct treenode treenode;
struct treenode
{
char *word;
listnode *lines;
treenode *left, *right;
};
treenode *addtree(treenode *t, char *w, unsigned n);
void printtree(treenode *t);
int getword(char *word, size_t lim);
#define MAXWORD 100
int main(void)
{
treenode *root = NULL;
char word[MAXWORD];
unsigned lineno = 1;
while (getword(word, MAXWORD) != EOF)
if (isalpha(word[0]))
root = addtree(root, word, lineno);
else if (word[0] == '\n')
++lineno;
printtree(root);
return 0;
}