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 
24 
25 #include "rxcset.h"
26 #include "rxnode.h"
27 #include "rxsuper.h"
28 
29 
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 
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 */
80