PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
regis.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * regis.h
4  *
5  * Declarations for fast regex subset, used by ISpell
6  *
7  * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
8  *
9  * src/include/tsearch/dicts/regis.h
10  *
11  *-------------------------------------------------------------------------
12  */
13 
14 #ifndef __REGIS_H__
15 #define __REGIS_H__
16 
17 typedef struct RegisNode
18 {
19  uint32
20  type:2,
21  len:16,
22  unused:14;
23  struct RegisNode *next;
24  unsigned char data[FLEXIBLE_ARRAY_MEMBER];
25 } RegisNode;
26 
27 #define RNHDRSZ (offsetof(RegisNode,data))
28 
29 #define RSF_ONEOF 1
30 #define RSF_NONEOF 2
31 
32 typedef struct Regis
33 {
35  uint32
37  nchar:16,
38  unused:15;
39 } Regis;
40 
41 bool RS_isRegis(const char *str);
42 
43 void RS_compile(Regis *r, bool issuffix, const char *str);
44 void RS_free(Regis *r);
45 
46 /*returns true if matches */
47 bool RS_execute(Regis *r, char *str);
48 
49 #endif
Definition: regis.h:32
void RS_free(Regis *r)
Definition: regis.c:166
uint32 nchar
Definition: regis.h:36
struct RegisNode RegisNode
RegisNode * node
Definition: regis.h:34
uint32 issuffix
Definition: regis.h:36
struct Regis Regis
uint32 len
Definition: regis.h:20
unsigned int uint32
Definition: c.h:265
unsigned char data[FLEXIBLE_ARRAY_MEMBER]
Definition: regis.h:24
bool RS_isRegis(const char *str)
Definition: regis.c:31
uint32 unused
Definition: regis.h:36
uint32 type
Definition: regis.h:20
void RS_compile(Regis *r, bool issuffix, const char *str)
Definition: regis.c:85
bool RS_execute(Regis *r, char *str)
Definition: regis.c:218
uint32 unused
Definition: regis.h:20
struct RegisNode * next
Definition: regis.h:23