+/** \brief CCL parser */
+typedef struct ccl_parser *CCL_parser;
+
+/**
+ \brief parse CCL find string using CCL profile return RPN tree
+
+ Parses a CCL Find command in a simple C string. Returns CCL parse
+ tree node describing RPN if parsing is successful. If parsing is
+ unsuccesful, NULL is returned and error and pos is set accordingly.
+*/
+YAZ_EXPORT
+struct ccl_rpn_node *ccl_find_str(CCL_bibset bibset,
+ const char *str, int *error, int *pos);
+
+
+/**
+ \brief parse CCL find string with parser and return RPN tree
+
+ Parses a CCL Find command in a simple C string. Returns CCL parse
+ tree node describing RPN if parsing is successful. If parsing is
+ unsuccesful, NULL is returned and error and pos is set accordingly.
+*/
+YAZ_EXPORT
+struct ccl_rpn_node *ccl_parser_find_str(CCL_parser cclp, const char *str);
+
+/** Set names for AND operator in parser */
+YAZ_EXPORT
+void ccl_parser_set_op_and(CCL_parser p, const char *op);
+
+/** Set names for OR operator in parser */
+YAZ_EXPORT
+void ccl_parser_set_op_or(CCL_parser p, const char *op);
+
+/** Set names for ANDNOT operator in parser */
+YAZ_EXPORT
+void ccl_parser_set_op_not(CCL_parser p, const char *op);
+
+/** Set names for ResultSet in parser */
+YAZ_EXPORT
+void ccl_parser_set_op_set(CCL_parser p, const char *op);
+
+/** Set case sensitivity for parser */
+YAZ_EXPORT
+void ccl_parser_set_case(CCL_parser p, int case_sensitivity_flag);
+
+/** Return english-readable error message for CCL parser error number */
+YAZ_EXPORT
+const char *ccl_err_msg(int ccl_errno);
+
+/** Delete RPN tree returned by ccl_find */
+YAZ_EXPORT
+void ccl_rpn_delete(struct ccl_rpn_node *rpn);
+
+/** Dump RPN tree in readable format to fd_out */
+YAZ_EXPORT
+void ccl_pr_tree(struct ccl_rpn_node *rpn, FILE *fd_out);
+
+/** Add qualifier and supply attribute pairs for it */
+YAZ_EXPORT
+void ccl_qual_add(CCL_bibset b, const char *name, int no, int *attr);
+
+/** Add qualifier and supply attributes pairs+attribute set for it */
+YAZ_EXPORT
+void ccl_qual_add_set(CCL_bibset b, const char *name, int no,
+ int *type, int *value, char **svalue, char **attsets);
+
+/** Add special qualifier */
+YAZ_EXPORT
+void ccl_qual_add_special(CCL_bibset bibset, const char *n, const char *v);
+
+/** Add combo qualifier */
+YAZ_EXPORT
+void ccl_qual_add_combi(CCL_bibset b, const char *n, const char *names);
+
+/** Read CCL qualifier list spec from file inf */
+YAZ_EXPORT
+void ccl_qual_file(CCL_bibset bibset, FILE *inf);
+
+/** Read CCL qualifier list spec from file inf */
+YAZ_EXPORT
+int ccl_qual_fname(CCL_bibset bibset, const char *fname);
+
+/** Add CCL qualifier as buf spec(multiple lines). */
+YAZ_EXPORT
+void ccl_qual_buf(CCL_bibset bibset, const char *buf);
+
+/** Add CCL qualifier as line spec. Note: line is _modified_ */
+YAZ_EXPORT
+void ccl_qual_line(CCL_bibset bibset, char *line);
+
+/* Add CCL qualifier by using qual_name + value pair */
+YAZ_EXPORT
+void ccl_qual_fitem(CCL_bibset bibset, const char *value,
+ const char *qual_name);
+
+/** Make CCL qualifier set */
+YAZ_EXPORT
+CCL_bibset ccl_qual_mk(void);
+
+/** Delete CCL qualifier set */
+YAZ_EXPORT
+void ccl_qual_rm(CCL_bibset *b);
+
+/** Char-to-upper function */
+extern int(*ccl_toupper)(int c);
+
+/** CCL version of ccl_stricmp */
+YAZ_EXPORT
+int ccl_stricmp(const char *s1, const char *s2);
+
+/** CCL version of ccl_memicmp */
+YAZ_EXPORT
+int ccl_memicmp(const char *s1, const char *s2, size_t n);
+
+/** Search for qualifier 'name' in set 'b'. */
+YAZ_EXPORT
+struct ccl_rpn_attr *ccl_qual_search(CCL_parser cclp, const char *name,
+ size_t len, int seq);
+
+/** Create CCL parser */
+YAZ_EXPORT
+CCL_parser ccl_parser_create(CCL_bibset bibset);
+
+/** Destroy CCL parser */
+YAZ_EXPORT
+void ccl_parser_destroy(CCL_parser p);
+
+/** Search for special qualifier */
+YAZ_EXPORT
+const char *ccl_qual_search_special(CCL_bibset b, const char *name);
+/** Pretty-print CCL RPN node tree to WRBUF */
+YAZ_EXPORT
+void ccl_pquery(WRBUF w, struct ccl_rpn_node *p);
+
+YAZ_EXPORT
+int ccl_parser_get_error(CCL_parser cclp, int *pos);
+
+#ifndef ccl_assert
+#define ccl_assert(x) ;
+#endif
+
+
+/** \brief common attributes
+
+ use (1)