Exemplo n.º 1
0
/*
*  Build the Keyword TRIE
*  
*/
int KTrieCompile(KTRIE_STRUCT * ts,
                 int (*build_tree)(void * id, void **existing_tree),
                 int (*neg_list_func)(void *id, void **list))
{
  KTRIEPATTERN * p;
  /*
  static int  tmem=0; 
  */

  /* 
  *    Build the Keyword TRIE 
  */
  for( p=ts->patrn; p; p=p->next )
  {
       if( KTrieInsert( ts, p ) )
       return -1;
  }

  /*
  *    Build A Setwise Bad Character Shift Table
  */
  Build_Bad_Character_Shifts( ts );

  /*
  tmem += ts->memory;
  printf(" Compile stats: %d patterns, %d chars, %d duplicate patterns, %d bytes, %d total-bytes\n",ts->npats,ts->nchars,ts->duplicates,ts->memory,tmem);
  */
  if (build_tree && neg_list_func)
  {
      KTrieBuildMatchStateTrees(ts, build_tree, neg_list_func);
  }

  return 0;
}
Exemplo n.º 2
0
int KTrieCompile(KTRIE_STRUCT * ts,
                 int (*build_tree)(void * id, void **existing_tree),
                 int (*neg_list_func)(void *id, void **list))
{
    int rval;

    if ((rval = _KTrieCompile(ts)))
        return rval;

    if (build_tree && neg_list_func)
    {
        KTrieBuildMatchStateTrees(ts, build_tree, neg_list_func);
    }

    return 0;
}