summaryrefslogtreecommitdiff
path: root/src/privatematch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/privatematch.h')
-rw-r--r--src/privatematch.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/privatematch.h b/src/privatematch.h
new file mode 100644
index 0000000..764bec4
--- /dev/null
+++ b/src/privatematch.h
@@ -0,0 +1,57 @@
+#ifndef _PRIVATEMATCH_H
+#define _PRIVATEMATCH_H
+
+#include <compmatch.h>
+#include <boost/shared_ptr.hpp>
+
+#define MATCH_OP_AND_MASK (1 << 0)
+#define MATCH_OP_NOT_MASK (1 << 1)
+
+class MatchOp {
+ public:
+ typedef enum {
+ TypeNone,
+ TypeGroup,
+ TypeExp
+ } Type;
+
+ typedef std::list<MatchOp> List;
+
+ MatchOp ();
+ virtual ~MatchOp ();
+
+ virtual Type type () { return TypeNone; };
+
+ unsigned int flags;
+};
+
+class MatchExpOp : public MatchOp {
+ public:
+ MatchExpOp ();
+
+ MatchOp::Type type () { return MatchOp::TypeExp; };
+
+ CompString value;
+
+ boost::shared_ptr<CompMatch::Expression> e;
+};
+
+class MatchGroupOp : public MatchOp {
+ public:
+ MatchGroupOp ();
+
+ MatchOp::Type type () { return MatchOp::TypeGroup; };
+
+ MatchOp::List op;
+};
+
+class PrivateMatch {
+ public:
+ PrivateMatch ();
+
+ public:
+ MatchGroupOp op;
+ CompDisplay *display;
+};
+
+#endif