summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/qd
diff options
context:
space:
mode:
authorcvs2svn <tools@python.org>2004-11-30 01:49:18 (GMT)
committercvs2svn <tools@python.org>2004-11-30 01:49:18 (GMT)
commit3a833f748fc629d25a5af3faeef91447f4709804 (patch)
tree451665c08833339048e673ded263048977d72a62 /Mac/Modules/qd
parente9d719b691b9a95d117e2fa2bf0331e99bfcfab2 (diff)
downloadcpython-2.4.zip
cpython-2.4.tar.gz
cpython-2.4.tar.bz2
This commit was manufactured by cvs2svn to create tag 'r24'.v2.4
Diffstat (limited to 'Mac/Modules/qd')
0 files changed, 0 insertions, 0 deletions
"hl ppc"> #include "code.h" #include "Python-ast.h" #include "symtable.h" static PyObject * symtable_symtable(PyObject *self, PyObject *args) { struct symtable *st; PyObject *t; char *str; char *filename; char *startstr; int start; if (!PyArg_ParseTuple(args, "sss:symtable", &str, &filename, &startstr)) return NULL; if (strcmp(startstr, "exec") == 0) start = Py_file_input; else if (strcmp(startstr, "eval") == 0) start = Py_eval_input; else if (strcmp(startstr, "single") == 0) start = Py_single_input; else { PyErr_SetString(PyExc_ValueError, "symtable() arg 3 must be 'exec' or 'eval' or 'single'"); return NULL; } st = Py_SymtableString(str, filename, start); if (st == NULL) return NULL; t = (PyObject *)st->st_top; Py_INCREF(t); PyMem_Free((void *)st->st_future); PySymtable_Free(st); return t; } static PyMethodDef symtable_methods[] = { {"symtable", symtable_symtable, METH_VARARGS, PyDoc_STR("Return symbol and scope dictionaries" " used internally by compiler.")}, {NULL, NULL} /* sentinel */ }; static struct PyModuleDef symtablemodule = { PyModuleDef_HEAD_INIT, "_symtable", NULL, -1, symtable_methods, NULL, NULL, NULL, NULL }; PyMODINIT_FUNC PyInit__symtable(void) { PyObject *m; if (PyType_Ready(&PySTEntry_Type) < 0) return NULL; m = PyModule_Create(&symtablemodule); if (m == NULL) return NULL; PyModule_AddIntConstant(m, "USE", USE); PyModule_AddIntConstant(m, "DEF_GLOBAL", DEF_GLOBAL); PyModule_AddIntConstant(m, "DEF_LOCAL", DEF_LOCAL); PyModule_AddIntConstant(m, "DEF_PARAM", DEF_PARAM); PyModule_AddIntConstant(m, "DEF_FREE", DEF_FREE); PyModule_AddIntConstant(m, "DEF_FREE_CLASS", DEF_FREE_CLASS); PyModule_AddIntConstant(m, "DEF_IMPORT", DEF_IMPORT); PyModule_AddIntConstant(m, "DEF_BOUND", DEF_BOUND); PyModule_AddIntConstant(m, "TYPE_FUNCTION", FunctionBlock); PyModule_AddIntConstant(m, "TYPE_CLASS", ClassBlock); PyModule_AddIntConstant(m, "TYPE_MODULE", ModuleBlock); PyModule_AddIntConstant(m, "OPT_IMPORT_STAR", OPT_IMPORT_STAR); PyModule_AddIntConstant(m, "OPT_TOPLEVEL", OPT_TOPLEVEL); PyModule_AddIntConstant(m, "LOCAL", LOCAL); PyModule_AddIntConstant(m, "GLOBAL_EXPLICIT", GLOBAL_EXPLICIT); PyModule_AddIntConstant(m, "GLOBAL_IMPLICIT", GLOBAL_IMPLICIT); PyModule_AddIntConstant(m, "FREE", FREE); PyModule_AddIntConstant(m, "CELL", CELL); PyModule_AddIntConstant(m, "SCOPE_OFF", SCOPE_OFFSET); PyModule_AddIntConstant(m, "SCOPE_MASK", SCOPE_MASK); if (PyErr_Occurred()) { Py_DECREF(m); m = 0; } return m; }