00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../Core/System/sharedptr.h"
00035 #include "api_regexp.h"
00036
00037 class CL_RegExpMatch_Impl;
00038
00042 class CL_API_REGEXP CL_RegExpMatch
00043 {
00046
00047 public:
00048 CL_RegExpMatch();
00049
00053 CL_RegExpMatch(const CL_RegExpMatch &other);
00054
00055 ~CL_RegExpMatch();
00056
00060
00061 public:
00062 const int *get_vector() const;
00063
00067 int *get_vector();
00068
00072 int get_vector_size() const;
00073
00080 CL_StringRef8 get_capture(const char *subject, int capture) const;
00081
00088 CL_StringRef8 get_capture(const CL_StringRef8 &subject, int capture) const;
00089
00095 int get_capture_pos(int capture) const;
00096
00102 int get_capture_length(int capture) const;
00103
00109 int get_capture_end(int capture) const;
00110
00114 int get_captures_count() const;
00115
00119 bool is_partial() const;
00120
00124 bool is_match() const;
00125
00129
00130 public:
00131 CL_RegExpMatch &operator =(const CL_RegExpMatch &other);
00132
00136 void set_vector_size(int size);
00137
00141 void set_captures_count(int count);
00142
00146 void set_partial_match(bool partial);
00147
00151
00152 private:
00153 CL_SharedPtr<CL_RegExpMatch_Impl> impl;
00155 };
00156