2 * Copyright (C) 1995-2005, Index Data ApS
3 * See the file LICENSE for details.
5 * $Id: cclp.h,v 1.5 2007-05-01 12:22:11 adam Exp $
10 * \brief CCL header with private definitions
15 #define CCL_TOK_TERM 1
18 #define CCL_TOK_PROX 4
21 #define CCL_TOK_COMMA 7
24 #define CCL_TOK_NOT 10
25 #define CCL_TOK_SET 11
27 typedef struct ccl_qualifier *ccl_qualifier_t;
32 size_t len; /* length of name below */
33 const char *name; /* string / name of token */
34 struct ccl_token *next;
35 struct ccl_token *prev;
36 const char *ws_prefix_buf; /* leading white space buf */
37 size_t ws_prefix_len; /* leading white space len */
40 /** CCL parser structure */
42 /** current lookahead token */
43 struct ccl_token *look_token;
45 /** holds error code if error occur */
47 /** start of CCL string buffer */
48 const char *start_pos;
49 /** if error occurs, this holds position (starting from 0). */
50 const char *error_pos;
55 /** names of and operator */
56 const char **ccl_token_and;
57 /** names of or operator */
58 const char **ccl_token_or;
59 /** names of not operator */
60 const char **ccl_token_not;
61 /** names of set operator */
62 const char **ccl_token_set;
63 /** 1=CCL parser is case sensitive, 0=case insensitive */
64 int ccl_case_sensitive;
68 * Splits CCL command string into individual tokens using
72 struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, const char *command);
78 void ccl_token_del (struct ccl_token *list);
81 * Add single token after a given onde.
84 struct ccl_token *ccl_token_add (struct ccl_token *at);
88 struct ccl_rpn_node *ccl_parser_find_token(CCL_parser cclp,
89 struct ccl_token *list);
93 ccl_qualifier_t ccl_qual_search(CCL_parser cclp, const char *name,
94 size_t name_len, int seq);
97 struct ccl_rpn_attr *ccl_qual_get_attr(ccl_qualifier_t q);
100 const char *ccl_qual_get_name(ccl_qualifier_t q);
105 * indent-tabs-mode: nil
107 * vim: shiftwidth=4 tabstop=8 expandtab