File: rematch.h

package info (click to toggle)
maildrop 0.54a-2
  • links: PTS
  • area: main
  • in suites: slink
  • size: 872 kB
  • ctags: 883
  • sloc: cpp: 8,469; ansic: 658; sh: 327; makefile: 82
file content (43 lines) | stat: -rw-r--r-- 1,749 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* DSTART                                                                    */
/*                                                                           */
/*           maildrop - mail delivery agent with filtering abilities         */
/*                                                                           */
/*  Copyright 1998, Double Precision Inc.                                    */
/*                                                                           */
/*  This program is distributed under the terms of the GNU General Public    */
/*  License. See COPYING for additional information.                         */
/* DEND                                                                      */
#ifndef	rematch_h
#define	rematch_h

static const char rematch_h_rcsid[]="$Id: rematch.h 1.1 1998/04/17 00:08:53 mrsam Exp $";

#include	<sys/types.h>
// #include	<unistd.h>
#include	"autoconf.h"

////////////////////////////////////////////////////////////////////////////
//
// ReMatch is an abstract class used in matching text against regular
// expression.  The matched text may come from a memory buffer, or a file.
// The matching logic does not care, and uses an abstracted data source,
// represented by this class, which supplies the text being matched,
// character by character.
//
// Also, in order to support the '!' operator, GetCurrentPos() and
// SetCurrentPos() functions must be implemented as a rudimentary "seek"
// mechanism.
//
////////////////////////////////////////////////////////////////////////////

class ReMatch {
public:
	ReMatch()	{}
	virtual ~ReMatch();

	virtual int NextChar()=0;
	virtual int CurrentChar()=0;
	virtual off_t GetCurrentPos()=0;
	virtual void SetCurrentPos(off_t)=0;
} ;
#endif