X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fccl.h;h=08d654227cfc4eeeb6272216cdfe1dc62e6431ca;hp=2c994213b9cd3bf54342b47de63051cae54ff7fa;hb=33a6eab614ca84eef817f675843e6de820d13708;hpb=d9ee01635f03f9095a66f71b73580560d48798e8 diff --git a/include/yaz/ccl.h b/include/yaz/ccl.h index 2c99421..08d6542 100644 --- a/include/yaz/ccl.h +++ b/include/yaz/ccl.h @@ -46,7 +46,24 @@ * 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 @@ -106,6 +123,8 @@ #ifndef CCL_H #define CCL_H +#include + #ifdef __cplusplus extern "C" { #endif @@ -190,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) @@ -208,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 { @@ -237,7 +257,7 @@ struct ccl_parser { /* current bibset */ CCL_bibset bibset; - + char *ccl_token_and; char *ccl_token_or; char *ccl_token_not; @@ -267,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); @@ -308,6 +339,11 @@ CCL_parser ccl_parser_create (void); /* Destroy CCL parser */ void ccl_parser_destroy (CCL_parser p); + +#ifndef ccl_assert +#define ccl_assert(x) ; +#endif + #ifdef __cplusplus } #endif