diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildrop/reeval.h | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildrop/reeval.h')
| -rw-r--r-- | maildrop/reeval.h | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/maildrop/reeval.h b/maildrop/reeval.h new file mode 100644 index 0000000..37d59a8 --- /dev/null +++ b/maildrop/reeval.h @@ -0,0 +1,32 @@ +#ifndef	reeval_h +#define	reeval_h + + +#include	"regexpnode.h" + +/////////////////////////////////////////////////////////////////////////// +// +//  For matching a regular expression, we keep track of the set of all the +//  current nodes we're currently on.  For speed, there are two ReEval +//  objects - current one, and the next one, and we switch between the two +//  on each step. +// +/////////////////////////////////////////////////////////////////////////// + + +class ReEval { +public: +	RegExpNode **nodes; +	unsigned	numnodes; +	unsigned	*nodenums;	// For speed - lookup array of nodes +				// that are already in this set. +	ReEval() : nodes(0), numnodes(0), nodenums(0), arysize(0) {} +	~ReEval()	{ if (nodes)	delete[] nodes; +			if (nodenums)	delete[] nodenums; +			} +	void	init(unsigned maxsize); +private: +	unsigned	arysize; +} ; + +#endif | 
