def redbaron_pyfor_to_vhdl(red_node):
def modify_for(red_node):
# if for range contains call to 'range' -> skip
with suppress(Exception):
if red_node.target('call')[0].previous.value == 'range':
return red_node
frange = red_node.target
ite = red_node.iterator
red_node(ite.__class__.__name__, value=ite.value) \
.map(lambda x: x.replace(f'{frange}[_i_]'))
red_node.iterator = '_i_'
return red_node
fors = red_node.find_all('for')
for x in fors:
modify_for(x)
return red_node
评论列表
文章目录