Parser is done. Add iterator interfaces for Scanner and Parser.
[pyyaml/python3.git] / lib / yaml / events.py
blob6ecb772dfd7f2ff045b041696565298ebfd4e295
2 class Event:
3 def __init__(self, start_marker, end_marker):
4 self.start_marker = start_marker
5 self.end_marker = end_marker
6 def __repr__(self):
7 attributes = [key for key in self.__dict__
8 if not key.endswith('_marker')]
9 attributes.sort()
10 arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
11 for key in attributes])
12 return '%s(%s)' % (self.__class__.__name__, arguments)
14 class NodeEvent(Event):
15 def __init__(self, anchor, tag, start_marker, end_marker):
16 self.anchor = anchor
17 self.tag = tag
18 self.start_marker = start_marker
19 self.end_marker = end_marker
21 class AliasEvent(NodeEvent):
22 def __init__(self, name, start_marker, end_marker):
23 self.name = name
24 self.start_marker = start_marker
25 self.end_marker = end_marker
27 class ScalarEvent(NodeEvent):
28 def __init__(self, anchor, tag, value, start_marker, end_marker):
29 self.anchor = anchor
30 self.tag = tag
31 self.value = value
32 self.start_marker = start_marker
33 self.end_marker = end_marker
35 class CollectionEvent(NodeEvent):
36 pass
38 class SequenceEvent(CollectionEvent):
39 pass
41 class MappingEvent(CollectionEvent):
42 pass
44 class CollectionEndEvent(Event):
45 pass
47 class StreamEndEvent(Event):
48 pass