�5[� � @ sR d d d g Z Gd d � d � Z Gd d � d e � Z Gd d � d e � Z d S)�Mark� YAMLError�MarkedYAMLErrorc @ s: e Z d Z d d � Z d d d d � Z d d � Z d S) r c C s: | | _ | | _ | | _ | | _ | | _ | | _ d S)N)�name�index�line�column�buffer�pointer)�selfr r r r r r � r � /error.py�__init__ s z Mark.__init__� �K c C sB | j d k r d Sd } | j } x] | d k r� | j | d d k r� | d 8} | j | | d d k r% d } | d 7} Pq% Wd } | j } xb | t | j � k r� | j | d k r� | d 7} | | j | d d k r� d } | d 8} Pq� W| j | | � } d | | | | d d | | j | t | � d S)N� � � u � z ... � � � �^)r r �len)r �indentZ max_length�head�start�tail�end�snippetr r r �get_snippet s( & + zMark.get_snippetc C sN | j � } d | j | j d | j d f } | d k rJ | d | 7} | S)Nz in "%s", line %d, column %dr z: )r r r r )r r Zwherer r r �__str__% s !zMark.__str__N)�__name__� __module__�__qualname__r r r r r r r r s c @ s e Z d Z d S)r N)r! r"