/**
* 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 0, this is considered to be an epsilon transition.
+ * If label is NULL, this is considered to be an epsilon transition.
*/
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.
*/
* 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;
};