source: pyyaml/trunk/lib/yaml/tokens.py @ 137

Revision 137, 2.5 KB checked in by xi, 8 years ago (diff)

Refactor resolver.

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    def __init__(self, start_mark=None, end_mark=None,
34            encoding=None):
35        self.start_mark = start_mark
36        self.end_mark = end_mark
37        self.encoding = encoding
38
39class StreamEndToken(Token):
40    id = '<stream end>'
41
42class BlockSequenceStartToken(Token):
43    id = '<block sequence start>'
44
45class BlockMappingStartToken(Token):
46    id = '<block mapping start>'
47
48class BlockEndToken(Token):
49    id = '<block end>'
50
51class FlowSequenceStartToken(Token):
52    id = '['
53
54class FlowMappingStartToken(Token):
55    id = '{'
56
57class FlowSequenceEndToken(Token):
58    id = ']'
59
60class FlowMappingEndToken(Token):
61    id = '}'
62
63class KeyToken(Token):
64    id = '?'
65
66class ValueToken(Token):
67    id = ':'
68
69class BlockEntryToken(Token):
70    id = '-'
71
72class FlowEntryToken(Token):
73    id = ','
74
75class AliasToken(Token):
76    id = '<alias>'
77    def __init__(self, value, start_mark, end_mark):
78        self.value = value
79        self.start_mark = start_mark
80        self.end_mark = end_mark
81
82class AnchorToken(Token):
83    id = '<anchor>'
84    def __init__(self, value, start_mark, end_mark):
85        self.value = value
86        self.start_mark = start_mark
87        self.end_mark = end_mark
88
89class TagToken(Token):
90    id = '<tag>'
91    def __init__(self, value, start_mark, end_mark):
92        self.value = value
93        self.start_mark = start_mark
94        self.end_mark = end_mark
95
96class ScalarToken(Token):
97    id = '<scalar>'
98    def __init__(self, value, plain, start_mark, end_mark, style=None):
99        self.value = value
100        self.plain = plain
101        self.start_mark = start_mark
102        self.end_mark = end_mark
103        self.style = style
104
Note: See TracBrowser for help on using the repository browser.