String attributes for CCL parser
[yaz-moved-to-github.git] / ccl / tstccl.c
1 /*
2  * Copyright (c) 2002-2003, Index Data
3  * See the file LICENSE for details.
4  *
5  * $Id: tstccl.c,v 1.1 2003-06-23 10:22:21 adam Exp $
6  */
7
8 /* CCL test */
9
10 #include <yaz/ccl.h>
11
12 static char *query_str[] = {
13     "x1",
14     "x1 and x2",
15     "ti=x3",
16     "dc.title=x4",
17     0
18 };
19
20 void tst1(void)
21 {
22     CCL_parser parser = ccl_parser_create ();
23     CCL_bibset bibset = ccl_qual_mk();
24     int i;
25
26     ccl_qual_fitem(bibset, "u=4    s=pw t=l,r", "ti");
27     ccl_qual_fitem(bibset, "1=1016 s=al,pw",    "term");
28     ccl_qual_fitem(bibset, "1=/my/title",         "dc.title");
29
30     parser->bibset = bibset;
31
32     for (i = 0; query_str[i]; i++)
33     {
34         struct ccl_token *token_list =
35             ccl_parser_tokenize(parser, query_str[i]);
36         struct ccl_rpn_node *rpn = ccl_parser_find(parser, token_list);
37         ccl_token_del (token_list);
38         if (rpn)
39         {
40             ccl_rpn_delete(rpn);
41         }
42         else
43         {
44             printf ("failed %s\n", query_str[i]);
45             exit(1+i);
46         }
47     }   
48     ccl_parser_destroy (parser);
49     ccl_qual_rm(&bibset);
50 }
51
52 int main(int argc, char **argv)
53 {
54     tst1();
55     exit(0);
56 }