Lines Matching defs:ste
63 PySTEntryObject *ste = NULL;
69 ste = PyObject_New(PySTEntryObject, &PySTEntry_Type);
70 if (ste == NULL) {
74 ste->ste_table = st;
75 ste->ste_id = k; /* ste owns reference to k */
78 ste->ste_name = name;
80 ste->ste_symbols = NULL;
81 ste->ste_varnames = NULL;
82 ste->ste_children = NULL;
84 ste->ste_directives = NULL;
86 ste->ste_type = block;
87 ste->ste_nested = 0;
88 ste->ste_free = 0;
89 ste->ste_varargs = 0;
90 ste->ste_varkeywords = 0;
91 ste->ste_opt_lineno = 0;
92 ste->ste_opt_col_offset = 0;
93 ste->ste_lineno = lineno;
94 ste->ste_col_offset = col_offset;
95 ste->ste_end_lineno = end_lineno;
96 ste->ste_end_col_offset = end_col_offset;
101 ste->ste_nested = 1;
102 ste->ste_child_free = 0;
103 ste->ste_generator = 0;
104 ste->ste_coroutine = 0;
105 ste->ste_comprehension = NoComprehension;
106 ste->ste_returns_value = 0;
107 ste->ste_needs_class_closure = 0;
108 ste->ste_comp_iter_target = 0;
109 ste->ste_comp_iter_expr = 0;
111 ste->ste_symbols = PyDict_New();
112 ste->ste_varnames = PyList_New(0);
113 ste->ste_children = PyList_New(0);
114 if (ste->ste_symbols == NULL
115 || ste->ste_varnames == NULL
116 || ste->ste_children == NULL)
119 if (PyDict_SetItem(st->st_blocks, ste->ste_id, (PyObject *)ste) < 0)
122 return ste;
124 Py_XDECREF(ste);
129 ste_repr(PySTEntryObject *ste)
132 ste->ste_name,
133 PyLong_AS_LONG(ste->ste_id), ste->ste_lineno);
137 ste_dealloc(PySTEntryObject *ste)
139 ste->ste_table = NULL;
140 Py_XDECREF(ste->ste_id);
141 Py_XDECREF(ste->ste_name);
142 Py_XDECREF(ste->ste_symbols);
143 Py_XDECREF(ste->ste_varnames);
144 Py_XDECREF(ste->ste_children);
145 Py_XDECREF(ste->ste_directives);
146 PyObject_Free(ste);
395 _PyST_GetSymbol(PySTEntryObject *ste, PyObject *name)
397 PyObject *v = PyDict_GetItemWithError(ste->ste_symbols, name);
405 _PyST_GetScope(PySTEntryObject *ste, PyObject *name)
407 long symbol = _PyST_GetSymbol(ste, name);
412 error_at_directive(PySTEntryObject *ste, PyObject *name)
416 assert(ste->ste_directives);
417 for (i = 0; i < PyList_GET_SIZE(ste->ste_directives); i++) {
418 data = PyList_GET_ITEM(ste->ste_directives, i);
422 PyErr_RangedSyntaxLocationObject(ste->ste_table->st_filename,
501 analyze_name(PySTEntryObject *ste, PyObject *scopes, PyObject *name, long flags,
510 return error_at_directive(ste, name);
523 return error_at_directive(ste, name);
530 return error_at_directive(ste, name);
533 ste->ste_free = 1;
551 ste->ste_free = 1;
561 if (ste->ste_nested)
562 ste->ste_free = 1;
611 drop_class_free(PySTEntryObject *ste, PyObject *free)
618 ste->ste_needs_class_closure = 1;
714 /* Make final symbol table decisions for block of ste.
717 ste -- current symtable entry (input/output)
739 analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
781 if (ste->ste_type == ClassBlock) {
796 while (PyDict_Next(ste->ste_symbols, &pos, &name, &v)) {
798 if (!analyze_name(ste, scopes, name, flags,
804 if (ste->ste_type != ClassBlock) {
806 if (ste->ste_type == FunctionBlock) {
840 for (i = 0; i < PyList_GET_SIZE(ste->ste_children); ++i) {
841 PyObject *c = PyList_GET_ITEM(ste->ste_children, i);
850 ste->ste_child_free = 1;
859 if (ste->ste_type == FunctionBlock && !analyze_cells(scopes, newfree))
861 else if (ste->ste_type == ClassBlock && !drop_class_free(ste, newfree))
864 if (!update_symbols(ste->ste_symbols, scopes, bound, newfree,
865 ste->ste_type == ClassBlock))
972 PySTEntryObject *prev = NULL, *ste;
974 ste = ste_new(st, name, block, ast, lineno, col_offset, end_lineno, end_col_offset);
975 if (ste == NULL)
977 if (PyList_Append(st->st_stack, (PyObject *)ste) < 0) {
978 Py_DECREF(ste);
987 ste->ste_comp_iter_expr = prev->ste_comp_iter_expr;
990 Py_DECREF(ste);
991 st->st_cur = ste;
1004 if (PyList_Append(prev->ste_children, (PyObject *)ste) < 0) {
1023 symtable_add_def_helper(struct symtable *st, PyObject *name, int flag, struct _symtable_entry *ste,
1034 dict = ste->ste_symbols;
1053 if (ste->ste_comp_iter_target) {
1079 if (PyList_Append(ste->ste_varnames, mangled) < 0)
1483 struct _symtable_entry *ste;
1489 ste = (struct _symtable_entry *) PyList_GET_ITEM(st->st_stack, i);
1494 if (ste->ste_comprehension) {
1495 long target_in_scope = _PyST_GetSymbol(ste, target_name);
1509 if (ste->ste_type == FunctionBlock) {
1510 long target_in_scope = _PyST_GetSymbol(ste, target_name);
1521 return symtable_add_def_helper(st, target_name, DEF_LOCAL, ste, LOCATION(e));
1524 if (ste->ste_type == ModuleBlock) {
1530 return symtable_add_def_helper(st, target_name, DEF_GLOBAL, ste, LOCATION(e));
1533 if (ste->ste_type == ClassBlock) {