pdp11v/usr/src/cmd/cflow/nmf.c
/* @(#)nmf.c 1.3 */
#include "stdio.h"
#ifdef vax
#define SYMSTART 11
#define SYMCLASS 9
#endif
#ifdef u3b
#define SYMSTART 11
#define SYMCLASS 9
#endif
#ifdef pdp11
#define SYMSTART 9
#define SYMCLASS 7
#endif
main(argc, argv)
char *argv[];
{
char name[15], buf[64];
char *fname = NULL;
char *p;
strcpy(name, argc > 1? argv[1] : "");
if (argc > 2)
fname = argv[2];
while (gets(buf)) {
p = &buf[SYMSTART];
if (*p == '_')
++p;
switch (buf[SYMCLASS]) {
case 'U':
printf("%s : %s\n", name, p);
continue;
case 'T':
printf("%s = text", p);
strcpy(name, p);
break;
case 'D':
printf("%s = data", p);
if (strcmp(name, "") == 0)
strcpy(name, p);
break;
case 'B':
printf("%s = bss", p);
break;
case 'A':
printf("%s = abs", p);
break;
default:
continue;
}
if (fname != NULL)
printf(", %s", fname);
printf("\n");
}
exit(0);
}