C++ compilation.
[idzebra-moved-to-github.git] / dfa / dfap.h
index 2b7dbda..fd8bf93 100644 (file)
@@ -1,10 +1,30 @@
 /*
- * Copyright (C) 1994, Index Data I/S 
+ * Copyright (C) 1994-1999, Index Data
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: dfap.h,v $
- * Revision 1.3  1996-01-08 09:09:19  adam
+ * Revision 1.9  1999-05-26 07:49:12  adam
+ * C++ compilation.
+ *
+ * Revision 1.8  1999/02/02 14:50:06  adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.7  1997/09/29 09:05:17  adam
+ * Thread safe DFA module. We simply had to put a few static vars to
+ * the DFA_parse structure.
+ *
+ * Revision 1.6  1997/09/18 08:59:17  adam
+ * Extra generic handle for the character mapping routines.
+ *
+ * Revision 1.5  1997/09/05 15:29:58  adam
+ * Changed prototype for chr_map_input - added const.
+ * Added support for C++, headers uses extern "C" for public definitions.
+ *
+ * Revision 1.4  1996/06/04 10:20:03  adam
+ * Added support for character mapping.
+ *
+ * Revision 1.3  1996/01/08  09:09:19  adam
  * Function dfa_parse got 'const' string argument.
  * New functions to define char mappings made public.
  *
 
 #include <dfa.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct DFA_parse {
     struct Tnode *root;       /* root of regular syntax tree */
     int position;             /* no of positions so far */
@@ -35,6 +59,21 @@ struct DFA_parse {
     struct Tblock *end;       /* end block of Tnodes */
     int *charMap;
     int charMapSize;
+    void *cmap_data;
+
+    unsigned look_ch;
+    int lookahead;
+    BSet look_chars;
+    int err_code;
+    int inside_string;
+    const unsigned char *expr_ptr;
+
+    struct Tnode **posar;
+
+    SetType poset;
+    Set *followpos;
+
+    const char **(*cmap)(void *vp, const char **from, int len);
 };
 
 typedef struct DFA_stateb_ {
@@ -64,4 +103,7 @@ void        sort_DFA_states (struct DFA_states *dfas);
 void        add_DFA_tran    (struct DFA_states *, struct DFA_state *,
                              int, int, int);
 
+#ifdef __cplusplus
+}
+#endif
 #endif