* CCL - header file
*
* $Log: ccl.h,v $
- * Revision 1.1 1999-11-30 13:47:11 adam
+ * Revision 1.6 2000-10-17 19:50:28 adam
+ * Implemented and-list and or-list for CCL module.
+ *
+ * Revision 1.5 2000/05/02 17:19:58 adam
+ * Removed MINUS token.
+ *
+ * Revision 1.4 2000/03/14 09:06:11 adam
+ * Added POSIX threads support for frontend server.
+ *
+ * Revision 1.3 2000/02/08 10:39:53 adam
+ * Added a few functions to set name of operands, etc.
+ *
+ * Revision 1.2 2000/01/31 13:15:21 adam
+ * Removed uses of assert(3). Cleanup of ODR. CCL parser update so
+ * that some characters are not surrounded by spaces in resulting term.
+ * ILL-code updates.
+ *
+ * Revision 1.1 1999/11/30 13:47:11 adam
* Improved installation. Moved header files to include/yaz.
*
* Revision 1.9 1998/02/11 11:53:33 adam
#ifndef CCL_H
#define CCL_H
+#include <stdio.h>
+
#ifdef __cplusplus
extern "C" {
#endif
#define CCL_BIB1_COM 6
#define CCL_BIB1_STR_WP (-1)
+#define CCL_BIB1_STR_AND_LIST (-2)
+#define CCL_BIB1_STR_OR_LIST (-3)
#define CCL_BIB1_REL_ORDER (-1)
#define CCL_BIB1_TRU_CAN_LEFT (-1)
#define CCL_TOK_AND 8
#define CCL_TOK_OR 9
#define CCL_TOK_NOT 10
-#define CCL_TOK_MINUS 11
-#define CCL_TOK_SET 12
+#define CCL_TOK_SET 11
/* CCL token */
struct ccl_token {
/* current bibset */
CCL_bibset bibset;
-
+
char *ccl_token_and;
char *ccl_token_or;
char *ccl_token_not;
struct ccl_rpn_node *ccl_find (CCL_bibset abibset, struct ccl_token *list,
int *error, const char **pos);
+/* Parse CCL Find command */
+struct ccl_rpn_node *ccl_parser_find (CCL_parser cclp, struct ccl_token *list);
+
+/* Set various OPs */
+void ccl_parser_set_op_and (CCL_parser p, const char *op);
+void ccl_parser_set_op_or (CCL_parser p, const char *op);
+void ccl_parser_set_op_not (CCL_parser p, const char *op);
+void ccl_parser_set_op_set (CCL_parser p, const char *op);
+
+void ccl_parser_set_case (CCL_parser p, int case_sensitivity_flag);
+
/* Return english-readable error message */
const char *ccl_err_msg (int ccl_errno);
/* Destroy CCL parser */
void ccl_parser_destroy (CCL_parser p);
+
+#ifndef ccl_assert
+#define ccl_assert(x) ;
+#endif
+
#ifdef __cplusplus
}
#endif