home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 March
/
VPR9703A.ISO
/
VPR_DATA
/
DOGA
/
SOURCES
/
REND.LZH
/
PIC1600
/
TOKEN.C
< prev
next >
Wrap
C/C++ Source or Header
|
1996-04-22
|
901b
|
54 lines
#include <stdio.h>
#include <string.h>
#include "piclib.h"
static char IndependentSet[] = "{}()";
#ifdef DEBUG
#define TRACER printf("%s\n", buffer);
#endif
#ifndef TRACER
#define TRACER
#endif
char *GetToken(char *buf, FILE *fp)
{
char *buffer = buf;
int c;
while (c = fgetc(fp), c<= ' ' ) {
if (c == EOF) {
return NULL;
} else if (c == EOFCODE) {
*buf++ = c;
*buf = '\0';
TRACER
return buffer;
}
}
*buf++ = c;
if (strchr(IndependentSet, c) ) {
*buf = '\0';
return buffer ;
}
while (c = fgetc(fp), c != EOF) {
if (c == EOFCODE) {
ungetc(c, fp);
*buf = '\0';
TRACER
return buffer ;
} else if (c <= ' ') {
*buf = '\0';
TRACER
return buffer ;
} else if (strchr(IndependentSet, c) ) {
*buf = '\0';
ungetc(c, fp);
TRACER
return buffer;
} else {
*buf++ = c;
}
}
return NULL;
}