New windows NT/95 port using MSV5.0. To export DLL functions the
[yaz-moved-to-github.git] / include / ccl.h
index e40777d..b8ceeb1 100644 (file)
  * CCL - header file
  *
  * $Log: ccl.h,v $
- * Revision 1.4  1996-10-11 15:02:26  adam
+ * Revision 1.7  1997-09-01 08:49:47  adam
+ * New windows NT/95 port using MSV5.0. To export DLL functions the
+ * YAZ_EXPORT modifier was added. Defined in yconfig.h.
+ *
+ * Revision 1.6  1997/05/14 06:53:37  adam
+ * C++ support.
+ *
+ * Revision 1.5  1997/04/30 08:52:08  quinn
+ * Null
+ *
+ * Revision 1.4  1996/10/11  15:02:26  adam
  * CCL parser from Europagate Email gateway 1.0.
  *
  * Revision 1.10  1996/01/08  08:41:22  adam
 #ifndef CCL_H
 #define CCL_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* CCL error numbers */
 #define CCL_ERR_OK                0
 #define CCL_ERR_TERM_EXPECTED     1
@@ -107,14 +121,16 @@ struct ccl_rpn_attr {
     int value;
 };
 
+#define CCL_RPN_AND 1
+#define CCL_RPN_OR 2
+#define CCL_RPN_NOT 3
+#define CCL_RPN_TERM 4
+#define CCL_RPN_SET 5
+#define CCL_RPN_PROX 6
+
 /* RPN tree structure */
 struct ccl_rpn_node {
-    enum rpn_node_kind {
-        CCL_RPN_AND, CCL_RPN_OR, CCL_RPN_NOT,
-        CCL_RPN_TERM,
-        CCL_RPN_SET,
-        CCL_RPN_PROX
-    } kind;
+    int kind;
     union {
        struct ccl_rpn_node *p[2];
        struct {
@@ -187,7 +203,7 @@ typedef struct ccl_qualifiers *CCL_bibset;
 /* CCL token */
 struct ccl_token {
     char kind;
-    char len;
+    size_t len;
     const char *name;
     struct ccl_token *next;
     struct ccl_token *prev;
@@ -259,6 +275,12 @@ int ccl_stricmp (const char *s1, const char *s2);
 int ccl_memicmp (const char *s1, const char *s2, size_t n);
 
 /* Search for qualifier 'name' in set 'b'. */
-struct ccl_rpn_attr *ccl_qual_search (CCL_bibset b, const char *name, int len);
+struct ccl_rpn_attr *ccl_qual_search (CCL_bibset b, const char *name,
+                                      size_t len);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif