blob: 235ab49d66c66db8d643aed84f3db2d1c34fd73a [file] [log] [blame]
class Token(object):
def __init__(self, start_mark, end_mark):
self.start_mark = start_mark
self.end_mark = end_mark
def __repr__(self):
attributes = [key for key in self.__dict__ if not key.endswith("_mark")]
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 = '<byte order mark>'
class DirectiveToken(Token):
id = "<directive>"
def __init__(self, name, value, start_mark, end_mark):
self.name = name
self.value = value
self.start_mark = start_mark
self.end_mark = end_mark
class DocumentStartToken(Token):
id = "<document start>"
class DocumentEndToken(Token):
id = "<document end>"
class StreamStartToken(Token):
id = "<stream start>"
def __init__(self, start_mark=None, end_mark=None, encoding=None):
self.start_mark = start_mark
self.end_mark = end_mark
self.encoding = encoding
class StreamEndToken(Token):
id = "<stream end>"
class BlockSequenceStartToken(Token):
id = "<block sequence start>"
class BlockMappingStartToken(Token):
id = "<block mapping start>"
class BlockEndToken(Token):
id = "<block end>"
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 = "<alias>"
def __init__(self, value, start_mark, end_mark):
self.value = value
self.start_mark = start_mark
self.end_mark = end_mark
class AnchorToken(Token):
id = "<anchor>"
def __init__(self, value, start_mark, end_mark):
self.value = value
self.start_mark = start_mark
self.end_mark = end_mark
class TagToken(Token):
id = "<tag>"
def __init__(self, value, start_mark, end_mark):
self.value = value
self.start_mark = start_mark
self.end_mark = end_mark
class ScalarToken(Token):
id = "<scalar>"
def __init__(self, value, plain, start_mark, end_mark, style=None):
self.value = value
self.plain = plain
self.start_mark = start_mark
self.end_mark = end_mark
self.style = style