mirror of
git://git.acid.vegas/anope.git
synced 2025-03-01 14:29:04 +00:00
46 lines
999 B
C
46 lines
999 B
C
|
/*
|
||
|
*
|
||
|
* (C) 2003-2022 Anope Team
|
||
|
* Contact us at team@anope.org
|
||
|
*
|
||
|
* Please read COPYING and README for further details.
|
||
|
*
|
||
|
* Based on the original code of Epona by Lara.
|
||
|
* Based on the original code of Services by Andy Church.
|
||
|
*/
|
||
|
|
||
|
#ifndef REGEXPR_H
|
||
|
#define REGEXPR_H
|
||
|
|
||
|
#include "services.h"
|
||
|
#include "anope.h"
|
||
|
#include "service.h"
|
||
|
|
||
|
class RegexException : public CoreException
|
||
|
{
|
||
|
public:
|
||
|
RegexException(const Anope::string &reason = "") : CoreException(reason) { }
|
||
|
|
||
|
virtual ~RegexException() throw() { }
|
||
|
};
|
||
|
|
||
|
class CoreExport Regex
|
||
|
{
|
||
|
Anope::string expression;
|
||
|
protected:
|
||
|
Regex(const Anope::string &expr) : expression(expr) { }
|
||
|
public:
|
||
|
virtual ~Regex() { }
|
||
|
const Anope::string &GetExpression() { return expression; }
|
||
|
virtual bool Matches(const Anope::string &str) = 0;
|
||
|
};
|
||
|
|
||
|
class CoreExport RegexProvider : public Service
|
||
|
{
|
||
|
public:
|
||
|
RegexProvider(Module *o, const Anope::string &n) : Service(o, "Regex", n) { }
|
||
|
virtual Regex *Compile(const Anope::string &) = 0;
|
||
|
};
|
||
|
|
||
|
#endif // REGEXPR_H
|