source: pyyaml/branches/working-on-emitter/lib/yaml/tokens.py @ 121

Revision 121, 2.3 KB checked in by xi, 9 years ago (diff)

Add a branch for working on Emitter.

Line 
1
2class Token:
3    def __init__(self, start_mark, end_mark):
4        self.start_mark = start_mark
5        self.end_mark = end_mark
6    def __repr__(self):
7        attributes = [key for key in self.__dict__
8                if not key.endswith('_mark')]
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)
13
14#class BOMToken(Token):
15#    id = '<byte order mark>'
16
17class DirectiveToken(Token):
18    id = '<directive>'
19    def __init__(self, name, value, start_mark, end_mark):
20        self.name = name
21        self.value = value
22        self.start_mark = start_mark
23        self.end_mark = end_mark
24
25class DocumentStartToken(Token):
26    id = '<document start>'
27
28class DocumentEndToken(Token):
29    id = '<document end>'
30
31class StreamStartToken(Token):
32    id = '<stream start>'
33
34class StreamEndToken(Token):
35    id = '<stream end>'
36
37class BlockSequenceStartToken(Token):
38    id = '<block sequence start>'
39
40class BlockMappingStartToken(Token):
41    id = '<block mapping start>'
42
43class BlockEndToken(Token):
44    id = '<block end>'
45
46class FlowSequenceStartToken(Token):
47    id = '['
48
49class FlowMappingStartToken(Token):
50    id = '{'
51
52class FlowSequenceEndToken(Token):
53    id = ']'
54
55class FlowMappingEndToken(Token):
56    id = '}'
57
58class KeyToken(Token):
59    id = '?'
60
61class ValueToken(Token):
62    id = ':'
63
64class BlockEntryToken(Token):
65    id = '-'
66
67class FlowEntryToken(Token):
68    id = ','
69
70class AliasToken(Token):
71    id = '<alias>'
72    def __init__(self, value, start_mark, end_mark):
73        self.value = value
74        self.start_mark = start_mark
75        self.end_mark = end_mark
76
77class AnchorToken(Token):
78    id = '<anchor>'
79    def __init__(self, value, start_mark, end_mark):
80        self.value = value
81        self.start_mark = start_mark
82        self.end_mark = end_mark
83
84class TagToken(Token):
85    id = '<tag>'
86    def __init__(self, value, start_mark, end_mark):
87        self.value = value
88        self.start_mark = start_mark
89        self.end_mark = end_mark
90
91class ScalarToken(Token):
92    id = '<scalar>'
93    def __init__(self, value, plain, start_mark, end_mark):
94        self.value = value
95        self.plain = plain
96        self.start_mark = start_mark
97        self.end_mark = end_mark
98
Note: See TracBrowser for help on using the repository browser.