
class Node:
    def __init__(self, tag, value, start_mark, end_mark):
        self.tag = tag
        self.value = value
        self.start_mark = start_mark
        self.end_mark = end_mark
    def __repr__(self):
        value = self.value
        if isinstance(value, list):
            if len(value) == 0:
                value = '<empty>'
            elif len(value) == 1:
                value = '<1 item>'
            else:
                value = '<%d items>' % len(value)
        else:
            if len(value) > 75:
                value = repr(value[:70]+u' ... ')
            else:
                value = repr(value)
        return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)

class ScalarNode(Node):
    id = 'scalar'

class CollectionNode(Node):
    pass

class SequenceNode(CollectionNode):
    id = 'sequence'

class MappingNode(CollectionNode):
    id = 'mapping'

