- use constants for delays
[oweals/gnunet.git] / src / regex / regex_internal.h
index 479de7024cfef5cbc75597e81490eea8a31b0767..00badc54d81101d6649425265102dd58767354a3 100644 (file)
@@ -19,7 +19,7 @@
 */
 /**
  * @file src/regex/regex_internal.h
- * @brief common internal definitions for regex library
+ * @brief common internal definitions for regex library.
  * @author Maximilian Szengel
  */
 #ifndef REGEX_INTERNAL_H
@@ -43,8 +43,9 @@ extern "C"
 
 
 /**
- * Transition between two states. Each state can have 0-n transitions.  If label
- * is 0, this is considered to be an epsilon transition.
+ * Transition between two states. Transitions are stored at the states from
+ * which they origin ('from_state'). Each state can have 0-n transitions.
+ * If label is NULL, this is considered to be an epsilon transition.
  */
 struct GNUNET_REGEX_Transition
 {
@@ -80,6 +81,34 @@ struct GNUNET_REGEX_Transition
 };
 
 
+/**
+ * A state. Can be used in DFA and NFA automatons.
+ */
+struct GNUNET_REGEX_State;
+
+
+/**
+ * Set of states.
+ */
+struct GNUNET_REGEX_StateSet
+{
+  /**
+   * Array of states.
+   */
+  struct GNUNET_REGEX_State **states;
+
+  /**
+   * Number of entries in *use* in the 'states' array.
+   */
+  unsigned int off;
+
+  /**
+   * Length of the 'states' array.
+   */
+  unsigned int size;
+};
+
+
 /**
  * A state. Can be used in DFA and NFA automatons.
  */
@@ -96,15 +125,25 @@ struct GNUNET_REGEX_State
   struct GNUNET_REGEX_State *next;
 
   /**
-   * This is a multi DLL for StateSet_p.
+   * This is a multi DLL for StateSet_MDLL.
    */
   struct GNUNET_REGEX_State *prev_SS;
 
   /**
-   * This is a multi DLL for StateSet_p.
+   * This is a multi DLL for StateSet_MDLL.
    */
   struct GNUNET_REGEX_State *next_SS;
 
+  /**
+   * This is a multi DLL for StateSet_MDLL Stack.
+   */
+  struct GNUNET_REGEX_State *prev_ST;
+
+  /**
+   * This is a multi DLL for StateSet_MDLL Stack.
+   */
+  struct GNUNET_REGEX_State *next_ST;
+
   /**
    * Unique state id.
    */
@@ -199,7 +238,7 @@ struct GNUNET_REGEX_State
    * Set of states on which this state is based on. Used when creating a DFA out
    * of several NFA states.
    */
-  struct GNUNET_REGEX_StateSet *nfa_set;
+  struct GNUNET_REGEX_StateSet nfa_set;
 };