a
    Ä~´gOÈ  ã                   @   sL   d dgZ ddlmZ ddlT G dd„ deƒZG dd„ dƒZG dd „ d ƒZd	S )
ÚScannerÚScannerErroré   )ÚMarkedYAMLError)Ú*c                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   úQ/var/www/html/emsaiapi.evdpl.com/venv/lib/python3.9/site-packages/yaml/scanner.pyr       s   c                   @   s   e Zd Zdd„ ZdS )Ú	SimpleKeyc                 C   s(   || _ || _|| _|| _|| _|| _d S ©N)Útoken_numberÚrequiredÚindexÚlineÚcolumnÚmark)Úselfr   r   r   r   r   r   r	   r	   r
   Ú__init__&   s    zSimpleKey.__init__N)r   r   r   r   r	   r	   r	   r
   r   #   s   r   c                   @   sz  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWdX„ Z.dYdZ„ Z/d[d\„ Z0d]d^„ Z1d_d`„ Z2dadb„ Z3dcdd„ Z4dedf„ Z5dgdh„ Z6didj„ Z7dkdl„ Z8dmdn„ Z9dodp„ Z:dqdr„ Z;dsdt„ Z<dudv„ Z=dwdx„ Z>dydz„ Z?d{d|„ Z@d}d~dd€d€dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒddŽœZAddd‘d’œZBd“d”„ ZCd•d–„ ZDd—d˜„ ZEd™dš„ ZFd›dœ„ ZGddž„ ZHdŸd „ ZId¡d¢„ ZJd£d¤„ ZKd¥S )¦r   c                 C   s<   d| _ d| _g | _|  ¡  d| _d| _g | _d| _i | _dS )zInitialize the scanner.Fé    éÿÿÿÿTN)	ÚdoneÚ
flow_levelÚtokensÚfetch_stream_startÚtokens_takenÚindentÚindentsÚallow_simple_keyÚpossible_simple_keys©r   r	   r	   r
   r   0   s    zScanner.__init__c                 G   sD   |   ¡ r|  ¡  q | jr@|s dS |D ]}t| jd |ƒr$ dS q$dS )NTr   F)Úneed_more_tokensÚfetch_more_tokensr   Ú
isinstance)r   ÚchoicesÚchoicer	   r	   r
   Úcheck_tokenq   s    
zScanner.check_tokenc                 C   s*   |   ¡ r|  ¡  q | jr"| jd S d S d S )Nr   )r!   r"   r   r    r	   r	   r
   Ú
peek_token}   s
    

zScanner.peek_tokenc                 C   s6   |   ¡ r|  ¡  q | jr2|  jd7  _| j d¡S d S )Nr   r   )r!   r"   r   r   Úpopr    r	   r	   r
   Ú	get_token‡   s
    
zScanner.get_tokenc                 C   s2   | j r
dS | jsdS |  ¡  |  ¡ | jkr.dS d S )NFT)r   r   Ústale_possible_simple_keysÚnext_possible_simple_keyr   r    r	   r	   r
   r!   ‘   s    zScanner.need_more_tokensc                 C   sÒ  |   ¡  |  ¡  |  | j¡ |  ¡ }|dkr4|  ¡ S |dkrL|  ¡ rL|  ¡ S |dkrd|  ¡ rd|  	¡ S |dkr||  
¡ r||  ¡ S |dkrŒ|  ¡ S |dkrœ|  ¡ S |dkr¬|  ¡ S |dkr¼|  ¡ S |d	krÌ|  ¡ S |dkrä|  ¡ rä|  ¡ S |d
krü|  ¡ rü|  ¡ S |dkr|  ¡ r|  ¡ S |dkr*|  ¡ S |dkr<|  ¡ S |dkrN|  ¡ S |dkrh| jsh|  ¡ S |dkr‚| js‚|  ¡ S |dkr”|  ¡ S |dkr¦|  ¡ S |  ¡ r¸|   ¡ S t!dd d| |  "¡ ƒ‚d S )Nú ú%Ú-Ú.ú[Ú{ú]Ú}ú,Ú?ú:r   ú&ú!Ú|Ú>ú'ú"z!while scanning for the next tokenz.found character %r that cannot start any token)#Úscan_to_next_tokenr*   Úunwind_indentr   ÚpeekÚfetch_stream_endÚcheck_directiveÚfetch_directiveÚcheck_document_startÚfetch_document_startÚcheck_document_endÚfetch_document_endÚfetch_flow_sequence_startÚfetch_flow_mapping_startÚfetch_flow_sequence_endÚfetch_flow_mapping_endÚfetch_flow_entryÚcheck_block_entryÚfetch_block_entryÚ	check_keyÚ	fetch_keyÚcheck_valueÚfetch_valueÚfetch_aliasÚfetch_anchorÚ	fetch_tagr   Úfetch_literalÚfetch_foldedÚfetch_singleÚfetch_doubleÚcheck_plainÚfetch_plainr   Úget_mark©r   Úchr	   r	   r
   r"   œ   s`    	





þzScanner.fetch_more_tokensc                 C   s6   d }| j D ]&}| j | }|d u s*|j|k r
|j}q
|S r   )r   r   )r   Zmin_token_numberÚlevelÚkeyr	   r	   r
   r+     s    

z Scanner.next_possible_simple_keyc                 C   s\   t | jƒD ]L}| j| }|j| jks4| j|j dkr
|jrNtd|jd|  ¡ ƒ‚| j|= q
d S )Ni   úwhile scanning a simple keyúcould not find expected ':')Úlistr   r   r   r   r   r   r[   )r   r^   r_   r	   r	   r
   r*     s    
ÿÿz"Scanner.stale_possible_simple_keysc                 C   s^   | j  o| j| jk}| jrZ|  ¡  | jt| jƒ }t||| j	| j
| j|  ¡ ƒ}|| j| j < d S r   )r   r   r   r   Úremove_possible_simple_keyr   Úlenr   r   r   r   r[   r   )r   r   r   r_   r	   r	   r
   Úsave_possible_simple_key'  s    ÿz Scanner.save_possible_simple_keyc                 C   s@   | j | jv r<| j| j  }|jr2td|jd|  ¡ ƒ‚| j| j = d S )Nr`   ra   )r   r   r   r   r   r[   )r   r_   r	   r	   r
   rc   8  s    ÿz"Scanner.remove_possible_simple_keyc                 C   s@   | j r
d S | j|kr<|  ¡ }| j ¡ | _| j t||ƒ¡ q
d S r   )r   r   r[   r   r(   r   ÚappendÚBlockEndToken)r   r   r   r	   r	   r
   r>   E  s    
zScanner.unwind_indentc                 C   s&   | j |k r"| j | j ¡ || _ dS dS )NTF)r   r   rf   )r   r   r	   r	   r
   Ú
add_indent]  s
    
zScanner.add_indentc                 C   s$   |   ¡ }| j t||| jd¡ d S )N)Úencoding)r[   r   rf   ÚStreamStartTokenri   ©r   r   r	   r	   r
   r   g  s    ÿzScanner.fetch_stream_startc                 C   sB   |   d¡ |  ¡  d| _i | _|  ¡ }| j t||ƒ¡ d| _d S )Nr   FT)	r>   rc   r   r   r[   r   rf   ÚStreamEndTokenr   rk   r	   r	   r
   r@   s  s    
zScanner.fetch_stream_endc                 C   s,   |   d¡ |  ¡  d| _| j |  ¡ ¡ d S )Nr   F)r>   rc   r   r   rf   Úscan_directiver    r	   r	   r
   rB   †  s    
zScanner.fetch_directivec                 C   s   |   t¡ d S r   )Úfetch_document_indicatorÚDocumentStartTokenr    r	   r	   r
   rD   ’  s    zScanner.fetch_document_startc                 C   s   |   t¡ d S r   )rn   ÚDocumentEndTokenr    r	   r	   r
   rF   •  s    zScanner.fetch_document_endc                 C   sH   |   d¡ |  ¡  d| _|  ¡ }|  d¡ |  ¡ }| j |||ƒ¡ d S )Nr   Fé   )r>   rc   r   r[   Úforwardr   rf   ©r   Ú
TokenClassÚ
start_markÚend_markr	   r	   r
   rn   ˜  s    

z Scanner.fetch_document_indicatorc                 C   s   |   t¡ d S r   )Úfetch_flow_collection_startÚFlowSequenceStartTokenr    r	   r	   r
   rG   ¨  s    z!Scanner.fetch_flow_sequence_startc                 C   s   |   t¡ d S r   )rw   ÚFlowMappingStartTokenr    r	   r	   r
   rH   «  s    z Scanner.fetch_flow_mapping_startc                 C   sJ   |   ¡  |  jd7  _d| _|  ¡ }|  ¡  |  ¡ }| j |||ƒ¡ d S )Nr   T)re   r   r   r[   rr   r   rf   rs   r	   r	   r
   rw   ®  s    z#Scanner.fetch_flow_collection_startc                 C   s   |   t¡ d S r   )Úfetch_flow_collection_endÚFlowSequenceEndTokenr    r	   r	   r
   rI   ¿  s    zScanner.fetch_flow_sequence_endc                 C   s   |   t¡ d S r   )rz   ÚFlowMappingEndTokenr    r	   r	   r
   rJ   Â  s    zScanner.fetch_flow_mapping_endc                 C   sJ   |   ¡  |  jd8  _d| _|  ¡ }|  ¡  |  ¡ }| j |||ƒ¡ d S )Nr   F)rc   r   r   r[   rr   r   rf   rs   r	   r	   r
   rz   Å  s    z!Scanner.fetch_flow_collection_endc                 C   s<   d| _ |  ¡  |  ¡ }|  ¡  |  ¡ }| j t||ƒ¡ d S ©NT)r   rc   r[   rr   r   rf   ÚFlowEntryToken)r   ru   rv   r	   r	   r
   rK   Ö  s    zScanner.fetch_flow_entryc                 C   s‚   | j sF| jstd d d|  ¡ ƒ‚|  | j¡rF|  ¡ }| j t||ƒ¡ n d| _|  	¡  |  ¡ }|  
¡  |  ¡ }| j t||ƒ¡ d S )Nz%sequence entries are not allowed hereT)r   r   r   r[   rh   r   r   rf   ÚBlockSequenceStartTokenrc   rr   ÚBlockEntryToken©r   r   ru   rv   r	   r	   r
   rM   ä  s    þzScanner.fetch_block_entryc                 C   s„   | j sD| jstd d d|  ¡ ƒ‚|  | j¡rD|  ¡ }| j t||ƒ¡ | j  | _|  	¡  |  ¡ }|  
¡  |  ¡ }| j t||ƒ¡ d S )Nz!mapping keys are not allowed here)r   r   r   r[   rh   r   r   rf   ÚBlockMappingStartTokenrc   rr   ÚKeyTokenr   r	   r	   r
   rO     s    þ
zScanner.fetch_keyc                 C   s  | j | jv r|| j| j  }| j| j = | j |j| j t|j|jƒ¡ | j st|  |j	¡rt| j |j| j t
|j|jƒ¡ d| _n\| j sš| jsštd d d|  ¡ ƒ‚| j sÆ|  | j	¡rÆ|  ¡ }| j t
||ƒ¡ | j  | _|  ¡  |  ¡ }|  ¡  |  ¡ }| j t||ƒ¡ d S )NFz#mapping values are not allowed here)r   r   r   Úinsertr   r   rƒ   r   rh   r   r‚   r   r   r[   rf   rc   rr   Ú
ValueToken)r   r_   r   ru   rv   r	   r	   r
   rQ   !  s8    
ÿÿþ
zScanner.fetch_valuec                 C   s$   |   ¡  d| _| j |  t¡¡ d S ©NF)re   r   r   rf   Úscan_anchorÚ
AliasTokenr    r	   r	   r
   rR   Y  s    zScanner.fetch_aliasc                 C   s$   |   ¡  d| _| j |  t¡¡ d S r†   )re   r   r   rf   r‡   ÚAnchorTokenr    r	   r	   r
   rS   d  s    zScanner.fetch_anchorc                 C   s"   |   ¡  d| _| j |  ¡ ¡ d S r†   )re   r   r   rf   Úscan_tagr    r	   r	   r
   rT   o  s    zScanner.fetch_tagc                 C   s   | j dd d S )Nr9   ©Ústyle©Úfetch_block_scalarr    r	   r	   r
   rU   z  s    zScanner.fetch_literalc                 C   s   | j dd d S )Nr:   r‹   r   r    r	   r	   r
   rV   }  s    zScanner.fetch_foldedc                 C   s$   d| _ |  ¡  | j |  |¡¡ d S r}   )r   rc   r   rf   Úscan_block_scalar©r   rŒ   r	   r	   r
   rŽ   €  s    zScanner.fetch_block_scalarc                 C   s   | j dd d S )Nr;   r‹   ©Úfetch_flow_scalarr    r	   r	   r
   rW   ‹  s    zScanner.fetch_singlec                 C   s   | j dd d S )Nr<   r‹   r‘   r    r	   r	   r
   rX   Ž  s    zScanner.fetch_doublec                 C   s$   |   ¡  d| _| j |  |¡¡ d S r†   )re   r   r   rf   Úscan_flow_scalarr   r	   r	   r
   r’   ‘  s    zScanner.fetch_flow_scalarc                 C   s"   |   ¡  d| _| j |  ¡ ¡ d S r†   )re   r   r   rf   Ú
scan_plainr    r	   r	   r
   rZ   œ  s    zScanner.fetch_plainc                 C   s   | j dkrdS d S )Nr   T)r   r    r	   r	   r
   rA   «  s    
zScanner.check_directivec                 C   s.   | j dkr*|  d¡dkr*|  d¡dv r*dS d S )Nr   rq   ú---õ     	
Â…â€¨â€©T©r   Úprefixr?   r    r	   r	   r
   rC   ²  s
    
ÿzScanner.check_document_startc                 C   s.   | j dkr*|  d¡dkr*|  d¡dv r*dS d S )Nr   rq   ú...r–   Tr—   r    r	   r	   r
   rE   º  s
    
ÿzScanner.check_document_endc                 C   s   |   d¡dv S )Nr   r–   )r?   r    r	   r	   r
   rL   Â  s    zScanner.check_block_entryc                 C   s   | j r
dS |  d¡dv S d S ©NTr   r–   ©r   r?   r    r	   r	   r
   rN   Ç  s    zScanner.check_keyc                 C   s   | j r
dS |  d¡dv S d S rš   r›   r    r	   r	   r
   rP   Ñ  s    zScanner.check_valuec                 C   s6   |   ¡ }|dvp4|   d¡dvo4|dkp4| j o4|dv S )Nu      	
Â…â€¨â€©-?:,[]{}#&*!|>'"%@`r   r–   r.   z?:)r?   r   r\   r	   r	   r
   rY   Û  s
    þzScanner.check_plainc                 C   s~   | j dkr|  ¡ dkr|  ¡  d}|sz|  ¡ dkr<|  ¡  q&|  ¡ dkr^|  ¡ dvr^|  ¡  qH|  ¡ rt| jsxd| _q"d}q"d S )Nr   u   ï»¿FÚ ú#õ    
Â…â€¨â€©T)r   r?   rr   Úscan_line_breakr   r   )r   Úfoundr	   r	   r
   r=   ð  s    

zScanner.scan_to_next_tokenc                 C   sŒ   |   ¡ }|  ¡  |  |¡}d }|dkr:|  |¡}|   ¡ }n:|dkrV|  |¡}|   ¡ }n|   ¡ }|  ¡ dvrt|  ¡  q^|  |¡ t||||ƒS )NZYAMLZTAGrž   )r[   rr   Úscan_directive_nameÚscan_yaml_directive_valueÚscan_tag_directive_valuer?   Úscan_directive_ignored_lineÚDirectiveToken)r   ru   ÚnameÚvaluerv   r	   r	   r
   rm     s    






zScanner.scan_directivec                 C   sÄ   d}|   |¡}d|  kr"dksXn d|  kr8dksXn d|  krNdksXn |dv rl|d	7 }|   |¡}q|s†td
|d| |  ¡ ƒ‚|  |¡}|  |¡ |   ¡ }|dvrÀtd
|d| |  ¡ ƒ‚|S )Nr   Ú0Ú9ÚAÚZÚaÚzú-_r   úwhile scanning a directiveú6expected alphabetic or numeric character, but found %rõ     
Â…â€¨â€©)r?   r   r[   r˜   rr   )r   ru   Úlengthr]   r§   r	   r	   r
   r¡   &  s2    
Bÿÿþ

ÿþzScanner.scan_directive_namec                 C   s†   |   ¡ dkr|  ¡  q |  |¡}|   ¡ dkrFtd|d|   ¡  |  ¡ ƒ‚|  ¡  |  |¡}|   ¡ dvr~td|d|   ¡  |  ¡ ƒ‚||fS )Nrœ   r/   r¯   z%expected a digit or '.', but found %rr±   z%expected a digit or ' ', but found %r)r?   rr   Úscan_yaml_directive_numberr   r[   )r   ru   ÚmajorÚminorr	   r	   r
   r¢   ;  s     


þ

þz!Scanner.scan_yaml_directive_valuec                 C   s|   |   ¡ }d|  krdks4n td|d| |  ¡ ƒ‚d}d|   |¡  krRdkr`n n
|d7 }q8t|  |¡ƒ}|  |¡ |S )Nr¨   r©   r¯   zexpected a digit, but found %rr   r   )r?   r   r[   Úintr˜   rr   )r   ru   r]   r²   r§   r	   r	   r
   r³   L  s    ÿ

z"Scanner.scan_yaml_directive_numberc                 C   sH   |   ¡ dkr|  ¡  q |  |¡}|   ¡ dkr6|  ¡  q |  |¡}||fS )Nrœ   )r?   rr   Úscan_tag_directive_handleÚscan_tag_directive_prefix)r   ru   Úhandler˜   r	   r	   r
   r£   Y  s    



z Scanner.scan_tag_directive_valuec                 C   s6   |   d|¡}|  ¡ }|dkr2td|d| |  ¡ ƒ‚|S )NÚ	directiverœ   r¯   úexpected ' ', but found %r)Úscan_tag_handler?   r   r[   ©r   ru   r§   r]   r	   r	   r
   r·   c  s    ÿz!Scanner.scan_tag_directive_handlec                 C   s6   |   d|¡}|  ¡ }|dvr2td|d| |  ¡ ƒ‚|S )Nrº   r±   r¯   r»   )Úscan_tag_urir?   r   r[   r½   r	   r	   r
   r¸   l  s    ÿz!Scanner.scan_tag_directive_prefixc                 C   sj   |   ¡ dkr|  ¡  q |   ¡ dkr8|   ¡ dvr8|  ¡  q"|   ¡ }|dvr^td|d| |  ¡ ƒ‚|  ¡  d S )Nrœ   r   rž   r¯   ú0expected a comment or a line break, but found %r©r?   rr   r   r[   rŸ   ©r   ru   r]   r	   r	   r
   r¤   u  s    

ÿþz#Scanner.scan_directive_ignored_linec           	      C   s  |   ¡ }|  ¡ }|dkrd}nd}|  ¡  d}|  |¡}d|  krLdks‚n d|  krbdks‚n d	|  krxd
ks‚n |dv r–|d7 }|  |¡}q8|s´td| |d| |   ¡ ƒ‚|  |¡}|  |¡ |  ¡ }|dvròtd| |d| |   ¡ ƒ‚|   ¡ }||||ƒS )Nr   ÚaliasÚanchorr   r¨   r©   rª   r«   r¬   r­   r®   r   zwhile scanning an %sr°   u     	
Â…â€¨â€©?:,]}%@`)r[   r?   rr   r   r˜   )	r   rt   ru   Z	indicatorr¦   r²   r]   r§   rv   r	   r	   r
   r‡   ƒ  s@    	
Bÿ
ÿþ


ÿþzScanner.scan_anchorc           	      C   s"  |   ¡ }|  d¡}|dkrdd }|  d¡ |  d|¡}|  ¡ dkrZtd|d|  ¡  |   ¡ ƒ‚|  ¡  nz|dv r~d }d	}|  ¡  n`d}d
}|dvr°|d	krœd}q°|d7 }|  |¡}q†d	}|rÆ|  d|¡}nd	}|  ¡  |  d|¡}|  ¡ }|dvrtd|d| |   ¡ ƒ‚||f}|   ¡ }t|||ƒS )Nr   Ú<é   Útagr:   zwhile parsing a tagzexpected '>', but found %rr–   r8   Fr±   Tzwhile scanning a tagr»   )r[   r?   rr   r¾   r   r¼   ÚTagToken)	r   ru   r]   r¹   Úsuffixr²   Z
use_handler§   rv   r	   r	   r
   rŠ   §  sL    


þ


ÿzScanner.scan_tagc                 C   s°  |dkrd}nd}g }|   ¡ }|  ¡  |  |¡\}}|  |¡ | jd }|dk rTd}|d u rv|  ¡ \}}	}
t||	ƒ}n|| d }|  |¡\}}
d}| j|krr|  	¡ dkrr| 
|¡ |  	¡ dv}d}|  	|¡d	vrà|d7 }qÈ| |  |¡¡ |  |¡ |  ¡ }|  |¡\}}
| j|krr|  	¡ dkrr|r`|d
kr`|r`|  	¡ dvr`|sj| d¡ n
| |¡ q”qrq”|dur†| |¡ |du rš| 
|¡ td |¡d||
|ƒS )Nr:   TFr   Ú r,   ú 	r   rž   Ú
rœ   )r[   rr   Úscan_block_scalar_indicatorsÚscan_block_scalar_ignored_liner   Úscan_block_scalar_indentationÚmaxÚscan_block_scalar_breaksr   r?   Úextendrf   r˜   rŸ   ÚScalarTokenÚjoin)r   rŒ   ÚfoldedÚchunksru   ÚchompingÚ	incrementZ
min_indentÚbreaksÚ
max_indentrv   r   Ú
line_breakZleading_non_spacer²   r	   r	   r
   r   Ð  sX    




ÿ
ÿ



ÿzScanner.scan_block_scalarc                 C   sø   d }d }|   ¡ }|dv rn|dkr&d}nd}|  ¡  |   ¡ }|dv rÊt|ƒ}|dkrdtd|d|  ¡ ƒ‚|  ¡  n\|dv rÊt|ƒ}|dkr˜td|d|  ¡ ƒ‚|  ¡  |   ¡ }|dv rÊ|dkr¾d}nd}|  ¡  |   ¡ }|d	vrðtd|d
| |  ¡ ƒ‚||fS )Nz+-ú+TFÚ
0123456789r   úwhile scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r±   z9expected chomping or indentation indicators, but found %r)r?   rr   r¶   r   r[   )r   ru   rÖ   r×   r]   r	   r	   r
   rÌ     sP    þ
þÿþz$Scanner.scan_block_scalar_indicatorsc                 C   sj   |   ¡ dkr|  ¡  q |   ¡ dkr8|   ¡ dvr8|  ¡  q"|   ¡ }|dvr^td|d| |  ¡ ƒ‚|  ¡  d S )Nrœ   r   rž   rÝ   r¿   rÀ   rÁ   r	   r	   r
   rÍ   D  s    

þz&Scanner.scan_block_scalar_ignored_linec                 C   sd   g }d}|   ¡ }|  ¡ dv rZ|  ¡ dkr@| |  ¡ ¡ |   ¡ }q|  ¡  | j|kr| j}q|||fS )Nr   õ    
Â…â€¨â€©rœ   )r[   r?   rf   rŸ   rr   r   )r   rÕ   rÙ   rv   r	   r	   r
   rÎ   R  s    

z%Scanner.scan_block_scalar_indentationc                 C   sx   g }|   ¡ }| j|k r,|  ¡ dkr,|  ¡  q|  ¡ dv rp| |  ¡ ¡ |   ¡ }| j|k r,|  ¡ dkr,|  ¡  qNq,||fS )Nrœ   õ
   
Â…â€¨â€©)r[   r   r?   rr   rf   rŸ   )r   r   rÕ   rv   r	   r	   r
   rÐ   a  s    
z Scanner.scan_block_scalar_breaksc                 C   s˜   |dkrd}nd}g }|   ¡ }|  ¡ }|  ¡  | |  ||¡¡ |  ¡ |krr| |  ||¡¡ | |  ||¡¡ q@|  ¡  |   ¡ }td |¡d|||ƒS )Nr<   TFrÉ   )r[   r?   rr   rÑ   Úscan_flow_scalar_non_spacesÚscan_flow_scalar_spacesrÒ   rÓ   )r   rŒ   ÚdoublerÕ   ru   Úquoterv   r	   r	   r
   r“   n  s     ÿzScanner.scan_flow_scalarr,   úúú	rË   úúúúrœ   r<   ú\ú/õ   Â…õ   Â u   â€¨u   â€©)r¨   r¬   ÚbÚtræ   ÚnÚvÚfÚrÚerœ   r<   rë   rì   ÚNÚ_ÚLÚPrÅ   é   é   )ÚxÚuÚUc              	   C   s¶  g }d}|   |¡dvr |d7 }q|r>| |  |¡¡ |  |¡ |   ¡ }|sv|dkrv|   d¡dkrv| d¡ |  d¡ q|r‚|dksŽ|s¢|dv r¢| |¡ |  ¡  q|r¬|dkr¬|  ¡  |   ¡ }|| jv ræ| | j| ¡ |  ¡  nÄ|| jv rn| j| }|  ¡  t|ƒD ]6}|   |¡dvrtd	|d
||   |¡f |  ¡ ƒ‚qt	|  |¡dƒ}| t
|ƒ¡ |  |¡ n<|dv r”|  ¡  | |  ||¡¡ ntd	|d| |  ¡ ƒ‚q|S qd S )Nr   u   '"\  	
Â…â€¨â€©r   r;   rÅ   z"\rë   Ú0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz@expected escape sequence of %d hexadecimal numbers, but found %ré   rß   z!found unknown escape character %r)r?   rf   r˜   rr   ÚESCAPE_REPLACEMENTSÚESCAPE_CODESÚranger   r[   r¶   ÚchrrŸ   rÑ   Úscan_flow_scalar_breaks)r   râ   ru   rÕ   r²   r]   ÚkÚcoder	   r	   r
   rà   ¡  sR    







ÿþ
ÿz#Scanner.scan_flow_scalar_non_spacesc           	      C   s°   g }d}|   |¡dv r |d7 }q|  |¡}|  |¡ |   ¡ }|dkrXtd|d|  ¡ ƒ‚nT|dv r¢|  ¡ }|  ||¡}|dkrˆ| |¡ n|s–| d	¡ | |¡ n
| |¡ |S )
Nr   rÊ   r   r,   úwhile scanning a quoted scalarzfound unexpected end of streamrß   rË   rœ   )	r?   r˜   rr   r   r[   rŸ   r  rf   rÑ   )	r   râ   ru   rÕ   r²   Úwhitespacesr]   rÚ   rØ   r	   r	   r
   rá   Ì  s*    


ÿ

zScanner.scan_flow_scalar_spacesc                 C   sz   g }|   d¡}|dks|dkr>|  d¡dv r>td|d|  ¡ ƒ‚|  ¡ dv rT|  ¡  q>|  ¡ dv rp| |  ¡ ¡ q|S qd S )	Nrq   r•   r™   r–   r  z#found unexpected document separatorrÊ   rß   )r˜   r?   r   r[   rr   rf   rŸ   )r   râ   ru   rÕ   r˜   r	   r	   r
   r  ä  s    
ÿÿ
zScanner.scan_flow_scalar_breaksc                 C   s  g }|   ¡ }|}| jd }g }d}|  ¡ dkr0qð|  |¡}|dv s„|dkrj|  |d ¡d| jrbdnd v s„| jrz|dv rzq„|d7 }q0|dkrŽqðd	| _| |¡ | |  |¡¡ |  |¡ |   ¡ }|  	||¡}|rð|  ¡ dksð| js| j
|k rqðqtd |¡d
||ƒS )Nr   r   r   r–   r6   z,[]{}rÉ   z,?[]{}FT)r[   r   r?   r   r   rÑ   rf   r˜   rr   Úscan_plain_spacesr   rÒ   rÓ   )r   rÕ   ru   rv   r   Úspacesr²   r]   r	   r	   r
   r”   ö  sJ    

ÿÿþüü


ÿÿzScanner.scan_plainc           
      C   s&  g }d}|   |¡dv r |d7 }q|  |¡}|  |¡ |   ¡ }|dv r|  ¡ }d| _|  d¡}|dksn|dkr€|   d¡d	v r€d S g }	|   ¡ d
v râ|   ¡ dkr¦|  ¡  q„|	 |  ¡ ¡ |  d¡}|dksÎ|dkr„|   d¡d	v r„d S q„|dkrö| |¡ n|	s| d¡ | |	¡ n|r"| |¡ |S )Nr   rœ   r   rß   Trq   r•   r™   r–   rÞ   rË   )r?   r˜   rr   rŸ   r   rf   rÑ   )
r   r   ru   rÕ   r²   r	  r]   rÚ   r˜   rØ   r	   r	   r
   r
    sB    




ÿ

ÿ

zScanner.scan_plain_spacesc                 C   sê   |   ¡ }|dkr*td| |d| |  ¡ ƒ‚d}|   |¡}|dkrÒd|  krTdksŠn d|  krjd	ksŠn d
|  kr€dksŠn |dv rž|d7 }|   |¡}q@|dkrÊ|  |¡ td| |d| |  ¡ ƒ‚|d7 }|  |¡}|  |¡ |S )Nr8   úwhile scanning a %szexpected '!', but found %rr   rœ   r¨   r©   rª   r«   r¬   r­   r®   )r?   r   r[   rr   r˜   )r   r¦   ru   r]   r²   r§   r	   r	   r
   r¼   D  s,    
ÿ
Bÿ

ÿ

zScanner.scan_tag_handlec                 C   sô   g }d}|   |¡}d|  kr&dks\n d|  kr<dks\n d|  krRdks\n |dv rª|d	kr–| |  |¡¡ |  |¡ d}| |  ||¡¡ n|d
7 }|   |¡}q|rÌ| |  |¡¡ |  |¡ d}|sêtd| |d| |  ¡ ƒ‚d |¡S )Nr   r¨   r©   rª   r«   r¬   r­   z-;/?:@&=+$,_.!~*'()[]%r-   r   zwhile parsing a %szexpected URI, but found %rrÉ   )r?   rf   r˜   rr   Úscan_uri_escapesr   r[   rÓ   )r   r¦   ru   rÕ   r²   r]   r	   r	   r
   r¾   \  s,    
Bÿ


ÿzScanner.scan_tag_uric              
   C   sÐ   g }|   ¡ }|  ¡ dkr~|  ¡  tdƒD ]2}|  |¡dvr(td| |d|  |¡ |   ¡ ƒ‚q(| t|  d¡dƒ¡ |  d¡ qzt|ƒ 	d¡}W n: t
yÊ } z"td| |t|ƒ|ƒ‚W Y d }~n
d }~0 0 |S )Nr-   rÅ   rÿ   r  zCexpected URI escape sequence of 2 hexadecimal numbers, but found %rr   zutf-8)r[   r?   rr   r  r   rf   r¶   r˜   ÚbytesÚdecodeÚUnicodeDecodeErrorÚstr)r   r¦   ru   Úcodesr   r  r§   Úexcr	   r	   r
   r  u  s&    
ÿþ,zScanner.scan_uri_escapesc                 C   sN   |   ¡ }|dv r6|  d¡dkr*|  d¡ n|  ¡  dS |dv rJ|  ¡  |S dS )Nu   
Â…rÅ   z
rË   u   â€¨â€©rÉ   )r?   r˜   rr   r\   r	   r	   r
   rŸ   ˆ  s    	zScanner.scan_line_breakN)Lr   r   r   r   r&   r'   r)   r!   r"   r+   r*   re   rc   r>   rh   r   r@   rB   rD   rF   rn   rG   rH   rw   rI   rJ   rz   rK   rM   rO   rQ   rR   rS   rT   rU   rV   rŽ   rW   rX   r’   rZ   rA   rC   rE   rL   rN   rP   rY   r=   rm   r¡   r¢   r³   r£   r·   r¸   r¤   r‡   rŠ   r   rÌ   rÍ   rÎ   rÐ   r“   r  r  rà   rá   r  r”   r
  r¼   r¾   r  rŸ   r	   r	   r	   r
   r   .   s¼   A

l
!8

#
		$)L(îý+)%N)Ú__all__Úerrorr   r   r   r   r   r	   r	   r	   r
   Ú<module>   s
   