def _translate_zip(self, targets, sequences):
sequence_nodes = []
sketchup = {'type': '', 'iterators': {'type': 'for_iterator_zip', 'iterators': []}}
env = {}
for s, z in zip(sequences, targets):
sequence_nodes.append(self._translate_node(s))
self._confirm_iterable(sequence_nodes[-1]['pseudo_type'])
if not isinstance(z, ast.Name):
raise PseudoPythonTypeCheckError('index is not a name %s' % type(z).__name__)
z_type = self._element_type(sequence_nodes[-1]['pseudo_type'])
sketchup['iterators']['iterators'].append({
'type': 'local',
'pseudo_type': z_type,
'name': z.id
})
env[z.id] = z_type
sketchup['sequences'] = {'type': 'for_sequence_zip', 'sequences': sequence_nodes}
return sketchup, env
评论列表
文章目录