Ignore:
Timestamp:
04/03/06 14:20:25 (9 years ago)
Author:
xi
Message:

Add style information to events generated by Parser.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/lib/yaml/events.py

    r118 r130  
     1 
     2# Abstract classes. 
    13 
    24class Event: 
    3     def __init__(self, start_mark, end_mark): 
     5    def __init__(self, start_mark=None, end_mark=None): 
    46        self.start_mark = start_mark 
    57        self.end_mark = end_mark 
    68    def __repr__(self): 
    7         attributes = [key for key in self.__dict__ 
    8                 if not key.endswith('_mark')] 
    9         attributes.sort() 
     9        attributes = [key for key in ['anchor', 'tag', 'value'] 
     10                if hasattr(self, key)] 
    1011        arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) 
    1112                for key in attributes]) 
     
    1314 
    1415class NodeEvent(Event): 
    15     def __init__(self, anchor, start_mark, end_mark): 
     16    def __init__(self, anchor, start_mark=None, end_mark=None): 
    1617        self.anchor = anchor 
    1718        self.start_mark = start_mark 
    1819        self.end_mark = end_mark 
     20 
     21class CollectionStartEvent(NodeEvent): 
     22    def __init__(self, anchor, tag, start_mark=None, end_mark=None, 
     23            flow_style=None): 
     24        self.anchor = anchor 
     25        self.tag = tag 
     26        self.start_mark = start_mark 
     27        self.end_mark = end_mark 
     28        self.flow_style = flow_style 
     29 
     30class CollectionEndEvent(Event): 
     31    pass 
     32 
     33# Implementations. 
     34 
     35class StreamStartEvent(Event): 
     36    def __init__(self, start_mark=None, end_mark=None, 
     37            encoding=None, canonical=None, indent=None, width=None): 
     38        self.start_mark = start_mark 
     39        self.end_mark = end_mark 
     40        self.encoding = encoding 
     41        self.canonical = canonical 
     42        self.indent = indent 
     43        self.width = width 
     44 
     45class StreamEndEvent(Event): 
     46    pass 
     47 
     48class DocumentStartEvent(Event): 
     49    def __init__(self, start_mark=None, end_mark=None, 
     50            implicit=None, version=None, tags=None): 
     51        self.start_mark = start_mark 
     52        self.end_mark = end_mark 
     53        self.implicit = implicit 
     54        self.version = version 
     55        self.tags = tags 
     56 
     57class DocumentEndEvent(Event): 
     58    def __init__(self, start_mark=None, end_mark=None, 
     59            implicit=None): 
     60        self.start_mark = start_mark 
     61        self.end_mark = end_mark 
     62        self.implicit = implicit 
    1963 
    2064class AliasEvent(NodeEvent): 
     
    2266 
    2367class ScalarEvent(NodeEvent): 
    24     def __init__(self, anchor, tag, value, start_mark, end_mark): 
     68    def __init__(self, anchor, tag, value, start_mark=None, end_mark=None, 
     69            implicit=None, style=None): 
    2570        self.anchor = anchor 
    2671        self.tag = tag 
     
    2873        self.start_mark = start_mark 
    2974        self.end_mark = end_mark 
     75        self.implicit = implicit 
     76        self.style = style 
    3077 
    31 class CollectionEvent(NodeEvent): 
    32     def __init__(self, anchor, tag, start_mark, end_mark): 
    33         self.anchor = anchor 
    34         self.tag = tag 
    35         self.start_mark = start_mark 
    36         self.end_mark = end_mark 
    37  
    38 class SequenceEvent(CollectionEvent): 
     78class SequenceStartEvent(CollectionStartEvent): 
    3979    pass 
    4080 
    41 class MappingEvent(CollectionEvent): 
     81class SequenceEndEvent(CollectionEndEvent): 
    4282    pass 
    4383 
    44 class CollectionEndEvent(Event): 
     84class MappingStartEvent(CollectionStartEvent): 
    4585    pass 
    4686 
    47 class DocumentStartEvent(Event): 
     87class MappingEndEvent(CollectionEndEvent): 
    4888    pass 
    4989 
    50 class DocumentEndEvent(Event): 
    51     pass 
    52  
    53 class StreamStartEvent(Event): 
    54     pass 
    55  
    56 class StreamEndEvent(Event): 
    57     pass 
    58  
Note: See TracChangeset for help on using the changeset viewer.