2 * Copyright (C) 1994, Index Data I/S
4 * Sebastian Hammer, Adam Dickmeiss
7 * Revision 1.3 1995-01-24 16:01:30 adam
8 * Added -ansi to CFLAGS.
9 * New functions and change of data structures.
11 * Revision 1.2 1994/09/26 16:31:23 adam
12 * Minor changes. xmalloc declares xcalloc now.
14 * Revision 1.1 1994/09/26 10:17:43 adam
15 * Dfa-module header files.
26 unsigned char ch[2]; /* transition on ch[0] <= c <= ch[1] to */
27 unsigned short to; /* this state */
31 struct DFA_trans *next; /* next DFA transition block */
32 struct DFA_tran *tran_block; /* pointer to transitions */
33 int ptr; /* index of next transition in tran_block */
34 int size; /* allocated size of tran_block */
38 struct DFA_state *next; /* next entry in free/unmarked/marked list */
39 struct DFA_state *link; /* link to next entry in hash chain */
40 struct DFA_tran *trans; /* transition list */
41 Set set; /* set of positions (important nfa states) */
42 short no; /* no of this state */
43 short tran_no; /* no of transitions to other states */
44 short rule_no; /* if non-zero, this holds accept rule no */
49 struct DFA_state **states;
50 struct DFA_states *state_info;
51 struct DFA_parse *parse_info;
54 struct DFA *dfa_init (void);
55 int dfa_parse (struct DFA *, char **);
56 void dfa_mkstate (struct DFA *);
57 void dfa_delete (struct DFA **);
59 extern int debug_dfa_trav;
60 extern int debug_dfa_tran;
61 extern int debug_dfa_followpos;
62 extern int dfa_verbose;