509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
<zÃW—c  ã               @   sN   d dgZ ddlmZ ddlT ddlT ddlT G dd„ deƒZG dd „ d ƒZdS )ÚParserÚParserErroré   )ÚMarkedYAMLError)Ú*c               @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   ú/usr/lib64/python3.6/parser.pyr   E   s   c               @   s  e Zd Zd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dDd!d"„Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ ZdEd1d2„Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ ZdFd;d<„Zd=d>„ Z d?d@„ Z!dAdB„ Z"dCS )Gr   ú!ztag:yaml.org,2002:)r   z!!c             C   s*   d | _ d | _i | _g | _g | _| j| _d S )N)Úcurrent_eventÚyaml_versionÚtag_handlesÚstatesÚmarksÚparse_stream_startÚstate)Úselfr	   r	   r
   Ú__init__Q   s    zParser.__init__c             C   s   g | _ d | _d S )N)r   r   )r   r	   r	   r
   ÚdisposeY   s    zParser.disposec             G   sN   | j d kr| jr| jƒ | _ | j d k	rJ|s,dS x|D ]}t| j |ƒr2dS q2W dS )NTF)r   r   Ú
isinstance)r   ÚchoicesZchoicer	   r	   r
   Úcheck_event^   s    



zParser.check_eventc             C   s    | j d kr| jr| jƒ | _ | j S )N)r   r   )r   r	   r	   r
   Ú
peek_eventk   s    

zParser.peek_eventc             C   s*   | j d kr| jr| jƒ | _ | j }d | _ |S )N)r   r   )r   Úvaluer	   r	   r
   Ú	get_eventr   s    

zParser.get_eventc             C   s(   | j ƒ }t|j|j|jd�}| j| _|S )N)Úencoding)Ú	get_tokenZStreamStartEventÚ
start_markÚend_markr   Úparse_implicit_document_startr   )r   ÚtokenÚeventr	   r	   r
   r      s
    

zParser.parse_stream_startc             C   s\   | j tttƒsP| j| _| jƒ }|j }}t||dd�}| j	j
| jƒ | j| _|S | jƒ S d S )NF)Úexplicit)Úcheck_tokenÚDirectiveTokenÚDocumentStartTokenÚStreamEndTokenÚDEFAULT_TAGSr   Ú
peek_tokenr   ÚDocumentStartEventr   ÚappendÚparse_document_endÚparse_block_noder   Úparse_document_start)r   r!   r   r   r"   r	   r	   r
   r    ‹   s    
z$Parser.parse_implicit_document_startc             C   sÔ   x| j tƒr| jƒ  qW | j tƒsœ| jƒ }|j}| jƒ \}}| j tƒsdtd d d| jƒ j	 | jƒ jƒ‚| jƒ }|j
}t||d||d�}| jj| jƒ | j| _n4| jƒ }t|j|j
ƒ}| j s¾t‚| j sÊt‚d | _|S )Nz)expected '<document start>', but found %rT)r#   ÚversionÚtags)r$   ÚDocumentEndTokenr   r'   r)   r   Úprocess_directivesr&   r   Úidr   r*   r   r+   r,   Úparse_document_contentr   ZStreamEndEventÚAssertionErrorr   )r   r!   r   r/   r0   r   r"   r	   r	   r
   r.   Ÿ   s.    



zParser.parse_document_startc             C   sL   | j ƒ }|j }}d}| jtƒr2| jƒ }|j}d}t|||d�}| j| _|S )NFT)r#   )	r)   r   r$   r1   r   r   ZDocumentEndEventr.   r   )r   r!   r   r   r#   r"   r	   r	   r
   r,   ¾   s    

zParser.parse_document_endc             C   s<   | j ttttƒr0| j| jƒ jƒ}| jj	ƒ | _
|S | jƒ S d S )N)r$   r%   r&   r1   r'   Úprocess_empty_scalarr)   r   r   Úpopr   r-   )r   r"   r	   r	   r
   r4   Ð   s    
zParser.parse_document_contentc             C   s   d | _ i | _x¢| jtƒr®| jƒ }|jdkrp| j d k	rDtd d d|jƒ‚|j\}}|dkrftd d d|jƒ‚|j| _ q|jdkr|j\}}|| jkr¢td d d| |jƒ‚|| j|< qW | jrÈ| j | jj	ƒ f}n
| j d f}x(| j
D ]}|| jkrÚ| j
| | j|< qÚW |S )NZYAMLzfound duplicate YAML directiver   z:found incompatible YAML document (version 1.* is required)ZTAGzduplicate tag handle %r)r   r   r$   r%   r   Únamer   r   r   Úcopyr(   )r   r!   ÚmajorÚminorÚhandleÚprefixr   Úkeyr	   r	   r
   r2   Ù   s8    









zParser.process_directivesc             C   s   | j dd�S )NT)Úblock)Ú
parse_node)r   r	   r	   r
   r-     s    zParser.parse_block_nodec             C   s   | j ƒ S )N)r@   )r   r	   r	   r
   Úparse_flow_node  s    zParser.parse_flow_nodec             C   s   | j ddd�S )NT)r?   Úindentless_sequence)r@   )r   r	   r	   r
   Ú'parse_block_node_or_indentless_sequence  s    z.Parser.parse_block_node_or_indentless_sequenceFc          	   C   sR  | j tƒr4| jƒ }t|j|j|jƒ}| jjƒ | _	�nd }d }d  } }}	| j t
ƒr’| jƒ }|j}|j}|j}| j tƒrØ| jƒ }|j}	|j}|j}nF| j tƒrØ| jƒ }|j }}	|j}|j}| j t
ƒrØ| jƒ }|j}|j}|d k	�r&|\}
}|
d k	�r"|
| jk�rtd|d|
 |	ƒ‚| j|
 | }n|}|d k�r>| jƒ j }}d }|d k�pR|dk}|�rŒ| j tƒ�rŒ| jƒ j}t|||||ƒ}| j| _	�nÂ| j tƒ�r| jƒ }|j}|j�r¸|d k�sÂ|dk�rÈd}n|d k�rØd}nd}t||||j|||jd�}| jjƒ | _	�nH| j tƒ�r<| jƒ j}t|||||dd�}| j| _	�n| j tƒ�rp| jƒ j}t|||||dd�}| j| _	nÞ|�rª| j tƒ�rª| jƒ j}t|||||dd�}| j| _	n¤|�rä| j tƒ�rä| jƒ j}t|||||dd�}| j| _	nj|d k	�sø|d k	�rt|||dfd||ƒ}| jjƒ | _	n2|�r(d	}nd
}| jƒ }td| |d|j |jƒ‚|S )Nzwhile parsing a nodezfound undefined tag handle %rr   TF)Ústyle)Ú
flow_styleÚ r?   Zflowzwhile parsing a %s nodez'expected the node content, but found %r)TF)FT)FF) r$   Z
AliasTokenr   Z
AliasEventr   r   r   r   r7   r   ZAnchorTokenZTagTokenr   r   r)   ÚBlockEntryTokenZSequenceStartEventÚparse_indentless_sequence_entryZScalarTokenZplainÚScalarEventrD   ZFlowSequenceStartTokenÚparse_flow_sequence_first_entryZFlowMappingStartTokenÚMappingStartEventÚparse_flow_mapping_first_keyZBlockSequenceStartTokenÚ parse_block_sequence_first_entryZBlockMappingStartTokenÚparse_block_mapping_first_keyr3   )r   r?   rB   r!   r"   ZanchorÚtagr   r   Ztag_markr<   ÚsuffixZimplicitZnoder	   r	   r
   r@     s®    


















zParser.parse_nodec             C   s   | j ƒ }| jj|jƒ | jƒ S )N)r   r   r+   r   Úparse_block_sequence_entry)r   r!   r	   r	   r
   rM   x  s    z'Parser.parse_block_sequence_first_entryc             C   s¦   | j tƒrH| jƒ }| j ttƒs4| jj| jƒ | jƒ S | j| _| j	|j
ƒS | j tƒsv| jƒ }td| jd d|j |jƒ‚| jƒ }t|j|j
ƒ}| jjƒ | _| jjƒ  |S )Nz while parsing a block collectionr   z"expected <block end>, but found %réÿÿÿÿ)r$   rG   r   ÚBlockEndTokenr   r+   rQ   r-   r   r6   r   r)   r   r   r3   r   ÚSequenceEndEventr7   )r   r!   r"   r	   r	   r
   rQ   }  s     


z!Parser.parse_block_sequence_entryc             C   sr   | j tƒrL| jƒ }| j ttttƒs8| jj| jƒ | j	ƒ S | j| _
| j|jƒS | jƒ }t|j|jƒ}| jjƒ | _
|S )N)r$   rG   r   ÚKeyTokenÚ
ValueTokenrS   r   r+   rH   r-   r   r6   r   r)   rT   r   r7   )r   r!   r"   r	   r	   r
   rH   ’  s    

z&Parser.parse_indentless_sequence_entryc             C   s   | j ƒ }| jj|jƒ | jƒ S )N)r   r   r+   r   Úparse_block_mapping_key)r   r!   r	   r	   r
   rN   ¦  s    z$Parser.parse_block_mapping_first_keyc             C   s¨   | j tƒrJ| jƒ }| j tttƒs6| jj| jƒ | jƒ S | j| _	| j
|jƒS | j tƒsx| jƒ }td| jd d|j |jƒ‚| jƒ }t|j|jƒ}| jjƒ | _	| jjƒ  |S )Nzwhile parsing a block mappingr   z"expected <block end>, but found %rrR   )r$   rU   r   rV   rS   r   r+   Úparse_block_mapping_valuerC   r   r6   r   r)   r   r   r3   r   ÚMappingEndEventr7   )r   r!   r"   r	   r	   r
   rW   «  s     


zParser.parse_block_mapping_keyc             C   sl   | j tƒrL| jƒ }| j tttƒs6| jj| jƒ | jƒ S | j| _	| j
|jƒS n| j| _	| jƒ }| j
|jƒS d S )N)r$   rV   r   rU   rS   r   r+   rW   rC   r   r6   r   r)   r   )r   r!   r	   r	   r
   rX   ¾  s    
z Parser.parse_block_mapping_valuec             C   s"   | j ƒ }| jj|jƒ | jdd�S )NT)Úfirst)r   r   r+   r   Úparse_flow_sequence_entry)r   r!   r	   r	   r
   rJ   ×  s    z&Parser.parse_flow_sequence_first_entryc             C   sÌ   | j tƒsœ|sF| j tƒr"| jƒ  n$| jƒ }td| jd d|j |jƒ‚| j t	ƒr|| jƒ }t
d d d|j|jdd�}| j| _|S | j tƒsœ| jj| jƒ | jƒ S | jƒ }t|j|jƒ}| jjƒ | _| jjƒ  |S )Nzwhile parsing a flow sequencer   zexpected ',' or ']', but got %rT)rE   rR   )r$   ÚFlowSequenceEndTokenÚFlowEntryTokenr   r)   r   r   r3   r   rU   rK   r   Ú%parse_flow_sequence_entry_mapping_keyr   r   r+   r[   rA   rT   r7   )r   rZ   r!   r"   r	   r	   r
   r[   Ü  s,    





z Parser.parse_flow_sequence_entryc             C   sD   | j ƒ }| jtttƒs,| jj| jƒ | jƒ S | j| _	| j
|jƒS d S )N)r   r$   rV   r]   r\   r   r+   Ú'parse_flow_sequence_entry_mapping_valuerA   r   r6   r   )r   r!   r	   r	   r
   r^   ö  s    z,Parser.parse_flow_sequence_entry_mapping_keyc             C   sj   | j tƒrJ| jƒ }| j ttƒs4| jj| jƒ | jƒ S | j| _	| j
|jƒS n| j| _	| jƒ }| j
|jƒS d S )N)r$   rV   r   r]   r\   r   r+   Ú%parse_flow_sequence_entry_mapping_endrA   r   r6   r   r)   r   )r   r!   r	   r	   r
   r_      s    
z.Parser.parse_flow_sequence_entry_mapping_valuec             C   s   | j | _| jƒ }t|j|jƒS )N)r[   r   r)   rY   r   )r   r!   r	   r	   r
   r`     s    z,Parser.parse_flow_sequence_entry_mapping_endc             C   s"   | j ƒ }| jj|jƒ | jdd�S )NT)rZ   )r   r   r+   r   Úparse_flow_mapping_key)r   r!   r	   r	   r
   rL     s    z#Parser.parse_flow_mapping_first_keyc             C   sâ   | j tƒs²|sF| j tƒr"| jƒ  n$| jƒ }td| jd d|j |jƒ‚| j t	ƒr’| jƒ }| j t
ttƒs|| jj| jƒ | jƒ S | j| _| j|jƒS n | j tƒs²| jj| jƒ | jƒ S | jƒ }t|j|jƒ}| jjƒ | _| jjƒ  |S )Nzwhile parsing a flow mappingr   zexpected ',' or '}', but got %rrR   )r$   ÚFlowMappingEndTokenr]   r   r)   r   r   r3   r   rU   rV   r   r+   Úparse_flow_mapping_valuerA   r   r6   r   Úparse_flow_mapping_empty_valuerY   r7   )r   rZ   r!   r"   r	   r	   r
   ra     s.    





zParser.parse_flow_mapping_keyc             C   sj   | j tƒrJ| jƒ }| j ttƒs4| jj| jƒ | jƒ S | j| _	| j
|jƒS n| j| _	| jƒ }| j
|jƒS d S )N)r$   rV   r   r]   rb   r   r+   ra   rA   r   r6   r   r)   r   )r   r!   r	   r	   r
   rc   9  s    
zParser.parse_flow_mapping_valuec             C   s   | j | _| j| jƒ jƒS )N)ra   r   r6   r)   r   )r   r	   r	   r
   rd   G  s    z%Parser.parse_flow_mapping_empty_valuec             C   s   t d d dd||ƒS )NTFrF   )TF)rI   )r   Zmarkr	   r	   r
   r6   K  s    zParser.process_empty_scalarN)FF)F)F)#r   r   r   r(   r   r   r   r   r   r   r    r.   r,   r4   r2   r-   rA   rC   r@   rM   rQ   rH   rN   rW   rX   rJ   r[   r^   r_   r`   rL   ra   rc   rd   r6   r	   r	   r	   r
   r   H   sB   	/
g


N)Ú__all__Úerrorr   ÚtokensZeventsÚscannerr   r   r	   r	   r	   r
   Ú<module>>   s   