When inspect.getsourcelines() fails to retrieve the source code of a
block, this block is treated as a dynamically generated block and
therefore has no available source code and line number.
When PyMTL tries to extract AST from a dynamically generated AST, it
consults the .ast attribute of this function and uses this field as the
dynamically generated AST.
The user execute the dynamically generated block in the environment
of globals().update( locals() ) to capture all free variables in the
global and closure space.
The following changes are made: