cpython: 7f8a3eb3459e (original) (raw)
Mercurial > cpython
changeset 106413:7f8a3eb3459e
Issue #20186: Converted the symtable module to Argument Clinic. Original patch by Georg Brandl. [#20186]
Serhiy Storchaka storchaka@gmail.com | |
---|---|
date | Sat, 04 Feb 2017 12:13:20 +0200 |
parents | fc2707fb17a6 |
children | e1df73b46094 |
files | Modules/clinic/symtablemodule.c.h Modules/symtablemodule.c |
diffstat | 2 files changed, 61 insertions(+), 11 deletions(-)[+] [-] Modules/clinic/symtablemodule.c.h 39 Modules/symtablemodule.c 33 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/Modules/clinic/symtablemodule.c.h @@ -0,0 +1,39 @@ +/[clinic input] +preserve +[clinic start generated code]/ + +PyDoc_STRVAR(symtable_symtable__doc_, +"symtable($module, str, filename, startstr, /)\n" +"--\n" +"\n" +"Return symbol and scope dictionaries used internally by compiler."); + +#define _SYMTABLE_SYMTABLE_METHODDEF [](#l1.15)
+ +static PyObject * +_symtable_symtable_impl(PyObject *module, const char *str,
PyObject *filename, const char *startstr);[](#l1.20)
+ +static PyObject * +_symtable_symtable(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) +{
- if (!_PyArg_ParseStack(args, nargs, "sO&s:symtable",
&str, PyUnicode_FSDecoder, &filename, &startstr)) {[](#l1.31)
goto exit;[](#l1.32)
- }
- if (!_PyArg_NoStackKeywords("symtable", kwnames)) {
goto exit;[](#l1.36)
- }
- return_value = _symtable_symtable_impl(module, str, filename, startstr);
+} +/[clinic end generated code: output=071dee4d836e2cfd input=a9049054013a1b77]/
--- a/Modules/symtablemodule.c +++ b/Modules/symtablemodule.c @@ -4,20 +4,33 @@ #include "Python-ast.h" #include "symtable.h" +#include "clinic/symtablemodule.c.h" +/[clinic input] +module _symtable +[clinic start generated code]/ +/[clinic end generated code: output=da39a3ee5e6b4b0d input=f4685845a7100605]/ + + +/*[clinic input] +_symtable.symtable +
+ +Return symbol and scope dictionaries used internally by compiler. +[clinic start generated code]*/ + static PyObject * -symtable_symtable(PyObject *self, PyObject *args) +_symtable_symtable_impl(PyObject *module, const char *str,
PyObject *filename, const char *startstr)[](#l2.28)
+/[clinic end generated code: output=914b369c9b785956 input=6c615e84d5f408e3]/ { struct symtable *st; PyObject *t; -
- char *str;
- PyObject *filename;
- char *startstr; int start;
- if (!PyArg_ParseTuple(args, "sO&s:symtable",
&str, PyUnicode_FSDecoder, &filename, &startstr))[](#l2.40)
if (strcmp(startstr, "exec") == 0) start = Py_file_input; else if (strcmp(startstr, "eval") == 0) @@ -42,9 +55,7 @@ symtable_symtable(PyObject *self, PyObje } static PyMethodDef symtable_methods[] = {return NULL;[](#l2.41)
- {"symtable", symtable_symtable, METH_VARARGS,
PyDoc_STR("Return symbol and scope dictionaries"[](#l2.50)
" used internally by compiler.")},[](#l2.51)