blob: e8a3665c3fb1fa9c1191746b04fa980278c50b75 [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
Serhiy Storchaka6d336a02017-05-09 23:37:14 +030032PyDoc_STRVAR(_sre_ascii_iscased__doc__,
33"ascii_iscased($module, character, /)\n"
34"--\n"
35"\n");
36
37#define _SRE_ASCII_ISCASED_METHODDEF \
38 {"ascii_iscased", (PyCFunction)_sre_ascii_iscased, METH_O, _sre_ascii_iscased__doc__},
39
40static int
41_sre_ascii_iscased_impl(PyObject *module, int character);
42
43static PyObject *
44_sre_ascii_iscased(PyObject *module, PyObject *arg)
45{
46 PyObject *return_value = NULL;
47 int character;
48 int _return_value;
49
Serhiy Storchaka32d96a22018-12-25 13:23:47 +020050 if (PyFloat_Check(arg)) {
51 PyErr_SetString(PyExc_TypeError,
52 "integer argument expected, got float" );
53 goto exit;
54 }
55 character = _PyLong_AsInt(arg);
56 if (character == -1 && PyErr_Occurred()) {
Serhiy Storchaka6d336a02017-05-09 23:37:14 +030057 goto exit;
58 }
59 _return_value = _sre_ascii_iscased_impl(module, character);
60 if ((_return_value == -1) && PyErr_Occurred()) {
61 goto exit;
62 }
63 return_value = PyBool_FromLong((long)_return_value);
64
65exit:
66 return return_value;
67}
68
69PyDoc_STRVAR(_sre_unicode_iscased__doc__,
70"unicode_iscased($module, character, /)\n"
71"--\n"
72"\n");
73
74#define _SRE_UNICODE_ISCASED_METHODDEF \
75 {"unicode_iscased", (PyCFunction)_sre_unicode_iscased, METH_O, _sre_unicode_iscased__doc__},
76
77static int
78_sre_unicode_iscased_impl(PyObject *module, int character);
79
80static PyObject *
81_sre_unicode_iscased(PyObject *module, PyObject *arg)
82{
83 PyObject *return_value = NULL;
84 int character;
85 int _return_value;
86
Serhiy Storchaka32d96a22018-12-25 13:23:47 +020087 if (PyFloat_Check(arg)) {
88 PyErr_SetString(PyExc_TypeError,
89 "integer argument expected, got float" );
90 goto exit;
91 }
92 character = _PyLong_AsInt(arg);
93 if (character == -1 && PyErr_Occurred()) {
Serhiy Storchaka6d336a02017-05-09 23:37:14 +030094 goto exit;
95 }
96 _return_value = _sre_unicode_iscased_impl(module, character);
97 if ((_return_value == -1) && PyErr_Occurred()) {
98 goto exit;
99 }
100 return_value = PyBool_FromLong((long)_return_value);
101
102exit:
103 return return_value;
104}
105
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300106PyDoc_STRVAR(_sre_ascii_tolower__doc__,
107"ascii_tolower($module, character, /)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300108"--\n"
109"\n");
110
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300111#define _SRE_ASCII_TOLOWER_METHODDEF \
112 {"ascii_tolower", (PyCFunction)_sre_ascii_tolower, METH_O, _sre_ascii_tolower__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300113
114static int
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300115_sre_ascii_tolower_impl(PyObject *module, int character);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300116
117static PyObject *
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300118_sre_ascii_tolower(PyObject *module, PyObject *arg)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300119{
120 PyObject *return_value = NULL;
121 int character;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300122 int _return_value;
123
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200124 if (PyFloat_Check(arg)) {
125 PyErr_SetString(PyExc_TypeError,
126 "integer argument expected, got float" );
127 goto exit;
128 }
129 character = _PyLong_AsInt(arg);
130 if (character == -1 && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300131 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300132 }
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300133 _return_value = _sre_ascii_tolower_impl(module, character);
134 if ((_return_value == -1) && PyErr_Occurred()) {
135 goto exit;
136 }
137 return_value = PyLong_FromLong((long)_return_value);
Victor Stinner259f0e42017-01-17 01:35:17 +0100138
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300139exit:
140 return return_value;
141}
142
143PyDoc_STRVAR(_sre_unicode_tolower__doc__,
144"unicode_tolower($module, character, /)\n"
145"--\n"
146"\n");
147
148#define _SRE_UNICODE_TOLOWER_METHODDEF \
149 {"unicode_tolower", (PyCFunction)_sre_unicode_tolower, METH_O, _sre_unicode_tolower__doc__},
150
151static int
152_sre_unicode_tolower_impl(PyObject *module, int character);
153
154static PyObject *
155_sre_unicode_tolower(PyObject *module, PyObject *arg)
156{
157 PyObject *return_value = NULL;
158 int character;
159 int _return_value;
160
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200161 if (PyFloat_Check(arg)) {
162 PyErr_SetString(PyExc_TypeError,
163 "integer argument expected, got float" );
164 goto exit;
165 }
166 character = _PyLong_AsInt(arg);
167 if (character == -1 && PyErr_Occurred()) {
Victor Stinner259f0e42017-01-17 01:35:17 +0100168 goto exit;
169 }
Serhiy Storchaka7186cc22017-05-05 10:42:46 +0300170 _return_value = _sre_unicode_tolower_impl(module, character);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300171 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300172 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300173 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300174 return_value = PyLong_FromLong((long)_return_value);
175
176exit:
177 return return_value;
178}
179
180PyDoc_STRVAR(_sre_SRE_Pattern_match__doc__,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200181"match($self, /, string, pos=0, endpos=sys.maxsize)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300182"--\n"
183"\n"
184"Matches zero or more characters at the beginning of the string.");
185
186#define _SRE_SRE_PATTERN_MATCH_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200187 {"match", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_match, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300188
189static PyObject *
190_sre_SRE_Pattern_match_impl(PatternObject *self, PyObject *string,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200191 Py_ssize_t pos, Py_ssize_t endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300192
193static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200194_sre_SRE_Pattern_match(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300195{
196 PyObject *return_value = NULL;
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200197 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
198 static _PyArg_Parser _parser = {"O|nn:match", _keywords, 0};
199 PyObject *string;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300200 Py_ssize_t pos = 0;
201 Py_ssize_t endpos = PY_SSIZE_T_MAX;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300202
Victor Stinner3e1fad62017-01-17 01:29:01 +0100203 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200204 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300205 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300206 }
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200207 return_value = _sre_SRE_Pattern_match_impl(self, string, pos, endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300208
209exit:
210 return return_value;
211}
212
213PyDoc_STRVAR(_sre_SRE_Pattern_fullmatch__doc__,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200214"fullmatch($self, /, string, pos=0, endpos=sys.maxsize)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300215"--\n"
216"\n"
Serhiy Storchaka0b5e61d2017-10-04 20:09:49 +0300217"Matches against all of the string.");
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300218
219#define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200220 {"fullmatch", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_fullmatch, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300221
222static PyObject *
223_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject *string,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200224 Py_ssize_t pos, Py_ssize_t endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300225
226static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200227_sre_SRE_Pattern_fullmatch(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300228{
229 PyObject *return_value = NULL;
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200230 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
231 static _PyArg_Parser _parser = {"O|nn:fullmatch", _keywords, 0};
232 PyObject *string;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300233 Py_ssize_t pos = 0;
234 Py_ssize_t endpos = PY_SSIZE_T_MAX;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300235
Victor Stinner3e1fad62017-01-17 01:29:01 +0100236 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200237 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300238 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300239 }
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200240 return_value = _sre_SRE_Pattern_fullmatch_impl(self, string, pos, endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300241
242exit:
243 return return_value;
244}
245
246PyDoc_STRVAR(_sre_SRE_Pattern_search__doc__,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200247"search($self, /, string, pos=0, endpos=sys.maxsize)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300248"--\n"
249"\n"
250"Scan through string looking for a match, and return a corresponding match object instance.\n"
251"\n"
252"Return None if no position in the string matches.");
253
254#define _SRE_SRE_PATTERN_SEARCH_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200255 {"search", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_search, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300256
257static PyObject *
258_sre_SRE_Pattern_search_impl(PatternObject *self, PyObject *string,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200259 Py_ssize_t pos, Py_ssize_t endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300260
261static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200262_sre_SRE_Pattern_search(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300263{
264 PyObject *return_value = NULL;
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200265 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
266 static _PyArg_Parser _parser = {"O|nn:search", _keywords, 0};
267 PyObject *string;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300268 Py_ssize_t pos = 0;
269 Py_ssize_t endpos = PY_SSIZE_T_MAX;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300270
Victor Stinner3e1fad62017-01-17 01:29:01 +0100271 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200272 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300273 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300274 }
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200275 return_value = _sre_SRE_Pattern_search_impl(self, string, pos, endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300276
277exit:
278 return return_value;
279}
280
281PyDoc_STRVAR(_sre_SRE_Pattern_findall__doc__,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200282"findall($self, /, string, pos=0, endpos=sys.maxsize)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300283"--\n"
284"\n"
285"Return a list of all non-overlapping matches of pattern in string.");
286
287#define _SRE_SRE_PATTERN_FINDALL_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200288 {"findall", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_findall, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300289
290static PyObject *
291_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200292 Py_ssize_t pos, Py_ssize_t endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300293
294static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200295_sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300296{
297 PyObject *return_value = NULL;
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200298 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
299 static _PyArg_Parser _parser = {"O|nn:findall", _keywords, 0};
300 PyObject *string;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300301 Py_ssize_t pos = 0;
302 Py_ssize_t endpos = PY_SSIZE_T_MAX;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300303
Victor Stinner3e1fad62017-01-17 01:29:01 +0100304 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200305 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300306 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300307 }
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200308 return_value = _sre_SRE_Pattern_findall_impl(self, string, pos, endpos);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300309
310exit:
311 return return_value;
312}
313
314PyDoc_STRVAR(_sre_SRE_Pattern_finditer__doc__,
315"finditer($self, /, string, pos=0, endpos=sys.maxsize)\n"
316"--\n"
317"\n"
318"Return an iterator over all non-overlapping matches for the RE pattern in string.\n"
319"\n"
320"For each match, the iterator returns a match object.");
321
322#define _SRE_SRE_PATTERN_FINDITER_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200323 {"finditer", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_finditer, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300324
325static PyObject *
326_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject *string,
327 Py_ssize_t pos, Py_ssize_t endpos);
328
329static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200330_sre_SRE_Pattern_finditer(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300331{
332 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300333 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
334 static _PyArg_Parser _parser = {"O|nn:finditer", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300335 PyObject *string;
336 Py_ssize_t pos = 0;
337 Py_ssize_t endpos = PY_SSIZE_T_MAX;
338
Victor Stinner3e1fad62017-01-17 01:29:01 +0100339 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300340 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300341 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300342 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300343 return_value = _sre_SRE_Pattern_finditer_impl(self, string, pos, endpos);
344
345exit:
346 return return_value;
347}
348
349PyDoc_STRVAR(_sre_SRE_Pattern_scanner__doc__,
350"scanner($self, /, string, pos=0, endpos=sys.maxsize)\n"
351"--\n"
352"\n");
353
354#define _SRE_SRE_PATTERN_SCANNER_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200355 {"scanner", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_scanner, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300356
357static PyObject *
358_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject *string,
359 Py_ssize_t pos, Py_ssize_t endpos);
360
361static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200362_sre_SRE_Pattern_scanner(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300363{
364 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300365 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
366 static _PyArg_Parser _parser = {"O|nn:scanner", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300367 PyObject *string;
368 Py_ssize_t pos = 0;
369 Py_ssize_t endpos = PY_SSIZE_T_MAX;
370
Victor Stinner3e1fad62017-01-17 01:29:01 +0100371 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300372 &string, &pos, &endpos)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300373 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300374 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300375 return_value = _sre_SRE_Pattern_scanner_impl(self, string, pos, endpos);
376
377exit:
378 return return_value;
379}
380
381PyDoc_STRVAR(_sre_SRE_Pattern_split__doc__,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200382"split($self, /, string, maxsplit=0)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300383"--\n"
384"\n"
385"Split string by the occurrences of pattern.");
386
387#define _SRE_SRE_PATTERN_SPLIT_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200388 {"split", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_split, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300389
390static PyObject *
391_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200392 Py_ssize_t maxsplit);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300393
394static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200395_sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300396{
397 PyObject *return_value = NULL;
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200398 static const char * const _keywords[] = {"string", "maxsplit", NULL};
399 static _PyArg_Parser _parser = {"O|n:split", _keywords, 0};
400 PyObject *string;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300401 Py_ssize_t maxsplit = 0;
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300402
Victor Stinner3e1fad62017-01-17 01:29:01 +0100403 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200404 &string, &maxsplit)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300405 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300406 }
Serhiy Storchakab37f3f62017-01-13 08:53:58 +0200407 return_value = _sre_SRE_Pattern_split_impl(self, string, maxsplit);
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300408
409exit:
410 return return_value;
411}
412
413PyDoc_STRVAR(_sre_SRE_Pattern_sub__doc__,
414"sub($self, /, repl, string, count=0)\n"
415"--\n"
416"\n"
417"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.");
418
419#define _SRE_SRE_PATTERN_SUB_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200420 {"sub", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_sub, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_sub__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300421
422static PyObject *
423_sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject *repl,
424 PyObject *string, Py_ssize_t count);
425
426static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200427_sre_SRE_Pattern_sub(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300428{
429 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300430 static const char * const _keywords[] = {"repl", "string", "count", NULL};
431 static _PyArg_Parser _parser = {"OO|n:sub", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300432 PyObject *repl;
433 PyObject *string;
434 Py_ssize_t count = 0;
435
Victor Stinner3e1fad62017-01-17 01:29:01 +0100436 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300437 &repl, &string, &count)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300438 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300439 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300440 return_value = _sre_SRE_Pattern_sub_impl(self, repl, string, count);
441
442exit:
443 return return_value;
444}
445
446PyDoc_STRVAR(_sre_SRE_Pattern_subn__doc__,
447"subn($self, /, repl, string, count=0)\n"
448"--\n"
449"\n"
450"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.");
451
452#define _SRE_SRE_PATTERN_SUBN_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200453 {"subn", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_subn, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300454
455static PyObject *
456_sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject *repl,
457 PyObject *string, Py_ssize_t count);
458
459static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200460_sre_SRE_Pattern_subn(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300461{
462 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300463 static const char * const _keywords[] = {"repl", "string", "count", NULL};
464 static _PyArg_Parser _parser = {"OO|n:subn", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300465 PyObject *repl;
466 PyObject *string;
467 Py_ssize_t count = 0;
468
Victor Stinner3e1fad62017-01-17 01:29:01 +0100469 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300470 &repl, &string, &count)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300471 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300472 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300473 return_value = _sre_SRE_Pattern_subn_impl(self, repl, string, count);
474
475exit:
476 return return_value;
477}
478
479PyDoc_STRVAR(_sre_SRE_Pattern___copy____doc__,
480"__copy__($self, /)\n"
481"--\n"
482"\n");
483
484#define _SRE_SRE_PATTERN___COPY___METHODDEF \
485 {"__copy__", (PyCFunction)_sre_SRE_Pattern___copy__, METH_NOARGS, _sre_SRE_Pattern___copy____doc__},
486
487static PyObject *
488_sre_SRE_Pattern___copy___impl(PatternObject *self);
489
490static PyObject *
491_sre_SRE_Pattern___copy__(PatternObject *self, PyObject *Py_UNUSED(ignored))
492{
493 return _sre_SRE_Pattern___copy___impl(self);
494}
495
496PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__,
Serhiy Storchakafdbd0112017-04-16 10:16:03 +0300497"__deepcopy__($self, memo, /)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300498"--\n"
499"\n");
500
501#define _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF \
Serhiy Storchakafdbd0112017-04-16 10:16:03 +0300502 {"__deepcopy__", (PyCFunction)_sre_SRE_Pattern___deepcopy__, METH_O, _sre_SRE_Pattern___deepcopy____doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300503
504PyDoc_STRVAR(_sre_compile__doc__,
505"compile($module, /, pattern, flags, code, groups, groupindex,\n"
506" indexgroup)\n"
507"--\n"
508"\n");
509
510#define _SRE_COMPILE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200511 {"compile", (PyCFunction)(void(*)(void))_sre_compile, METH_FASTCALL|METH_KEYWORDS, _sre_compile__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300512
513static PyObject *
Serhiy Storchaka1a2b24f2016-07-07 17:35:15 +0300514_sre_compile_impl(PyObject *module, PyObject *pattern, int flags,
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300515 PyObject *code, Py_ssize_t groups, PyObject *groupindex,
516 PyObject *indexgroup);
517
518static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200519_sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300520{
521 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300522 static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL};
Victor Stinner726a57d2016-11-22 23:04:39 +0100523 static _PyArg_Parser _parser = {"OiO!nO!O!:compile", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300524 PyObject *pattern;
525 int flags;
526 PyObject *code;
527 Py_ssize_t groups;
528 PyObject *groupindex;
529 PyObject *indexgroup;
530
Victor Stinner3e1fad62017-01-17 01:29:01 +0100531 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Victor Stinner726a57d2016-11-22 23:04:39 +0100532 &pattern, &flags, &PyList_Type, &code, &groups, &PyDict_Type, &groupindex, &PyTuple_Type, &indexgroup)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300533 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300534 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300535 return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup);
536
537exit:
538 return return_value;
539}
540
541PyDoc_STRVAR(_sre_SRE_Match_expand__doc__,
542"expand($self, /, template)\n"
543"--\n"
544"\n"
545"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.");
546
547#define _SRE_SRE_MATCH_EXPAND_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200548 {"expand", (PyCFunction)(void(*)(void))_sre_SRE_Match_expand, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_expand__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300549
550static PyObject *
551_sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template);
552
553static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200554_sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300555{
556 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300557 static const char * const _keywords[] = {"template", NULL};
558 static _PyArg_Parser _parser = {"O:expand", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300559 PyObject *template;
560
Victor Stinner3e1fad62017-01-17 01:29:01 +0100561 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300562 &template)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300563 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300564 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300565 return_value = _sre_SRE_Match_expand_impl(self, template);
566
567exit:
568 return return_value;
569}
570
571PyDoc_STRVAR(_sre_SRE_Match_groups__doc__,
572"groups($self, /, default=None)\n"
573"--\n"
574"\n"
575"Return a tuple containing all the subgroups of the match, from 1.\n"
576"\n"
577" default\n"
578" Is used for groups that did not participate in the match.");
579
580#define _SRE_SRE_MATCH_GROUPS_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200581 {"groups", (PyCFunction)(void(*)(void))_sre_SRE_Match_groups, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groups__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300582
583static PyObject *
584_sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value);
585
586static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200587_sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300588{
589 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300590 static const char * const _keywords[] = {"default", NULL};
591 static _PyArg_Parser _parser = {"|O:groups", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300592 PyObject *default_value = Py_None;
593
Victor Stinner3e1fad62017-01-17 01:29:01 +0100594 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300595 &default_value)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300596 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300597 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300598 return_value = _sre_SRE_Match_groups_impl(self, default_value);
599
600exit:
601 return return_value;
602}
603
604PyDoc_STRVAR(_sre_SRE_Match_groupdict__doc__,
605"groupdict($self, /, default=None)\n"
606"--\n"
607"\n"
608"Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\n"
609"\n"
610" default\n"
611" Is used for groups that did not participate in the match.");
612
613#define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200614 {"groupdict", (PyCFunction)(void(*)(void))_sre_SRE_Match_groupdict, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300615
616static PyObject *
617_sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value);
618
619static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200620_sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300621{
622 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300623 static const char * const _keywords[] = {"default", NULL};
624 static _PyArg_Parser _parser = {"|O:groupdict", _keywords, 0};
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300625 PyObject *default_value = Py_None;
626
Victor Stinner3e1fad62017-01-17 01:29:01 +0100627 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300628 &default_value)) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300629 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300630 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300631 return_value = _sre_SRE_Match_groupdict_impl(self, default_value);
632
633exit:
634 return return_value;
635}
636
637PyDoc_STRVAR(_sre_SRE_Match_start__doc__,
638"start($self, group=0, /)\n"
639"--\n"
640"\n"
641"Return index of the start of the substring matched by group.");
642
643#define _SRE_SRE_MATCH_START_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200644 {"start", (PyCFunction)(void(*)(void))_sre_SRE_Match_start, METH_FASTCALL, _sre_SRE_Match_start__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300645
646static Py_ssize_t
647_sre_SRE_Match_start_impl(MatchObject *self, PyObject *group);
648
649static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200650_sre_SRE_Match_start(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300651{
652 PyObject *return_value = NULL;
653 PyObject *group = NULL;
654 Py_ssize_t _return_value;
655
Sylvain74453812017-06-10 06:51:48 +0200656 if (!_PyArg_UnpackStack(args, nargs, "start",
657 0, 1,
658 &group)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +0100659 goto exit;
660 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300661 _return_value = _sre_SRE_Match_start_impl(self, group);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300662 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300663 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300664 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300665 return_value = PyLong_FromSsize_t(_return_value);
666
667exit:
668 return return_value;
669}
670
671PyDoc_STRVAR(_sre_SRE_Match_end__doc__,
672"end($self, group=0, /)\n"
673"--\n"
674"\n"
675"Return index of the end of the substring matched by group.");
676
677#define _SRE_SRE_MATCH_END_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200678 {"end", (PyCFunction)(void(*)(void))_sre_SRE_Match_end, METH_FASTCALL, _sre_SRE_Match_end__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300679
680static Py_ssize_t
681_sre_SRE_Match_end_impl(MatchObject *self, PyObject *group);
682
683static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200684_sre_SRE_Match_end(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300685{
686 PyObject *return_value = NULL;
687 PyObject *group = NULL;
688 Py_ssize_t _return_value;
689
Sylvain74453812017-06-10 06:51:48 +0200690 if (!_PyArg_UnpackStack(args, nargs, "end",
691 0, 1,
692 &group)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +0100693 goto exit;
694 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300695 _return_value = _sre_SRE_Match_end_impl(self, group);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300696 if ((_return_value == -1) && PyErr_Occurred()) {
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300697 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300698 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300699 return_value = PyLong_FromSsize_t(_return_value);
700
701exit:
702 return return_value;
703}
704
705PyDoc_STRVAR(_sre_SRE_Match_span__doc__,
706"span($self, group=0, /)\n"
707"--\n"
708"\n"
Serhiy Storchaka0b5e61d2017-10-04 20:09:49 +0300709"For match object m, return the 2-tuple (m.start(group), m.end(group)).");
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300710
711#define _SRE_SRE_MATCH_SPAN_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200712 {"span", (PyCFunction)(void(*)(void))_sre_SRE_Match_span, METH_FASTCALL, _sre_SRE_Match_span__doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300713
714static PyObject *
715_sre_SRE_Match_span_impl(MatchObject *self, PyObject *group);
716
717static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200718_sre_SRE_Match_span(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300719{
720 PyObject *return_value = NULL;
721 PyObject *group = NULL;
722
Sylvain74453812017-06-10 06:51:48 +0200723 if (!_PyArg_UnpackStack(args, nargs, "span",
724 0, 1,
725 &group)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +0100726 goto exit;
727 }
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300728 return_value = _sre_SRE_Match_span_impl(self, group);
729
730exit:
731 return return_value;
732}
733
734PyDoc_STRVAR(_sre_SRE_Match___copy____doc__,
735"__copy__($self, /)\n"
736"--\n"
737"\n");
738
739#define _SRE_SRE_MATCH___COPY___METHODDEF \
740 {"__copy__", (PyCFunction)_sre_SRE_Match___copy__, METH_NOARGS, _sre_SRE_Match___copy____doc__},
741
742static PyObject *
743_sre_SRE_Match___copy___impl(MatchObject *self);
744
745static PyObject *
746_sre_SRE_Match___copy__(MatchObject *self, PyObject *Py_UNUSED(ignored))
747{
748 return _sre_SRE_Match___copy___impl(self);
749}
750
751PyDoc_STRVAR(_sre_SRE_Match___deepcopy____doc__,
Serhiy Storchakafdbd0112017-04-16 10:16:03 +0300752"__deepcopy__($self, memo, /)\n"
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300753"--\n"
754"\n");
755
756#define _SRE_SRE_MATCH___DEEPCOPY___METHODDEF \
Serhiy Storchakafdbd0112017-04-16 10:16:03 +0300757 {"__deepcopy__", (PyCFunction)_sre_SRE_Match___deepcopy__, METH_O, _sre_SRE_Match___deepcopy____doc__},
Serhiy Storchakaa860aea2015-05-03 15:54:23 +0300758
759PyDoc_STRVAR(_sre_SRE_Scanner_match__doc__,
760"match($self, /)\n"
761"--\n"
762"\n");
763
764#define _SRE_SRE_SCANNER_MATCH_METHODDEF \
765 {"match", (PyCFunction)_sre_SRE_Scanner_match, METH_NOARGS, _sre_SRE_Scanner_match__doc__},
766
767static PyObject *
768_sre_SRE_Scanner_match_impl(ScannerObject *self);
769
770static PyObject *
771_sre_SRE_Scanner_match(ScannerObject *self, PyObject *Py_UNUSED(ignored))
772{
773 return _sre_SRE_Scanner_match_impl(self);
774}
775
776PyDoc_STRVAR(_sre_SRE_Scanner_search__doc__,
777"search($self, /)\n"
778"--\n"
779"\n");
780
781#define _SRE_SRE_SCANNER_SEARCH_METHODDEF \
782 {"search", (PyCFunction)_sre_SRE_Scanner_search, METH_NOARGS, _sre_SRE_Scanner_search__doc__},
783
784static PyObject *
785_sre_SRE_Scanner_search_impl(ScannerObject *self);
786
787static PyObject *
788_sre_SRE_Scanner_search(ScannerObject *self, PyObject *Py_UNUSED(ignored))
789{
790 return _sre_SRE_Scanner_search_impl(self);
791}
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200792/*[clinic end generated code: output=7992634045212b26 input=a9049054013a1b77]*/