class Token: def __init__(self, start_marker, end_marker): self.start_marker = start_marker self.end_marker = end_marker def __repr__(self): attributes = [key for key in self.__dict__ if not key.endswith('_marker')] attributes.sort() arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) for key in attributes]) return '%s(%s)' % (self.__class__.__name__, arguments) #class BOMToken(Token): # id = '' class DirectiveToken(Token): id = '' def __init__(self, name, value, start_marker, end_marker): self.name = name self.value = value self.start_marker = start_marker self.end_marker = end_marker class DocumentStartToken(Token): id = '' class DocumentEndToken(Token): id = '' class StreamEndToken(Token): id = '' class BlockSequenceStartToken(Token): id = '' class BlockMappingStartToken(Token): id = '' class BlockEndToken(Token): id = '' class FlowSequenceStartToken(Token): id = '[' class FlowMappingStartToken(Token): id = '{' class FlowSequenceEndToken(Token): id = ']' class FlowMappingEndToken(Token): id = '}' class KeyToken(Token): id = '?' class ValueToken(Token): id = ':' class BlockEntryToken(Token): id = '-' class FlowEntryToken(Token): id = ',' class AliasToken(Token): id = '' def __init__(self, value, start_marker, end_marker): self.value = value self.start_marker = start_marker self.end_marker = end_marker class AnchorToken(Token): id = '' def __init__(self, value, start_marker, end_marker): self.value = value self.start_marker = start_marker self.end_marker = end_marker class TagToken(Token): id = '' def __init__(self, value, start_marker, end_marker): self.value = value self.start_marker = start_marker self.end_marker = end_marker class ScalarToken(Token): id = '' def __init__(self, value, plain, start_marker, end_marker): self.value = value self.plain = plain self.start_marker = start_marker self.end_marker = end_marker