1    | /******************
2    |   Copyright (c) 2002                                        RIPE NCC
3    | 
4    |   All Rights Reserved
5    | 
6    |   Permission to use, copy, modify, and distribute this software and its
7    |   documentation for any purpose and without fee is hereby granted,
8    |   provided that the above copyright notice appear in all copies and that
9    |   both that copyright notice and this permission notice appear in
10   |   supporting documentation, and that the name of the author not be
11   |   used in advertising or publicity pertaining to distribution of the
12   |   software without specific, written prior permission.
13   | 
14   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
16   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
17   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
18   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
19   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20   |   ***************************************/
21   | 
22   | #ifndef SYNTAX_H
23   | #define SYNTAX_H
24   | 
25   | #include <glib.h>
26   | #include <sys/types.h>
27   | #include <regex.h>
28   | 
29   | typedef struct {
30   |     char *name;
31   |     char *core_regex_pattern;
32   |     regex_t *core_regex;
33   |     char *core_reserved_regex_pattern;
34   |     regex_t *core_reserved_regex;
35   |     void (*core_parser_reset)();
36   |     int (*core_parser)();
37   |     char *front_end_regex_pattern;
38   |     regex_t *front_end_regex;
39   |     char *front_end_reserved_regex_pattern;
40   |     regex_t *front_end_reserved_regex;
41   |     void (*front_end_parser_reset)();
42   |     int (*front_end_parser)();
43   | } syntax_t;
44   | 
45   | /* types of checks */
46   | typedef enum {
47   |     SYNTAX_CHECK_CORE = 1,
48   |     SYNTAX_CHECK_FRONT_END = 2
49   | } syntax_check_t;
50   | 
51   | /* functions */
52   | GPtrArray *syntax_check_by_offset(int offset, 
53   |                                   syntax_check_t type,
54   |                                   const char *s);
55   | GPtrArray *syntax_check_by_name(const char *name, 
56   |                                 syntax_check_t type, 
57   |                                 const char *s);
58   | 
59   | #endif /* SYNTAX_H */