There are no base classes.
There are no implemented interfaces.
There are no attributes in this class.
Process list of free vars from nested scope.
Returns a list of names that are either 1) declared global in the parent or 2) undefined in a top-level parent. In either case, the nested scope should treat them as globals.
Return scope of name.
The scope of a name could be LOCAL, GLOBAL, FREE, or CELL.
Force name to be global in scope.
Some child of the current node had a free reference to name. When the child was processed, it was labelled a free variable. Now that all its enclosing scope have been processed, the name is known to be a global or builtin. So walk back down the child chain and set the name to be global rather than free.
Be careful to stop if a child does not think the name is free.