Main Page | Class List | Directories | File List | Class Members | File Members

pike_search.c File Reference

#include "global.h"
#include "stuff.h"
#include "mapping.h"
#include "object.h"
#include "pike_memory.h"
#include "stralloc.h"
#include "interpret.h"
#include "pike_error.h"
#include "module_support.h"
#include "pike_macros.h"
#include "pike_search.h"
#include "bignum.h"
#include "pike_search_engine.c"

Defines

#define OB2MSEARCH(O)   ((struct pike_mem_searcher *)((O)->storage+pike_search_struct_offset))
#define THIS_MSEARCH   ((struct pike_mem_searcher *)(Pike_fp->current_storage))
#define memchr_memcmp2_free   nil_search_free
#define memchr_memcmp3_free   nil_search_free
#define memchr_memcmp4_free   nil_search_free
#define memchr_memcmp5_free   nil_search_free
#define memchr_memcmp6_free   nil_search_free
#define memchr_search_free   nil_search_free
#define boyer_moore_hubbe_free   free_mem_searcher
#define hubbe_search_free   free_mem_searcher
#define GENERIC_GET4_CHARS(PTR)   ( ((PTR)[3] << 24) + ( (PTR)[2] << 16 ) +( (PTR)[1] << 8 ) + (PTR)[0] )
#define HUBBE_ALIGN0(q)   q=(char *)(PTR_TO_INT(q) & -sizeof(INT32))
#define GET_4_ALIGNED_CHARS0(PTR)   (*(INT32 *)(PTR))
#define GET_4_UNALIGNED_CHARS0(PTR)   EXTRACT_INT(PTR)
#define HUBBE_ALIGN1(q)
#define GET_4_ALIGNED_CHARS1   GENERIC_GET4_CHARS
#define GET_4_UNALIGNED_CHARS1   GENERIC_GET4_CHARS
#define HUBBE_ALIGN2(q)
#define GET_4_ALIGNED_CHARS2   GENERIC_GET4_CHARS
#define GET_4_UNALIGNED_CHARS2   GENERIC_GET4_CHARS
#define PxC(X, Y)   PIKE_CONCAT(X,Y)
#define PxC2(X, Y)   PIKE_CONCAT(X,Y)
#define PxC3(X, Y, Z)   PIKE_CONCAT3(X,Y,Z)
#define PxC4(X, Y, Z, Q)   PIKE_CONCAT4(X,Y,Z,Q)
#define NameN(X)   PxC2(X,NSHIFT)
#define NameH(X)   PxC2(X,HSHIFT)
#define NameNH(X)   PxC3(X,NSHIFT,HSHIFT)
#define BMHASH00(X)   (X)
#define BMHASH01(X)   ((X)>CHARS ? CHARS : (X))
#define BMHASH02   BMHASH01
#define BMHASH10(X)   (((X)*997)&(CHARS-1))
#define BMHASH11   BMHASH10
#define BMHASH12   BMHASH10
#define BMHASH20   BMHASH10
#define BMHASH21   BMHASH20
#define BMHASH22   BMHASH20
#define NCHAR   NameN(p_wchar)
#define HCHAR   NameH(p_wchar)
#define NEEDLE   ((NCHAR *)(s->needle))
#define NEEDLELEN   s->needlelen
#define NSHIFT   0
#define NSHIFT   1
#define NSHIFT   2
#define NSHIFT   0

Functions

PMOD_EXPORT void pike_init_memsearch (struct pike_mem_searcher *s, PCHARP needle, ptrdiff_t needlelen, ptrdiff_t max_haystacklen)
PMOD_EXPORT SearchMojt compile_memsearcher (PCHARP needle, ptrdiff_t needlelen, int max_haystacklen, struct pike_string *hashkey)
PMOD_EXPORT SearchMojt simple_compile_memsearcher (struct pike_string *str)
PMOD_EXPORT char * my_memmem (char *needle, size_t needlelen, char *haystack, size_t haystacklen)
void init_pike_searching (void)
void exit_pike_searching (void)

Variables

ptrdiff_t pike_search_struct_offset

Define Documentation

#define BMHASH00  )     (X)
 

#define BMHASH01  )     ((X)>CHARS ? CHARS : (X))
 

#define BMHASH02   BMHASH01
 

#define BMHASH10  )     (((X)*997)&(CHARS-1))
 

#define BMHASH11   BMHASH10
 

#define BMHASH12   BMHASH10
 

#define BMHASH20   BMHASH10
 

#define BMHASH21   BMHASH20
 

#define BMHASH22   BMHASH20
 

#define boyer_moore_hubbe_free   free_mem_searcher
 

#define GENERIC_GET4_CHARS PTR   )     ( ((PTR)[3] << 24) + ( (PTR)[2] << 16 ) +( (PTR)[1] << 8 ) + (PTR)[0] )
 

#define GET_4_ALIGNED_CHARS0 PTR   )     (*(INT32 *)(PTR))
 

#define GET_4_ALIGNED_CHARS1   GENERIC_GET4_CHARS
 

#define GET_4_ALIGNED_CHARS2   GENERIC_GET4_CHARS
 

#define GET_4_UNALIGNED_CHARS0 PTR   )     EXTRACT_INT(PTR)
 

#define GET_4_UNALIGNED_CHARS1   GENERIC_GET4_CHARS
 

#define GET_4_UNALIGNED_CHARS2   GENERIC_GET4_CHARS
 

#define HCHAR   NameH(p_wchar)
 

#define HUBBE_ALIGN0  )     q=(char *)(PTR_TO_INT(q) & -sizeof(INT32))
 

#define HUBBE_ALIGN1  ) 
 

#define HUBBE_ALIGN2  ) 
 

#define hubbe_search_free   free_mem_searcher
 

#define memchr_memcmp2_free   nil_search_free
 

#define memchr_memcmp3_free   nil_search_free
 

#define memchr_memcmp4_free   nil_search_free
 

#define memchr_memcmp5_free   nil_search_free
 

#define memchr_memcmp6_free   nil_search_free
 

#define memchr_search_free   nil_search_free
 

#define NameH  )     PxC2(X,HSHIFT)
 

#define NameN  )     PxC2(X,NSHIFT)
 

#define NameNH  )     PxC3(X,NSHIFT,HSHIFT)
 

#define NCHAR   NameN(p_wchar)
 

#define NEEDLE   ((NCHAR *)(s->needle))
 

#define NEEDLELEN   s->needlelen
 

#define NSHIFT   0
 

#define NSHIFT   2
 

#define NSHIFT   1
 

#define NSHIFT   0
 

#define OB2MSEARCH  )     ((struct pike_mem_searcher *)((O)->storage+pike_search_struct_offset))
 

#define PxC X,
 )     PIKE_CONCAT(X,Y)
 

#define PxC2 X,
 )     PIKE_CONCAT(X,Y)
 

#define PxC3 X,
Y,
 )     PIKE_CONCAT3(X,Y,Z)
 

#define PxC4 X,
Y,
Z,
 )     PIKE_CONCAT4(X,Y,Z,Q)
 

#define THIS_MSEARCH   ((struct pike_mem_searcher *)(Pike_fp->current_storage))
 


Function Documentation

PMOD_EXPORT SearchMojt compile_memsearcher PCHARP  needle,
ptrdiff_t  needlelen,
int  max_haystacklen,
struct pike_string hashkey
 

void exit_pike_searching void   ) 
 

void init_pike_searching void   ) 
 

PMOD_EXPORT char* my_memmem char *  needle,
size_t  needlelen,
char *  haystack,
size_t  haystacklen
 

PMOD_EXPORT void pike_init_memsearch struct pike_mem_searcher s,
PCHARP  needle,
ptrdiff_t  needlelen,
ptrdiff_t  max_haystacklen
 

PMOD_EXPORT SearchMojt simple_compile_memsearcher struct pike_string str  ) 
 


Variable Documentation

ptrdiff_t pike_search_struct_offset
 


Generated on Fri Jul 22 23:44:30 2005 for Pike by  doxygen 1.3.9.1