def _translate_if(self, test, orelse, body, location, base=True):
test_node = self._testable(self._translate_node(test))
block = self._translate_node(body)
#block [self._translate_node(child) for child in body]
if orelse and len(orelse) == 1 and isinstance(orelse[0], ast.If):
otherwise = self._translate_if(orelse[0].test, orelse[0].orelse, orelse[0].body, location, False)
elif orelse:
otherwise = {
'type': 'else_statement',
'block': self._translate_node(orelse),
#block [self._translate_node(node) for node in orelse],
'pseudo_type': 'Void'
}
else:
otherwise = None
return {
'type': 'if_statement' if base else 'elseif_statement',
'test': test_node,
'block': block,
'pseudo_type': 'Void',
'otherwise': otherwise
}
评论列表
文章目录