]> granicus.if.org Git - postgresql/blobdiff - contrib/tsearch2/ispell/spell.h
pgindent run for 8.2.
[postgresql] / contrib / tsearch2 / ispell / spell.h
index 1e22a0d1bcd9d06eea7fbe995dd7b632d12262eb..50a5947680e7cda064c08a659e7b5b23909c9179 100644 (file)
 #ifndef __SPELL_H__
 #define __SPELL_H__
 
+#include "c.h"
+
 #include <sys/types.h>
+
 #include "regex/regex.h"
-#include "regis.h"
-#include "c.h"
 
+#include "regis.h"
+#include "dict.h"
 
 struct SPNode;
 
 
-typedef struct {
-       uint32 
-               val:8,
-               isword:1,
-               compoundallow:1,
-               affix:22;
-       struct SPNode *node; 
-} SPNodeData;
-
-typedef struct SPNode {
-       uint32  length;
-       SPNodeData      data[1];        
-} SPNode;
+typedef struct
+{
+       uint32
+                               val:8,
+                               isword:1,
+                               compoundallow:1,
+                               affix:22;
+       struct SPNode *node;
+}      SPNodeData;
+
+typedef struct SPNode
+{
+       uint32          length;
+       SPNodeData      data[1];
+}      SPNode;
 
 #define SPNHRDSZ       (sizeof(uint32))
 
 
 typedef struct spell_struct
 {
-       char       *word;
-       union {
+       union
+       {
                char            flag[16];
-               struct {
-                       int             affix;
-                       int             len;
-               } d;
-       } p;
+               struct
+               {
+                       int                     affix;
+                       int                     len;
+               }                       d;
+       }                       p;
+       char            word[1];
 }      SPELL;
 
+#define SPELLHDRSZ     (offsetof(SPELL, word))
+
 typedef struct aff_struct
 {
-        uint32
-                flag:8,
-                type:2,
-                compile:1,
-                flagflags:3,
-                issimple:1,
-                isregis:1,
-                unused:1,
-                replen:16;
-        char            mask[32];
-        char            find[16];
-        char            repl[16];
-        union {
-                regex_t         regex;
-                Regis           regis;
-        } reg;
+       uint32
+                               flag:8,
+                               type:2,
+                               compile:1,
+                               flagflags:3,
+                               issimple:1,
+                               isregis:1,
+                               unused:1,
+                               replen:16;
+       char       *mask;
+       char       *find;
+       char       *repl;
+       union
+       {
+               regex_t         regex;
+               Regis           regis;
+       }                       reg;
 }      AFFIX;
 
-#define FF_CROSSPRODUCT        0x01
-#define FF_COMPOUNDWORD        0x02
-#define FF_COMPOUNDONLYAFX      0x04
-#define FF_SUFFIX               2
-#define FF_PREFIX               1
+#define FF_CROSSPRODUCT                0x01
+#define FF_COMPOUNDWORD                0x02
+#define FF_COMPOUNDONLYAFX             0x04
+#define FF_SUFFIX                              2
+#define FF_PREFIX                              1
 
 struct AffixNode;
 
-typedef struct {
+typedef struct
+{
        uint32
-               val:8,
-               naff:24;
-       AFFIX   **aff;
+                               val:8,
+                               naff:24;
+       AFFIX     **aff;
        struct AffixNode *node;
-} AffixNodeData;
+}      AffixNodeData;
 
-typedef struct AffixNode {
-        uint32  isvoid:1,
-                length:31;
-       AffixNodeData   data[1];
-} AffixNode;
+typedef struct AffixNode
+{
+       uint32          isvoid:1,
+                               length:31;
+       AffixNodeData data[1];
+}      AffixNode;
 
-#define ANHRDSZ        (sizeof(uint32))
+#define ANHRDSZ                   (sizeof(uint32))
 
-typedef struct {
-       char *affix;
-       int len;
-} CMPDAffix;
+typedef struct
+{
+       char       *affix;
+       int                     len;
+}      CMPDAffix;
 
 typedef struct
 {
        int                     maffixes;
        int                     naffixes;
        AFFIX      *Affix;
-       char                    compoundcontrol;
+       char            compoundcontrol;
 
        int                     nspell;
        int                     mspell;
-       SPELL      *Spell;
+       SPELL     **Spell;
 
-       AffixNode       *Suffix;
-       AffixNode       *Prefix;
+       AffixNode  *Suffix;
+       AffixNode  *Prefix;
 
-       SPNode  *Dictionary;
-       char    **AffixData;
-       CMPDAffix    *CompoundAffix;
+       SPNode     *Dictionary;
+       char      **AffixData;
+       CMPDAffix  *CompoundAffix;
 
 }      IspellDict;
 
-char     **NINormalizeWord(IspellDict * Conf, char *word);
+TSLexeme   *NINormalizeWord(IspellDict * Conf, char *word);
 int                    NIImportAffixes(IspellDict * Conf, const char *filename);
+int                    NIImportOOAffixes(IspellDict * Conf, const char *filename);
 int                    NIImportDictionary(IspellDict * Conf, const char *filename);
 
 int                    NIAddSpell(IspellDict * Conf, const char *word, const char *flag);