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