parser: extract closure of prettyformat() to a top-level function
There was no capture until I added 'leafnodes' argument.
--- a/mercurial/parser.py Sun Apr 26 22:20:03 2015 +0900
+++ b/mercurial/parser.py Wed May 06 10:17:41 2015 +0900
@@ -94,17 +94,17 @@
return self.eval(t)
return t
+def _prettyformat(tree, leafnodes, level, lines):
+ if not isinstance(tree, tuple) or tree[0] in leafnodes:
+ lines.append((level, str(tree)))
+ else:
+ lines.append((level, '(%s' % tree[0]))
+ for s in tree[1:]:
+ _prettyformat(s, leafnodes, level + 1, lines)
+ lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')]
+
def prettyformat(tree, leafnodes):
- def _prettyformat(tree, level, lines):
- if not isinstance(tree, tuple) or tree[0] in leafnodes:
- lines.append((level, str(tree)))
- else:
- lines.append((level, '(%s' % tree[0]))
- for s in tree[1:]:
- _prettyformat(s, level + 1, lines)
- lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')]
-
lines = []
- _prettyformat(tree, 0, lines)
+ _prettyformat(tree, leafnodes, 0, lines)
output = '\n'.join((' ' * l + s) for l, s in lines)
return output