This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
scratch2-project-analyzer/python/libscratchproject/utils.py
2013-06-18 17:37:49 +00:00

23 lines
724 B
Python

def _real_extract_blocks_from_stack(stack):
for block in stack:
if isinstance(block, list) and block:
if isinstance(block[0], str): # Got a primitive
yield block
for item in _real_extract_blocks_from_stack(block[1:]):
yield item
else: # Inside a sequence
for item in _real_extract_blocks_from_stack(block):
yield item
def extract_blocks_from_script(script):
'''
Returns a flattened list of blocks used in the stack.
Includes all arguments passed to the block.
'''
blocks = []
blocknames = []
blocks = list(_real_extract_blocks_from_stack(script[2]))
return blocks