PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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-2025, 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
17typedef struct RegisNode
18{
19 uint32
21 len:16,
23 struct RegisNode *next;
26
27#define RNHDRSZ (offsetof(RegisNode,data))
28
29#define RSF_ONEOF 1
30#define RSF_NONEOF 2
31
32typedef struct Regis
33{
35 uint32
40
41extern bool RS_isRegis(const char *str);
42
43extern void RS_compile(Regis *r, bool issuffix, const char *str);
44extern void RS_free(Regis *r);
45
46/*returns true if matches */
47extern bool RS_execute(Regis *r, char *str);
48
49#endif
#define FLEXIBLE_ARRAY_MEMBER
Definition: c.h:417
uint32_t uint32
Definition: c.h:485
const char * str
struct RegisNode RegisNode
void RS_compile(Regis *r, bool issuffix, const char *str)
Definition: regis.c:85
bool RS_execute(Regis *r, char *str)
Definition: regis.c:213
bool RS_isRegis(const char *str)
Definition: regis.c:31
struct Regis Regis
void RS_free(Regis *r)
Definition: regis.c:166
unsigned char data[FLEXIBLE_ARRAY_MEMBER]
Definition: regis.h:24
uint32 len
Definition: regis.h:21
struct RegisNode * next
Definition: regis.h:23
uint32 unused
Definition: regis.h:22
uint32 type
Definition: regis.h:20
Definition: regis.h:33
uint32 issuffix
Definition: regis.h:36
uint32 unused
Definition: regis.h:38
RegisNode * node
Definition: regis.h:34
uint32 nchar
Definition: regis.h:37