| |
| class Event: |
| def __init__(self, start_mark, end_mark): |
| self.start_mark = start_mark |
| self.end_mark = end_mark |
| def __repr__(self): |
| attributes = [key for key in self.__dict__ |
| if not key.endswith('_mark')] |
| attributes.sort() |
| arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) |
| for key in attributes]) |
| return '%s(%s)' % (self.__class__.__name__, arguments) |
| |
| class NodeEvent(Event): |
| def __init__(self, anchor, start_mark, end_mark): |
| self.anchor = anchor |
| self.start_mark = start_mark |
| self.end_mark = end_mark |
| |
| class AliasEvent(NodeEvent): |
| pass |
| |
| class ScalarEvent(NodeEvent): |
| def __init__(self, anchor, tag, value, start_mark, end_mark): |
| self.anchor = anchor |
| self.tag = tag |
| self.value = value |
| self.start_mark = start_mark |
| self.end_mark = end_mark |
| |
| class CollectionEvent(NodeEvent): |
| def __init__(self, anchor, tag, start_mark, end_mark): |
| self.anchor = anchor |
| self.tag = tag |
| self.start_mark = start_mark |
| self.end_mark = end_mark |
| |
| class SequenceEvent(CollectionEvent): |
| pass |
| |
| class MappingEvent(CollectionEvent): |
| pass |
| |
| class CollectionEndEvent(Event): |
| pass |
| |
| class DocumentStartEvent(Event): |
| pass |
| |
| class DocumentEndEvent(Event): |
| pass |
| |
| class StreamStartEvent(Event): |
| pass |
| |
| class StreamEndEvent(Event): |
| pass |
| |