blob: 0612005d1ea6f99fee3d4d409f3691cbdc5f0214 [file] [log] [blame]
Serhiy Storchakaa860aea2015-05-03 15:54:23 +03001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(_sre_getcodesize__doc__,
6"getcodesize($module, /)\n"
7"--\n"
8"\n");
9
10#define _SRE_GETCODESIZE_METHODDEF \
11 {"getcodesize", (PyCFunction)_sre_getcodesize, METH_NOARGS, _sre_getcodesize__doc__},
12
13static int
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030014_sre_getcodesize_impl(PyObject *module);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030015
16static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030017_sre_getcodesize(PyObject *module, PyObject *Py_UNUSED(ignored))
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030018{
19 PyObject *return_value = NULL;
20 int _return_value;
21
22 _return_value = _sre_getcodesize_impl(module);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030023 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030024 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030025 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030026 return_value = PyLong_FromLong((long)_return_value);
27
28exit:
29 return return_value;
30}
31
32PyDoc_STRVAR(_sre_getlower__doc__,
33"getlower($module, character, flags, /)\n"
34"--\n"
35"\n");
36
37#define _SRE_GETLOWER_METHODDEF \
38 {"getlower", (PyCFunction)_sre_getlower, METH_VARARGS, _sre_getlower__doc__},
39
40static int
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030041_sre_getlower_impl(PyObject *module, int character, int flags);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030042
43static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +030044_sre_getlower(PyObject *module, PyObject *args)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030045{
46 PyObject *return_value = NULL;
47 int character;
48 int flags;
49 int _return_value;
50
51 if (!PyArg_ParseTuple(args, "ii:getlower",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030052 &character, &flags)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030053 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030054 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030055 _return_value = _sre_getlower_impl(module, character, flags);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030056 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030057 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030058 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030059 return_value = PyLong_FromLong((long)_return_value);
60
61exit:
62 return return_value;
63}
64
65PyDoc_STRVAR(_sre_SRE_Pattern_match__doc__,
66"match($self, /, string=None, pos=0, endpos=sys.maxsize, *, pattern=None)\n"
67"--\n"
68"\n"
69"Matches zero or more characters at the beginning of the string.");
70
71#define _SRE_SRE_PATTERN_MATCH_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -070072 {"match", (PyCFunction)_sre_SRE_Pattern_match, METH_FASTCALL, _sre_SRE_Pattern_match__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030073
74static PyObject *
75_sre_SRE_Pattern_match_impl(PatternObject *self, PyObject *string,
76 Py_ssize_t pos, Py_ssize_t endpos,
77 PyObject *pattern);
78
79static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -070080_sre_SRE_Pattern_match(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030081{
82 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +030083 static const char * const _keywords[] = {"string", "pos", "endpos", "pattern", NULL};
84 static _PyArg_Parser _parser = {"|Onn$O:match", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030085 PyObject *string = NULL;
86 Py_ssize_t pos = 0;
87 Py_ssize_t endpos = PY_SSIZE_T_MAX;
88 PyObject *pattern = NULL;
89
Victor Stinner37e4ef72016-09-09 20:00:13 -070090 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030091 &string, &pos, &endpos, &pattern)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030092 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030093 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +030094 return_value = _sre_SRE_Pattern_match_impl(self, string, pos, endpos, pattern);
95
96exit:
97 return return_value;
98}
99
100PyDoc_STRVAR(_sre_SRE_Pattern_fullmatch__doc__,
101"fullmatch($self, /, string=None, pos=0, endpos=sys.maxsize, *,\n"
102" pattern=None)\n"
103"--\n"
104"\n"
105"Matches against all of the string");
106
107#define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700108 {"fullmatch", (PyCFunction)_sre_SRE_Pattern_fullmatch, METH_FASTCALL, _sre_SRE_Pattern_fullmatch__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300109
110static PyObject *
111_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject *string,
112 Py_ssize_t pos, Py_ssize_t endpos,
113 PyObject *pattern);
114
115static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700116_sre_SRE_Pattern_fullmatch(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300117{
118 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300119 static const char * const _keywords[] = {"string", "pos", "endpos", "pattern", NULL};
120 static _PyArg_Parser _parser = {"|Onn$O:fullmatch", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300121 PyObject *string = NULL;
122 Py_ssize_t pos = 0;
123 Py_ssize_t endpos = PY_SSIZE_T_MAX;
124 PyObject *pattern = NULL;
125
Victor Stinner37e4ef72016-09-09 20:00:13 -0700126 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300127 &string, &pos, &endpos, &pattern)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300128 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300129 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300130 return_value = _sre_SRE_Pattern_fullmatch_impl(self, string, pos, endpos, pattern);
131
132exit:
133 return return_value;
134}
135
136PyDoc_STRVAR(_sre_SRE_Pattern_search__doc__,
137"search($self, /, string=None, pos=0, endpos=sys.maxsize, *,\n"
138" pattern=None)\n"
139"--\n"
140"\n"
141"Scan through string looking for a match, and return a corresponding match object instance.\n"
142"\n"
143"Return None if no position in the string matches.");
144
145#define _SRE_SRE_PATTERN_SEARCH_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700146 {"search", (PyCFunction)_sre_SRE_Pattern_search, METH_FASTCALL, _sre_SRE_Pattern_search__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300147
148static PyObject *
149_sre_SRE_Pattern_search_impl(PatternObject *self, PyObject *string,
150 Py_ssize_t pos, Py_ssize_t endpos,
151 PyObject *pattern);
152
153static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700154_sre_SRE_Pattern_search(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300155{
156 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300157 static const char * const _keywords[] = {"string", "pos", "endpos", "pattern", NULL};
158 static _PyArg_Parser _parser = {"|Onn$O:search", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300159 PyObject *string = NULL;
160 Py_ssize_t pos = 0;
161 Py_ssize_t endpos = PY_SSIZE_T_MAX;
162 PyObject *pattern = NULL;
163
Victor Stinner37e4ef72016-09-09 20:00:13 -0700164 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300165 &string, &pos, &endpos, &pattern)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300166 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300167 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300168 return_value = _sre_SRE_Pattern_search_impl(self, string, pos, endpos, pattern);
169
170exit:
171 return return_value;
172}
173
174PyDoc_STRVAR(_sre_SRE_Pattern_findall__doc__,
175"findall($self, /, string=None, pos=0, endpos=sys.maxsize, *,\n"
176" source=None)\n"
177"--\n"
178"\n"
179"Return a list of all non-overlapping matches of pattern in string.");
180
181#define _SRE_SRE_PATTERN_FINDALL_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700182 {"findall", (PyCFunction)_sre_SRE_Pattern_findall, METH_FASTCALL, _sre_SRE_Pattern_findall__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300183
184static PyObject *
185_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string,
186 Py_ssize_t pos, Py_ssize_t endpos,
187 PyObject *source);
188
189static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700190_sre_SRE_Pattern_findall(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300191{
192 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300193 static const char * const _keywords[] = {"string", "pos", "endpos", "source", NULL};
194 static _PyArg_Parser _parser = {"|Onn$O:findall", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300195 PyObject *string = NULL;
196 Py_ssize_t pos = 0;
197 Py_ssize_t endpos = PY_SSIZE_T_MAX;
198 PyObject *source = NULL;
199
Victor Stinner37e4ef72016-09-09 20:00:13 -0700200 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300201 &string, &pos, &endpos, &source)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300202 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300203 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300204 return_value = _sre_SRE_Pattern_findall_impl(self, string, pos, endpos, source);
205
206exit:
207 return return_value;
208}
209
210PyDoc_STRVAR(_sre_SRE_Pattern_finditer__doc__,
211"finditer($self, /, string, pos=0, endpos=sys.maxsize)\n"
212"--\n"
213"\n"
214"Return an iterator over all non-overlapping matches for the RE pattern in string.\n"
215"\n"
216"For each match, the iterator returns a match object.");
217
218#define _SRE_SRE_PATTERN_FINDITER_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700219 {"finditer", (PyCFunction)_sre_SRE_Pattern_finditer, METH_FASTCALL, _sre_SRE_Pattern_finditer__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300220
221static PyObject *
222_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject *string,
223 Py_ssize_t pos, Py_ssize_t endpos);
224
225static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700226_sre_SRE_Pattern_finditer(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300227{
228 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300229 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
230 static _PyArg_Parser _parser = {"O|nn:finditer", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300231 PyObject *string;
232 Py_ssize_t pos = 0;
233 Py_ssize_t endpos = PY_SSIZE_T_MAX;
234
Victor Stinner37e4ef72016-09-09 20:00:13 -0700235 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300236 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300237 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300238 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300239 return_value = _sre_SRE_Pattern_finditer_impl(self, string, pos, endpos);
240
241exit:
242 return return_value;
243}
244
245PyDoc_STRVAR(_sre_SRE_Pattern_scanner__doc__,
246"scanner($self, /, string, pos=0, endpos=sys.maxsize)\n"
247"--\n"
248"\n");
249
250#define _SRE_SRE_PATTERN_SCANNER_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700251 {"scanner", (PyCFunction)_sre_SRE_Pattern_scanner, METH_FASTCALL, _sre_SRE_Pattern_scanner__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300252
253static PyObject *
254_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject *string,
255 Py_ssize_t pos, Py_ssize_t endpos);
256
257static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700258_sre_SRE_Pattern_scanner(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300259{
260 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300261 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
262 static _PyArg_Parser _parser = {"O|nn:scanner", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300263 PyObject *string;
264 Py_ssize_t pos = 0;
265 Py_ssize_t endpos = PY_SSIZE_T_MAX;
266
Victor Stinner37e4ef72016-09-09 20:00:13 -0700267 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300268 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300269 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300270 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300271 return_value = _sre_SRE_Pattern_scanner_impl(self, string, pos, endpos);
272
273exit:
274 return return_value;
275}
276
277PyDoc_STRVAR(_sre_SRE_Pattern_split__doc__,
278"split($self, /, string=None, maxsplit=0, *, source=None)\n"
279"--\n"
280"\n"
281"Split string by the occurrences of pattern.");
282
283#define _SRE_SRE_PATTERN_SPLIT_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700284 {"split", (PyCFunction)_sre_SRE_Pattern_split, METH_FASTCALL, _sre_SRE_Pattern_split__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300285
286static PyObject *
287_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
288 Py_ssize_t maxsplit, PyObject *source);
289
290static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700291_sre_SRE_Pattern_split(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300292{
293 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300294 static const char * const _keywords[] = {"string", "maxsplit", "source", NULL};
295 static _PyArg_Parser _parser = {"|On$O:split", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300296 PyObject *string = NULL;
297 Py_ssize_t maxsplit = 0;
298 PyObject *source = NULL;
299
Victor Stinner37e4ef72016-09-09 20:00:13 -0700300 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300301 &string, &maxsplit, &source)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300302 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300303 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300304 return_value = _sre_SRE_Pattern_split_impl(self, string, maxsplit, source);
305
306exit:
307 return return_value;
308}
309
310PyDoc_STRVAR(_sre_SRE_Pattern_sub__doc__,
311"sub($self, /, repl, string, count=0)\n"
312"--\n"
313"\n"
314"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.");
315
316#define _SRE_SRE_PATTERN_SUB_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700317 {"sub", (PyCFunction)_sre_SRE_Pattern_sub, METH_FASTCALL, _sre_SRE_Pattern_sub__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300318
319static PyObject *
320_sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject *repl,
321 PyObject *string, Py_ssize_t count);
322
323static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700324_sre_SRE_Pattern_sub(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300325{
326 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300327 static const char * const _keywords[] = {"repl", "string", "count", NULL};
328 static _PyArg_Parser _parser = {"OO|n:sub", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300329 PyObject *repl;
330 PyObject *string;
331 Py_ssize_t count = 0;
332
Victor Stinner37e4ef72016-09-09 20:00:13 -0700333 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300334 &repl, &string, &count)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300335 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300336 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300337 return_value = _sre_SRE_Pattern_sub_impl(self, repl, string, count);
338
339exit:
340 return return_value;
341}
342
343PyDoc_STRVAR(_sre_SRE_Pattern_subn__doc__,
344"subn($self, /, repl, string, count=0)\n"
345"--\n"
346"\n"
347"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.");
348
349#define _SRE_SRE_PATTERN_SUBN_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700350 {"subn", (PyCFunction)_sre_SRE_Pattern_subn, METH_FASTCALL, _sre_SRE_Pattern_subn__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300351
352static PyObject *
353_sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject *repl,
354 PyObject *string, Py_ssize_t count);
355
356static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700357_sre_SRE_Pattern_subn(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300358{
359 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300360 static const char * const _keywords[] = {"repl", "string", "count", NULL};
361 static _PyArg_Parser _parser = {"OO|n:subn", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300362 PyObject *repl;
363 PyObject *string;
364 Py_ssize_t count = 0;
365
Victor Stinner37e4ef72016-09-09 20:00:13 -0700366 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300367 &repl, &string, &count)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300368 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300369 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300370 return_value = _sre_SRE_Pattern_subn_impl(self, repl, string, count);
371
372exit:
373 return return_value;
374}
375
376PyDoc_STRVAR(_sre_SRE_Pattern___copy____doc__,
377"__copy__($self, /)\n"
378"--\n"
379"\n");
380
381#define _SRE_SRE_PATTERN___COPY___METHODDEF \
382 {"__copy__", (PyCFunction)_sre_SRE_Pattern___copy__, METH_NOARGS, _sre_SRE_Pattern___copy____doc__},
383
384static PyObject *
385_sre_SRE_Pattern___copy___impl(PatternObject *self);
386
387static PyObject *
388_sre_SRE_Pattern___copy__(PatternObject *self, PyObject *Py_UNUSED(ignored))
389{
390 return _sre_SRE_Pattern___copy___impl(self);
391}
392
393PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__,
394"__deepcopy__($self, /, memo)\n"
395"--\n"
396"\n");
397
398#define _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700399 {"__deepcopy__", (PyCFunction)_sre_SRE_Pattern___deepcopy__, METH_FASTCALL, _sre_SRE_Pattern___deepcopy____doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300400
401static PyObject *
402_sre_SRE_Pattern___deepcopy___impl(PatternObject *self, PyObject *memo);
403
404static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700405_sre_SRE_Pattern___deepcopy__(PatternObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300406{
407 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300408 static const char * const _keywords[] = {"memo", NULL};
409 static _PyArg_Parser _parser = {"O:__deepcopy__", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300410 PyObject *memo;
411
Victor Stinner37e4ef72016-09-09 20:00:13 -0700412 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300413 &memo)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300414 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300415 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300416 return_value = _sre_SRE_Pattern___deepcopy___impl(self, memo);
417
418exit:
419 return return_value;
420}
421
422PyDoc_STRVAR(_sre_compile__doc__,
423"compile($module, /, pattern, flags, code, groups, groupindex,\n"
424" indexgroup)\n"
425"--\n"
426"\n");
427
428#define _SRE_COMPILE_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700429 {"compile", (PyCFunction)_sre_compile, METH_FASTCALL, _sre_compile__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300430
431static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300432_sre_compile_impl(PyObject *module, PyObject *pattern, int flags,
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300433 PyObject *code, Py_ssize_t groups, PyObject *groupindex,
434 PyObject *indexgroup);
435
436static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700437_sre_compile(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300438{
439 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300440 static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL};
441 static _PyArg_Parser _parser = {"OiO!nOO:compile", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300442 PyObject *pattern;
443 int flags;
444 PyObject *code;
445 Py_ssize_t groups;
446 PyObject *groupindex;
447 PyObject *indexgroup;
448
Victor Stinner37e4ef72016-09-09 20:00:13 -0700449 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300450 &pattern, &flags, &PyList_Type, &code, &groups, &groupindex, &indexgroup)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300451 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300452 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300453 return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup);
454
455exit:
456 return return_value;
457}
458
459PyDoc_STRVAR(_sre_SRE_Match_expand__doc__,
460"expand($self, /, template)\n"
461"--\n"
462"\n"
463"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.");
464
465#define _SRE_SRE_MATCH_EXPAND_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700466 {"expand", (PyCFunction)_sre_SRE_Match_expand, METH_FASTCALL, _sre_SRE_Match_expand__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300467
468static PyObject *
469_sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template);
470
471static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700472_sre_SRE_Match_expand(MatchObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300473{
474 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300475 static const char * const _keywords[] = {"template", NULL};
476 static _PyArg_Parser _parser = {"O:expand", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300477 PyObject *template;
478
Victor Stinner37e4ef72016-09-09 20:00:13 -0700479 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300480 &template)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300481 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300482 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300483 return_value = _sre_SRE_Match_expand_impl(self, template);
484
485exit:
486 return return_value;
487}
488
489PyDoc_STRVAR(_sre_SRE_Match_groups__doc__,
490"groups($self, /, default=None)\n"
491"--\n"
492"\n"
493"Return a tuple containing all the subgroups of the match, from 1.\n"
494"\n"
495" default\n"
496" Is used for groups that did not participate in the match.");
497
498#define _SRE_SRE_MATCH_GROUPS_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700499 {"groups", (PyCFunction)_sre_SRE_Match_groups, METH_FASTCALL, _sre_SRE_Match_groups__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300500
501static PyObject *
502_sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value);
503
504static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700505_sre_SRE_Match_groups(MatchObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300506{
507 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300508 static const char * const _keywords[] = {"default", NULL};
509 static _PyArg_Parser _parser = {"|O:groups", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300510 PyObject *default_value = Py_None;
511
Victor Stinner37e4ef72016-09-09 20:00:13 -0700512 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300513 &default_value)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300514 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300515 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300516 return_value = _sre_SRE_Match_groups_impl(self, default_value);
517
518exit:
519 return return_value;
520}
521
522PyDoc_STRVAR(_sre_SRE_Match_groupdict__doc__,
523"groupdict($self, /, default=None)\n"
524"--\n"
525"\n"
526"Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\n"
527"\n"
528" default\n"
529" Is used for groups that did not participate in the match.");
530
531#define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700532 {"groupdict", (PyCFunction)_sre_SRE_Match_groupdict, METH_FASTCALL, _sre_SRE_Match_groupdict__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300533
534static PyObject *
535_sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value);
536
537static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700538_sre_SRE_Match_groupdict(MatchObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300539{
540 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300541 static const char * const _keywords[] = {"default", NULL};
542 static _PyArg_Parser _parser = {"|O:groupdict", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300543 PyObject *default_value = Py_None;
544
Victor Stinner37e4ef72016-09-09 20:00:13 -0700545 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300546 &default_value)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300547 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300548 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300549 return_value = _sre_SRE_Match_groupdict_impl(self, default_value);
550
551exit:
552 return return_value;
553}
554
555PyDoc_STRVAR(_sre_SRE_Match_start__doc__,
556"start($self, group=0, /)\n"
557"--\n"
558"\n"
559"Return index of the start of the substring matched by group.");
560
561#define _SRE_SRE_MATCH_START_METHODDEF \
562 {"start", (PyCFunction)_sre_SRE_Match_start, METH_VARARGS, _sre_SRE_Match_start__doc__},
563
564static Py_ssize_t
565_sre_SRE_Match_start_impl(MatchObject *self, PyObject *group);
566
567static PyObject *
568_sre_SRE_Match_start(MatchObject *self, PyObject *args)
569{
570 PyObject *return_value = NULL;
571 PyObject *group = NULL;
572 Py_ssize_t _return_value;
573
574 if (!PyArg_UnpackTuple(args, "start",
575 0, 1,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300576 &group)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300577 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300578 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300579 _return_value = _sre_SRE_Match_start_impl(self, group);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300580 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300581 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300582 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300583 return_value = PyLong_FromSsize_t(_return_value);
584
585exit:
586 return return_value;
587}
588
589PyDoc_STRVAR(_sre_SRE_Match_end__doc__,
590"end($self, group=0, /)\n"
591"--\n"
592"\n"
593"Return index of the end of the substring matched by group.");
594
595#define _SRE_SRE_MATCH_END_METHODDEF \
596 {"end", (PyCFunction)_sre_SRE_Match_end, METH_VARARGS, _sre_SRE_Match_end__doc__},
597
598static Py_ssize_t
599_sre_SRE_Match_end_impl(MatchObject *self, PyObject *group);
600
601static PyObject *
602_sre_SRE_Match_end(MatchObject *self, PyObject *args)
603{
604 PyObject *return_value = NULL;
605 PyObject *group = NULL;
606 Py_ssize_t _return_value;
607
608 if (!PyArg_UnpackTuple(args, "end",
609 0, 1,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300610 &group)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300611 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300612 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300613 _return_value = _sre_SRE_Match_end_impl(self, group);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300614 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300615 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300616 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300617 return_value = PyLong_FromSsize_t(_return_value);
618
619exit:
620 return return_value;
621}
622
623PyDoc_STRVAR(_sre_SRE_Match_span__doc__,
624"span($self, group=0, /)\n"
625"--\n"
626"\n"
627"For MatchObject m, return the 2-tuple (m.start(group), m.end(group)).");
628
629#define _SRE_SRE_MATCH_SPAN_METHODDEF \
630 {"span", (PyCFunction)_sre_SRE_Match_span, METH_VARARGS, _sre_SRE_Match_span__doc__},
631
632static PyObject *
633_sre_SRE_Match_span_impl(MatchObject *self, PyObject *group);
634
635static PyObject *
636_sre_SRE_Match_span(MatchObject *self, PyObject *args)
637{
638 PyObject *return_value = NULL;
639 PyObject *group = NULL;
640
641 if (!PyArg_UnpackTuple(args, "span",
642 0, 1,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300643 &group)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300644 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300645 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300646 return_value = _sre_SRE_Match_span_impl(self, group);
647
648exit:
649 return return_value;
650}
651
652PyDoc_STRVAR(_sre_SRE_Match___copy____doc__,
653"__copy__($self, /)\n"
654"--\n"
655"\n");
656
657#define _SRE_SRE_MATCH___COPY___METHODDEF \
658 {"__copy__", (PyCFunction)_sre_SRE_Match___copy__, METH_NOARGS, _sre_SRE_Match___copy____doc__},
659
660static PyObject *
661_sre_SRE_Match___copy___impl(MatchObject *self);
662
663static PyObject *
664_sre_SRE_Match___copy__(MatchObject *self, PyObject *Py_UNUSED(ignored))
665{
666 return _sre_SRE_Match___copy___impl(self);
667}
668
669PyDoc_STRVAR(_sre_SRE_Match___deepcopy____doc__,
670"__deepcopy__($self, /, memo)\n"
671"--\n"
672"\n");
673
674#define _SRE_SRE_MATCH___DEEPCOPY___METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -0700675 {"__deepcopy__", (PyCFunction)_sre_SRE_Match___deepcopy__, METH_FASTCALL, _sre_SRE_Match___deepcopy____doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300676
677static PyObject *
678_sre_SRE_Match___deepcopy___impl(MatchObject *self, PyObject *memo);
679
680static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -0700681_sre_SRE_Match___deepcopy__(MatchObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300682{
683 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300684 static const char * const _keywords[] = {"memo", NULL};
685 static _PyArg_Parser _parser = {"O:__deepcopy__", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300686 PyObject *memo;
687
Victor Stinner37e4ef72016-09-09 20:00:13 -0700688 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300689 &memo)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300690 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300691 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300692 return_value = _sre_SRE_Match___deepcopy___impl(self, memo);
693
694exit:
695 return return_value;
696}
697
698PyDoc_STRVAR(_sre_SRE_Scanner_match__doc__,
699"match($self, /)\n"
700"--\n"
701"\n");
702
703#define _SRE_SRE_SCANNER_MATCH_METHODDEF \
704 {"match", (PyCFunction)_sre_SRE_Scanner_match, METH_NOARGS, _sre_SRE_Scanner_match__doc__},
705
706static PyObject *
707_sre_SRE_Scanner_match_impl(ScannerObject *self);
708
709static PyObject *
710_sre_SRE_Scanner_match(ScannerObject *self, PyObject *Py_UNUSED(ignored))
711{
712 return _sre_SRE_Scanner_match_impl(self);
713}
714
715PyDoc_STRVAR(_sre_SRE_Scanner_search__doc__,
716"search($self, /)\n"
717"--\n"
718"\n");
719
720#define _SRE_SRE_SCANNER_SEARCH_METHODDEF \
721 {"search", (PyCFunction)_sre_SRE_Scanner_search, METH_NOARGS, _sre_SRE_Scanner_search__doc__},
722
723static PyObject *
724_sre_SRE_Scanner_search_impl(ScannerObject *self);
725
726static PyObject *
727_sre_SRE_Scanner_search(ScannerObject *self, PyObject *Py_UNUSED(ignored))
728{
729 return _sre_SRE_Scanner_search_impl(self);
730}
Victor Stinner37e4ef72016-09-09 20:00:13 -0700731/*[clinic end generated code: output=a4a246bca1963bc9 input=a9049054013a1b77]*/