'Diagnostic method for listing out the contents of a ParseResults.
Accepts an optional indent argument so that this string can be embedded
in a nested display of other data.'

def dump(self, indent='', depth=0):

    out = []
    out.append((indent + _ustr(self.asList())))
    keys = self.items()
    keys.sort()
    for (k, v) in keys:
        if out:
            out.append('\n')
        out.append(('%s%s-    %s:    ' % (indent, ('        ' * depth), k)))
        if isinstance(v, ParseResults):
            if v.keys():
                out.append(v.dump(indent, (depth + 1)))
            else:
                out.append(_ustr(v))
        else:
            out.append(_ustr(v))
    return ''.join(out)
