7 symtable_symtable(PyObject
*self
, PyObject
*args
)
17 if (!PyArg_ParseTuple(args
, "sss:symtable", &str
, &filename
,
20 if (strcmp(startstr
, "exec") == 0)
21 start
= Py_file_input
;
22 else if (strcmp(startstr
, "eval") == 0)
23 start
= Py_eval_input
;
24 else if (strcmp(startstr
, "single") == 0)
25 start
= Py_single_input
;
27 PyErr_SetString(PyExc_ValueError
,
28 "symtable() arg 3 must be 'exec' or 'eval' or 'single'");
31 st
= Py_SymtableString(str
, filename
, start
);
34 t
= Py_BuildValue("O", st
->st_symbols
);
39 static PyMethodDef symtable_methods
[] = {
40 {"symtable", symtable_symtable
, METH_VARARGS
,
41 "Return symbol and scope dictionaries used internally by compiler."},
42 {NULL
, NULL
} /* sentinel */
50 m
= Py_InitModule("_symtable", symtable_methods
);
51 PyModule_AddIntConstant(m
, "USE", USE
);
52 PyModule_AddIntConstant(m
, "DEF_GLOBAL", DEF_GLOBAL
);
53 PyModule_AddIntConstant(m
, "DEF_LOCAL", DEF_LOCAL
);
54 PyModule_AddIntConstant(m
, "DEF_PARAM", DEF_PARAM
);
55 PyModule_AddIntConstant(m
, "DEF_STAR", DEF_STAR
);
56 PyModule_AddIntConstant(m
, "DEF_DOUBLESTAR", DEF_DOUBLESTAR
);
57 PyModule_AddIntConstant(m
, "DEF_INTUPLE", DEF_INTUPLE
);
58 PyModule_AddIntConstant(m
, "DEF_FREE", DEF_FREE
);
59 PyModule_AddIntConstant(m
, "DEF_FREE_GLOBAL", DEF_FREE_GLOBAL
);
60 PyModule_AddIntConstant(m
, "DEF_FREE_CLASS", DEF_FREE_CLASS
);
61 PyModule_AddIntConstant(m
, "DEF_IMPORT", DEF_IMPORT
);
62 PyModule_AddIntConstant(m
, "DEF_BOUND", DEF_BOUND
);
64 PyModule_AddIntConstant(m
, "TYPE_FUNCTION", TYPE_FUNCTION
);
65 PyModule_AddIntConstant(m
, "TYPE_CLASS", TYPE_CLASS
);
66 PyModule_AddIntConstant(m
, "TYPE_MODULE", TYPE_MODULE
);
68 PyModule_AddIntConstant(m
, "OPT_IMPORT_STAR", OPT_IMPORT_STAR
);
69 PyModule_AddIntConstant(m
, "OPT_EXEC", OPT_EXEC
);
70 PyModule_AddIntConstant(m
, "OPT_BARE_EXEC", OPT_BARE_EXEC
);
72 PyModule_AddIntConstant(m
, "LOCAL", LOCAL
);
73 PyModule_AddIntConstant(m
, "GLOBAL_EXPLICIT", GLOBAL_EXPLICIT
);
74 PyModule_AddIntConstant(m
, "GLOBAL_IMPLICIT", GLOBAL_IMPLICIT
);
75 PyModule_AddIntConstant(m
, "FREE", FREE
);
76 PyModule_AddIntConstant(m
, "CELL", CELL
);