##// END OF EJS Templates
parser: move prettyformat() function from revset module...
Yuya Nishihara -
r25253:3f1a9b44 default
parent child Browse files
Show More
@@ -93,3 +93,18 b' class parser(object):'
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
97 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 = []
108 _prettyformat(tree, 0, lines)
109 output = '\n'.join((' ' * l + s) for l, s in lines)
110 return output
@@ -2635,19 +2635,7 b' def formatspec(expr, *args):'
2635 return ret
2635 return ret
2636
2636
2637 def prettyformat(tree):
2637 def prettyformat(tree):
2638 def _prettyformat(tree, level, lines):
2638 return parser.prettyformat(tree, ('string', 'symbol'))
2639 if not isinstance(tree, tuple) or tree[0] in ('string', 'symbol'):
2640 lines.append((level, str(tree)))
2641 else:
2642 lines.append((level, '(%s' % tree[0]))
2643 for s in tree[1:]:
2644 _prettyformat(s, level + 1, lines)
2645 lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')]
2646
2647 lines = []
2648 _prettyformat(tree, 0, lines)
2649 output = '\n'.join((' '*l + s) for l, s in lines)
2650 return output
2651
2639
2652 def depth(tree):
2640 def depth(tree):
2653 if isinstance(tree, tuple):
2641 if isinstance(tree, tuple):
General Comments 0
You need to be logged in to leave comments. Login now