MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
my_regex.h
1 #ifndef MY_REGEX_INCLUDED
2 #define MY_REGEX_INCLUDED
3 
4 /* ========= begin header generated by ./mkh ========= */
5 
6 #include "m_ctype.h"
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 /* === regex2.h === */
13 #ifdef _WIN64
14 typedef __int64 my_regoff_t;
15 #else
16 typedef off_t my_regoff_t;
17 #endif
18 struct re_guts; /* none of your business :-) */
19 typedef struct {
20  int re_magic;
21  size_t re_nsub; /* number of parenthesized subexpressions */
22  const char *re_endp; /* end pointer for MY_REG_PEND */
23  struct re_guts *re_g; /* none of your business :-) */
24  const CHARSET_INFO *charset; /* For ctype things */
25 } my_regex_t;
26 typedef struct {
27  my_regoff_t rm_so; /* start of match */
28  my_regoff_t rm_eo; /* end of match */
30 
31 
32 /* === regcomp.c === */
33 typedef int (*my_regex_stack_check_t)(int);
34 extern int my_regcomp(my_regex_t *, const char *, int,
35  const CHARSET_INFO *charset);
36 #define MY_REG_BASIC 0000
37 #define MY_REG_EXTENDED 0001
38 #define MY_REG_ICASE 0002
39 #define MY_REG_NOSUB 0004
40 #define MY_REG_NEWLINE 0010
41 #define MY_REG_NOSPEC 0020
42 #define MY_REG_PEND 0040
43 #define MY_REG_DUMP 0200
44 
45 
46 /* === regerror.c === */
47 #define MY_REG_NOMATCH 1
48 #define MY_REG_BADPAT 2
49 #define MY_REG_ECOLLATE 3
50 #define MY_REG_ECTYPE 4
51 #define MY_REG_EESCAPE 5
52 #define MY_REG_ESUBREG 6
53 #define MY_REG_EBRACK 7
54 #define MY_REG_EPAREN 8
55 #define MY_REG_EBRACE 9
56 #define MY_REG_BADBR 10
57 #define MY_REG_ERANGE 11
58 #define MY_REG_ESPACE 12
59 #define MY_REG_BADRPT 13
60 #define MY_REG_EMPTY 14
61 #define MY_REG_ASSERT 15
62 #define MY_REG_INVARG 16
63 #define MY_REG_ATOI 255 /* convert name to number (!) */
64 #define MY_REG_ITOA 0400 /* convert number to name (!) */
65 extern size_t my_regerror(int, const my_regex_t *, char *, size_t);
66 
67 
68 /* === regexec.c === */
69 extern int my_regexec(const my_regex_t *, const char *, size_t, my_regmatch_t [], int);
70 #define MY_REG_NOTBOL 00001
71 #define MY_REG_NOTEOL 00002
72 #define MY_REG_STARTEND 00004
73 #define MY_REG_TRACE 00400 /* tracing of execution */
74 #define MY_REG_LARGE 01000 /* force large representation */
75 #define MY_REG_BACKR 02000 /* force use of backref code */
76 
77 
78 /* === regfree.c === */
79 extern void my_regfree(my_regex_t *);
80 
81 /* === reginit.c === */
82 
83 /* Should be called for multithread progs */
84 extern void my_regex_init(const CHARSET_INFO *cs,
85  my_regex_stack_check_t func);
86 extern void my_regex_end(void); /* If one wants a clean end */
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 /* ========= end header generated by ./mkh ========= */
92 
93 #endif // MY_REGEX_INCLUDED