/*
* CCL - header file
*
- * $Id: ccl.h,v 1.21 2005-03-15 16:32:52 adam Exp $
+ * $Id: ccl.h,v 1.22 2005-04-15 21:47:55 adam Exp $
*
* Old Europagate Log:
*
YAZ_EXPORT
struct ccl_token *ccl_tokenize (const char *command);
-/**
- * Splits CCL command into tokens. This function is obsolete. Use
- * ccl_parser_tokenize instead.
- */
-YAZ_EXPORT
-struct ccl_token *ccl_token_simple (const char *command);
-
/**
* Deletes token list
*/
/* CCL - lexical analysis
* Europagate, 1995
*
- * $Id: ccltoken.c,v 1.6 2005-03-15 16:32:52 adam Exp $
+ * $Id: ccltoken.c,v 1.7 2005-04-15 21:47:56 adam Exp $
*
* Old Europagate Log:
*
}
/*
- * ccl_token_simple: tokenize CCL raw tokens
- */
-struct ccl_token *ccl_token_simple (const char *command)
-{
- const char *cp = command;
- struct ccl_token *first = NULL;
- struct ccl_token *last = NULL;
-
- while (1)
- {
- while (*cp && strchr (" \t\r\n", *cp))
- {
- cp++;
- continue;
- }
- if (!first)
- {
- first = last = (struct ccl_token *)xmalloc (sizeof (*first));
- ccl_assert (first);
- last->prev = NULL;
- }
- else
- {
- last->next = (struct ccl_token *)xmalloc (sizeof(*first));
- ccl_assert (last->next);
- last->next->prev = last;
- last = last->next;
- }
- last->next = NULL;
- last->name = cp;
- last->len = 1;
- switch (*cp++)
- {
- case '\0':
- last->kind = CCL_TOK_EOL;
- return first;
- case '\"':
- last->kind = CCL_TOK_TERM;
- last->name = cp;
- last->len = 0;
- while (*cp && *cp != '\"')
- {
- cp++;
- ++ last->len;
- }
- if (*cp == '\"')
- cp++;
- break;
- default:
- while (*cp && !strchr (" \t\n\r", *cp))
- {
- cp++;
- ++ last->len;
- }
- last->kind = CCL_TOK_TERM;
- }
- }
- return first;
-}
-
-
-/*
* ccl_tokenize: tokenize CCL command string.
* return: CCL token list.
*/
{
const unsigned char *cp0 = cp;
while (*cp && strchr (" \t\r\n", *cp))
- {
cp++;
- continue;
- }
if (!first)
{
first = last = (struct ccl_token *)xmalloc (sizeof (*first));
n->kind = CCL_TOK_TERM;
n->name = 0;
n->len = 0;
+ n->ws_prefix_buf = 0;
+ n->ws_prefix_len = 0;
return n;
}
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: tstccl.c,v 1.7 2005-03-15 16:32:53 adam Exp $
+ * $Id: tstccl.c,v 1.8 2005-04-15 21:47:56 adam Exp $
*/
/* CCL test */
for (i = 0; query_str[i].query; i++)
{
- struct ccl_token *token_list =
- ccl_parser_tokenize(parser, query_str[i].query);
- struct ccl_rpn_node *rpn = ccl_parser_find(parser, token_list);
+ struct ccl_token *token_list;
+ struct ccl_rpn_node *rpn;
+
+ token_list = ccl_parser_tokenize(parser, query_str[i].query);
+ rpn = ccl_parser_find(parser, token_list);
ccl_token_del (token_list);
if (rpn)
{