12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*-------------------------------------------------------------------------
- *
- * regis.h
- *
- * Declarations for fast regex subset, used by ISpell
- *
- * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
- *
- * src/include/tsearch/dicts/regis.h
- *
- *-------------------------------------------------------------------------
- */
- #ifndef __REGIS_H__
- #define __REGIS_H__
- typedef struct RegisNode
- {
- uint32
- type:2,
- len:16,
- unused:14;
- struct RegisNode *next;
- unsigned char data[FLEXIBLE_ARRAY_MEMBER];
- } RegisNode;
- #define RNHDRSZ (offsetof(RegisNode,data))
- #define RSF_ONEOF 1
- #define RSF_NONEOF 2
- typedef struct Regis
- {
- RegisNode *node;
- uint32
- issuffix:1,
- nchar:16,
- unused:15;
- } Regis;
- bool RS_isRegis(const char *str);
- void RS_compile(Regis *r, bool issuffix, const char *str);
- void RS_free(Regis *r);
- /*returns true if matches */
- bool RS_execute(Regis *r, char *str);
- #endif
|