fix possible crash on user deletion
[srvx.git] / rx / rxanal.h
1 /* classes: h_files */
2
3 #ifndef RXANALH
4 #define RXANALH
5 /*      Copyright (C) 1995, 1996 Tom Lord
6  * 
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU Library General Public License as published by
9  * the Free Software Foundation; either version 2, or (at your option)
10  * any later version.
11  * 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Library General Public License for more details.
16  * 
17  * You should have received a copy of the GNU Library General Public License
18  * along with this software; see the file COPYING.  If not, write to
19  * the Free Software Foundation, 59 Temple Place - Suite 330, 
20  * Boston, MA 02111-1307, USA. 
21  */
22
23 \f
24
25 #include "rxcset.h"
26 #include "rxnode.h"
27 #include "rxsuper.h"
28
29 \f
30
31
32 enum rx_answers
33 {
34   rx_yes = 0,
35   rx_no = 1,
36   rx_bogus = -1,
37   rx_start_state_with_too_many_futures = rx_bogus - 1
38   /* n < 0 -- error */
39 };
40
41 struct rx_classical_system
42 {
43   struct rx * rx;
44   struct rx_superstate * state;
45   int final_tag;
46 };
47
48
49 \f
50 #ifdef __STDC__
51 extern int rx_posix_analyze_rexp (struct rexp_node *** subexps,
52                                   size_t * re_nsub,
53                                   struct rexp_node * node,
54                                   int id);
55 extern int rx_fill_in_fastmap (int cset_size, unsigned char * map, struct rexp_node * exp);
56 extern int rx_is_anchored_p (struct rexp_node * exp);
57 extern enum rx_answers rx_start_superstate (struct rx_classical_system * frame);
58 extern enum rx_answers rx_fit_p (struct rx_classical_system * frame, unsigned const char * burst, int len);
59 extern enum rx_answers rx_advance (struct rx_classical_system * frame, unsigned const char * burst, int len);
60 extern int rx_advance_to_final (struct rx_classical_system * frame, unsigned const char * burst, int len);
61 extern void rx_terminate_system (struct rx_classical_system * frame);
62 extern void rx_init_system (struct rx_classical_system * frame, struct rx * rx);
63
64 #else /* STDC */
65 extern int rx_posix_analyze_rexp ();
66 extern int rx_fill_in_fastmap ();
67 extern int rx_is_anchored_p ();
68 extern enum rx_answers rx_start_superstate ();
69 extern enum rx_answers rx_fit_p ();
70 extern enum rx_answers rx_advance ();
71 extern int rx_advance_to_final ();
72 extern void rx_terminate_system ();
73 extern void rx_init_system ();
74
75 #endif /* STDC */
76
77
78
79 #endif  /* RXANALH */