1.1 --- a/common.py Sat Jun 08 17:55:32 2019 +0200
1.2 +++ b/common.py Tue Jun 11 23:14:45 2019 +0200
1.3 @@ -598,24 +598,47 @@
1.4 [compiler.ast.AssName(t2, "OP_ASSIGN")],
1.5 compiler.ast.Getattr(compiler.ast.Name(t1), "next")),
1.6
1.7 + # try:
1.8 +
1.9 compiler.ast.TryExcept(
1.10 +
1.11 + # while True:
1.12 +
1.13 compiler.ast.While(
1.14 compiler.ast.Name("True"),
1.15 compiler.ast.Stmt([
1.16 +
1.17 + # try:
1.18 +
1.19 compiler.ast.TryExcept(
1.20 +
1.21 + # <t3> = <t2>()
1.22 +
1.23 compiler.ast.Assign(
1.24 [compiler.ast.AssName(t3, "OP_ASSIGN")],
1.25 compiler.ast.CallFunc(
1.26 compiler.ast.Name(t2),
1.27 [])),
1.28 +
1.29 + # except StopIteration:
1.30 + # raise LoopExit
1.31 +
1.32 [(compiler.ast.Name("StopIteration"), None,
1.33 compiler.ast.Raise(compiler.ast.Name("LoopExit")))],
1.34 None),
1.35 +
1.36 + # <var>... = <t3>
1.37 +
1.38 compiler.ast.Assign(
1.39 [n.assign],
1.40 compiler.ast.Name(t3)),
1.41 n.body]),
1.42 None),
1.43 +
1.44 + # except LoopExit:
1.45 + # {n.else_}
1.46 + # pass
1.47 +
1.48 [(compiler.ast.Name("LoopExit"), None, n.else_ or compiler.ast.Pass())],
1.49 None)
1.50 ])