--- /dev/null
+/* CCL - private header file
+ * Europagate, 1995
+ *
+ * $Log: cclp.h,v $
+ * Revision 1.1 1995/02/13 12:35:20 adam
+ * First version of CCL. Qualifiers aren't handled yet.
+ *
+ */
+
+#include "ccl.h"
+
+#define CCL_TOK_EOL 0
+#define CCL_TOK_TERM 1
+#define CCL_TOK_REL 2
+#define CCL_TOK_EQ 3
+#define CCL_TOK_PROX 4
+#define CCL_TOK_LP 5
+#define CCL_TOK_RP 6
+#define CCL_TOK_COMMA 7
+#define CCL_TOK_AND 8
+#define CCL_TOK_OR 7
+#define CCL_TOK_NOT 9
+#define CCL_TOK_MINUS 10
+#define CCL_TOK_SET 11
+
+struct ccl_token {
+ char kind;
+ char len;
+ const char *name;
+ struct ccl_token *next;
+ struct ccl_token *prev;
+};
+
+struct ccl_rpn_attr {
+ struct ccl_rpn_attr *next;
+ int name;
+ int value;
+};
+
+struct ccl_rpn_node {
+ enum rpn_node_kind { AND, OR, NOT, TERM, SET, PROX } kind;
+ union {
+ struct ccl_rpn_node *p[2];
+ struct {
+ char *term;
+ struct ccl_rpn_attr *attr_list;
+ } t;
+ char *setname;
+ } u;
+};
+
+struct ccl_token *ccl_tokenize (const char *command);
+void ccl_rpn_delete (struct ccl_rpn_node *rpn);