Commit dd97fbb2 authored by Eli Bendersky's avatar Eli Bendersky

Issue #9904: fix and clarify some comments + fix indentation in symtable code

parent 19299835
...@@ -23,10 +23,13 @@ struct symtable { ...@@ -23,10 +23,13 @@ struct symtable {
PyObject *st_blocks; /* dict: map AST node addresses PyObject *st_blocks; /* dict: map AST node addresses
* to symbol table entries */ * to symbol table entries */
PyObject *st_stack; /* list: stack of namespace info */ PyObject *st_stack; /* list: stack of namespace info */
PyObject *st_global; /* borrowed ref to st_top->st_symbols */ PyObject *st_global; /* borrowed ref to st_top->ste_symbols */
int st_nblocks; /* number of blocks used */ int st_nblocks; /* number of blocks used. kept for
consistency with the corresponding
compiler structure */
PyObject *st_private; /* name of current class or NULL */ PyObject *st_private; /* name of current class or NULL */
PyFutureFeatures *st_future; /* module's future features */ PyFutureFeatures *st_future; /* module's future features that affect
the symbol table */
}; };
typedef struct _symtable_entry { typedef struct _symtable_entry {
...@@ -34,7 +37,7 @@ typedef struct _symtable_entry { ...@@ -34,7 +37,7 @@ typedef struct _symtable_entry {
PyObject *ste_id; /* int: key in ste_table->st_blocks */ PyObject *ste_id; /* int: key in ste_table->st_blocks */
PyObject *ste_symbols; /* dict: variable names to flags */ PyObject *ste_symbols; /* dict: variable names to flags */
PyObject *ste_name; /* string: name of current block */ PyObject *ste_name; /* string: name of current block */
PyObject *ste_varnames; /* list of variable names */ PyObject *ste_varnames; /* list of function parameters */
PyObject *ste_children; /* list of child blocks */ PyObject *ste_children; /* list of child blocks */
_Py_block_ty ste_type; /* module, class, or function */ _Py_block_ty ste_type; /* module, class, or function */
int ste_unoptimized; /* false if namespace is optimized */ int ste_unoptimized; /* false if namespace is optimized */
......
...@@ -750,7 +750,7 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free, ...@@ -750,7 +750,7 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
goto error; goto error;
} }
/* Recursively call analyze_block() on each child block. /* Recursively call analyze_child_block() on each child block.
newbound, newglobal now contain the names visible in newbound, newglobal now contain the names visible in
nested blocks. The free variables in the children will nested blocks. The free variables in the children will
...@@ -1205,9 +1205,9 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s) ...@@ -1205,9 +1205,9 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
case Raise_kind: case Raise_kind:
if (s->v.Raise.exc) { if (s->v.Raise.exc) {
VISIT(st, expr, s->v.Raise.exc); VISIT(st, expr, s->v.Raise.exc);
if (s->v.Raise.cause) { if (s->v.Raise.cause) {
VISIT(st, expr, s->v.Raise.cause); VISIT(st, expr, s->v.Raise.cause);
} }
} }
break; break;
case TryExcept_kind: case TryExcept_kind:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment