diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2010-06-30 08:32:11 +0000 |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2010-06-30 08:32:11 +0000 |
commit | 8d6d760422b56f69e57d009fa26eabcc49935afe (patch) | |
tree | 275339a9878be15fb2902fc54774f7226ec8a9d3 /Demo/parser/unparse.py | |
parent | 719e4e3ba5a04bec52a04414383781ece8df1ef3 (diff) | |
download | cpython-git-8d6d760422b56f69e57d009fa26eabcc49935afe.tar.gz |
Collapse else: if: ... into elif:
Diffstat (limited to 'Demo/parser/unparse.py')
-rw-r--r-- | Demo/parser/unparse.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Demo/parser/unparse.py b/Demo/parser/unparse.py index 6e4ef6348e..03dd9e14e1 100644 --- a/Demo/parser/unparse.py +++ b/Demo/parser/unparse.py @@ -256,9 +256,18 @@ class Unparser: self.fill("if ") self.dispatch(t.test) self.enter() - # XXX elif? self.dispatch(t.body) self.leave() + # collapse nested ifs into equivalent elifs. + while (t.orelse and len(t.orelse) == 1 and + isinstance(t.orelse[0], ast.If)): + t = t.orelse[0] + self.fill("elif ") + self.dispatch(t.test) + self.enter() + self.dispatch(t.body) + self.leave() + # final else if t.orelse: self.fill("else") self.enter() |