version 1.7, 2003/07/02 21:04:09 |
version 1.8, 2004/12/30 01:52:48 |
|
|
*bp = 0; |
*bp = 0; |
strtod(buf, &rem); /* parse the number */ |
strtod(buf, &rem); /* parse the number */ |
unputstr(rem); /* put rest back for later */ |
unputstr(rem); /* put rest back for later */ |
|
/* printf("unputstr [%s], buf [%s]\n", rem, buf); */ |
if (rem == buf) { /* it wasn't a valid number at all */ |
if (rem == buf) { /* it wasn't a valid number at all */ |
buf[1] = 0; /* so return one character as token */ |
buf[1] = 0; /* so return one character as token */ |
retc = buf[0]; /* character is its own type */ |
retc = buf[0]; /* character is its own type */ |
|
|
reg = 0; |
reg = 0; |
return regexpr(); |
return regexpr(); |
} |
} |
|
/* printf("top\n"); */ |
for (;;) { |
for (;;) { |
c = gettok(&buf, &bufsize); |
c = gettok(&buf, &bufsize); |
|
/* printf("gettok [%s]\n", buf); */ |
if (c == 0) |
if (c == 0) |
return 0; |
return 0; |
if (isalpha(c) || c == '_') |
if (isalpha(c) || c == '_') |
|
|
} |
} |
} |
} |
*bp = 0; |
*bp = 0; |
|
if (c == 0) |
|
SYNTAX("non-terminated regular expression %.10s...", buf); |
yylval.s = tostring(buf); |
yylval.s = tostring(buf); |
unput('/'); |
unput('/'); |
RET(REGEXPR); |
RET(REGEXPR); |
|
|
extern char *lexprog; |
extern char *lexprog; |
|
|
if (yysptr > yysbuf) |
if (yysptr > yysbuf) |
c = *--yysptr; |
c = (uschar)*--yysptr; |
else if (lexprog != NULL) { /* awk '...' */ |
else if (lexprog != NULL) { /* awk '...' */ |
if ((c = *lexprog) != 0) |
if ((c = (uschar)*lexprog) != 0) |
lexprog++; |
lexprog++; |
} else /* awk -f ... */ |
} else /* awk -f ... */ |
c = pgetc(); |
c = pgetc(); |