o
    sÇh—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	   ú_/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/yaml/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dEd;d<„Zd=d>„ Z d?d@„ Z!dAdB„ Z"dCS )Fr   ú!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 r   )r   r   r   r	   r	   r
   ÚdisposeY   s   
zParser.disposec                 G   sL   | j d u r| jr|  ¡ | _ | j d ur$|sdS |D ]}t| j |ƒr# dS qdS )NTF)r   r   Ú
isinstance)r   ÚchoicesÚchoicer	   r	   r
   Úcheck_event^   s   


ÿzParser.check_eventc                 C   s    | j d u r| jr|  ¡ | _ | j S r   ©r   r   r   r	   r	   r
   Ú
peek_eventk   s   

zParser.peek_eventc                 C   s*   | j d u r| jr|  ¡ | _ | j }d | _ |S r   r   )r   Úvaluer	   r	   r
   Ú	get_eventr   s   

zParser.get_eventc                 C   s(   |   ¡ }t|j|j|jd}| j| _|S )N)Úencoding)Ú	get_tokenÚStreamStartEventÚ
start_markÚend_markr    Úparse_implicit_document_startr   ©r   ÚtokenÚeventr	   r	   r
   r      s   
ÿzParser.parse_stream_startc                 C   sX   |   ttt¡s(| j| _|  ¡ }|j }}t||dd}| j	 
| j¡ | j| _|S |  ¡ 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Ö   |   t¡r|  ¡  |   t¡s|   t¡sQ|  ¡ }|j}|  ¡ \}}|   t¡s4td d d|  ¡ j	 |  ¡ jƒ‚|  ¡ }|j
}t||d||d}| j | j¡ | j| _|S |  ¡ }t|j|j
ƒ}| jraJ ‚| jrfJ ‚d | _|S )Nz)expected '<document start>', but found %rT)r*   ÚversionÚtags)r+   ÚDocumentEndTokenr!   r.   r0   r#   Úprocess_directivesr-   r   Úidr$   r1   r   r2   r3   Úparse_document_contentr   ÚStreamEndEventr   )r   r'   r#   r6   r7   r$   r(   r	   r	   r
   r5   Ÿ   s8   

ÿ

ÿýÿû

zParser.parse_document_startc                 C   sL   |   ¡ }|j }}d}|  t¡r|  ¡ }|j}d}t|||d}| j| _|S )NFTr)   )	r0   r#   r+   r8   r!   r$   ÚDocumentEndEventr5   r   )r   r'   r#   r$   r*   r(   r	   r	   r
   r3   ¾   s   

ÿzParser.parse_document_endc                 C   s8   |   tttt¡r|  |  ¡ j¡}| j 	¡ | _
|S |  ¡ S r   )r+   r,   r-   r8   r.   Úprocess_empty_scalarr0   r#   r   Úpopr   r4   )r   r(   r	   r	   r
   r;   Ð   s   ÿzParser.parse_document_contentc                 C   s   d | _ i | _|  t¡rZ|  ¡ }|jdkr7| j d ur!td d d|jƒ‚|j\}}|dkr2td d d|jƒ‚|j| _ n|jdkrU|j\}}|| jv rPtd d d| |jƒ‚|| j|< |  t¡s| jrf| j | j 	¡ f}n| j d f}| j
D ]}|| jvr}| j
| | j|< qn|S )NÚYAMLzfound duplicate YAML directiver   z:found incompatible YAML document (version 1.* is required)ÚTAGzduplicate tag handle %r)r   r   r+   r,   r!   Únamer   r#   r   Úcopyr/   )r   r'   ÚmajorÚminorÚhandleÚprefixr   Úkeyr	   r	   r
   r9   Ù   sB   


ÿ
þ



þ

î


€zParser.process_directivesc                 C   s   | j ddS )NT)Úblock©Ú
parse_noder   r	   r	   r
   r4     s   zParser.parse_block_nodec                 C   s   |   ¡ S r   rJ   r   r	   r	   r
   Úparse_flow_node  s   zParser.parse_flow_nodec                 C   s   | j dddS )NT)rI   Úindentless_sequencerJ   r   r	   r	   r
   Ú'parse_block_node_or_indentless_sequence  s   z.Parser.parse_block_node_or_indentless_sequenceFc              	   C   s>  |   t¡r|  ¡ }t|j|j|jƒ}| j ¡ | _	|S d }d }d  } }}	|   t
¡rI|  ¡ }|j}|j}|j}|   t¡rH|  ¡ }|j}	|j}|j}n#|   t¡rl|  ¡ }|j }}	|j}|j}|   t
¡rl|  ¡ }|j}|j}|d ur|\}
}|
d urŽ|
| jvr†td|d|
 |	ƒ‚| j|
 | }n|}|d u r›|  ¡ j }}d }|d u p¤|dk}|r¿|   t¡r¿|  ¡ j}t|||||ƒ}| j| _	|S |   t¡r÷|  ¡ }|j}|jrÒ|d u sÖ|dkrÙd}n	|d u ràd}nd}t||||j|||jd}| j ¡ | _	|S |   t¡r|  ¡ j}t|||||dd	}| j| _	|S |   t¡r-|  ¡ j}t|||||dd	}| j| _	|S |rK|   t¡rK|  ¡ j}t|||||d
d	}| j| _	|S |ri|   t¡ri|  ¡ j}t|||||d
d	}| j| _	|S |d uss|d ur†t|||d
fd||ƒ}| j ¡ | _	|S |rŒd}nd}|  ¡ }td| |d|j |jƒ‚)Nzwhile parsing a nodezfound undefined tag handle %rr   ©TF)FT©FF)ÚstyleT©Ú
flow_styleFÚ rI   Úflowzwhile parsing a %s nodez'expected the node content, but found %r) r+   Ú
AliasTokenr!   Ú
AliasEventr   r#   r$   r   r?   r   ÚAnchorTokenÚTagTokenr   r   r0   ÚBlockEntryTokenÚSequenceStartEventÚparse_indentless_sequence_entryÚScalarTokenÚplainÚScalarEventrQ   ÚFlowSequenceStartTokenÚparse_flow_sequence_first_entryÚFlowMappingStartTokenÚMappingStartEventÚparse_flow_mapping_first_keyÚBlockSequenceStartTokenÚ parse_block_sequence_first_entryÚBlockMappingStartTokenÚparse_block_mapping_first_keyr:   )r   rI   rM   r'   r(   ÚanchorÚtagr#   r$   Útag_markrF   ÚsuffixÚimplicitÚnoder	   r	   r
   rK     sÐ   
_£

€



þ
ÿ1
Ñÿ$Ý
ÿâ
ÿç
ÿì
ÿñÿ
ø
þzParser.parse_nodec                 C   ó   |   ¡ }| j |j¡ |  ¡ S r   )r!   r   r2   r#   Úparse_block_sequence_entry©r   r'   r	   r	   r
   rf   x  ó   z'Parser.parse_block_sequence_first_entryc                 C   s¦   |   t¡r$|  ¡ }|   tt¡s| j | j¡ |  ¡ S | j| _|  	|j
¡S |   t¡s;|  ¡ }td| jd d|j |jƒ‚|  ¡ }t|j|j
ƒ}| j ¡ | _| j ¡  |S )Nz while parsing a block collectionéÿÿÿÿú"expected <block end>, but found %r)r+   rZ   r!   ÚBlockEndTokenr   r2   rp   r4   r   r>   r$   r0   r   r   r:   r#   ÚSequenceEndEventr?   r&   r	   r	   r
   rp   }  s"   

ÿ
z!Parser.parse_block_sequence_entryc                 C   sr   |   t¡r&|  ¡ }|   tttt¡s| j | j¡ |  	¡ S | j| _
|  |j¡S |  ¡ }t|j|jƒ}| j ¡ | _
|S r   )r+   rZ   r!   ÚKeyTokenÚ
ValueTokenru   r   r2   r\   r4   r   r>   r$   r0   rv   r#   r?   r&   r	   r	   r
   r\   ’  s   
ÿz&Parser.parse_indentless_sequence_entryc                 C   ro   r   )r!   r   r2   r#   Úparse_block_mapping_keyrq   r	   r	   r
   rh   ¦  rr   z$Parser.parse_block_mapping_first_keyc                 C   s¨   |   t¡r%|  ¡ }|   ttt¡s| j | j¡ |  ¡ S | j| _	|  
|j¡S |   t¡s<|  ¡ }td| jd d|j |jƒ‚|  ¡ }t|j|jƒ}| j ¡ | _	| j ¡  |S )Nzwhile parsing a block mappingrs   rt   )r+   rw   r!   rx   ru   r   r2   Úparse_block_mapping_valuerN   r   r>   r$   r0   r   r   r:   r#   ÚMappingEndEventr?   r&   r	   r	   r
   ry   «  s"   

ÿ
zParser.parse_block_mapping_keyc                 C   sf   |   t¡r%|  ¡ }|   ttt¡s| j | j¡ |  ¡ S | j| _	|  
|j¡S | j| _	|  ¡ }|  
|j¡S r   )r+   rx   r!   rw   ru   r   r2   ry   rN   r   r>   r$   r0   r#   rq   r	   r	   r
   rz   ¾  s   
z Parser.parse_block_mapping_valuec                 C   ó"   |   ¡ }| j |j¡ | jddS ©NT)Úfirst)r!   r   r2   r#   Úparse_flow_sequence_entryrq   r	   r	   r
   ra   ×  ó   z&Parser.parse_flow_sequence_first_entryc                 C   sÌ   |   t¡sN|s#|   t¡r|  ¡  n|  ¡ }td| jd d|j |jƒ‚|   t	¡r>|  ¡ }t
d d d|j|jdd}| j| _|S |   t¡sN| j | j¡ |  ¡ S |  ¡ }t|j|jƒ}| j ¡ | _| j ¡  |S )Nzwhile parsing a flow sequencers   zexpected ',' or ']', but got %rTrR   )r+   ÚFlowSequenceEndTokenÚFlowEntryTokenr!   r0   r   r   r:   r#   rw   rc   r$   Ú%parse_flow_sequence_entry_mapping_keyr   r   r2   r   rL   rv   r?   ©r   r~   r'   r(   r	   r	   r
   r   Ü  s0   


ÿ
þ

z Parser.parse_flow_sequence_entryc                 C   s@   |   ¡ }|  ttt¡s| j | j¡ |  ¡ S | j| _	|  
|j¡S r   )r!   r+   rx   r‚   r   r   r2   Ú'parse_flow_sequence_entry_mapping_valuerL   r   r>   r$   rq   r	   r	   r
   rƒ   ö  s   ÿz,Parser.parse_flow_sequence_entry_mapping_keyc                 C   ód   |   t¡r$|  ¡ }|   tt¡s| j | j¡ |  ¡ S | j| _	|  
|j¡S | j| _	|  ¡ }|  
|j¡S r   )r+   rx   r!   r‚   r   r   r2   Ú%parse_flow_sequence_entry_mapping_endrL   r   r>   r$   r0   r#   rq   r	   r	   r
   r…      ó   
z.Parser.parse_flow_sequence_entry_mapping_valuec                 C   s   | j | _|  ¡ }t|j|jƒS r   )r   r   r0   r{   r#   rq   r	   r	   r
   r‡     s   z,Parser.parse_flow_sequence_entry_mapping_endc                 C   r|   r}   )r!   r   r2   r#   Úparse_flow_mapping_keyrq   r	   r	   r
   rd     r€   z#Parser.parse_flow_mapping_first_keyc                 C   sà   |   t¡sX|s#|   t¡r|  ¡  n|  ¡ }td| jd d|j |jƒ‚|   t	¡rH|  ¡ }|   t
tt¡s>| j | j¡ |  ¡ S | j| _|  |j¡S |   t¡sX| j | j¡ |  ¡ S |  ¡ }t|j|jƒ}| j ¡ | _| j ¡  |S )Nzwhile parsing a flow mappingrs   zexpected ',' or '}', but got %r)r+   ÚFlowMappingEndTokenr‚   r!   r0   r   r   r:   r#   rw   rx   r   r2   Úparse_flow_mapping_valuerL   r   r>   r$   Úparse_flow_mapping_empty_valuer{   r?   r„   r	   r	   r
   r‰     s2   


ÿ
ÿ

zParser.parse_flow_mapping_keyc                 C   r†   r   )r+   rx   r!   r‚   rŠ   r   r2   r‰   rL   r   r>   r$   r0   r#   rq   r	   r	   r
   r‹   9  rˆ   zParser.parse_flow_mapping_valuec                 C   s   | j | _|  |  ¡ j¡S r   )r‰   r   r>   r0   r#   r   r	   r	   r
   rŒ   G  s   z%Parser.parse_flow_mapping_empty_valuec                 C   s   t d d dd||ƒS )NrO   rT   )r_   )r   Úmarkr	   r	   r
   r>   K  s   zParser.process_empty_scalarNrP   )F)#r   r   r   r/   r   r   r   r   r   r   r%   r5   r3   r;   r9   r4   rL   rN   rK   rf   rp   r\   rh   ry   rz   ra   r   rƒ   r…   r‡   rd   r‰   r‹   rŒ   r>   r	   r	   r	   r
   r   H   sF    þ	/
g


N)Ú__all__Úerrorr   ÚtokensÚeventsÚscannerr   r   r	   r	   r	   r
   Ú<module>   s   =