]>
Commit | Line | Data |
---|---|---|
1 | /* Copyright (C) 1995, 1996 Tom Lord | |
2 | * | |
3 | * This program is free software; you can redistribute it and/or modify | |
4 | * it under the terms of the GNU Library General Public License as published by | |
5 | * the Free Software Foundation; either version 2, or (at your option) | |
6 | * any later version. | |
7 | * | |
8 | * This program is distributed in the hope that it will be useful, | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | * GNU Library General Public License for more details. | |
12 | * | |
13 | * You should have received a copy of the GNU Library General Public License | |
14 | * along with this software; see the file COPYING. If not, write to | |
15 | * the Free Software Foundation, 59 Temple Place - Suite 330, | |
16 | * Boston, MA 02111-1307, USA. | |
17 | */ | |
18 | ||
19 | ||
20 | \f | |
21 | #include "rx.h" | |
22 | #include "rxall.h" | |
23 | #include "rxhash.h" | |
24 | #include "rxnfa.h" | |
25 | #include "rxsuper.h" | |
26 | ||
27 | \f | |
28 | ||
29 | const char rx_version_string[] = "GNU Rx version 1.5"; | |
30 | ||
31 | \f | |
32 | #ifdef __STDC__ | |
33 | struct rx * | |
34 | rx_make_rx (int cset_size) | |
35 | #else | |
36 | struct rx * | |
37 | rx_make_rx (cset_size) | |
38 | int cset_size; | |
39 | #endif | |
40 | { | |
41 | static int rx_id = 0; | |
42 | struct rx * new_rx; | |
43 | new_rx = (struct rx *)malloc (sizeof (*new_rx)); | |
44 | rx_bzero ((char *)new_rx, sizeof (*new_rx)); | |
45 | new_rx->rx_id = rx_id++; | |
46 | new_rx->cache = rx_default_cache; | |
47 | new_rx->local_cset_size = cset_size; | |
48 | new_rx->instruction_table = rx_id_instruction_table; | |
49 | new_rx->next_nfa_id = 0; | |
50 | return new_rx; | |
51 | } | |
52 | ||
53 | #ifdef __STDC__ | |
54 | void | |
55 | rx_free_rx (struct rx * rx) | |
56 | #else | |
57 | void | |
58 | rx_free_rx (rx) | |
59 | struct rx * rx; | |
60 | #endif | |
61 | { | |
62 | if (rx->start_set) | |
63 | rx->start_set->starts_for = 0; | |
64 | rx_free_nfa (rx); | |
65 | free (rx); | |
66 | } | |
67 | ||
68 | ||
69 | #ifdef __STDC__ | |
70 | void | |
71 | rx_bzero (char * mem, int size) | |
72 | #else | |
73 | void | |
74 | rx_bzero (mem, size) | |
75 | char * mem; | |
76 | int size; | |
77 | #endif | |
78 | { | |
79 | while (size) | |
80 | { | |
81 | *mem = 0; | |
82 | ++mem; | |
83 | --size; | |
84 | } | |
85 | } |