def visit_For(self, forstmt):
s = ""
if isinstance(forstmt.iter, ast.Call) \
and isinstance(forstmt.iter.func, ast.Name) \
and forstmt.iter.func.id == "range":
iter_var = self.visit(forstmt.target)
if len(forstmt.iter.args) == 1:
iter_len = self.visit(forstmt.iter.args[0])
s += "for (int %s = 0; %s < %s; %s++) {\n" % (iter_var, iter_var,
iter_len, iter_var)
else:
iter_start = self.visit(forstmt.iter.args[0])
iter_len = self.visit(forstmt.iter.args[1])
s += "for (int %s = %s; %s < %s; %s++) {\n" % (iter_var, iter_start,
iter_var, iter_len,
iter_var)
s += self.visit_block(forstmt.body)
s += "}\n"
return s
else:
raise "only for var in range(a) loops supported currently"
评论列表
文章目录