-/* $Id: lexer.c,v 1.2 2003-04-11 15:53:39 adam Exp $
+/* $Id: lexer.c,v 1.5 2003-09-04 18:13:39 adam Exp $
Copyright (C) 2002-2003
Index Data Aps
static void putb(YYSTYPE *lval, CQL_parser cp, int c)
{
- if (lval->len >= lval->size)
+ if (lval->len+1 >= lval->size)
{
char *nb = nmem_malloc(cp->nmem, (lval->size = lval->len * 2 + 20));
memcpy (nb, lval->buf, lval->len);
{
CQL_parser cp = (CQL_parser) vp;
int c;
+ lval->cql = 0;
+ lval->rel = 0;
+ lval->len = 0;
+ lval->size = 10;
+ lval->buf = nmem_malloc(cp->nmem, lval->size);
+ lval->buf[0] = '\0';
do
{
c = cp->getbyte(cp->client_data);
if (c == '\n')
return 0;
} while (isspace(c));
- lval->rel = 0;
- lval->len = 0;
- lval->size = 10;
- lval->buf = nmem_malloc(cp->nmem, lval->size);
if (strchr("()=></", c))
{
int c1;
return OR;
if (!strcmp(lval->buf, "not"))
return NOT;
- if (!strcmp(lval->buf, "exact"))
- return EXACT;
- if (!strcmp(lval->buf, "all"))
- return ALL;
if (!strncmp(lval->buf, "prox", 4))
return PROX;
- if (!strcmp(lval->buf, "any"))
- return ANY;
- if (!strcmp(lval->buf, "scr"))
- return SCR;
}
return TERM;
}