2006-12-21 03:57:49 +00:00
|
|
|
#include "xmlrpc-c/abyss.h"
|
|
|
|
|
2008-05-23 20:56:24 +00:00
|
|
|
#include "bool.h"
|
|
|
|
|
2006-12-21 03:57:49 +00:00
|
|
|
#include "token.h"
|
|
|
|
|
|
|
|
void
|
2008-05-23 20:56:24 +00:00
|
|
|
NextToken(const char ** const pP) {
|
2006-12-21 03:57:49 +00:00
|
|
|
|
2008-05-23 20:56:24 +00:00
|
|
|
bool gotToken;
|
2006-12-21 03:57:49 +00:00
|
|
|
|
|
|
|
gotToken = FALSE;
|
|
|
|
|
|
|
|
while (!gotToken) {
|
2008-05-23 20:56:24 +00:00
|
|
|
switch (**pP) {
|
2006-12-21 03:57:49 +00:00
|
|
|
case '\t':
|
|
|
|
case ' ':
|
2008-05-23 20:56:24 +00:00
|
|
|
++(*pP);
|
2006-12-21 03:57:49 +00:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
gotToken = TRUE;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
char *
|
2008-05-23 20:56:24 +00:00
|
|
|
GetToken(char ** const pP) {
|
2006-12-21 03:57:49 +00:00
|
|
|
|
|
|
|
char * p0;
|
|
|
|
|
2008-05-23 20:56:24 +00:00
|
|
|
p0 = *pP;
|
2006-12-21 03:57:49 +00:00
|
|
|
|
|
|
|
while (1) {
|
2008-05-23 20:56:24 +00:00
|
|
|
switch (**pP) {
|
2006-12-21 03:57:49 +00:00
|
|
|
case '\t':
|
|
|
|
case ' ':
|
|
|
|
case CR:
|
|
|
|
case LF:
|
|
|
|
case '\0':
|
2008-05-23 20:56:24 +00:00
|
|
|
if (p0 == *pP)
|
2006-12-21 03:57:49 +00:00
|
|
|
return NULL;
|
|
|
|
|
2008-05-23 20:56:24 +00:00
|
|
|
if (**pP) {
|
|
|
|
**pP = '\0';
|
|
|
|
++(*pP);
|
2006-12-21 03:57:49 +00:00
|
|
|
};
|
|
|
|
return p0;
|
|
|
|
|
|
|
|
default:
|
2008-05-23 20:56:24 +00:00
|
|
|
++(*pP);
|
2006-12-21 03:57:49 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
2008-05-23 20:56:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
GetTokenConst(char ** const pP,
|
|
|
|
const char ** const tokenP) {
|
|
|
|
|
|
|
|
*tokenP = GetToken(pP);
|
|
|
|
}
|