Implemented and-list and or-list for CCL module.
[yaz-moved-to-github.git] / include / yaz / ccl.h
index 5c8909f..08d6542 100644 (file)
  * CCL - header file
  *
  * $Log: ccl.h,v $
- * Revision 1.2  2000-01-31 13:15:21  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.
 #ifndef CCL_H
 #define CCL_H
 
+#include <stdio.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -195,6 +209,8 @@ typedef struct ccl_qualifiers *CCL_bibset;
 #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)
@@ -213,8 +229,7 @@ typedef struct ccl_qualifiers *CCL_bibset;
 #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 {
@@ -242,7 +257,7 @@ struct ccl_parser {
     
 /* current bibset */
     CCL_bibset bibset;
-    
+
     char *ccl_token_and;
     char *ccl_token_or;
     char *ccl_token_not;
@@ -272,6 +287,17 @@ struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset,
 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);
 
@@ -313,6 +339,7 @@ CCL_parser ccl_parser_create (void);
 /* Destroy CCL parser */
 void ccl_parser_destroy (CCL_parser p);
 
+
 #ifndef ccl_assert
 #define ccl_assert(x) ;
 #endif