Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class NAMESPACE:
- def __init__( SELF, **KWARGS ):
- SELF.__dict__.update( KWARGS )
- import ast as AST
- ROOT= AST.parse( open( "../PRIME_SIEVE.PY" ).read( ) )
- import collections as COLLECTIONS
- STACK= COLLECTIONS.deque( [ COLLECTIONS.deque( [ NAMESPACE( FIELDNAME= "ROOT", NODE= ROOT ) ] ) ] )
- while True:
- while STACK and not STACK[ - 1 ]:
- STACK.pop( )
- if not STACK:
- break
- ENTRY= STACK[ - 1 ].popleft( )
- if isinstance( ENTRY.NODE, AST.Load ) or isinstance( ENTRY.NODE, AST.Store ):
- continue
- print( " "* len( STACK )+ ENTRY.FIELDNAME+ ": "+ ENTRY.NODE.__class__.__name__ )
- ENTRY_2= COLLECTIONS.deque( )
- for FIELDNAME, NODE in AST.iter_fields( ENTRY.NODE ):
- FIELDNAME= FIELDNAME.upper( )
- if isinstance( NODE, AST.AST ):
- ENTRY_2.append( NAMESPACE( FIELDNAME= FIELDNAME, NODE= NODE ) )
- continue
- if isinstance( NODE, list ):
- ENTRY_2.extend( NAMESPACE( FIELDNAME= FIELDNAME+ F"[ { Z } ]", NODE= NODE_0 ) for Z, NODE_0 in enumerate( NODE ) )
- continue
- print( " "* ( len( STACK )+ 1 )+ FIELDNAME+ ": "+ repr( NODE )[ : 40 ] )
- STACK.append( ENTRY_2 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement