B
    `M                 @   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	   T/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/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ddddddddddddddddZAddddZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdS )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   sJ   x|   r|   qW | jrF|s$dS x |D ]}t| jd |r*dS q*W 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.   x|   r|   qW | 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   s:   x|   r|   qW | jr6|  jd7  _| jdS d S )Nr   r   )r   r    r   r   pop)r   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   s:   d }x0| j D ]&}| j | }|d ks,|j|k r|j}qW |S )N)r   r   )r   Zmin_token_numberlevelkeyr	   r	   r
   r)     s    

z Scanner.next_possible_simple_keyc             C   s`   xZt | jD ]L}| j| }|j| jks6| j|j dkr|jrPtd|jd|  | j|= qW d S )Ni   zwhile scanning a simple keyzcould not find expected ':')listr   r   r   r   r   r   rY   )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 )N)r   r   r   r   remove_possible_simple_keyr   lenr   r   r   r   rY   r   )r   r   r   r\   r	   r	   r
   save_possible_simple_key'  s    z Scanner.save_possible_simple_keyc             C   s@   | j | jkr<| j| j  }|jr2td|jd|  | j| j = d S )Nzwhile scanning a simple keyzcould not find expected ':')r   r   r   r   r   rY   )r   r\   r	   r	   r
   r^   8  s    z"Scanner.remove_possible_simple_keyc             C   sD   | j r
d S x4| j|kr>|  }| j | _| jt|| qW d S )N)r   r   rY   r   r&   r   appendZ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   ra   )r   r   r	   r	   r
   
add_indent]  s
    
zScanner.add_indentc             C   s$   |   }| jt||| jd d S )N)encoding)rY   r   ra   ZStreamStartTokenrc   )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<   r^   r   r   rY   r   ra   ZStreamEndTokenr   )r   r   r	   r	   r
   r>   s  s    
zScanner.fetch_stream_endc             C   s,   |  d |   d| _| j|   d S )Nr   F)r<   r^   r   r   ra   scan_directive)r   r	   r	   r
   r@     s    
zScanner.fetch_directivec             C   s   |  t d S )N)fetch_document_indicatorZDocumentStartToken)r   r	   r	   r
   rB     s    zScanner.fetch_document_startc             C   s   |  t d S )N)re   ZDocumentEndToken)r   r	   r	   r
   rD     s    zScanner.fetch_document_endc             C   sH   |  d |   d| _|  }| d |  }| j||| d S )Nr   F   )r<   r^   r   rY   forwardr   ra   )r   
TokenClass
start_markend_markr	   r	   r
   re     s    

z Scanner.fetch_document_indicatorc             C   s   |  t d S )N)fetch_flow_collection_startZFlowSequenceStartToken)r   r	   r	   r
   rE     s    z!Scanner.fetch_flow_sequence_startc             C   s   |  t d S )N)rk   ZFlowMappingStartToken)r   r	   r	   r
   rF     s    z Scanner.fetch_flow_mapping_startc             C   sJ   |    |  jd7  _d| _|  }|   |  }| j||| d S )Nr   T)r`   r   r   rY   rg   r   ra   )r   rh   ri   rj   r	   r	   r
   rk     s    z#Scanner.fetch_flow_collection_startc             C   s   |  t d S )N)fetch_flow_collection_endZFlowSequenceEndToken)r   r	   r	   r
   rG     s    zScanner.fetch_flow_sequence_endc             C   s   |  t d S )N)rl   ZFlowMappingEndToken)r   r	   r	   r
   rH     s    zScanner.fetch_flow_mapping_endc             C   sJ   |    |  jd8  _d| _|  }|   |  }| j||| d S )Nr   F)r^   r   r   rY   rg   r   ra   )r   rh   ri   rj   r	   r	   r
   rl     s    z!Scanner.fetch_flow_collection_endc             C   s<   d| _ |   |  }|   |  }| jt|| d S )NT)r   r^   rY   rg   r   ra   ZFlowEntryToken)r   ri   rj   r	   r	   r
   rI     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   rY   rb   r   r   ra   ZBlockSequenceStartTokenr^   rg   ZBlockEntryToken)r   r   ri   rj   r	   r	   r
   rK     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   rY   rb   r   r   ra   BlockMappingStartTokenr^   rg   KeyToken)r   r   ri   rj   r	   r	   r
   rM     s    

zScanner.fetch_keyc             C   s  | j | jk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st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   rn   r   rb   r   rm   r   r   rY   ra   r^   rg   Z
ValueToken)r   r\   r   ri   rj   r	   r	   r
   rO   !  s2    


zScanner.fetch_valuec             C   s$   |    d| _| j| t d S )NF)r`   r   r   ra   scan_anchorZ
AliasToken)r   r	   r	   r
   rP   Y  s    zScanner.fetch_aliasc             C   s$   |    d| _| j| t d S )NF)r`   r   r   ra   rp   ZAnchorToken)r   r	   r	   r
   rQ   d  s    zScanner.fetch_anchorc             C   s"   |    d| _| j|   d S )NF)r`   r   r   ra   scan_tag)r   r	   r	   r
   rR   o  s    zScanner.fetch_tagc             C   s   | j dd d S )Nr7   )style)fetch_block_scalar)r   r	   r	   r
   rS   z  s    zScanner.fetch_literalc             C   s   | j dd d S )Nr8   )rr   )rs   )r   r	   r	   r
   rT   }  s    zScanner.fetch_foldedc             C   s$   d| _ |   | j| | d S )NT)r   r^   r   ra   scan_block_scalar)r   rr   r	   r	   r
   rs     s    zScanner.fetch_block_scalarc             C   s   | j dd d S )Nr9   )rr   )fetch_flow_scalar)r   r	   r	   r
   rU     s    zScanner.fetch_singlec             C   s   | j dd d S )Nr:   )rr   )ru   )r   r	   r	   r
   rV     s    zScanner.fetch_doublec             C   s$   |    d| _| j| | d S )NF)r`   r   r   ra   scan_flow_scalar)r   rr   r	   r	   r
   ru     s    zScanner.fetch_flow_scalarc             C   s"   |    d| _| j|   d S )NF)r`   r   r   ra   
scan_plain)r   r	   r	   r
   rX     s    zScanner.fetch_plainc             C   s   | j dkrdS d S )Nr   T)r   )r   r	   r	   r
   r?     s    
zScanner.check_directivec             C   s.   | j dkr*| ddkr*| ddkr*dS d S )Nr   rf   z---u     	
  T)r   prefixr=   )r   r	   r	   r
   rA     s    
zScanner.check_document_startc             C   s.   | j dkr*| ddkr*| ddkr*dS d S )Nr   rf   z...u     	
  T)r   rx   r=   )r   r	   r	   r
   rC     s    
zScanner.check_document_endc             C   s   |  ddkS )Nr   u     	
  )r=   )r   r	   r	   r
   rJ     s    zScanner.check_block_entryc             C   s   | j r
dS | ddkS d S )NTr   u     	
  )r   r=   )r   r	   r	   r
   rL     s    zScanner.check_keyc             C   s   | j r
dS | ddkS d S )NTr   u     	
  )r   r=   )r   r	   r	   r
   rN     s    zScanner.check_valuec             C   s6   |   }|dkp4|  ddko4|dkp4| j o4|dkS )Nu      	
  -?:,[]{}#&*!|>'"%@`r   u     	
  r,   z?:)r=   r   )r   rZ   r	   r	   r
   rW     s    zScanner.check_plainc             C   s   | j dkr|  dkr|   d}xb|sx|  dkr@|   q*W |  dkrhx|  dkrf|   qPW |  r~| jsd| _q$d}q$W d S )Nr   u   ﻿F #u    
  T)r   r=   rg   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"|   }x|  dkrv|   q`W | | t||||S )NZYAMLZTAGu    
  )rY   rg   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer=   scan_directive_ignored_lineZDirectiveToken)r   ri   namevaluerj   r	   r	   r
   rd     s    





zScanner.scan_directivec             C   s   d}|  |}x`d|  kr$dksZn d|  kr:dksZn d|  krPdksZn |dkrn|d	7 }|  |}qW |std
|d| |  | |}| | |   }|dkrtd
|d| |  |S )Nr   09AZazz-_r   zwhile scanning a directivez6expected alphabetic or numeric character, but found %ru     
  )r=   r   rY   rx   rg   )r   ri   lengthrZ   r   r	   r	   r
   r}   &  s$    
D

zScanner.scan_directive_namec             C   s   x|   dkr|   qW | |}|   dkrJtd|d|    |  |   | |}|   dkrtd|d|    |  ||fS )Nry   r-   zwhile scanning a directivez%expected a digit or '.', but found %ru     
  z%expected a digit or ' ', but found %r)r=   rg   scan_yaml_directive_numberr   rY   )r   ri   majorminorr	   r	   r
   r~   ;  s    





z!Scanner.scan_yaml_directive_valuec             C   s   |   }d|  krdks4n td|d| |  d}x*d|  |  krTdkrbn n
|d7 }q:W t| |}| | |S )Nr   r   zwhile scanning a directivezexpected a digit, but found %rr   r   )r=   r   rY   intrx   rg   )r   ri   rZ   r   r   r	   r	   r
   r   L  s     
z"Scanner.scan_yaml_directive_numberc             C   sP   x|   dkr|   qW | |}x|   dkr<|   q&W | |}||fS )Nry   )r=   rg   scan_tag_directive_handlescan_tag_directive_prefix)r   ri   handlerx   r	   r	   r
   r   Y  s    

z Scanner.scan_tag_directive_valuec             C   s6   |  d|}|  }|dkr2td|d| |  |S )N	directivery   zwhile scanning a directivezexpected ' ', but found %r)scan_tag_handler=   r   rY   )r   ri   r   rZ   r	   r	   r
   r   c  s    z!Scanner.scan_tag_directive_handlec             C   s6   |  d|}|  }|dkr2td|d| |  |S )Nr   u     
  zwhile scanning a directivezexpected ' ', but found %r)scan_tag_urir=   r   rY   )r   ri   r   rZ   r	   r	   r
   r   l  s    z!Scanner.scan_tag_directive_prefixc             C   sr   x|   dkr|   qW |   dkr@x|   dkr>|   q(W |   }|dkrftd|d| |  |   d S )Nry   rz   u    
  zwhile scanning a directivez0expected a comment or a line break, but found %r)r=   rg   r   rY   r{   )r   ri   rZ   r	   r	   r
   r   u  s    z#Scanner.scan_directive_ignored_linec       	      C   s
  |   }|  }|dkrd}nd}|   d}| |}x`d|  krNdksn d|  krddksn d	|  krzd
ksn |dkr|d7 }| |}q:W |std| |d| |   | |}| | |  }|dkrtd| |d| |   |   }||||S )Nr   aliasanchorr   r   r   r   r   r   r   z-_r   zwhile scanning an %sz6expected alphabetic or numeric character, but found %ru     	
  ?:,]}%@`)rY   r=   rg   r   rx   )	r   rh   ri   Z	indicatorr   r   rZ   r   rj   r	   r	   r
   rp     s2    	
D



zScanner.scan_anchorc       	      C   s&  |   }| d}|dkrdd }| d | d|}|  dkrZtd|d|   |   |   n~|dkr~d }d	}|   ndd}d
}x,|dkr|d	krd}P |d7 }| |}qW d	}|r| d|}nd	}|   | d|}|  }|dkr
td|d| |   ||f}|   }t|||S )Nr   <   tagr8   zwhile parsing a tagzexpected '>', but found %ru     	
  r6   Fu     
  Tzwhile scanning a tagzexpected ' ', but found %r)rY   r=   rg   r   r   r   ZTagToken)	r   ri   rZ   r   suffixr   Z
use_handler   rj   r	   r	   r
   rq     sH    







zScanner.scan_tagc             C   s  |dkrd}nd}g }|   }|   | |\}}| | | jd }|dk rTd}|d krv|  \}}	}
t||	}n|| d }| |\}}
d}x| j|krv| 	 dkrv|
| | 	 dk}d}x| 	|d	kr|d7 }qW || | | | |  }| |\}}
| j|krr| 	 dkrr|rf|d
krf|rf| 	 dkrf|sp|d n
|| qP qW |dk	r|| |dkr|
| td|d||
|S )Nr8   TFr    r*   z 	r   u    
  
ry   )rY   rg   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner   scan_block_scalar_indentationmaxscan_block_scalar_breaksr   r=   extendra   rx   r{   ScalarTokenjoin)r   rr   foldedchunksri   chomping	incrementZ
min_indentbreaks
max_indentrj   r   
line_breakZleading_non_spacer   r	   r	   r
   rt     sP    







zScanner.scan_block_scalarc             C   s   d }d }|   }|dkrn|dkr&d}nd}|   |   }|dkrt|}|dkrdtd|d|  |   n\|dkrt|}|dkrtd|d|  |   |   }|dkr|dkrd}nd}|   |   }|d	krtd|d
| |  ||fS )Nz+-+TF
0123456789r   zwhile scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0u     
  z9expected chomping or indentation indicators, but found %r)r=   rg   r   r   rY   )r   ri   r   r   rZ   r	   r	   r
   r     sF    


z$Scanner.scan_block_scalar_indicatorsc             C   sr   x|   dkr|   qW |   dkr@x|   dkr>|   q(W |   }|dkrftd|d| |  |   d S )Nry   rz   u    
  zwhile scanning a block scalarz0expected a comment or a line break, but found %r)r=   rg   r   rY   r{   )r   ri   rZ   r	   r	   r
   r   D  s    
z&Scanner.scan_block_scalar_ignored_linec             C   sh   g }d}|   }xL|  dkr\|  dkrB||   |   }q|   | j|kr| j}qW |||fS )Nr   u    
  ry   )rY   r=   ra   r{   rg   r   )r   r   r   rj   r	   r	   r
   r   R  s    


z%Scanner.scan_block_scalar_indentationc             C   s   g }|   }x"| j|k r.|  dkr.|   qW xJ|  dkrz||   |   }x"| j|k rv|  dkrv|   qVW q2W ||fS )Nry   u
   
  )rY   r   r=   rg   ra   r{   )r   r   r   rj   r	   r	   r
   r   a  s    z Scanner.scan_block_scalar_breaksc             C   s   |dkrd}nd}g }|   }|  }|   || || x4|  |krt|| || || || qBW |   |   }td|d|||S )Nr:   TFr   )rY   r=   rg   r   scan_flow_scalar_non_spacesscan_flow_scalar_spacesr   r   )r   rr   doubler   ri   quoterj   r	   r	   r
   rv   n  s    zScanner.scan_flow_scalarr*   	r   ry   r:   \/       u    u    )r   r   btr   nvfrery   r:   r   r   N_LPr         )xuUc          	   C   s  g }xd}x|  |dkr&|d7 }qW |rF|| | | | |   }|s~|dkr~|  ddkr~|d | d q|r|dks|s|dkr|| |   q|r|dkr|   |   }|| jkr|| j|  |   n|| jkrz| j| }|   xBt|D ]6}|  |dkrtd	|d
||  |f |  qW t	| |d}|t
| | | n<|dkr|   || || ntd	|d| |  q|S qW d S )Nr   u   '"\  	
  r   r9   r   z"\r   0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz?expected escape sequence of %d hexdecimal numbers, but found %r   u
   
  z!found unknown escape character %r)r=   ra   rx   rg   ESCAPE_REPLACEMENTSESCAPE_CODESranger   rY   r   chrr{   r   scan_flow_scalar_breaks)r   r   ri   r   r   rZ   kcoder	   r	   r
   r     sL    







z#Scanner.scan_flow_scalar_non_spacesc       	      C   s   g }d}x|  |dkr"|d7 }q
W | |}| | |   }|dkr\td|d|  nT|dkr|  }| ||}|dkr|| n|s|d	 || n
|| |S )
Nr   z 	r   r*   zwhile scanning a quoted scalarzfound unexpected end of streamu
   
  r   ry   )	r=   rx   rg   r   rY   r{   r   ra   r   )	r   r   ri   r   r   whitespacesrZ   r   r   r	   r	   r
   r     s(    



zScanner.scan_flow_scalar_spacesc             C   s   g }xx|  d}|dks |dkr@| ddkr@td|d|  x|  dkrX|   qBW |  dkrv||   q|S qW d S )	Nrf   z---z...u     	
  zwhile scanning a quoted scalarz#found unexpected document separatorz 	u
   
  )rx   r=   r   rY   rg   ra   r{   )r   r   ri   r   rx   r	   r	   r
   r     s    
zScanner.scan_flow_scalar_breaksc             C   s  g }|   }|}| jd }g }xd}|  dkr2P xV| |}|dks||dkrn| |d d| jrfdnd ks|| jr~|dkr~P |d7 }q4W |dkrP d	| _|| || | | | |   }| 	||}|r|  dks| js | j
|k r P q W td|d
||S )Nr   r   rz   u     	
  r4   z,[]{}r   z,?[]{}FT)rY   r   r=   r   r   r   ra   rx   rg   scan_plain_spacesr   r   r   )r   r   ri   rj   r   spacesr   rZ   r	   r	   r
   rw     s<    



zScanner.scan_plainc       
      C   s.  g }d}x|  |dkr"|d7 }q
W | |}| | |   }|dkr|  }d| _| d}|dksr|dkr|  dd	krd S g }	x`|   d
kr|   dkr|   q|	|   | d}|dks|dkr|  dd	krd S qW |dkr|| n|	s|d ||	 n|r*|| |S )Nr   ry   r   u
   
  Trf   z---z...u     	
  u    
  r   )r=   rx   rg   r{   r   ra   r   )
r   r   ri   r   r   r   rZ   r   rx   r   r	   r	   r
   r     s>    







zScanner.scan_plain_spacesc             C   s   |   }|dkr*td| |d| |  d}|  |}|dkrx`d|  krVdksn d|  krld	ksn d
|  krdksn |dkr|d7 }|  |}qBW |dkr| | td| |d| |  |d7 }| |}| | |S )Nr6   zwhile scanning a %szexpected '!', but found %rr   ry   r   r   r   r   r   r   z-_)r=   r   rY   rg   rx   )r   r   ri   rZ   r   r   r	   r	   r
   r   D  s&    

D



zScanner.scan_tag_handlec             C   s   g }d}|  |}xd|  kr(dks^n d|  kr>dks^n d|  krTdks^n |dkr|d	kr|| | | | d}|| || n|d
7 }|  |}qW |r|| | | | d}|st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=   ra   rx   rg   scan_uri_escapesr   rY   r   )r   r   ri   r   r   rZ   r	   r	   r
   r   \  s(    
D


zScanner.scan_tag_uric          
   C   s   g }|   }xx|  dkr|   x>tdD ]2}| |dkr,td| |d| | |   q,W |t| dd | d qW yt|	d}W n8 t
k
r } ztd| |t||W d d }~X Y nX |S )Nr+   r   r   zwhile scanning a %szBexpected URI escape sequence of 2 hexdecimal numbers, but found %rr   zutf-8)rY   r=   rg   r   r   ra   r   rx   bytesdecodeUnicodeDecodeErrorstr)r   r   ri   codesr   r   r   excr	   r	   r
   r   u  s     
(zScanner.scan_uri_escapesc             C   sN   |   }|dkr6| ddkr*| d n|   dS |dkrJ|   |S dS )Nu   
r   z
r   u     r   )r=   rx   rg   )r   rZ   r	   r	   r
   r{     s    	zScanner.scan_line_breakN)Lr   r   r   r   r$   r%   r'   r   r    r)   r(   r`   r^   r<   rb   r   r>   r@   rB   rD   re   rE   rF   rk   rG   rH   rl   rI   rK   rM   rO   rP   rQ   rR   rS   rT   rs   rU   rV   ru   rX   r?   rA   rC   rJ   rL   rN   rW   r;   rd   r}   r~   r   r   r   r   r   rp   rq   rt   r   r   r   r   rv   r   r   r   r   r   rw   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
   