1 /*[clinic input]
2 preserve
3 [clinic start generated code]*/
4
5 PyDoc_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
13 static int
14 _sre_getcodesize_impl(PyObject *module);
15
16 static PyObject *
_sre_getcodesize(PyObject * module,PyObject * Py_UNUSED (ignored))17 _sre_getcodesize(PyObject *module, PyObject *Py_UNUSED(ignored))
18 {
19 PyObject *return_value = NULL;
20 int _return_value;
21
22 _return_value = _sre_getcodesize_impl(module);
23 if ((_return_value == -1) && PyErr_Occurred()) {
24 goto exit;
25 }
26 return_value = PyLong_FromLong((long)_return_value);
27
28 exit:
29 return return_value;
30 }
31
32 PyDoc_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
40 static int
41 _sre_ascii_iscased_impl(PyObject *module, int character);
42
43 static PyObject *
_sre_ascii_iscased(PyObject * module,PyObject * arg)44 _sre_ascii_iscased(PyObject *module, PyObject *arg)
45 {
46 PyObject *return_value = NULL;
47 int character;
48 int _return_value;
49
50 if (!PyArg_Parse(arg, "i:ascii_iscased", &character)) {
51 goto exit;
52 }
53 _return_value = _sre_ascii_iscased_impl(module, character);
54 if ((_return_value == -1) && PyErr_Occurred()) {
55 goto exit;
56 }
57 return_value = PyBool_FromLong((long)_return_value);
58
59 exit:
60 return return_value;
61 }
62
63 PyDoc_STRVAR(_sre_unicode_iscased__doc__,
64 "unicode_iscased($module, character, /)\n"
65 "--\n"
66 "\n");
67
68 #define _SRE_UNICODE_ISCASED_METHODDEF \
69 {"unicode_iscased", (PyCFunction)_sre_unicode_iscased, METH_O, _sre_unicode_iscased__doc__},
70
71 static int
72 _sre_unicode_iscased_impl(PyObject *module, int character);
73
74 static PyObject *
_sre_unicode_iscased(PyObject * module,PyObject * arg)75 _sre_unicode_iscased(PyObject *module, PyObject *arg)
76 {
77 PyObject *return_value = NULL;
78 int character;
79 int _return_value;
80
81 if (!PyArg_Parse(arg, "i:unicode_iscased", &character)) {
82 goto exit;
83 }
84 _return_value = _sre_unicode_iscased_impl(module, character);
85 if ((_return_value == -1) && PyErr_Occurred()) {
86 goto exit;
87 }
88 return_value = PyBool_FromLong((long)_return_value);
89
90 exit:
91 return return_value;
92 }
93
94 PyDoc_STRVAR(_sre_ascii_tolower__doc__,
95 "ascii_tolower($module, character, /)\n"
96 "--\n"
97 "\n");
98
99 #define _SRE_ASCII_TOLOWER_METHODDEF \
100 {"ascii_tolower", (PyCFunction)_sre_ascii_tolower, METH_O, _sre_ascii_tolower__doc__},
101
102 static int
103 _sre_ascii_tolower_impl(PyObject *module, int character);
104
105 static PyObject *
_sre_ascii_tolower(PyObject * module,PyObject * arg)106 _sre_ascii_tolower(PyObject *module, PyObject *arg)
107 {
108 PyObject *return_value = NULL;
109 int character;
110 int _return_value;
111
112 if (!PyArg_Parse(arg, "i:ascii_tolower", &character)) {
113 goto exit;
114 }
115 _return_value = _sre_ascii_tolower_impl(module, character);
116 if ((_return_value == -1) && PyErr_Occurred()) {
117 goto exit;
118 }
119 return_value = PyLong_FromLong((long)_return_value);
120
121 exit:
122 return return_value;
123 }
124
125 PyDoc_STRVAR(_sre_unicode_tolower__doc__,
126 "unicode_tolower($module, character, /)\n"
127 "--\n"
128 "\n");
129
130 #define _SRE_UNICODE_TOLOWER_METHODDEF \
131 {"unicode_tolower", (PyCFunction)_sre_unicode_tolower, METH_O, _sre_unicode_tolower__doc__},
132
133 static int
134 _sre_unicode_tolower_impl(PyObject *module, int character);
135
136 static PyObject *
_sre_unicode_tolower(PyObject * module,PyObject * arg)137 _sre_unicode_tolower(PyObject *module, PyObject *arg)
138 {
139 PyObject *return_value = NULL;
140 int character;
141 int _return_value;
142
143 if (!PyArg_Parse(arg, "i:unicode_tolower", &character)) {
144 goto exit;
145 }
146 _return_value = _sre_unicode_tolower_impl(module, character);
147 if ((_return_value == -1) && PyErr_Occurred()) {
148 goto exit;
149 }
150 return_value = PyLong_FromLong((long)_return_value);
151
152 exit:
153 return return_value;
154 }
155
156 PyDoc_STRVAR(_sre_SRE_Pattern_match__doc__,
157 "match($self, /, string, pos=0, endpos=sys.maxsize)\n"
158 "--\n"
159 "\n"
160 "Matches zero or more characters at the beginning of the string.");
161
162 #define _SRE_SRE_PATTERN_MATCH_METHODDEF \
163 {"match", (PyCFunction)_sre_SRE_Pattern_match, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__},
164
165 static PyObject *
166 _sre_SRE_Pattern_match_impl(PatternObject *self, PyObject *string,
167 Py_ssize_t pos, Py_ssize_t endpos);
168
169 static PyObject *
_sre_SRE_Pattern_match(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)170 _sre_SRE_Pattern_match(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
171 {
172 PyObject *return_value = NULL;
173 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
174 static _PyArg_Parser _parser = {"O|nn:match", _keywords, 0};
175 PyObject *string;
176 Py_ssize_t pos = 0;
177 Py_ssize_t endpos = PY_SSIZE_T_MAX;
178
179 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
180 &string, &pos, &endpos)) {
181 goto exit;
182 }
183 return_value = _sre_SRE_Pattern_match_impl(self, string, pos, endpos);
184
185 exit:
186 return return_value;
187 }
188
189 PyDoc_STRVAR(_sre_SRE_Pattern_fullmatch__doc__,
190 "fullmatch($self, /, string, pos=0, endpos=sys.maxsize)\n"
191 "--\n"
192 "\n"
193 "Matches against all of the string.");
194
195 #define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \
196 {"fullmatch", (PyCFunction)_sre_SRE_Pattern_fullmatch, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__},
197
198 static PyObject *
199 _sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject *string,
200 Py_ssize_t pos, Py_ssize_t endpos);
201
202 static PyObject *
_sre_SRE_Pattern_fullmatch(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)203 _sre_SRE_Pattern_fullmatch(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
204 {
205 PyObject *return_value = NULL;
206 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
207 static _PyArg_Parser _parser = {"O|nn:fullmatch", _keywords, 0};
208 PyObject *string;
209 Py_ssize_t pos = 0;
210 Py_ssize_t endpos = PY_SSIZE_T_MAX;
211
212 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
213 &string, &pos, &endpos)) {
214 goto exit;
215 }
216 return_value = _sre_SRE_Pattern_fullmatch_impl(self, string, pos, endpos);
217
218 exit:
219 return return_value;
220 }
221
222 PyDoc_STRVAR(_sre_SRE_Pattern_search__doc__,
223 "search($self, /, string, pos=0, endpos=sys.maxsize)\n"
224 "--\n"
225 "\n"
226 "Scan through string looking for a match, and return a corresponding match object instance.\n"
227 "\n"
228 "Return None if no position in the string matches.");
229
230 #define _SRE_SRE_PATTERN_SEARCH_METHODDEF \
231 {"search", (PyCFunction)_sre_SRE_Pattern_search, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__},
232
233 static PyObject *
234 _sre_SRE_Pattern_search_impl(PatternObject *self, PyObject *string,
235 Py_ssize_t pos, Py_ssize_t endpos);
236
237 static PyObject *
_sre_SRE_Pattern_search(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)238 _sre_SRE_Pattern_search(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
239 {
240 PyObject *return_value = NULL;
241 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
242 static _PyArg_Parser _parser = {"O|nn:search", _keywords, 0};
243 PyObject *string;
244 Py_ssize_t pos = 0;
245 Py_ssize_t endpos = PY_SSIZE_T_MAX;
246
247 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
248 &string, &pos, &endpos)) {
249 goto exit;
250 }
251 return_value = _sre_SRE_Pattern_search_impl(self, string, pos, endpos);
252
253 exit:
254 return return_value;
255 }
256
257 PyDoc_STRVAR(_sre_SRE_Pattern_findall__doc__,
258 "findall($self, /, string, pos=0, endpos=sys.maxsize)\n"
259 "--\n"
260 "\n"
261 "Return a list of all non-overlapping matches of pattern in string.");
262
263 #define _SRE_SRE_PATTERN_FINDALL_METHODDEF \
264 {"findall", (PyCFunction)_sre_SRE_Pattern_findall, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__},
265
266 static PyObject *
267 _sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string,
268 Py_ssize_t pos, Py_ssize_t endpos);
269
270 static PyObject *
_sre_SRE_Pattern_findall(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)271 _sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
272 {
273 PyObject *return_value = NULL;
274 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
275 static _PyArg_Parser _parser = {"O|nn:findall", _keywords, 0};
276 PyObject *string;
277 Py_ssize_t pos = 0;
278 Py_ssize_t endpos = PY_SSIZE_T_MAX;
279
280 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
281 &string, &pos, &endpos)) {
282 goto exit;
283 }
284 return_value = _sre_SRE_Pattern_findall_impl(self, string, pos, endpos);
285
286 exit:
287 return return_value;
288 }
289
290 PyDoc_STRVAR(_sre_SRE_Pattern_finditer__doc__,
291 "finditer($self, /, string, pos=0, endpos=sys.maxsize)\n"
292 "--\n"
293 "\n"
294 "Return an iterator over all non-overlapping matches for the RE pattern in string.\n"
295 "\n"
296 "For each match, the iterator returns a match object.");
297
298 #define _SRE_SRE_PATTERN_FINDITER_METHODDEF \
299 {"finditer", (PyCFunction)_sre_SRE_Pattern_finditer, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__},
300
301 static PyObject *
302 _sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject *string,
303 Py_ssize_t pos, Py_ssize_t endpos);
304
305 static PyObject *
_sre_SRE_Pattern_finditer(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)306 _sre_SRE_Pattern_finditer(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
307 {
308 PyObject *return_value = NULL;
309 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
310 static _PyArg_Parser _parser = {"O|nn:finditer", _keywords, 0};
311 PyObject *string;
312 Py_ssize_t pos = 0;
313 Py_ssize_t endpos = PY_SSIZE_T_MAX;
314
315 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
316 &string, &pos, &endpos)) {
317 goto exit;
318 }
319 return_value = _sre_SRE_Pattern_finditer_impl(self, string, pos, endpos);
320
321 exit:
322 return return_value;
323 }
324
325 PyDoc_STRVAR(_sre_SRE_Pattern_scanner__doc__,
326 "scanner($self, /, string, pos=0, endpos=sys.maxsize)\n"
327 "--\n"
328 "\n");
329
330 #define _SRE_SRE_PATTERN_SCANNER_METHODDEF \
331 {"scanner", (PyCFunction)_sre_SRE_Pattern_scanner, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__},
332
333 static PyObject *
334 _sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject *string,
335 Py_ssize_t pos, Py_ssize_t endpos);
336
337 static PyObject *
_sre_SRE_Pattern_scanner(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)338 _sre_SRE_Pattern_scanner(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
339 {
340 PyObject *return_value = NULL;
341 static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
342 static _PyArg_Parser _parser = {"O|nn:scanner", _keywords, 0};
343 PyObject *string;
344 Py_ssize_t pos = 0;
345 Py_ssize_t endpos = PY_SSIZE_T_MAX;
346
347 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
348 &string, &pos, &endpos)) {
349 goto exit;
350 }
351 return_value = _sre_SRE_Pattern_scanner_impl(self, string, pos, endpos);
352
353 exit:
354 return return_value;
355 }
356
357 PyDoc_STRVAR(_sre_SRE_Pattern_split__doc__,
358 "split($self, /, string, maxsplit=0)\n"
359 "--\n"
360 "\n"
361 "Split string by the occurrences of pattern.");
362
363 #define _SRE_SRE_PATTERN_SPLIT_METHODDEF \
364 {"split", (PyCFunction)_sre_SRE_Pattern_split, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__},
365
366 static PyObject *
367 _sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
368 Py_ssize_t maxsplit);
369
370 static PyObject *
_sre_SRE_Pattern_split(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)371 _sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
372 {
373 PyObject *return_value = NULL;
374 static const char * const _keywords[] = {"string", "maxsplit", NULL};
375 static _PyArg_Parser _parser = {"O|n:split", _keywords, 0};
376 PyObject *string;
377 Py_ssize_t maxsplit = 0;
378
379 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
380 &string, &maxsplit)) {
381 goto exit;
382 }
383 return_value = _sre_SRE_Pattern_split_impl(self, string, maxsplit);
384
385 exit:
386 return return_value;
387 }
388
389 PyDoc_STRVAR(_sre_SRE_Pattern_sub__doc__,
390 "sub($self, /, repl, string, count=0)\n"
391 "--\n"
392 "\n"
393 "Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.");
394
395 #define _SRE_SRE_PATTERN_SUB_METHODDEF \
396 {"sub", (PyCFunction)_sre_SRE_Pattern_sub, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_sub__doc__},
397
398 static PyObject *
399 _sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject *repl,
400 PyObject *string, Py_ssize_t count);
401
402 static PyObject *
_sre_SRE_Pattern_sub(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)403 _sre_SRE_Pattern_sub(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
404 {
405 PyObject *return_value = NULL;
406 static const char * const _keywords[] = {"repl", "string", "count", NULL};
407 static _PyArg_Parser _parser = {"OO|n:sub", _keywords, 0};
408 PyObject *repl;
409 PyObject *string;
410 Py_ssize_t count = 0;
411
412 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
413 &repl, &string, &count)) {
414 goto exit;
415 }
416 return_value = _sre_SRE_Pattern_sub_impl(self, repl, string, count);
417
418 exit:
419 return return_value;
420 }
421
422 PyDoc_STRVAR(_sre_SRE_Pattern_subn__doc__,
423 "subn($self, /, repl, string, count=0)\n"
424 "--\n"
425 "\n"
426 "Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.");
427
428 #define _SRE_SRE_PATTERN_SUBN_METHODDEF \
429 {"subn", (PyCFunction)_sre_SRE_Pattern_subn, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__},
430
431 static PyObject *
432 _sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject *repl,
433 PyObject *string, Py_ssize_t count);
434
435 static PyObject *
_sre_SRE_Pattern_subn(PatternObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)436 _sre_SRE_Pattern_subn(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
437 {
438 PyObject *return_value = NULL;
439 static const char * const _keywords[] = {"repl", "string", "count", NULL};
440 static _PyArg_Parser _parser = {"OO|n:subn", _keywords, 0};
441 PyObject *repl;
442 PyObject *string;
443 Py_ssize_t count = 0;
444
445 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
446 &repl, &string, &count)) {
447 goto exit;
448 }
449 return_value = _sre_SRE_Pattern_subn_impl(self, repl, string, count);
450
451 exit:
452 return return_value;
453 }
454
455 PyDoc_STRVAR(_sre_SRE_Pattern___copy____doc__,
456 "__copy__($self, /)\n"
457 "--\n"
458 "\n");
459
460 #define _SRE_SRE_PATTERN___COPY___METHODDEF \
461 {"__copy__", (PyCFunction)_sre_SRE_Pattern___copy__, METH_NOARGS, _sre_SRE_Pattern___copy____doc__},
462
463 static PyObject *
464 _sre_SRE_Pattern___copy___impl(PatternObject *self);
465
466 static PyObject *
_sre_SRE_Pattern___copy__(PatternObject * self,PyObject * Py_UNUSED (ignored))467 _sre_SRE_Pattern___copy__(PatternObject *self, PyObject *Py_UNUSED(ignored))
468 {
469 return _sre_SRE_Pattern___copy___impl(self);
470 }
471
472 PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__,
473 "__deepcopy__($self, memo, /)\n"
474 "--\n"
475 "\n");
476
477 #define _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF \
478 {"__deepcopy__", (PyCFunction)_sre_SRE_Pattern___deepcopy__, METH_O, _sre_SRE_Pattern___deepcopy____doc__},
479
480 PyDoc_STRVAR(_sre_compile__doc__,
481 "compile($module, /, pattern, flags, code, groups, groupindex,\n"
482 " indexgroup)\n"
483 "--\n"
484 "\n");
485
486 #define _SRE_COMPILE_METHODDEF \
487 {"compile", (PyCFunction)_sre_compile, METH_FASTCALL|METH_KEYWORDS, _sre_compile__doc__},
488
489 static PyObject *
490 _sre_compile_impl(PyObject *module, PyObject *pattern, int flags,
491 PyObject *code, Py_ssize_t groups, PyObject *groupindex,
492 PyObject *indexgroup);
493
494 static PyObject *
_sre_compile(PyObject * module,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)495 _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
496 {
497 PyObject *return_value = NULL;
498 static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL};
499 static _PyArg_Parser _parser = {"OiO!nO!O!:compile", _keywords, 0};
500 PyObject *pattern;
501 int flags;
502 PyObject *code;
503 Py_ssize_t groups;
504 PyObject *groupindex;
505 PyObject *indexgroup;
506
507 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
508 &pattern, &flags, &PyList_Type, &code, &groups, &PyDict_Type, &groupindex, &PyTuple_Type, &indexgroup)) {
509 goto exit;
510 }
511 return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup);
512
513 exit:
514 return return_value;
515 }
516
517 PyDoc_STRVAR(_sre_SRE_Match_expand__doc__,
518 "expand($self, /, template)\n"
519 "--\n"
520 "\n"
521 "Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.");
522
523 #define _SRE_SRE_MATCH_EXPAND_METHODDEF \
524 {"expand", (PyCFunction)_sre_SRE_Match_expand, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_expand__doc__},
525
526 static PyObject *
527 _sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template);
528
529 static PyObject *
_sre_SRE_Match_expand(MatchObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)530 _sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
531 {
532 PyObject *return_value = NULL;
533 static const char * const _keywords[] = {"template", NULL};
534 static _PyArg_Parser _parser = {"O:expand", _keywords, 0};
535 PyObject *template;
536
537 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
538 &template)) {
539 goto exit;
540 }
541 return_value = _sre_SRE_Match_expand_impl(self, template);
542
543 exit:
544 return return_value;
545 }
546
547 PyDoc_STRVAR(_sre_SRE_Match_groups__doc__,
548 "groups($self, /, default=None)\n"
549 "--\n"
550 "\n"
551 "Return a tuple containing all the subgroups of the match, from 1.\n"
552 "\n"
553 " default\n"
554 " Is used for groups that did not participate in the match.");
555
556 #define _SRE_SRE_MATCH_GROUPS_METHODDEF \
557 {"groups", (PyCFunction)_sre_SRE_Match_groups, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groups__doc__},
558
559 static PyObject *
560 _sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value);
561
562 static PyObject *
_sre_SRE_Match_groups(MatchObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)563 _sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
564 {
565 PyObject *return_value = NULL;
566 static const char * const _keywords[] = {"default", NULL};
567 static _PyArg_Parser _parser = {"|O:groups", _keywords, 0};
568 PyObject *default_value = Py_None;
569
570 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
571 &default_value)) {
572 goto exit;
573 }
574 return_value = _sre_SRE_Match_groups_impl(self, default_value);
575
576 exit:
577 return return_value;
578 }
579
580 PyDoc_STRVAR(_sre_SRE_Match_groupdict__doc__,
581 "groupdict($self, /, default=None)\n"
582 "--\n"
583 "\n"
584 "Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\n"
585 "\n"
586 " default\n"
587 " Is used for groups that did not participate in the match.");
588
589 #define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \
590 {"groupdict", (PyCFunction)_sre_SRE_Match_groupdict, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__},
591
592 static PyObject *
593 _sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value);
594
595 static PyObject *
_sre_SRE_Match_groupdict(MatchObject * self,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)596 _sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
597 {
598 PyObject *return_value = NULL;
599 static const char * const _keywords[] = {"default", NULL};
600 static _PyArg_Parser _parser = {"|O:groupdict", _keywords, 0};
601 PyObject *default_value = Py_None;
602
603 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
604 &default_value)) {
605 goto exit;
606 }
607 return_value = _sre_SRE_Match_groupdict_impl(self, default_value);
608
609 exit:
610 return return_value;
611 }
612
613 PyDoc_STRVAR(_sre_SRE_Match_start__doc__,
614 "start($self, group=0, /)\n"
615 "--\n"
616 "\n"
617 "Return index of the start of the substring matched by group.");
618
619 #define _SRE_SRE_MATCH_START_METHODDEF \
620 {"start", (PyCFunction)_sre_SRE_Match_start, METH_FASTCALL, _sre_SRE_Match_start__doc__},
621
622 static Py_ssize_t
623 _sre_SRE_Match_start_impl(MatchObject *self, PyObject *group);
624
625 static PyObject *
_sre_SRE_Match_start(MatchObject * self,PyObject * const * args,Py_ssize_t nargs)626 _sre_SRE_Match_start(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
627 {
628 PyObject *return_value = NULL;
629 PyObject *group = NULL;
630 Py_ssize_t _return_value;
631
632 if (!_PyArg_UnpackStack(args, nargs, "start",
633 0, 1,
634 &group)) {
635 goto exit;
636 }
637 _return_value = _sre_SRE_Match_start_impl(self, group);
638 if ((_return_value == -1) && PyErr_Occurred()) {
639 goto exit;
640 }
641 return_value = PyLong_FromSsize_t(_return_value);
642
643 exit:
644 return return_value;
645 }
646
647 PyDoc_STRVAR(_sre_SRE_Match_end__doc__,
648 "end($self, group=0, /)\n"
649 "--\n"
650 "\n"
651 "Return index of the end of the substring matched by group.");
652
653 #define _SRE_SRE_MATCH_END_METHODDEF \
654 {"end", (PyCFunction)_sre_SRE_Match_end, METH_FASTCALL, _sre_SRE_Match_end__doc__},
655
656 static Py_ssize_t
657 _sre_SRE_Match_end_impl(MatchObject *self, PyObject *group);
658
659 static PyObject *
_sre_SRE_Match_end(MatchObject * self,PyObject * const * args,Py_ssize_t nargs)660 _sre_SRE_Match_end(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
661 {
662 PyObject *return_value = NULL;
663 PyObject *group = NULL;
664 Py_ssize_t _return_value;
665
666 if (!_PyArg_UnpackStack(args, nargs, "end",
667 0, 1,
668 &group)) {
669 goto exit;
670 }
671 _return_value = _sre_SRE_Match_end_impl(self, group);
672 if ((_return_value == -1) && PyErr_Occurred()) {
673 goto exit;
674 }
675 return_value = PyLong_FromSsize_t(_return_value);
676
677 exit:
678 return return_value;
679 }
680
681 PyDoc_STRVAR(_sre_SRE_Match_span__doc__,
682 "span($self, group=0, /)\n"
683 "--\n"
684 "\n"
685 "For match object m, return the 2-tuple (m.start(group), m.end(group)).");
686
687 #define _SRE_SRE_MATCH_SPAN_METHODDEF \
688 {"span", (PyCFunction)_sre_SRE_Match_span, METH_FASTCALL, _sre_SRE_Match_span__doc__},
689
690 static PyObject *
691 _sre_SRE_Match_span_impl(MatchObject *self, PyObject *group);
692
693 static PyObject *
_sre_SRE_Match_span(MatchObject * self,PyObject * const * args,Py_ssize_t nargs)694 _sre_SRE_Match_span(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
695 {
696 PyObject *return_value = NULL;
697 PyObject *group = NULL;
698
699 if (!_PyArg_UnpackStack(args, nargs, "span",
700 0, 1,
701 &group)) {
702 goto exit;
703 }
704 return_value = _sre_SRE_Match_span_impl(self, group);
705
706 exit:
707 return return_value;
708 }
709
710 PyDoc_STRVAR(_sre_SRE_Match___copy____doc__,
711 "__copy__($self, /)\n"
712 "--\n"
713 "\n");
714
715 #define _SRE_SRE_MATCH___COPY___METHODDEF \
716 {"__copy__", (PyCFunction)_sre_SRE_Match___copy__, METH_NOARGS, _sre_SRE_Match___copy____doc__},
717
718 static PyObject *
719 _sre_SRE_Match___copy___impl(MatchObject *self);
720
721 static PyObject *
_sre_SRE_Match___copy__(MatchObject * self,PyObject * Py_UNUSED (ignored))722 _sre_SRE_Match___copy__(MatchObject *self, PyObject *Py_UNUSED(ignored))
723 {
724 return _sre_SRE_Match___copy___impl(self);
725 }
726
727 PyDoc_STRVAR(_sre_SRE_Match___deepcopy____doc__,
728 "__deepcopy__($self, memo, /)\n"
729 "--\n"
730 "\n");
731
732 #define _SRE_SRE_MATCH___DEEPCOPY___METHODDEF \
733 {"__deepcopy__", (PyCFunction)_sre_SRE_Match___deepcopy__, METH_O, _sre_SRE_Match___deepcopy____doc__},
734
735 PyDoc_STRVAR(_sre_SRE_Scanner_match__doc__,
736 "match($self, /)\n"
737 "--\n"
738 "\n");
739
740 #define _SRE_SRE_SCANNER_MATCH_METHODDEF \
741 {"match", (PyCFunction)_sre_SRE_Scanner_match, METH_NOARGS, _sre_SRE_Scanner_match__doc__},
742
743 static PyObject *
744 _sre_SRE_Scanner_match_impl(ScannerObject *self);
745
746 static PyObject *
_sre_SRE_Scanner_match(ScannerObject * self,PyObject * Py_UNUSED (ignored))747 _sre_SRE_Scanner_match(ScannerObject *self, PyObject *Py_UNUSED(ignored))
748 {
749 return _sre_SRE_Scanner_match_impl(self);
750 }
751
752 PyDoc_STRVAR(_sre_SRE_Scanner_search__doc__,
753 "search($self, /)\n"
754 "--\n"
755 "\n");
756
757 #define _SRE_SRE_SCANNER_SEARCH_METHODDEF \
758 {"search", (PyCFunction)_sre_SRE_Scanner_search, METH_NOARGS, _sre_SRE_Scanner_search__doc__},
759
760 static PyObject *
761 _sre_SRE_Scanner_search_impl(ScannerObject *self);
762
763 static PyObject *
_sre_SRE_Scanner_search(ScannerObject * self,PyObject * Py_UNUSED (ignored))764 _sre_SRE_Scanner_search(ScannerObject *self, PyObject *Py_UNUSED(ignored))
765 {
766 return _sre_SRE_Scanner_search_impl(self);
767 }
768 /*[clinic end generated code: output=4b807104b65c1e0e input=a9049054013a1b77]*/
769