Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/parser.py @ 25254:060bdfef2517
parser: extract closure of prettyformat() to a top-level function
There was no capture until I added 'leafnodes' argument.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 06 May 2015 10:17:41 +0900 |
parents | 3f1a9b44b8c2 |
children | c87b05925054 |
comparison
equal
deleted
inserted
replaced
25253:3f1a9b44b8c2 | 25254:060bdfef2517 |
---|---|
92 t = self.parse(message) | 92 t = self.parse(message) |
93 if self._methods: | 93 if self._methods: |
94 return self.eval(t) | 94 return self.eval(t) |
95 return t | 95 return t |
96 | 96 |
97 def _prettyformat(tree, leafnodes, level, lines): | |
98 if not isinstance(tree, tuple) or tree[0] in leafnodes: | |
99 lines.append((level, str(tree))) | |
100 else: | |
101 lines.append((level, '(%s' % tree[0])) | |
102 for s in tree[1:]: | |
103 _prettyformat(s, leafnodes, level + 1, lines) | |
104 lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')] | |
105 | |
97 def prettyformat(tree, leafnodes): | 106 def prettyformat(tree, leafnodes): |
98 def _prettyformat(tree, level, lines): | |
99 if not isinstance(tree, tuple) or tree[0] in leafnodes: | |
100 lines.append((level, str(tree))) | |
101 else: | |
102 lines.append((level, '(%s' % tree[0])) | |
103 for s in tree[1:]: | |
104 _prettyformat(s, level + 1, lines) | |
105 lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')] | |
106 | |
107 lines = [] | 107 lines = [] |
108 _prettyformat(tree, 0, lines) | 108 _prettyformat(tree, leafnodes, 0, lines) |
109 output = '\n'.join((' ' * l + s) for l, s in lines) | 109 output = '\n'.join((' ' * l + s) for l, s in lines) |
110 return output | 110 return output |