@classmethod
def node_tooltip(cls, node):
    """Return text for a tooltip for the node."""
    d = cls.node_dict(node)
    d.update(index=node.parent_index() if node.parent else '-', parent=cls.
        node_repr(node.parent) if node.parent else '-')
    if node.is_token:
        if not d['group']:
            d['group'] = '-'
    template = cls.TOKEN_TOOLTIP if node.is_token else cls.CONTEXT_TOOLTIP
    return template.format(**d).strip()
