mercurial/parser.py
changeset 39050 0a2ce5b43574
parent 37084 f0b6fbea00cf
child 42232 29798c9ba5c9
equal deleted inserted replaced
39049:b53ec524420b 39050:0a2ce5b43574
    18 
    18 
    19 from __future__ import absolute_import, print_function
    19 from __future__ import absolute_import, print_function
    20 
    20 
    21 from .i18n import _
    21 from .i18n import _
    22 from . import (
    22 from . import (
    23     encoding,
       
    24     error,
    23     error,
    25     pycompat,
    24     pycompat,
    26     util,
    25     util,
    27 )
    26 )
    28 from .utils import (
    27 from .utils import (
   196         return stringutil.unescapestr(s)
   195         return stringutil.unescapestr(s)
   197     except ValueError as e:
   196     except ValueError as e:
   198         # mangle Python's exception into our format
   197         # mangle Python's exception into our format
   199         raise error.ParseError(pycompat.bytestr(e).lower())
   198         raise error.ParseError(pycompat.bytestr(e).lower())
   200 
   199 
   201 def _brepr(obj):
       
   202     if isinstance(obj, bytes):
       
   203         return b"'%s'" % stringutil.escapestr(obj)
       
   204     return encoding.strtolocal(repr(obj))
       
   205 
       
   206 def _prettyformat(tree, leafnodes, level, lines):
   200 def _prettyformat(tree, leafnodes, level, lines):
   207     if not isinstance(tree, tuple):
   201     if not isinstance(tree, tuple):
   208         lines.append((level, _brepr(tree)))
   202         lines.append((level, stringutil.pprint(tree)))
   209     elif tree[0] in leafnodes:
   203     elif tree[0] in leafnodes:
   210         rs = map(_brepr, tree[1:])
   204         rs = map(stringutil.pprint, tree[1:])
   211         lines.append((level, '(%s %s)' % (tree[0], ' '.join(rs))))
   205         lines.append((level, '(%s %s)' % (tree[0], ' '.join(rs))))
   212     else:
   206     else:
   213         lines.append((level, '(%s' % tree[0]))
   207         lines.append((level, '(%s' % tree[0]))
   214         for s in tree[1:]:
   208         for s in tree[1:]:
   215             _prettyformat(s, leafnodes, level + 1, lines)
   209             _prettyformat(s, leafnodes, level + 1, lines)