summaryrefslogtreecommitdiff
path: root/Bus/Ivy/Regexp.h
blob: cf7a7482af16b39bedc2b77386610c1976127599 (plain)
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
#pragma once

class regexp;

class Regexp
{
public:
	enum { NSUBEXP = 20 };

	Regexp();
	Regexp( const char * exp, bool iCase = 0 );
	Regexp( const Regexp &r );
	~Regexp();
	const Regexp & operator=( const Regexp & r );

	bool Match( const char * s );
	int SubStrings() const;
	
	const string operator[]( unsigned int i ) const;
	int SubStart( unsigned int i ) const;
	int SubLength( unsigned int i ) const;

	string GetReplaceString( const char * source ) const;

	string GetErrorString() const;
	bool CompiledOK() const;

#if defined( _RE_DEBUG )
	void Dump();
#endif
private:
	const char * str;	/* used to return substring offsets only */
	mutable string m_szError;
	regexp * rc;

	void ClearErrorString() const;
	int safeIndex( unsigned int i ) const;

};