From aca9517b3d90180581570596cb5ac768ef8c127e Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 3 Dec 2012 17:09:13 +0100 Subject: refactored search command (states): they are now in a separate search.cpp file --- search.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 search.h (limited to 'search.h') diff --git a/search.h b/search.h new file mode 100644 index 0000000..670e860 --- /dev/null +++ b/search.h @@ -0,0 +1,50 @@ +#ifndef __SEARCH_H +#define __SEARCH_H + +#include + +#include "sciteco.h" +#include "parser.h" +#include "qbuffers.h" + +class StateSearch : public StateExpectString { +protected: + struct Parameters { + gint dot; + gint from, to; + gint count; + + Buffer *from_buffer, *to_buffer; + } parameters; + + enum MatchState { + STATE_START, + STATE_NOT, + STATE_CTL_E, + STATE_ANYQ, + STATE_MANY, + STATE_ALT + }; + + gchar *class2regexp(MatchState &state, const gchar *&pattern, + bool escape_default = false); + gchar *pattern2regexp(const gchar *&pattern, bool single_expr = false); + void do_search(GRegex *re, gint from, gint to, gint &count); + + virtual void initial(void) throw (Error); + virtual void process(const gchar *str, gint new_chars) throw (Error); + virtual State *done(const gchar *str) throw (Error); +}; + +class StateSearchAll : public StateSearch { +private: + void initial(void) throw (Error); + State *done(const gchar *str) throw (Error); +}; + +namespace States { + extern StateSearch search; + extern StateSearchAll searchall; +} + +#endif -- cgit v1.2.3